mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 10:44:24 +00:00
118 lines
3.2 KiB
Python
118 lines
3.2 KiB
Python
import sys, os
|
|
import traceback
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
import os
|
|
|
|
sys.path.insert(
|
|
0, os.path.abspath("../..")
|
|
) # Adds the parent directory to the system path
|
|
import pytest
|
|
import litellm
|
|
from litellm import completion_with_config
|
|
|
|
config = {
|
|
"default_fallback_models": ["gpt-3.5-turbo", "claude-instant-1", "j2-ultra"],
|
|
"model": {
|
|
"claude-instant-1": {"needs_moderation": True},
|
|
"gpt-3.5-turbo": {
|
|
"error_handling": {
|
|
"ContextWindowExceededError": {"fallback_model": "gpt-3.5-turbo-16k"}
|
|
}
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
def test_config_context_window_exceeded():
|
|
try:
|
|
sample_text = "how does a court case get to the Supreme Court?" * 1000
|
|
messages = [{"content": sample_text, "role": "user"}]
|
|
response = completion_with_config(
|
|
model="gpt-3.5-turbo", messages=messages, config=config
|
|
)
|
|
print(response)
|
|
except Exception as e:
|
|
print(f"Exception: {e}")
|
|
pytest.fail(f"An exception occurred: {e}")
|
|
|
|
|
|
# test_config_context_window_exceeded()
|
|
|
|
|
|
def test_config_context_moderation():
|
|
try:
|
|
messages = [{"role": "user", "content": "I want to kill them."}]
|
|
response = completion_with_config(
|
|
model="claude-instant-1", messages=messages, config=config
|
|
)
|
|
print(response)
|
|
except Exception as e:
|
|
print(f"Exception: {e}")
|
|
pytest.fail(f"An exception occurred: {e}")
|
|
|
|
|
|
# test_config_context_moderation()
|
|
|
|
|
|
def test_config_context_default_fallback():
|
|
try:
|
|
messages = [{"role": "user", "content": "Hey, how's it going?"}]
|
|
response = completion_with_config(
|
|
model="claude-instant-1",
|
|
messages=messages,
|
|
config=config,
|
|
api_key="bad-key",
|
|
)
|
|
print(response)
|
|
except Exception as e:
|
|
print(f"Exception: {e}")
|
|
pytest.fail(f"An exception occurred: {e}")
|
|
|
|
|
|
# test_config_context_default_fallback()
|
|
|
|
|
|
config = {
|
|
"default_fallback_models": ["gpt-3.5-turbo", "claude-instant-1", "j2-ultra"],
|
|
"available_models": [
|
|
"gpt-3.5-turbo",
|
|
"gpt-3.5-turbo-0301",
|
|
"gpt-3.5-turbo-0613",
|
|
"gpt-4",
|
|
"gpt-4-0314",
|
|
"gpt-4-0613",
|
|
"j2-ultra",
|
|
"command-nightly",
|
|
"togethercomputer/llama-2-70b-chat",
|
|
"chat-bison",
|
|
"chat-bison@001",
|
|
"claude-2",
|
|
],
|
|
"adapt_to_prompt_size": True, # type: ignore
|
|
"model": {
|
|
"claude-instant-1": {"needs_moderation": True},
|
|
"gpt-3.5-turbo": {
|
|
"error_handling": {
|
|
"ContextWindowExceededError": {"fallback_model": "gpt-3.5-turbo-16k"}
|
|
}
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
def test_config_context_adapt_to_prompt():
|
|
try:
|
|
sample_text = "how does a court case get to the Supreme Court?" * 1000
|
|
messages = [{"content": sample_text, "role": "user"}]
|
|
response = completion_with_config(
|
|
model="gpt-3.5-turbo", messages=messages, config=config
|
|
)
|
|
print(response)
|
|
except Exception as e:
|
|
print(f"Exception: {e}")
|
|
pytest.fail(f"An exception occurred: {e}")
|
|
|
|
|
|
test_config_context_adapt_to_prompt()
|