mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-24 18:24:20 +00:00
91 lines
No EOL
3 KiB
Python
91 lines
No EOL
3 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() |