[CI][Frontend] Return 422 instead of 500 for invalid Anthropic tool_choice (#34590)
Signed-off-by: Andreas Karatzas <akaratza@amd.com>
This commit is contained in:
@@ -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"""
|
||||
|
||||
Reference in New Issue
Block a user