mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-27 11:43:54 +00:00
180 lines
5.9 KiB
Python
180 lines
5.9 KiB
Python
import sys, os
|
|
import traceback
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
import os, io
|
|
|
|
sys.path.insert(
|
|
0, os.path.abspath("../..")
|
|
) # Adds the parent directory to the system path
|
|
import pytest
|
|
import litellm
|
|
from litellm import embedding, completion, completion_cost, Timeout
|
|
from litellm import RateLimitError
|
|
|
|
# litellm.num_retries = 3
|
|
litellm.cache = None
|
|
litellm.success_callback = []
|
|
user_message = "Write a short poem about the sky"
|
|
messages = [{"content": user_message, "role": "user"}]
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def reset_callbacks():
|
|
print("\npytest fixture - resetting callbacks")
|
|
litellm.success_callback = []
|
|
litellm._async_success_callback = []
|
|
litellm.failure_callback = []
|
|
litellm.callbacks = []
|
|
|
|
|
|
def test_completion_bedrock_claude_completion_auth():
|
|
print("calling bedrock claude completion params auth")
|
|
import os
|
|
|
|
aws_access_key_id = os.environ["AWS_ACCESS_KEY_ID"]
|
|
aws_secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"]
|
|
aws_region_name = os.environ["AWS_REGION_NAME"]
|
|
|
|
os.environ.pop("AWS_ACCESS_KEY_ID", None)
|
|
os.environ.pop("AWS_SECRET_ACCESS_KEY", None)
|
|
os.environ.pop("AWS_REGION_NAME", None)
|
|
|
|
try:
|
|
response = completion(
|
|
model="bedrock/anthropic.claude-instant-v1",
|
|
messages=messages,
|
|
max_tokens=10,
|
|
temperature=0.1,
|
|
aws_access_key_id=aws_access_key_id,
|
|
aws_secret_access_key=aws_secret_access_key,
|
|
aws_region_name=aws_region_name,
|
|
)
|
|
# Add any assertions here to check the response
|
|
print(response)
|
|
|
|
os.environ["AWS_ACCESS_KEY_ID"] = aws_access_key_id
|
|
os.environ["AWS_SECRET_ACCESS_KEY"] = aws_secret_access_key
|
|
os.environ["AWS_REGION_NAME"] = aws_region_name
|
|
except RateLimitError:
|
|
pass
|
|
except Exception as e:
|
|
pytest.fail(f"Error occurred: {e}")
|
|
|
|
|
|
# test_completion_bedrock_claude_completion_auth()
|
|
|
|
|
|
def test_completion_bedrock_claude_2_1_completion_auth():
|
|
print("calling bedrock claude 2.1 completion params auth")
|
|
import os
|
|
|
|
aws_access_key_id = os.environ["AWS_ACCESS_KEY_ID"]
|
|
aws_secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"]
|
|
aws_region_name = os.environ["AWS_REGION_NAME"]
|
|
|
|
os.environ.pop("AWS_ACCESS_KEY_ID", None)
|
|
os.environ.pop("AWS_SECRET_ACCESS_KEY", None)
|
|
os.environ.pop("AWS_REGION_NAME", None)
|
|
|
|
try:
|
|
response = completion(
|
|
model="bedrock/anthropic.claude-v2:1",
|
|
messages=messages,
|
|
max_tokens=10,
|
|
temperature=0.1,
|
|
aws_access_key_id=aws_access_key_id,
|
|
aws_secret_access_key=aws_secret_access_key,
|
|
aws_region_name=aws_region_name,
|
|
)
|
|
# Add any assertions here to check the response
|
|
print(response)
|
|
|
|
os.environ["AWS_ACCESS_KEY_ID"] = aws_access_key_id
|
|
os.environ["AWS_SECRET_ACCESS_KEY"] = aws_secret_access_key
|
|
os.environ["AWS_REGION_NAME"] = aws_region_name
|
|
except RateLimitError:
|
|
pass
|
|
except Exception as e:
|
|
pytest.fail(f"Error occurred: {e}")
|
|
|
|
|
|
# test_completion_bedrock_claude_2_1_completion_auth()
|
|
|
|
|
|
def test_completion_bedrock_claude_external_client_auth():
|
|
print("\ncalling bedrock claude external client auth")
|
|
import os
|
|
|
|
aws_access_key_id = os.environ["AWS_ACCESS_KEY_ID"]
|
|
aws_secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"]
|
|
aws_region_name = os.environ["AWS_REGION_NAME"]
|
|
|
|
os.environ.pop("AWS_ACCESS_KEY_ID", None)
|
|
os.environ.pop("AWS_SECRET_ACCESS_KEY", None)
|
|
os.environ.pop("AWS_REGION_NAME", None)
|
|
|
|
try:
|
|
import boto3
|
|
|
|
litellm.set_verbose = True
|
|
|
|
bedrock = boto3.client(
|
|
service_name="bedrock-runtime",
|
|
region_name=aws_region_name,
|
|
aws_access_key_id=aws_access_key_id,
|
|
aws_secret_access_key=aws_secret_access_key,
|
|
endpoint_url=f"https://bedrock-runtime.{aws_region_name}.amazonaws.com",
|
|
)
|
|
|
|
response = completion(
|
|
model="bedrock/anthropic.claude-instant-v1",
|
|
messages=messages,
|
|
max_tokens=10,
|
|
temperature=0.1,
|
|
aws_bedrock_client=bedrock,
|
|
)
|
|
# Add any assertions here to check the response
|
|
print(response)
|
|
|
|
os.environ["AWS_ACCESS_KEY_ID"] = aws_access_key_id
|
|
os.environ["AWS_SECRET_ACCESS_KEY"] = aws_secret_access_key
|
|
os.environ["AWS_REGION_NAME"] = aws_region_name
|
|
except RateLimitError:
|
|
pass
|
|
except Exception as e:
|
|
pytest.fail(f"Error occurred: {e}")
|
|
|
|
|
|
test_completion_bedrock_claude_external_client_auth()
|
|
|
|
# def test_provisioned_throughput():
|
|
# try:
|
|
# litellm.set_verbose=True
|
|
# import botocore
|
|
# import botocore.session
|
|
# from botocore.stub import Stubber
|
|
|
|
|
|
# bedrock_client = botocore.session.get_session().create_client('bedrock-runtime', region_name='us-east-1')
|
|
# request = {
|
|
# "body": {"prompt": "\n\nHuman: Write a short poem about the sky\n\nAssistant: ", "max_tokens_to_sample": 10, "temperature": 0.1},
|
|
# "modelId": "anthropic.claude-instant-v1",
|
|
# "accept":"accept",
|
|
# "contentType": "contentType"
|
|
# }
|
|
# response ={"completion": " Here is a short poem about the sky:", "stop_reason": "max_tokens", "stop": None}
|
|
|
|
|
|
# with Stubber(bedrock_client) as stubber:
|
|
# stubber.add_response('invoke_model', service_response=response, expected_params=request)
|
|
# response = litellm.completion(
|
|
# model="bedrock/anthropic.claude-instant-v1",
|
|
# model_id = 'provisioned-model-arn',
|
|
# messages=[{ "content": "Hello, how are you?","role": "user"}],
|
|
# aws_bedrock_client=bedrock_client,
|
|
# )
|
|
# except Exception as e:
|
|
# pytest.fail(f"Error occurred: {e}")
|
|
# test_provisioned_throughput()
|