mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-01 02:02:20 +00:00
fix(gemini): return malformed Anthropic messages as an invalid request instead of raising from the token counter
This commit is contained in:
parent
78a8a4afe9
commit
242c8ed9f1
2 changed files with 15 additions and 3 deletions
|
|
@ -54,9 +54,12 @@ def build_count_tokens_payload(raw: AnthropicCountTokensInput) -> GeminiCountTok
|
|||
request: Final = _validated_request(raw)
|
||||
if isinstance(request, InvalidAnthropicRequest):
|
||||
return request
|
||||
openai_request, _ = LiteLLMAnthropicMessagesAdapter().translate_anthropic_to_openai(
|
||||
request, custom_llm_provider="gemini"
|
||||
)
|
||||
try:
|
||||
openai_request, _ = LiteLLMAnthropicMessagesAdapter().translate_anthropic_to_openai(
|
||||
request, custom_llm_provider="gemini"
|
||||
)
|
||||
except (KeyError, TypeError, ValueError) as e:
|
||||
return InvalidAnthropicRequest(message=f"Invalid Anthropic Messages request: {e!r}")
|
||||
system_instruction, remaining_messages = _transform_system_message(
|
||||
supports_system_message=True, messages=openai_request["messages"]
|
||||
)
|
||||
|
|
|
|||
|
|
@ -138,3 +138,12 @@ def test_tools_that_are_not_a_list_are_rejected_as_invalid():
|
|||
|
||||
assert isinstance(result, InvalidAnthropicRequest), result
|
||||
assert "tools" in result.message, result.message
|
||||
|
||||
|
||||
def test_message_without_a_role_is_rejected_as_invalid_not_raised():
|
||||
result = build_count_tokens_payload(
|
||||
{"model": MODEL, "messages": [{"content": "hi"}], "system": None, "tools": None}
|
||||
)
|
||||
|
||||
assert isinstance(result, InvalidAnthropicRequest), result
|
||||
assert "role" in result.message, result.message
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue