Unverified Commit 974d829b authored by Andreas Karatzas's avatar Andreas Karatzas Committed by GitHub
Browse files

[CI][Frontend] Return 422 instead of 500 for invalid Anthropic tool_choice (#34590)


Signed-off-by: default avatarAndreas Karatzas <akaratza@amd.com>
parent 91ac5d9b
......@@ -151,6 +151,7 @@ def test_openapi_stateless(case: schemathesis.Case):
# requires a longer timeout
("POST", "/v1/chat/completions"): LONG_TIMEOUT_SECONDS,
("POST", "/v1/completions"): LONG_TIMEOUT_SECONDS,
("POST", "/v1/messages"): LONG_TIMEOUT_SECONDS,
}.get(key, DEFAULT_TIMEOUT_SECONDS)
# No need to verify SSL certificate for localhost
......
......@@ -5,7 +5,7 @@
import time
from typing import Any, Literal
from pydantic import BaseModel, field_validator
from pydantic import BaseModel, field_validator, model_validator
class AnthropicError(BaseModel):
......@@ -76,6 +76,12 @@ class AnthropicToolChoice(BaseModel):
type: Literal["auto", "any", "tool"]
name: str | None = None
@model_validator(mode="after")
def validate_name_required_for_tool(self) -> "AnthropicToolChoice":
if self.type == "tool" and not self.name:
raise ValueError("tool_choice.name is required when type is 'tool'")
return self
class AnthropicMessagesRequest(BaseModel):
"""Anthropic Messages API request"""
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment