|
import sys, os |
|
import traceback |
|
from dotenv import load_dotenv |
|
|
|
load_dotenv() |
|
import os |
|
|
|
sys.path.insert( |
|
0, os.path.abspath("../..") |
|
) |
|
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}") |
|
|
|
|
|
|
|
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}") |
|
|
|
|
|
|
|
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}") |
|
|
|
|
|
|
|
|
|
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, |
|
"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() |