mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 03:04:13 +00:00
(test) claude fixes
This commit is contained in:
parent
d179ae376e
commit
ba460e6838
3 changed files with 18 additions and 8 deletions
|
@ -125,12 +125,19 @@ def completion(
|
|||
format messages for anthropic
|
||||
1. Anthropic supports roles like "user" and "assistant", (here litellm translates system-> assistant)
|
||||
2. The first message always needs to be of role "user"
|
||||
3. Each message must alternate between "user" and "assistant" (this is not addressed as now by litellm)
|
||||
4. final assistant content cannot end with trailing whitespace (anthropic raises an error otherwise)
|
||||
"""
|
||||
# 1. Anthropic only supports roles like "user" and "assistant"
|
||||
for message in messages:
|
||||
for idx, message in enumerate(messages):
|
||||
if message["role"] == "system":
|
||||
message["role"] = "assistant"
|
||||
|
||||
# if this is the final assistant message, remove trailing whitespace
|
||||
# TODO: only do this if it's the final assistant message
|
||||
if message["role"] == "assistant":
|
||||
message["content"] = message["content"].strip()
|
||||
|
||||
# 2. The first message always needs to be of role "user"
|
||||
if len(messages) > 0:
|
||||
if messages[0]["role"] != "user":
|
||||
|
@ -211,6 +218,11 @@ def completion(
|
|||
message=str(completion_response["error"]),
|
||||
status_code=response.status_code,
|
||||
)
|
||||
elif len(completion_response["content"]) == 0:
|
||||
raise AnthropicError(
|
||||
message="No content in response",
|
||||
status_code=response.status_code,
|
||||
)
|
||||
else:
|
||||
text_content = completion_response["content"][0].get("text", None)
|
||||
model_response.choices[0].message.content = text_content # type: ignore
|
||||
|
|
|
@ -47,8 +47,9 @@ test_function_call_non_openai_model()
|
|||
## case 2: add_function_to_prompt set
|
||||
def test_function_call_non_openai_model_litellm_mod_set():
|
||||
litellm.add_function_to_prompt = True
|
||||
litellm.set_verbose = True
|
||||
try:
|
||||
model = "claude-instant-1"
|
||||
model = "claude-instant-1.2"
|
||||
messages = [{"role": "user", "content": "what's the weather in sf?"}]
|
||||
functions = [
|
||||
{
|
||||
|
|
|
@ -92,7 +92,6 @@ def test_completion_claude_3():
|
|||
response = completion(
|
||||
model="anthropic/claude-3-opus-20240229",
|
||||
messages=messages,
|
||||
max_tokens=10,
|
||||
)
|
||||
# Add any assertions, here to check response args
|
||||
print(response)
|
||||
|
@ -198,19 +197,17 @@ def test_completion_mistral_api_modified_input():
|
|||
|
||||
def test_completion_claude2_1():
|
||||
try:
|
||||
litellm.set_verbose = True
|
||||
print("claude2.1 test request")
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "Your goal is generate a joke on the topic user gives",
|
||||
"content": "Your goal is generate a joke on the topic user gives.",
|
||||
},
|
||||
{"role": "assistant", "content": "Hi, how can i assist you today?"},
|
||||
{"role": "user", "content": "Generate a 3 liner joke for me"},
|
||||
]
|
||||
# test without max tokens
|
||||
response = completion(
|
||||
model="claude-2.1", messages=messages, request_timeout=10, max_tokens=10
|
||||
)
|
||||
response = completion(model="claude-2.1", messages=messages)
|
||||
# Add any assertions here to check the response
|
||||
print(response)
|
||||
print(response.usage)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue