Spaces:
Sleeping
Sleeping
#### What this tests #### | |
# This tests chaos monkeys - if random parts of the system are broken / things aren't sent correctly - what happens. | |
# Expect to add more edge cases to this over time. | |
import sys, os | |
import traceback | |
import pytest | |
sys.path.insert( | |
0, os.path.abspath("../..") | |
) # Adds the parent directory to the system path | |
import litellm | |
from litellm import embedding, completion | |
from litellm.utils import Message | |
# litellm.set_verbose = True | |
user_message = "Hello, how are you?" | |
messages = [{"content": user_message, "role": "user"}] | |
model_val = None | |
def test_completion_with_no_model(): | |
# test on empty | |
with pytest.raises(ValueError): | |
response = completion(messages=messages) | |
def test_completion_with_empty_model(): | |
# test on empty | |
try: | |
response = completion(model=model_val, messages=messages) | |
except Exception as e: | |
print(f"error occurred: {e}") | |
pass | |
# def test_completion_catch_nlp_exception(): | |
# TEMP commented out NLP cloud API is unstable | |
# try: | |
# response = completion(model="dolphin", messages=messages, functions=[ | |
# { | |
# "name": "get_current_weather", | |
# "description": "Get the current weather in a given location", | |
# "parameters": { | |
# "type": "object", | |
# "properties": { | |
# "location": { | |
# "type": "string", | |
# "description": "The city and state, e.g. San Francisco, CA" | |
# }, | |
# "unit": { | |
# "type": "string", | |
# "enum": ["celsius", "fahrenheit"] | |
# } | |
# }, | |
# "required": ["location"] | |
# } | |
# } | |
# ]) | |
# except Exception as e: | |
# if "Function calling is not supported by nlp_cloud" in str(e): | |
# pass | |
# else: | |
# pytest.fail(f'An error occurred {e}') | |
# test_completion_catch_nlp_exception() | |
def test_completion_invalid_param_cohere(): | |
try: | |
response = completion(model="command-nightly", messages=messages, top_p=1) | |
print(f"response: {response}") | |
except Exception as e: | |
if "Unsupported parameters passed: top_p" in str(e): | |
pass | |
else: | |
pytest.fail(f"An error occurred {e}") | |
# test_completion_invalid_param_cohere() | |
def test_completion_function_call_cohere(): | |
try: | |
response = completion( | |
model="command-nightly", messages=messages, functions=["TEST-FUNCTION"] | |
) | |
pytest.fail(f"An error occurred {e}") | |
except Exception as e: | |
print(e) | |
pass | |
# test_completion_function_call_cohere() | |
def test_completion_function_call_openai(): | |
try: | |
messages = [{"role": "user", "content": "What is the weather like in Boston?"}] | |
response = completion( | |
model="gpt-3.5-turbo", | |
messages=messages, | |
functions=[ | |
{ | |
"name": "get_current_weather", | |
"description": "Get the current weather in a given location", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"location": { | |
"type": "string", | |
"description": "The city and state, e.g. San Francisco, CA", | |
}, | |
"unit": { | |
"type": "string", | |
"enum": ["celsius", "fahrenheit"], | |
}, | |
}, | |
"required": ["location"], | |
}, | |
} | |
], | |
) | |
print(f"response: {response}") | |
except: | |
pass | |
# test_completion_function_call_openai() | |
def test_completion_with_no_provider(): | |
# test on empty | |
try: | |
model = "cerebras/btlm-3b-8k-base" | |
response = completion(model=model, messages=messages) | |
except Exception as e: | |
print(f"error occurred: {e}") | |
pass | |
# test_completion_with_no_provider() | |
# # bad key | |
# temp_key = os.environ.get("OPENAI_API_KEY") | |
# os.environ["OPENAI_API_KEY"] = "bad-key" | |
# # test on openai completion call | |
# try: | |
# response = completion(model="gpt-3.5-turbo", messages=messages) | |
# print(f"response: {response}") | |
# except: | |
# print(f"error occurred: {traceback.format_exc()}") | |
# pass | |
# os.environ["OPENAI_API_KEY"] = str(temp_key) # this passes linting#5 | |