mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 18:54:30 +00:00
fix(utils.py): improve coverage for anthropic exception mapping
This commit is contained in:
parent
24addd8a4f
commit
000d678445
2 changed files with 37 additions and 8 deletions
|
@ -670,7 +670,7 @@ def test_litellm_predibase_exception():
|
||||||
# print(f"accuracy_score: {accuracy_score}")
|
# print(f"accuracy_score: {accuracy_score}")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("provider", ["predibase", "vertex_ai_beta"])
|
@pytest.mark.parametrize("provider", ["predibase", "vertex_ai_beta", "anthropic"])
|
||||||
def test_exception_mapping(provider):
|
def test_exception_mapping(provider):
|
||||||
"""
|
"""
|
||||||
For predibase, run through a set of mock exceptions
|
For predibase, run through a set of mock exceptions
|
||||||
|
@ -712,3 +712,23 @@ def test_exception_mapping(provider):
|
||||||
)
|
)
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def test_anthropic_tool_calling_exception():
|
||||||
|
"""
|
||||||
|
Related - https://github.com/BerriAI/litellm/issues/4348
|
||||||
|
"""
|
||||||
|
tools = [
|
||||||
|
{
|
||||||
|
"type": "function",
|
||||||
|
"function": {
|
||||||
|
"name": "get_current_weather",
|
||||||
|
"description": "Get the current weather in a given location",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
]
|
||||||
|
litellm.completion(
|
||||||
|
model="claude-3.5",
|
||||||
|
messages=[{"role": "user", "content": "Hey, how's it going?"}],
|
||||||
|
tools=tools,
|
||||||
|
)
|
||||||
|
|
|
@ -5948,7 +5948,6 @@ def exception_type(
|
||||||
message=f"AnthropicException - {error_str}",
|
message=f"AnthropicException - {error_str}",
|
||||||
llm_provider="anthropic",
|
llm_provider="anthropic",
|
||||||
model=model,
|
model=model,
|
||||||
response=original_exception.response,
|
|
||||||
)
|
)
|
||||||
elif (
|
elif (
|
||||||
original_exception.status_code == 400
|
original_exception.status_code == 400
|
||||||
|
@ -5959,7 +5958,13 @@ def exception_type(
|
||||||
message=f"AnthropicException - {error_str}",
|
message=f"AnthropicException - {error_str}",
|
||||||
model=model,
|
model=model,
|
||||||
llm_provider="anthropic",
|
llm_provider="anthropic",
|
||||||
response=original_exception.response,
|
)
|
||||||
|
elif original_exception.status_code == 404:
|
||||||
|
exception_mapping_worked = True
|
||||||
|
raise NotFoundError(
|
||||||
|
message=f"AnthropicException - {error_str}",
|
||||||
|
model=model,
|
||||||
|
llm_provider="anthropic",
|
||||||
)
|
)
|
||||||
elif original_exception.status_code == 408:
|
elif original_exception.status_code == 408:
|
||||||
exception_mapping_worked = True
|
exception_mapping_worked = True
|
||||||
|
@ -5974,16 +5979,20 @@ def exception_type(
|
||||||
message=f"AnthropicException - {error_str}",
|
message=f"AnthropicException - {error_str}",
|
||||||
llm_provider="anthropic",
|
llm_provider="anthropic",
|
||||||
model=model,
|
model=model,
|
||||||
response=original_exception.response,
|
|
||||||
)
|
)
|
||||||
elif original_exception.status_code == 500:
|
elif original_exception.status_code == 500:
|
||||||
exception_mapping_worked = True
|
exception_mapping_worked = True
|
||||||
raise APIError(
|
raise litellm.InternalServerError(
|
||||||
status_code=500,
|
message=f"AnthropicException - {error_str}. Handle with `litellm.InternalServerError`.",
|
||||||
message=f"AnthropicException - {error_str}. Handle with `litellm.APIError`.",
|
llm_provider="anthropic",
|
||||||
|
model=model,
|
||||||
|
)
|
||||||
|
elif original_exception.status_code == 503:
|
||||||
|
exception_mapping_worked = True
|
||||||
|
raise litellm.ServiceUnavailableError(
|
||||||
|
message=f"AnthropicException - {error_str}. Handle with `litellm.ServiceUnavailableError`.",
|
||||||
llm_provider="anthropic",
|
llm_provider="anthropic",
|
||||||
model=model,
|
model=model,
|
||||||
request=original_exception.request,
|
|
||||||
)
|
)
|
||||||
elif custom_llm_provider == "replicate":
|
elif custom_llm_provider == "replicate":
|
||||||
if "Incorrect authentication token" in error_str:
|
if "Incorrect authentication token" in error_str:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue