diff --git a/litellm/tests/test_anthropic_completion.py b/litellm/tests/test_anthropic_completion.py new file mode 100644 index 0000000000..674d090762 --- /dev/null +++ b/litellm/tests/test_anthropic_completion.py @@ -0,0 +1,4203 @@ +# What is this? +## Unit tests for Anthropic Adapter + +# import asyncio +# import os +# import sys +# import traceback + +# from dotenv import load_dotenv + +# load_dotenv() +# import io +# import os + +# sys.path.insert( +# 0, os.path.abspath("../..") +# ) # Adds the parent directory to the system path +# from unittest.mock import MagicMock, patch + +# import pytest + +# import litellm +# from litellm import ( +# RateLimitError, +# TextCompletionResponse, +# atext_completion, +# completion, +# completion_cost, +# embedding, +# text_completion, +# ) + +# litellm.num_retries = 3 + + +# token_prompt = [ +# [ +# 32, +# 2043, +# 32, +# 329, +# 4585, +# 262, +# 1644, +# 14, +# 34, +# 3705, +# 319, +# 616, +# 47551, +# 30, +# 930, +# 19219, +# 284, +# 1949, +# 284, +# 787, +# 428, +# 355, +# 1790, +# 355, +# 1744, +# 981, +# 1390, +# 3307, +# 2622, +# 13, +# 220, +# 198, +# 198, +# 40, +# 423, +# 587, +# 351, +# 616, +# 41668, +# 32682, +# 329, +# 718, +# 812, +# 13, +# 376, +# 666, +# 32682, +# 468, +# 281, +# 4697, +# 6621, +# 11, +# 356, +# 1183, +# 869, +# 607, +# 25737, +# 11, +# 508, +# 318, +# 2579, +# 290, +# 468, +# 257, +# 642, +# 614, +# 1468, +# 1200, +# 13, +# 314, +# 373, +# 612, +# 262, +# 1110, +# 25737, +# 373, +# 287, +# 4827, +# 290, +# 14801, +# 373, +# 4642, +# 11, +# 673, +# 318, +# 616, +# 41803, +# 13, +# 2399, +# 2104, +# 1641, +# 468, +# 6412, +# 284, +# 502, +# 355, +# 465, +# 38074, +# 494, +# 1201, +# 1110, +# 352, +# 13, +# 314, +# 716, +# 407, +# 2910, +# 475, +# 356, +# 389, +# 1641, +# 11, +# 673, +# 3848, +# 502, +# 38074, +# 494, +# 290, +# 356, +# 423, +# 3993, +# 13801, +# 11, +# 26626, +# 11864, +# 11, +# 3503, +# 13, +# 220, +# 198, +# 198, +# 17, +# 812, +# 2084, +# 25737, +# 373, +# 287, +# 14321, +# 422, +# 2563, +# 13230, +# 13, +# 21051, +# 11, +# 2356, +# 25542, +# 11, +# 290, +# 47482, +# 897, +# 547, +# 607, +# 1517, +# 13, +# 1375, +# 550, +# 257, +# 5110, +# 14608, +# 290, +# 262, +# 1641, +# 7723, +# 1637, +# 284, +# 3758, +# 607, +# 284, +# 14321, +# 290, +# 477, +# 8389, +# 257, +# 7269, +# 284, +# 1011, +# 1337, +# 286, +# 14801, +# 13, +# 383, +# 5156, +# 338, +# 9955, +# 11, +# 25737, +# 338, +# 13850, +# 11, +# 468, +# 257, +# 47973, +# 14, +# 9979, +# 2762, +# 1693, +# 290, +# 373, +# 503, +# 286, +# 3240, +# 329, +# 362, +# 1933, +# 523, +# 339, +# 2492, +# 470, +# 612, +# 329, +# 477, +# 286, +# 428, +# 13, +# 220, +# 198, +# 198, +# 3347, +# 10667, +# 5223, +# 503, +# 706, +# 513, +# 1528, +# 11, +# 23630, +# 673, +# 373, +# 366, +# 38125, +# 290, +# 655, +# 2622, +# 257, +# 3338, +# 8399, +# 1911, +# 314, +# 2298, +# 607, +# 510, +# 11, +# 1011, +# 607, +# 284, +# 607, +# 2156, +# 11, +# 290, +# 673, +# 3393, +# 2925, +# 284, +# 7523, +# 20349, +# 290, +# 4144, +# 257, +# 6099, +# 13, +# 314, +# 836, +# 470, +# 892, +# 20349, +# 318, +# 257, +# 2563, +# 290, +# 716, +# 845, +# 386, +# 12, +# 66, +# 1236, +# 571, +# 292, +# 3584, +# 314, +# 836, +# 470, +# 7523, +# 11, +# 475, +# 326, +# 373, +# 407, +# 5035, +# 6402, +# 314, +# 655, +# 6497, +# 607, +# 510, +# 422, +# 14321, +# 13, +# 220, +# 198, +# 198, +# 32, +# 1285, +# 1568, +# 673, +# 373, +# 6294, +# 329, +# 3013, +# 24707, +# 287, +# 262, +# 12436, +# 1539, +# 819, +# 5722, +# 329, +# 852, +# 604, +# 1933, +# 2739, +# 11, +# 39398, +# 607, +# 1097, +# 5059, +# 981, +# 1029, +# 290, +# 318, +# 852, +# 16334, +# 329, +# 720, +# 1120, +# 74, +# 422, +# 15228, +# 278, +# 656, +# 257, +# 2156, +# 11, +# 290, +# 373, +# 12165, +# 503, +# 286, +# 376, +# 666, +# 32682, +# 338, +# 584, +# 6621, +# 338, +# 2156, +# 329, +# 32012, +# 262, +# 14595, +# 373, +# 30601, +# 510, +# 290, +# 2491, +# 357, +# 7091, +# 373, +# 1029, +# 8, +# 290, +# 262, +# 2104, +# 34624, +# 373, +# 46432, +# 1268, +# 1961, +# 422, +# 1660, +# 2465, +# 780, +# 8168, +# 2073, +# 1625, +# 1363, +# 329, +# 807, +# 2250, +# 13, +# 720, +# 1238, +# 11, +# 830, +# 286, +# 2465, +# 290, +# 5875, +# 5770, +# 511, +# 2156, +# 5096, +# 5017, +# 340, +# 13, +# 220, +# 198, +# 198, +# 2504, +# 373, +# 477, +# 938, +# 614, +# 13, +# 1119, +# 1053, +# 587, +# 287, +# 511, +# 649, +# 2156, +# 319, +# 511, +# 898, +# 329, +# 546, +# 718, +# 1933, +# 13, +# 554, +# 3389, +# 673, +# 1444, +# 34020, +# 290, +# 531, +# 511, +# 8744, +# 373, +# 4423, +# 572, +# 780, +# 673, +# 1422, +# 470, +# 423, +# 262, +# 1637, +# 780, +# 41646, +# 338, +# 37751, +# 1392, +# 32621, +# 510, +# 290, +# 1422, +# 470, +# 467, +# 832, +# 13, +# 679, +# 3432, +# 511, +# 2739, +# 8744, +# 9024, +# 492, +# 257, +# 2472, +# 286, +# 720, +# 4059, +# 13, +# 314, +# 1807, +# 340, +# 373, +# 13678, +# 306, +# 5789, +# 475, +# 4030, +# 616, +# 5422, +# 4423, +# 13, +# 1439, +# 468, +# 587, +# 5897, +# 1201, +# 13, +# 220, +# 198, +# 198, +# 7571, +# 2745, +# 2084, +# 11, +# 673, +# 1965, +# 502, +# 284, +# 8804, +# 617, +# 1637, +# 284, +# 651, +# 38464, +# 329, +# 399, +# 8535, +# 13, +# 3226, +# 1781, +# 314, +# 1101, +# 407, +# 1016, +# 284, +# 1309, +# 616, +# 41803, +# 393, +# 6621, +# 467, +# 14720, +# 11, +# 645, +# 2300, +# 644, +# 318, +# 1016, +# 319, +# 4306, +# 11, +# 523, +# 314, +# 910, +# 314, +# 1183, +# 307, +# 625, +# 379, +# 642, +# 13, +# 314, +# 1392, +# 572, +# 670, +# 1903, +# 290, +# 651, +# 612, +# 379, +# 362, +# 25, +# 2231, +# 13, +# 314, +# 1282, +# 287, +# 1262, +# 616, +# 13952, +# 1994, +# 11, +# 2513, +# 287, +# 11, +# 766, +# 399, +# 8535, +# 2712, +# 351, +# 36062, +# 287, +# 262, +# 5228, +# 11, +# 25737, +# 3804, +# 503, +# 319, +# 262, +# 18507, +# 11, +# 290, +# 16914, +# 319, +# 262, +# 6891, +# 3084, +# 13, +# 8989, +# 2406, +# 422, +# 257, +# 1641, +# 47655, +# 351, +# 13230, +# 11, +# 314, +# 760, +# 644, +# 16914, +# 3073, +# 588, +# 13, +# 314, +# 836, +# 470, +# 760, +# 703, +# 881, +# 340, +# 373, +# 11, +# 475, +# 314, +# 714, +# 423, +# 23529, +# 276, +# 340, +# 510, +# 290, +# 5901, +# 616, +# 18057, +# 351, +# 340, +# 13, +# 314, +# 6810, +# 19772, +# 2024, +# 8347, +# 287, +# 262, +# 2166, +# 2119, +# 290, +# 399, +# 8535, +# 373, +# 287, +# 3294, +# 11685, +# 286, +# 8242, +# 290, +# 607, +# 7374, +# 15224, +# 13, +# 383, +# 4894, +# 373, +# 572, +# 13, +# 383, +# 2156, +# 373, +# 3863, +# 2319, +# 37, +# 532, +# 340, +# 373, +# 1542, +# 2354, +# 13, +# 220, +# 198, +# 198, +# 40, +# 1718, +# 399, +# 8535, +# 284, +# 616, +# 1097, +# 11, +# 290, +# 1444, +# 16679, +# 329, +# 281, +# 22536, +# 355, +# 314, +# 373, +# 12008, +# 25737, +# 373, +# 14904, +# 2752, +# 13, +# 220, +# 314, +# 1422, +# 470, +# 765, +# 284, +# 10436, +# 290, +# 22601, +# 503, +# 399, +# 8535, +# 523, +# 314, +# 9658, +# 287, +# 262, +# 1097, +# 290, +# 1309, +# 607, +# 711, +# 319, +# 616, +# 3072, +# 1566, +# 262, +# 22536, +# 5284, +# 13, +# 3226, +# 1781, +# 1644, +# 290, +# 32084, +# 3751, +# 510, +# 355, +# 880, +# 13, +# 314, +# 4893, +# 262, +# 3074, +# 290, +# 780, +# 399, +# 8535, +# 338, +# 9955, +# 318, +# 503, +# 286, +# 3240, +# 1762, +# 11, +# 34020, +# 14, +# 44, +# 4146, +# 547, +# 1444, +# 13, +# 1649, +# 484, +# 5284, +# 484, +# 547, +# 5897, +# 290, +# 4692, +# 11, +# 1422, +# 470, +# 1107, +# 1561, +# 11, +# 1718, +# 399, +# 8535, +# 11, +# 290, +# 1297, +# 502, +# 284, +# 467, +# 1363, +# 13, +# 220, +# 198, +# 198, +# 2025, +# 1711, +# 1568, +# 314, +# 651, +# 1363, +# 290, +# 41668, +# 32682, +# 7893, +# 502, +# 644, +# 314, +# 1053, +# 1760, +# 13, +# 314, +# 4893, +# 2279, +# 284, +# 683, +# 290, +# 477, +# 339, +# 550, +# 373, +# 8993, +# 329, +# 502, +# 13, +# 18626, +# 262, +# 2104, +# 1641, +# 1541, +# 2993, +# 290, +# 547, +# 28674, +# 379, +# 502, +# 329, +# 644, +# 314, +# 550, +# 1760, +# 13, +# 18626, +# 314, +# 373, +# 366, +# 448, +# 286, +# 1627, +# 290, +# 8531, +# 1, +# 780, +# 314, +# 1444, +# 16679, +# 878, +# 4379, +# 611, +# 673, +# 373, +# 1682, +# 31245, +# 6, +# 278, +# 780, +# 340, +# 2900, +# 503, +# 673, +# 373, +# 655, +# 47583, +# 503, +# 422, +# 262, +# 16914, +# 13, +# 775, +# 8350, +# 329, +# 2250, +# 290, +# 314, +# 1364, +# 290, +# 3377, +# 262, +# 1755, +# 379, +# 616, +# 1266, +# 1545, +# 338, +# 2156, +# 290, +# 16896, +# 477, +# 1755, +# 13, +# 314, +# 3521, +# 470, +# 5412, +# 340, +# 477, +# 523, +# 314, +# 2900, +# 616, +# 3072, +# 572, +# 290, +# 3088, +# 284, +# 8960, +# 290, +# 655, +# 9480, +# 866, +# 13, +# 2011, +# 1266, +# 1545, +# 373, +# 510, +# 477, +# 1755, +# 351, +# 502, +# 11, +# 5149, +# 502, +# 314, +# 750, +# 2147, +# 2642, +# 11, +# 290, +# 314, +# 1101, +# 8788, +# 13, +# 220, +# 198, +# 198, +# 40, +# 1210, +# 616, +# 3072, +# 319, +# 290, +# 314, +# 550, +# 6135, +# 13399, +# 14, +# 37348, +# 1095, +# 13, +# 31515, +# 11, +# 34020, +# 11, +# 47551, +# 11, +# 41668, +# 32682, +# 11, +# 290, +# 511, +# 7083, +# 1641, +# 1866, +# 24630, +# 502, +# 13, +# 1119, +# 389, +# 2282, +# 314, +# 20484, +# 607, +# 1204, +# 11, +# 20484, +# 399, +# 8535, +# 338, +# 1204, +# 11, +# 925, +# 2279, +# 517, +# 8253, +# 621, +# 340, +# 2622, +# 284, +# 307, +# 11, +# 925, +# 340, +# 1171, +# 618, +# 340, +# 373, +# 257, +# 366, +# 17989, +# 14669, +# 1600, +# 290, +# 20484, +# 25737, +# 338, +# 8395, +# 286, +# 1683, +# 1972, +# 20750, +# 393, +# 1719, +# 10804, +# 286, +# 607, +# 1200, +# 757, +# 11, +# 4844, +# 286, +# 606, +# 1683, +# 765, +# 284, +# 766, +# 502, +# 757, +# 290, +# 314, +# 481, +# 1239, +# 766, +# 616, +# 41803, +# 757, +# 11, +# 290, +# 484, +# 765, +# 502, +# 284, +# 1414, +# 329, +# 25737, +# 338, +# 7356, +# 6314, +# 290, +# 20889, +# 502, +# 329, +# 262, +# 32084, +# 1339, +# 290, +# 7016, +# 12616, +# 13, +# 198, +# 198, +# 40, +# 716, +# 635, +# 783, +# 2060, +# 13, +# 1406, +# 319, +# 1353, +# 286, +# 6078, +# 616, +# 1266, +# 1545, +# 286, +# 838, +# 812, +# 357, +# 69, +# 666, +# 32682, +# 828, +# 314, +# 481, +# 4425, +# 616, +# 7962, +# 314, +# 550, +# 351, +# 683, +# 11, +# 644, +# 314, +# 3177, +# 616, +# 1641, +# 11, +# 290, +# 616, +# 399, +# 8535, +# 13, +# 198, +# 198, +# 40, +# 4988, +# 1254, +# 12361, +# 13, +# 314, +# 423, +# 12361, +# 9751, +# 284, +# 262, +# 966, +# 810, +# 314, +# 1101, +# 7960, +# 2130, +# 318, +# 1016, +# 284, +# 1282, +# 651, +# 366, +# 260, +# 18674, +# 1, +# 319, +# 502, +# 329, +# 644, +# 314, +# 750, +# 13, +# 314, +# 460, +# 470, +# 4483, +# 13, +# 314, +# 423, +# 2626, +# 767, +# 8059, +# 422, +# 340, +# 13, +# 314, +# 1101, +# 407, +# 11029, +# 329, +# 7510, +# 13, +# 314, +# 423, +# 11668, +# 739, +# 616, +# 2951, +# 13, +# 314, +# 1053, +# 550, +# 807, +# 50082, +# 12, +# 12545, +# 287, +# 734, +# 2745, +# 13, +# 1629, +# 717, +# 314, +# 2936, +# 523, +# 6563, +# 287, +# 616, +# 2551, +# 475, +# 355, +# 262, +# 1528, +# 467, +# 416, +# 314, +# 1101, +# 3612, +# 3863, +# 484, +# 547, +# 826, +# 290, +# 314, +# 815, +# 423, +# 10667, +# 319, +# 607, +# 878, +# 4585, +# 16679, +# 290, +# 852, +# 5306, +# 3019, +# 992, +# 13, +# 314, +# 836, +# 470, +# 1337, +# 546, +# 25737, +# 7471, +# 11, +# 475, +# 314, +# 750, +# 18344, +# 257, +# 642, +# 614, +# 1468, +# 1200, +# 1497, +# 422, +# 607, +# 3397, +# 290, +# 314, +# 1254, +# 12361, +# 546, +# 340, +# 13, +# 314, +# 760, +# 2130, +# 287, +# 262, +# 1641, +# 481, +# 1011, +# 607, +# 287, +# 11, +# 475, +# 340, +# 338, +# 1239, +# 588, +# 852, +# 351, +# 534, +# 3397, +# 13, +# 1375, +# 481, +# 1663, +# 510, +# 20315, +# 278, +# 502, +# 329, +# 340, +# 290, +# 477, +# 314, +# 1053, +# 1683, +# 1760, +# 318, +# 1842, +# 607, +# 355, +# 616, +# 898, +# 13, +# 220, +# 198, +# 198, +# 22367, +# 11, +# 317, +# 2043, +# 32, +# 30, +# 4222, +# 1037, +# 502, +# 13, +# 383, +# 14934, +# 318, +# 6600, +# 502, +# 6776, +# 13, +# 220, +# 198, +# 24361, +# 25, +# 1148, +# 428, +# 2642, +# 30, +# 198, +# 33706, +# 25, +# 645, +# ], +# [ +# 32, +# 2043, +# 32, +# 329, +# 4585, +# 262, +# 1644, +# 14, +# 34, +# 3705, +# 319, +# 616, +# 47551, +# 30, +# 930, +# 19219, +# 284, +# 1949, +# 284, +# 787, +# 428, +# 355, +# 1790, +# 355, +# 1744, +# 981, +# 1390, +# 3307, +# 2622, +# 13, +# 220, +# 198, +# 198, +# 40, +# 423, +# 587, +# 351, +# 616, +# 41668, +# 32682, +# 329, +# 718, +# 812, +# 13, +# 376, +# 666, +# 32682, +# 468, +# 281, +# 4697, +# 6621, +# 11, +# 356, +# 1183, +# 869, +# 607, +# 25737, +# 11, +# 508, +# 318, +# 2579, +# 290, +# 468, +# 257, +# 642, +# 614, +# 1468, +# 1200, +# 13, +# 314, +# 373, +# 612, +# 262, +# 1110, +# 25737, +# 373, +# 287, +# 4827, +# 290, +# 14801, +# 373, +# 4642, +# 11, +# 673, +# 318, +# 616, +# 41803, +# 13, +# 2399, +# 2104, +# 1641, +# 468, +# 6412, +# 284, +# 502, +# 355, +# 465, +# 38074, +# 494, +# 1201, +# 1110, +# 352, +# 13, +# 314, +# 716, +# 407, +# 2910, +# 475, +# 356, +# 389, +# 1641, +# 11, +# 673, +# 3848, +# 502, +# 38074, +# 494, +# 290, +# 356, +# 423, +# 3993, +# 13801, +# 11, +# 26626, +# 11864, +# 11, +# 3503, +# 13, +# 220, +# 198, +# 198, +# 17, +# 812, +# 2084, +# 25737, +# 373, +# 287, +# 14321, +# 422, +# 2563, +# 13230, +# 13, +# 21051, +# 11, +# 2356, +# 25542, +# 11, +# 290, +# 47482, +# 897, +# 547, +# 607, +# 1517, +# 13, +# 1375, +# 550, +# 257, +# 5110, +# 14608, +# 290, +# 262, +# 1641, +# 7723, +# 1637, +# 284, +# 3758, +# 607, +# 284, +# 14321, +# 290, +# 477, +# 8389, +# 257, +# 7269, +# 284, +# 1011, +# 1337, +# 286, +# 14801, +# 13, +# 383, +# 5156, +# 338, +# 9955, +# 11, +# 25737, +# 338, +# 13850, +# 11, +# 468, +# 257, +# 47973, +# 14, +# 9979, +# 2762, +# 1693, +# 290, +# 373, +# 503, +# 286, +# 3240, +# 329, +# 362, +# 1933, +# 523, +# 339, +# 2492, +# 470, +# 612, +# 329, +# 477, +# 286, +# 428, +# 13, +# 220, +# 198, +# 198, +# 3347, +# 10667, +# 5223, +# 503, +# 706, +# 513, +# 1528, +# 11, +# 23630, +# 673, +# 373, +# 366, +# 38125, +# 290, +# 655, +# 2622, +# 257, +# 3338, +# 8399, +# 1911, +# 314, +# 2298, +# 607, +# 510, +# 11, +# 1011, +# 607, +# 284, +# 607, +# 2156, +# 11, +# 290, +# 673, +# 3393, +# 2925, +# 284, +# 7523, +# 20349, +# 290, +# 4144, +# 257, +# 6099, +# 13, +# 314, +# 836, +# 470, +# 892, +# 20349, +# 318, +# 257, +# 2563, +# 290, +# 716, +# 845, +# 386, +# 12, +# 66, +# 1236, +# 571, +# 292, +# 3584, +# 314, +# 836, +# 470, +# 7523, +# 11, +# 475, +# 326, +# 373, +# 407, +# 5035, +# 6402, +# 314, +# 655, +# 6497, +# 607, +# 510, +# 422, +# 14321, +# 13, +# 220, +# 198, +# 198, +# 32, +# 1285, +# 1568, +# 673, +# 373, +# 6294, +# 329, +# 3013, +# 24707, +# 287, +# 262, +# 12436, +# 1539, +# 819, +# 5722, +# 329, +# 852, +# 604, +# 1933, +# 2739, +# 11, +# 39398, +# 607, +# 1097, +# 5059, +# 981, +# 1029, +# 290, +# 318, +# 852, +# 16334, +# 329, +# 720, +# 1120, +# 74, +# 422, +# 15228, +# 278, +# 656, +# 257, +# 2156, +# 11, +# 290, +# 373, +# 12165, +# 503, +# 286, +# 376, +# 666, +# 32682, +# 338, +# 584, +# 6621, +# 338, +# 2156, +# 329, +# 32012, +# 262, +# 14595, +# 373, +# 30601, +# 510, +# 290, +# 2491, +# 357, +# 7091, +# 373, +# 1029, +# 8, +# 290, +# 262, +# 2104, +# 34624, +# 373, +# 46432, +# 1268, +# 1961, +# 422, +# 1660, +# 2465, +# 780, +# 8168, +# 2073, +# 1625, +# 1363, +# 329, +# 807, +# 2250, +# 13, +# 720, +# 1238, +# 11, +# 830, +# 286, +# 2465, +# 290, +# 5875, +# 5770, +# 511, +# 2156, +# 5096, +# 5017, +# 340, +# 13, +# 220, +# 198, +# 198, +# 2504, +# 373, +# 477, +# 938, +# 614, +# 13, +# 1119, +# 1053, +# 587, +# 287, +# 511, +# 649, +# 2156, +# 319, +# 511, +# 898, +# 329, +# 546, +# 718, +# 1933, +# 13, +# 554, +# 3389, +# 673, +# 1444, +# 34020, +# 290, +# 531, +# 511, +# 8744, +# 373, +# 4423, +# 572, +# 780, +# 673, +# 1422, +# 470, +# 423, +# 262, +# 1637, +# 780, +# 41646, +# 338, +# 37751, +# 1392, +# 32621, +# 510, +# 290, +# 1422, +# 470, +# 467, +# 832, +# 13, +# 679, +# 3432, +# 511, +# 2739, +# 8744, +# 9024, +# 492, +# 257, +# 2472, +# 286, +# 720, +# 4059, +# 13, +# 314, +# 1807, +# 340, +# 373, +# 13678, +# 306, +# 5789, +# 475, +# 4030, +# 616, +# 5422, +# 4423, +# 13, +# 1439, +# 468, +# 587, +# 5897, +# 1201, +# 13, +# 220, +# 198, +# 198, +# 7571, +# 2745, +# 2084, +# 11, +# 673, +# 1965, +# 502, +# 284, +# 8804, +# 617, +# 1637, +# 284, +# 651, +# 38464, +# 329, +# 399, +# 8535, +# 13, +# 3226, +# 1781, +# 314, +# 1101, +# 407, +# 1016, +# 284, +# 1309, +# 616, +# 41803, +# 393, +# 6621, +# 467, +# 14720, +# 11, +# 645, +# 2300, +# 644, +# 318, +# 1016, +# 319, +# 4306, +# 11, +# 523, +# 314, +# 910, +# 314, +# 1183, +# 307, +# 625, +# 379, +# 642, +# 13, +# 314, +# 1392, +# 572, +# 670, +# 1903, +# 290, +# 651, +# 612, +# 379, +# 362, +# 25, +# 2231, +# 13, +# 314, +# 1282, +# 287, +# 1262, +# 616, +# 13952, +# 1994, +# 11, +# 2513, +# 287, +# 11, +# 766, +# 399, +# 8535, +# 2712, +# 351, +# 36062, +# 287, +# 262, +# 5228, +# 11, +# 25737, +# 3804, +# 503, +# 319, +# 262, +# 18507, +# 11, +# 290, +# 16914, +# 319, +# 262, +# 6891, +# 3084, +# 13, +# 8989, +# 2406, +# 422, +# 257, +# 1641, +# 47655, +# 351, +# 13230, +# 11, +# 314, +# 760, +# 644, +# 16914, +# 3073, +# 588, +# 13, +# 314, +# 836, +# 470, +# 760, +# 703, +# 881, +# 340, +# 373, +# 11, +# 475, +# 314, +# 714, +# 423, +# 23529, +# 276, +# 340, +# 510, +# 290, +# 5901, +# 616, +# 18057, +# 351, +# 340, +# 13, +# 314, +# 6810, +# 19772, +# 2024, +# 8347, +# 287, +# 262, +# 2166, +# 2119, +# 290, +# 399, +# 8535, +# 373, +# 287, +# 3294, +# 11685, +# 286, +# 8242, +# 290, +# 607, +# 7374, +# 15224, +# 13, +# 383, +# 4894, +# 373, +# 572, +# 13, +# 383, +# 2156, +# 373, +# 3863, +# 2319, +# 37, +# 532, +# 340, +# 373, +# 1542, +# 2354, +# 13, +# 220, +# 198, +# 198, +# 40, +# 1718, +# 399, +# 8535, +# 284, +# 616, +# 1097, +# 11, +# 290, +# 1444, +# 16679, +# 329, +# 281, +# 22536, +# 355, +# 314, +# 373, +# 12008, +# 25737, +# 373, +# 14904, +# 2752, +# 13, +# 220, +# 314, +# 1422, +# 470, +# 765, +# 284, +# 10436, +# 290, +# 22601, +# 503, +# 399, +# 8535, +# 523, +# 314, +# 9658, +# 287, +# 262, +# 1097, +# 290, +# 1309, +# 607, +# 711, +# 319, +# 616, +# 3072, +# 1566, +# 262, +# 22536, +# 5284, +# 13, +# 3226, +# 1781, +# 1644, +# 290, +# 32084, +# 3751, +# 510, +# 355, +# 880, +# 13, +# 314, +# 4893, +# 262, +# 3074, +# 290, +# 780, +# 399, +# 8535, +# 338, +# 9955, +# 318, +# 503, +# 286, +# 3240, +# 1762, +# 11, +# 34020, +# 14, +# 44, +# 4146, +# 547, +# 1444, +# 13, +# 1649, +# 484, +# 5284, +# 484, +# 547, +# 5897, +# 290, +# 4692, +# 11, +# 1422, +# 470, +# 1107, +# 1561, +# 11, +# 1718, +# 399, +# 8535, +# 11, +# 290, +# 1297, +# 502, +# 284, +# 467, +# 1363, +# 13, +# 220, +# 198, +# 198, +# 2025, +# 1711, +# 1568, +# 314, +# 651, +# 1363, +# 290, +# 41668, +# 32682, +# 7893, +# 502, +# 644, +# 314, +# 1053, +# 1760, +# 13, +# 314, +# 4893, +# 2279, +# 284, +# 683, +# 290, +# 477, +# 339, +# 550, +# 373, +# 8993, +# 329, +# 502, +# 13, +# 18626, +# 262, +# 2104, +# 1641, +# 1541, +# 2993, +# 290, +# 547, +# 28674, +# 379, +# 502, +# 329, +# 644, +# 314, +# 550, +# 1760, +# 13, +# 18626, +# 314, +# 373, +# 366, +# 448, +# 286, +# 1627, +# 290, +# 8531, +# 1, +# 780, +# 314, +# 1444, +# 16679, +# 878, +# 4379, +# 611, +# 673, +# 373, +# 1682, +# 31245, +# 6, +# 278, +# 780, +# 340, +# 2900, +# 503, +# 673, +# 373, +# 655, +# 47583, +# 503, +# 422, +# 262, +# 16914, +# 13, +# 775, +# 8350, +# 329, +# 2250, +# 290, +# 314, +# 1364, +# 290, +# 3377, +# 262, +# 1755, +# 379, +# 616, +# 1266, +# 1545, +# 338, +# 2156, +# 290, +# 16896, +# 477, +# 1755, +# 13, +# 314, +# 3521, +# 470, +# 5412, +# 340, +# 477, +# 523, +# 314, +# 2900, +# 616, +# 3072, +# 572, +# 290, +# 3088, +# 284, +# 8960, +# 290, +# 655, +# 9480, +# 866, +# 13, +# 2011, +# 1266, +# 1545, +# 373, +# 510, +# 477, +# 1755, +# 351, +# 502, +# 11, +# 5149, +# 502, +# 314, +# 750, +# 2147, +# 2642, +# 11, +# 290, +# 314, +# 1101, +# 8788, +# 13, +# 220, +# 198, +# 198, +# 40, +# 1210, +# 616, +# 3072, +# 319, +# 290, +# 314, +# 550, +# 6135, +# 13399, +# 14, +# 37348, +# 1095, +# 13, +# 31515, +# 11, +# 34020, +# 11, +# 47551, +# 11, +# 41668, +# 32682, +# 11, +# 290, +# 511, +# 7083, +# 1641, +# 1866, +# 24630, +# 502, +# 13, +# 1119, +# 389, +# 2282, +# 314, +# 20484, +# 607, +# 1204, +# 11, +# 20484, +# 399, +# 8535, +# 338, +# 1204, +# 11, +# 925, +# 2279, +# 517, +# 8253, +# 621, +# 340, +# 2622, +# 284, +# 307, +# 11, +# 925, +# 340, +# 1171, +# 618, +# 340, +# 373, +# 257, +# 366, +# 17989, +# 14669, +# 1600, +# 290, +# 20484, +# 25737, +# 338, +# 8395, +# 286, +# 1683, +# 1972, +# 20750, +# 393, +# 1719, +# 10804, +# 286, +# 607, +# 1200, +# 757, +# 11, +# 4844, +# 286, +# 606, +# 1683, +# 765, +# 284, +# 766, +# 502, +# 757, +# 290, +# 314, +# 481, +# 1239, +# 766, +# 616, +# 41803, +# 757, +# 11, +# 290, +# 484, +# 765, +# 502, +# 284, +# 1414, +# 329, +# 25737, +# 338, +# 7356, +# 6314, +# 290, +# 20889, +# 502, +# 329, +# 262, +# 32084, +# 1339, +# 290, +# 7016, +# 12616, +# 13, +# 198, +# 198, +# 40, +# 716, +# 635, +# 783, +# 2060, +# 13, +# 1406, +# 319, +# 1353, +# 286, +# 6078, +# 616, +# 1266, +# 1545, +# 286, +# 838, +# 812, +# 357, +# 69, +# 666, +# 32682, +# 828, +# 314, +# 481, +# 4425, +# 616, +# 7962, +# 314, +# 550, +# 351, +# 683, +# 11, +# 644, +# 314, +# 3177, +# 616, +# 1641, +# 11, +# 290, +# 616, +# 399, +# 8535, +# 13, +# 198, +# 198, +# 40, +# 4988, +# 1254, +# 12361, +# 13, +# 314, +# 423, +# 12361, +# 9751, +# 284, +# 262, +# 966, +# 810, +# 314, +# 1101, +# 7960, +# 2130, +# 318, +# 1016, +# 284, +# 1282, +# 651, +# 366, +# 260, +# 18674, +# 1, +# 319, +# 502, +# 329, +# 644, +# 314, +# 750, +# 13, +# 314, +# 460, +# 470, +# 4483, +# 13, +# 314, +# 423, +# 2626, +# 767, +# 8059, +# 422, +# 340, +# 13, +# 314, +# 1101, +# 407, +# 11029, +# 329, +# 7510, +# 13, +# 314, +# 423, +# 11668, +# 739, +# 616, +# 2951, +# 13, +# 314, +# 1053, +# 550, +# 807, +# 50082, +# 12, +# 12545, +# 287, +# 734, +# 2745, +# 13, +# 1629, +# 717, +# 314, +# 2936, +# 523, +# 6563, +# 287, +# 616, +# 2551, +# 475, +# 355, +# 262, +# 1528, +# 467, +# 416, +# 314, +# 1101, +# 3612, +# 3863, +# 484, +# 547, +# 826, +# 290, +# 314, +# 815, +# 423, +# 10667, +# 319, +# 607, +# 878, +# 4585, +# 16679, +# 290, +# 852, +# 5306, +# 3019, +# 992, +# 13, +# 314, +# 836, +# 470, +# 1337, +# 546, +# 25737, +# 7471, +# 11, +# 475, +# 314, +# 750, +# 18344, +# 257, +# 642, +# 614, +# 1468, +# 1200, +# 1497, +# 422, +# 607, +# 3397, +# 290, +# 314, +# 1254, +# 12361, +# 546, +# 340, +# 13, +# 314, +# 760, +# 2130, +# 287, +# 262, +# 1641, +# 481, +# 1011, +# 607, +# 287, +# 11, +# 475, +# 340, +# 338, +# 1239, +# 588, +# 852, +# 351, +# 534, +# 3397, +# 13, +# 1375, +# 481, +# 1663, +# 510, +# 20315, +# 278, +# 502, +# 329, +# 340, +# 290, +# 477, +# 314, +# 1053, +# 1683, +# 1760, +# 318, +# 1842, +# 607, +# 355, +# 616, +# 898, +# 13, +# 220, +# 198, +# 198, +# 22367, +# 11, +# 317, +# 2043, +# 32, +# 30, +# 4222, +# 1037, +# 502, +# 13, +# 383, +# 14934, +# 318, +# 6600, +# 502, +# 6776, +# 13, +# 220, +# 198, +# 24361, +# 25, +# 1148, +# 428, +# 2642, +# 30, +# 198, +# 33706, +# 25, +# 3763, +# ], +# ] + + +# def test_unit_test_text_completion_object(): +# openai_object = { +# "id": "cmpl-99y7B2svVoRWe1xd7UFRmeGjZrFSh", +# "choices": [ +# { +# "finish_reason": "length", +# "index": 0, +# "logprobs": { +# "text_offset": [101], +# "token_logprobs": [-0.00023488728], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00023488728, +# "1": -8.375235, +# "zero": -14.101797, +# "__": -14.554922, +# "00": -14.98461, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 1, +# "logprobs": { +# "text_offset": [116], +# "token_logprobs": [-0.013745008], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.013745008, +# "1": -4.294995, +# "00": -12.287183, +# "2": -12.771558, +# "3": -14.013745, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 2, +# "logprobs": { +# "text_offset": [108], +# "token_logprobs": [-3.655073e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -3.655073e-5, +# "1": -10.656286, +# "__": -11.789099, +# "false": -12.984411, +# "00": -14.039099, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 3, +# "logprobs": { +# "text_offset": [106], +# "token_logprobs": [-0.1345946], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.1345946, +# "1": -2.0720947, +# "2": -12.798657, +# "false": -13.970532, +# "00": -14.27522, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 4, +# "logprobs": { +# "text_offset": [95], +# "token_logprobs": [-0.10491652], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.10491652, +# "1": -2.3236666, +# "2": -7.0111666, +# "3": -7.987729, +# "4": -9.050229, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 5, +# "logprobs": { +# "text_offset": [121], +# "token_logprobs": [-0.00026300468], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00026300468, +# "1": -8.250263, +# "zero": -14.976826, +# " ": -15.461201, +# "000": -15.773701, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 6, +# "logprobs": { +# "text_offset": [146], +# "token_logprobs": [-5.085517e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -5.085517e-5, +# "1": -9.937551, +# "000": -13.929738, +# "__": -14.968801, +# "zero": -15.070363, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 7, +# "logprobs": { +# "text_offset": [100], +# "token_logprobs": [-0.13875218], +# "tokens": ["1"], +# "top_logprobs": [ +# { +# "1": -0.13875218, +# "0": -2.0450022, +# "2": -9.7559395, +# "3": -11.1465645, +# "4": -11.5528145, +# } +# ], +# }, +# "text": "1", +# }, +# { +# "finish_reason": "length", +# "index": 8, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0005573204], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0005573204, +# "1": -7.6099324, +# "3": -10.070869, +# "2": -11.617744, +# " ": -12.859932, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 9, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0018747397], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0018747397, +# "1": -6.29875, +# "3": -11.2675, +# "4": -11.634687, +# "2": -11.822187, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 10, +# "logprobs": { +# "text_offset": [110], +# "token_logprobs": [-0.003476763], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.003476763, +# "1": -5.6909766, +# "__": -10.526915, +# "None": -10.925352, +# "False": -11.88629, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 11, +# "logprobs": { +# "text_offset": [106], +# "token_logprobs": [-0.00032962486], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00032962486, +# "1": -8.03158, +# "__": -13.445642, +# "2": -13.828455, +# "zero": -15.453455, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 12, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-9.984788e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -9.984788e-5, +# "1": -9.21885, +# " ": -14.836038, +# "zero": -16.265724, +# "00": -16.578224, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 13, +# "logprobs": { +# "text_offset": [106], +# "token_logprobs": [-0.0010039895], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0010039895, +# "1": -6.907254, +# "2": -13.743192, +# "false": -15.227567, +# "3": -15.297879, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 14, +# "logprobs": { +# "text_offset": [106], +# "token_logprobs": [-0.0005681643], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0005681643, +# "1": -7.5005684, +# "__": -11.836506, +# "zero": -13.242756, +# "file": -13.445881, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 15, +# "logprobs": { +# "text_offset": [146], +# "token_logprobs": [-3.9769227e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -3.9769227e-5, +# "1": -10.15629, +# "000": -15.078165, +# "00": -15.664103, +# "zero": -16.015665, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 16, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0006509595], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0006509595, +# "1": -7.344401, +# "2": -13.352214, +# " ": -13.852214, +# "3": -14.680339, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 17, +# "logprobs": { +# "text_offset": [103], +# "token_logprobs": [-0.0093299495], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0093299495, +# "1": -4.681205, +# "2": -11.173392, +# "3": -13.439017, +# "00": -14.673392, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 18, +# "logprobs": { +# "text_offset": [130], +# "token_logprobs": [-0.00024382756], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00024382756, +# "1": -8.328369, +# " ": -13.640869, +# "zero": -14.859619, +# "null": -16.51587, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 19, +# "logprobs": { +# "text_offset": [107], +# "token_logprobs": [-0.0006452414], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0006452414, +# "1": -7.36002, +# "00": -12.328771, +# "000": -12.961583, +# "2": -14.211583, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 20, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0012751155], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0012751155, +# "1": -6.67315, +# "__": -11.970025, +# "<|endoftext|>": -14.907525, +# "3": -14.930963, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 21, +# "logprobs": { +# "text_offset": [107], +# "token_logprobs": [-7.1954215e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -7.1954215e-5, +# "1": -9.640697, +# "00": -13.500072, +# "000": -13.523509, +# "__": -13.945384, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 22, +# "logprobs": { +# "text_offset": [108], +# "token_logprobs": [-0.0032367748], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0032367748, +# "1": -5.737612, +# "<|endoftext|>": -13.940737, +# "2": -14.167299, +# "00": -14.292299, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 23, +# "logprobs": { +# "text_offset": [117], +# "token_logprobs": [-0.00018673266], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00018673266, +# "1": -8.593937, +# "zero": -15.179874, +# "null": -15.515812, +# "None": -15.851749, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 24, +# "logprobs": { +# "text_offset": [104], +# "token_logprobs": [-0.0010223285], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0010223285, +# "1": -6.8916473, +# "__": -13.05571, +# "00": -14.071335, +# "zero": -14.235397, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 25, +# "logprobs": { +# "text_offset": [108], +# "token_logprobs": [-0.0038979414], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0038979414, +# "1": -5.550773, +# "2": -13.160148, +# "00": -14.144523, +# "3": -14.41796, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 26, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.00074721366], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00074721366, +# "1": -7.219497, +# "3": -11.430435, +# "2": -13.367935, +# " ": -13.735123, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 27, +# "logprobs": { +# "text_offset": [146], +# "token_logprobs": [-8.566264e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -8.566264e-5, +# "1": -9.375086, +# "000": -15.359461, +# "__": -15.671961, +# "00": -15.679773, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 28, +# "logprobs": { +# "text_offset": [119], +# "token_logprobs": [-0.000274683], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.000274683, +# "1": -8.2034, +# "00": -14.898712, +# "2": -15.633087, +# "__": -16.844025, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 29, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.014869375], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.014869375, +# "1": -4.217994, +# "2": -11.63987, +# "3": -11.944557, +# "5": -12.26487, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 30, +# "logprobs": { +# "text_offset": [110], +# "token_logprobs": [-0.010907865], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.010907865, +# "1": -4.5265326, +# "2": -11.440596, +# "<|endoftext|>": -12.456221, +# "file": -13.049971, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 31, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.00070528337], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00070528337, +# "1": -7.2663302, +# "6": -13.141331, +# "2": -13.797581, +# "3": -13.836643, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 32, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0004983439], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0004983439, +# "1": -7.6098733, +# "3": -14.211436, +# "2": -14.336436, +# " ": -15.117686, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 33, +# "logprobs": { +# "text_offset": [110], +# "token_logprobs": [-3.6908343e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -3.6908343e-5, +# "1": -10.250037, +# "00": -14.2266, +# "__": -14.7266, +# "000": -16.164099, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 34, +# "logprobs": { +# "text_offset": [104], +# "token_logprobs": [-0.003917157], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.003917157, +# "1": -5.550792, +# "2": -11.355479, +# "00": -12.777354, +# "3": -13.652354, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 35, +# "logprobs": { +# "text_offset": [146], +# "token_logprobs": [-5.0139948e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -5.0139948e-5, +# "1": -9.921926, +# "000": -14.851613, +# "00": -15.414113, +# "zero": -15.687551, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 36, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0005143099], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0005143099, +# "1": -7.5786395, +# " ": -14.406764, +# "00": -14.570827, +# "999": -14.633327, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 37, +# "logprobs": { +# "text_offset": [103], +# "token_logprobs": [-0.00013691289], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00013691289, +# "1": -8.968887, +# "__": -12.547012, +# "zero": -13.57045, +# "00": -13.8517, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 38, +# "logprobs": { +# "text_offset": [103], +# "token_logprobs": [-0.00032569113], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00032569113, +# "1": -8.047201, +# "2": -13.570639, +# "zero": -14.023764, +# "false": -14.726889, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 39, +# "logprobs": { +# "text_offset": [113], +# "token_logprobs": [-3.7146747e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -3.7146747e-5, +# "1": -10.203162, +# "zero": -18.437536, +# "2": -20.117224, +# " zero": -20.210974, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 40, +# "logprobs": { +# "text_offset": [110], +# "token_logprobs": [-7.4695905e-5], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -7.4695905e-5, +# "1": -9.515699, +# "00": -14.836012, +# "__": -16.093824, +# "file": -16.468824, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 41, +# "logprobs": { +# "text_offset": [111], +# "token_logprobs": [-0.02289473], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.02289473, +# "1": -3.7885196, +# "2": -12.499457, +# "3": -14.546332, +# "00": -15.66352, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 42, +# "logprobs": { +# "text_offset": [108], +# "token_logprobs": [-0.0011367622], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0011367622, +# "1": -6.782387, +# "2": -13.493324, +# "00": -15.071449, +# "zero": -15.727699, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 43, +# "logprobs": { +# "text_offset": [115], +# "token_logprobs": [-0.0006384541], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0006384541, +# "1": -7.3600135, +# "00": -14.0397005, +# "2": -14.4303255, +# "000": -15.563138, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 44, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0007382771], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0007382771, +# "1": -7.219488, +# "4": -13.516363, +# "2": -13.555426, +# "3": -13.602301, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 45, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0014242834], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0014242834, +# "1": -6.5639243, +# "2": -12.493611, +# "__": -12.712361, +# "3": -12.884236, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 46, +# "logprobs": { +# "text_offset": [111], +# "token_logprobs": [-0.00017088225], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00017088225, +# "1": -8.765796, +# "zero": -12.695483, +# "__": -12.804858, +# "time": -12.882983, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 47, +# "logprobs": { +# "text_offset": [146], +# "token_logprobs": [-0.000107238506], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.000107238506, +# "1": -9.171982, +# "000": -13.648544, +# "__": -14.531357, +# "zero": -14.586044, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 48, +# "logprobs": { +# "text_offset": [106], +# "token_logprobs": [-0.0028172398], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0028172398, +# "1": -5.877817, +# "00": -12.16688, +# "2": -12.487192, +# "000": -14.182505, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 49, +# "logprobs": { +# "text_offset": [104], +# "token_logprobs": [-0.00043460296], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.00043460296, +# "1": -7.7816844, +# "00": -13.570747, +# "2": -13.60981, +# "__": -13.789497, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 50, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0046973573], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0046973573, +# "1": -5.3640723, +# "null": -14.082823, +# " ": -14.707823, +# "2": -14.746885, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 51, +# "logprobs": { +# "text_offset": [100], +# "token_logprobs": [-0.2487161], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.2487161, +# "1": -1.5143411, +# "2": -9.037779, +# "3": -10.100279, +# "4": -10.756529, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 52, +# "logprobs": { +# "text_offset": [108], +# "token_logprobs": [-0.0011751055], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0011751055, +# "1": -6.751175, +# " ": -13.73555, +# "2": -15.258987, +# "3": -15.399612, +# } +# ], +# }, +# "text": "0", +# }, +# { +# "finish_reason": "length", +# "index": 53, +# "logprobs": { +# "text_offset": [143], +# "token_logprobs": [-0.0012339224], +# "tokens": ["0"], +# "top_logprobs": [ +# { +# "0": -0.0012339224, +# "1": -6.719984, +# "6": -11.430922, +# "3": -12.165297, +# "2": -12.696547, +# } +# ], +# }, +# "text": "0", +# }, +# ], +# "created": 1712163061, +# "model": "ft:babbage-002:ai-r-d-zapai:v3-fields-used:84jb9rtr", +# "object": "text_completion", +# "system_fingerprint": None, +# "usage": {"completion_tokens": 54, "prompt_tokens": 1877, "total_tokens": 1931}, +# } + +# text_completion_obj = TextCompletionResponse(**openai_object) + +# ## WRITE UNIT TESTS FOR TEXT_COMPLETION_OBJECT +# assert text_completion_obj.id == "cmpl-99y7B2svVoRWe1xd7UFRmeGjZrFSh" +# assert text_completion_obj.object == "text_completion" +# assert text_completion_obj.created == 1712163061 +# assert ( +# text_completion_obj.model +# == "ft:babbage-002:ai-r-d-zapai:v3-fields-used:84jb9rtr" +# ) +# assert text_completion_obj.system_fingerprint == None +# assert len(text_completion_obj.choices) == len(openai_object["choices"]) + +# # TEST FIRST CHOICE # +# first_text_completion_obj = text_completion_obj.choices[0] +# assert first_text_completion_obj.index == 0 +# assert first_text_completion_obj.logprobs.text_offset == [101] +# assert first_text_completion_obj.logprobs.tokens == ["0"] +# assert first_text_completion_obj.logprobs.token_logprobs == [-0.00023488728] +# assert len(first_text_completion_obj.logprobs.top_logprobs) == len( +# openai_object["choices"][0]["logprobs"]["top_logprobs"] +# ) +# assert first_text_completion_obj.text == "0" +# assert first_text_completion_obj.finish_reason == "length" + +# # TEST SECOND CHOICE # +# second_text_completion_obj = text_completion_obj.choices[1] +# assert second_text_completion_obj.index == 1 +# assert second_text_completion_obj.logprobs.text_offset == [116] +# assert second_text_completion_obj.logprobs.tokens == ["0"] +# assert second_text_completion_obj.logprobs.token_logprobs == [-0.013745008] +# assert len(second_text_completion_obj.logprobs.top_logprobs) == len( +# openai_object["choices"][0]["logprobs"]["top_logprobs"] +# ) +# assert second_text_completion_obj.text == "0" +# assert second_text_completion_obj.finish_reason == "length" + +# # TEST LAST CHOICE # +# last_text_completion_obj = text_completion_obj.choices[-1] +# assert last_text_completion_obj.index == 53 +# assert last_text_completion_obj.logprobs.text_offset == [143] +# assert last_text_completion_obj.logprobs.tokens == ["0"] +# assert last_text_completion_obj.logprobs.token_logprobs == [-0.0012339224] +# assert len(last_text_completion_obj.logprobs.top_logprobs) == len( +# openai_object["choices"][0]["logprobs"]["top_logprobs"] +# ) +# assert last_text_completion_obj.text == "0" +# assert last_text_completion_obj.finish_reason == "length" + +# assert text_completion_obj.usage.completion_tokens == 54 +# assert text_completion_obj.usage.prompt_tokens == 1877 +# assert text_completion_obj.usage.total_tokens == 1931 + + +# def test_completion_openai_prompt(): +# try: +# print("\n text 003 test\n") +# response = text_completion( +# model="gpt-3.5-turbo-instruct", +# prompt=["What's the weather in SF?", "How is Manchester?"], +# ) +# print(response) +# assert len(response.choices) == 2 +# response_str = response["choices"][0]["text"] +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_openai_prompt() + + +# def test_completion_openai_engine_and_model(): +# try: +# print("\n text 003 test\n") +# litellm.set_verbose = True +# response = text_completion( +# model="gpt-3.5-turbo-instruct", +# engine="anything", +# prompt="What's the weather in SF?", +# max_tokens=5, +# ) +# print(response) +# response_str = response["choices"][0]["text"] +# # print(response.choices[0]) +# # print(response.choices[0].text) +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_openai_engine_and_model() + + +# def test_completion_openai_engine(): +# try: +# print("\n text 003 test\n") +# litellm.set_verbose = True +# response = text_completion( +# engine="gpt-3.5-turbo-instruct", +# prompt="What's the weather in SF?", +# max_tokens=5, +# ) +# print(response) +# response_str = response["choices"][0]["text"] +# # print(response.choices[0]) +# # print(response.choices[0].text) +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_openai_engine() + + +# def test_completion_chatgpt_prompt(): +# try: +# print("\n gpt3.5 test\n") +# response = text_completion( +# model="gpt-3.5-turbo", prompt="What's the weather in SF?" +# ) +# print(response) +# response_str = response["choices"][0]["text"] +# print("\n", response.choices) +# print("\n", response.choices[0]) +# # print(response.choices[0].text) +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_chatgpt_prompt() + + +# def test_text_completion_basic(): +# try: +# print("\n test 003 with logprobs \n") +# litellm.set_verbose = False +# response = text_completion( +# model="gpt-3.5-turbo-instruct", +# prompt="good morning", +# max_tokens=10, +# logprobs=10, +# ) +# print(response) +# print(response.choices) +# print(response.choices[0]) +# # print(response.choices[0].text) +# response_str = response["choices"][0]["text"] +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_text_completion_basic() + + +# def test_completion_text_003_prompt_array(): +# try: +# litellm.set_verbose = False +# response = text_completion( +# model="gpt-3.5-turbo-instruct", +# prompt=token_prompt, # token prompt is a 2d list +# ) +# print("\n\n response") + +# print(response) +# # response_str = response["choices"][0]["text"] +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_text_003_prompt_array() + + +# # not including this in our ci cd pipeline, since we don't want to fail tests due to an unstable replit +# # def test_text_completion_with_proxy(): +# # try: +# # litellm.set_verbose=True +# # response = text_completion( +# # model="facebook/opt-125m", +# # prompt='Write a tagline for a traditional bavarian tavern', +# # api_base="https://openai-proxy.berriai.repl.co/v1", +# # custom_llm_provider="openai", +# # temperature=0, +# # max_tokens=10, +# # ) +# # print("\n\n response") + +# # print(response) +# # except Exception as e: +# # pytest.fail(f"Error occurred: {e}") +# # test_text_completion_with_proxy() + + +# ##### hugging face tests +# def test_completion_hf_prompt_array(): +# try: +# litellm.set_verbose = True +# print("\n testing hf mistral\n") +# response = text_completion( +# model="huggingface/mistralai/Mistral-7B-v0.1", +# prompt=token_prompt, # token prompt is a 2d list, +# max_tokens=0, +# temperature=0.0, +# # echo=True, # hugging face inference api is currently raising errors for this, looks like they have a regression on their side +# ) +# print("\n\n response") + +# print(response) +# print(response.choices) +# assert len(response.choices) == 2 +# # response_str = response["choices"][0]["text"] +# except Exception as e: +# print(str(e)) +# if "is currently loading" in str(e): +# return +# if "Service Unavailable" in str(e): +# return +# pytest.fail(f"Error occurred: {e}") + + +# # test_completion_hf_prompt_array() + + +# def test_text_completion_stream(): +# try: +# response = text_completion( +# model="huggingface/mistralai/Mistral-7B-v0.1", +# prompt="good morning", +# stream=True, +# max_tokens=10, +# ) +# for chunk in response: +# print(f"chunk: {chunk}") +# except Exception as e: +# pytest.fail(f"GOT exception for HF In streaming{e}") + + +# # test_text_completion_stream() + +# # async def test_text_completion_async_stream(): +# # try: +# # response = await atext_completion( +# # model="text-completion-openai/gpt-3.5-turbo-instruct", +# # prompt="good morning", +# # stream=True, +# # max_tokens=10, +# # ) +# # async for chunk in response: +# # print(f"chunk: {chunk}") +# # except Exception as e: +# # pytest.fail(f"GOT exception for HF In streaming{e}") + +# # asyncio.run(test_text_completion_async_stream()) + + +# def test_async_text_completion(): +# litellm.set_verbose = True +# print("test_async_text_completion") + +# async def test_get_response(): +# try: +# response = await litellm.atext_completion( +# model="gpt-3.5-turbo-instruct", +# prompt="good morning", +# stream=False, +# max_tokens=10, +# ) +# print(f"response: {response}") +# except litellm.Timeout as e: +# print(e) +# except Exception as e: +# print(e) + +# asyncio.run(test_get_response()) + + +# @pytest.mark.skip(reason="Skip flaky tgai test") +# def test_async_text_completion_together_ai(): +# litellm.set_verbose = True +# print("test_async_text_completion") + +# async def test_get_response(): +# try: +# response = await litellm.atext_completion( +# model="together_ai/mistralai/Mixtral-8x7B-Instruct-v0.1", +# prompt="good morning", +# max_tokens=10, +# ) +# print(f"response: {response}") +# except litellm.Timeout as e: +# print(e) +# except Exception as e: +# pytest.fail("An unexpected error occurred") + +# asyncio.run(test_get_response()) + + +# # test_async_text_completion() + + +# def test_async_text_completion_stream(): +# # tests atext_completion + streaming - assert only one finish reason sent +# litellm.set_verbose = False +# print("test_async_text_completion with stream") + +# async def test_get_response(): +# try: +# response = await litellm.atext_completion( +# model="gpt-3.5-turbo-instruct", +# prompt="good morning", +# stream=True, +# ) +# print(f"response: {response}") + +# num_finish_reason = 0 +# async for chunk in response: +# print(chunk) +# if chunk["choices"][0].get("finish_reason") is not None: +# num_finish_reason += 1 +# print("finish_reason", chunk["choices"][0].get("finish_reason")) + +# assert ( +# num_finish_reason == 1 +# ), f"expected only one finish reason. Got {num_finish_reason}" +# except Exception as e: +# pytest.fail(f"GOT exception for gpt-3.5 instruct In streaming{e}") + +# asyncio.run(test_get_response()) + + +# # test_async_text_completion_stream() + + +# @pytest.mark.asyncio +# async def test_async_text_completion_chat_model_stream(): +# try: +# response = await litellm.atext_completion( +# model="gpt-3.5-turbo", +# prompt="good morning", +# stream=True, +# max_tokens=10, +# ) + +# num_finish_reason = 0 +# chunks = [] +# async for chunk in response: +# print(chunk) +# chunks.append(chunk) +# if chunk["choices"][0].get("finish_reason") is not None: +# num_finish_reason += 1 + +# assert ( +# num_finish_reason == 1 +# ), f"expected only one finish reason. Got {num_finish_reason}" +# response_obj = litellm.stream_chunk_builder(chunks=chunks) +# cost = litellm.completion_cost(completion_response=response_obj) +# assert cost > 0 +# except Exception as e: +# pytest.fail(f"GOT exception for gpt-3.5 In streaming{e}") + + +# # asyncio.run(test_async_text_completion_chat_model_stream()) + + +# @pytest.mark.asyncio +# async def test_completion_codestral_fim_api(): +# try: +# litellm.set_verbose = True +# import logging + +# from litellm._logging import verbose_logger + +# verbose_logger.setLevel(level=logging.DEBUG) +# response = await litellm.atext_completion( +# model="text-completion-codestral/codestral-2405", +# prompt="def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():", +# suffix="return True", +# temperature=0, +# top_p=1, +# max_tokens=10, +# min_tokens=10, +# seed=10, +# stop=["return"], +# ) +# # Add any assertions here to check the response +# print(response) + +# assert response.choices[0].text is not None +# assert len(response.choices[0].text) > 0 + +# # cost = litellm.completion_cost(completion_response=response) +# # print("cost to make mistral completion=", cost) +# # assert cost > 0.0 +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# @pytest.mark.asyncio +# async def test_completion_codestral_fim_api_stream(): +# try: +# import logging + +# from litellm._logging import verbose_logger + +# litellm.set_verbose = False + +# # verbose_logger.setLevel(level=logging.DEBUG) +# response = await litellm.atext_completion( +# model="text-completion-codestral/codestral-2405", +# prompt="def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():", +# suffix="return True", +# temperature=0, +# top_p=1, +# stream=True, +# seed=10, +# stop=["return"], +# ) + +# full_response = "" +# # Add any assertions here to check the response +# async for chunk in response: +# print(chunk) +# full_response += chunk.get("choices")[0].get("text") or "" + +# print("full_response", full_response) + +# assert len(full_response) > 2 # we at least have a few chars in response :) + +# # cost = litellm.completion_cost(completion_response=response) +# # print("cost to make mistral completion=", cost) +# # assert cost > 0.0 +# except Exception as e: +# pytest.fail(f"Error occurred: {e}") + + +# def mock_post(*args, **kwargs): +# mock_response = MagicMock() +# mock_response.status_code = 200 +# mock_response.headers = {"Content-Type": "application/json"} +# mock_response.model_dump.return_value = { +# "id": "cmpl-7a59383dd4234092b9e5d652a7ab8143", +# "object": "text_completion", +# "created": 1718824735, +# "model": "Sao10K/L3-70B-Euryale-v2.1", +# "choices": [ +# { +# "index": 0, +# "text": ") might be faster than then answering, and the added time it takes for the", +# "logprobs": None, +# "finish_reason": "length", +# "stop_reason": None, +# } +# ], +# "usage": {"prompt_tokens": 2, "total_tokens": 18, "completion_tokens": 16}, +# } +# return mock_response + + +# def test_completion_vllm(): +# """ +# Asserts a text completion call for vllm actually goes to the text completion endpoint +# """ +# from openai import OpenAI + +# client = OpenAI(api_key="my-fake-key") + +# with patch.object(client.completions, "create", side_effect=mock_post) as mock_call: +# response = text_completion( +# model="openai/gemini-1.5-flash", prompt="ping", client=client, hello="world" +# ) +# print(response) + +# assert response.usage.prompt_tokens == 2 + +# mock_call.assert_called_once() + +# assert "hello" in mock_call.call_args.kwargs["extra_body"]