|
import sys, os |
|
import traceback |
|
|
|
sys.path.insert( |
|
0, os.path.abspath("../..") |
|
) |
|
import time |
|
import litellm |
|
from litellm import get_max_tokens, model_cost, open_ai_chat_completion_models |
|
import pytest |
|
|
|
def test_get_gpt3_tokens(): |
|
max_tokens = get_max_tokens("gpt-3.5-turbo") |
|
print(max_tokens) |
|
assert max_tokens==4097 |
|
|
|
test_get_gpt3_tokens() |
|
|
|
def test_get_palm_tokens(): |
|
|
|
max_tokens = get_max_tokens("palm/chat-bison") |
|
assert max_tokens == 4096 |
|
print(max_tokens) |
|
test_get_palm_tokens() |
|
|
|
def test_zephyr_hf_tokens(): |
|
max_tokens = get_max_tokens("huggingface/HuggingFaceH4/zephyr-7b-beta") |
|
print(max_tokens) |
|
assert max_tokens == 32768 |
|
|
|
test_zephyr_hf_tokens() |
|
|
|
def test_cost_ft_gpt_35(): |
|
try: |
|
|
|
|
|
from litellm import ModelResponse, Choices, Message |
|
from litellm.utils import Usage |
|
resp = ModelResponse( |
|
id='chatcmpl-e41836bb-bb8b-4df2-8e70-8f3e160155ac', |
|
choices=[Choices(finish_reason=None, index=0, |
|
message=Message(content=' Sure! Here is a short poem about the sky:\n\nA canvas of blue, a', role='assistant'))], |
|
created=1700775391, |
|
model='ft:gpt-3.5-turbo:my-org:custom_suffix:id', |
|
object='chat.completion', system_fingerprint=None, |
|
usage=Usage(prompt_tokens=21, completion_tokens=17, total_tokens=38) |
|
) |
|
|
|
cost = litellm.completion_cost(completion_response=resp) |
|
print("\n Calculated Cost for ft:gpt-3.5", cost) |
|
input_cost = model_cost["ft:gpt-3.5-turbo"]["input_cost_per_token"] |
|
output_cost = model_cost["ft:gpt-3.5-turbo"]["output_cost_per_token"] |
|
print(input_cost, output_cost) |
|
expected_cost = (input_cost*resp.usage.prompt_tokens) + (output_cost*resp.usage.completion_tokens) |
|
print("\n Excpected cost", expected_cost) |
|
assert cost == expected_cost |
|
except Exception as e: |
|
pytest.fail(f"Cost Calc failed for ft:gpt-3.5. Expected {expected_cost}, Calculated cost {cost}") |
|
test_cost_ft_gpt_35() |
|
|
|
def test_cost_azure_gpt_35(): |
|
try: |
|
|
|
|
|
from litellm import ModelResponse, Choices, Message |
|
from litellm.utils import Usage |
|
resp = ModelResponse( |
|
id='chatcmpl-e41836bb-bb8b-4df2-8e70-8f3e160155ac', |
|
choices=[Choices(finish_reason=None, index=0, |
|
message=Message(content=' Sure! Here is a short poem about the sky:\n\nA canvas of blue, a', role='assistant'))], |
|
model='azure/gpt-35-turbo', |
|
usage=Usage(prompt_tokens=21, completion_tokens=17, total_tokens=38) |
|
) |
|
|
|
cost = litellm.completion_cost(completion_response=resp, model="azure/gpt-3.5-turbo") |
|
print("\n Calculated Cost for azure/gpt-3.5-turbo", cost) |
|
input_cost = model_cost["azure/gpt-3.5-turbo"]["input_cost_per_token"] |
|
output_cost = model_cost["azure/gpt-3.5-turbo"]["output_cost_per_token"] |
|
expected_cost = (input_cost*resp.usage.prompt_tokens) + (output_cost*resp.usage.completion_tokens) |
|
print("\n Excpected cost", expected_cost) |
|
assert cost == expected_cost |
|
except Exception as e: |
|
pytest.fail(f"Cost Calc failed for azure/gpt-3.5-turbo. Expected {expected_cost}, Calculated cost {cost}") |
|
test_cost_azure_gpt_35() |
|
|
|
|