mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
TestOpenAIResponsesAPITest
This commit is contained in:
parent
281f128e42
commit
3718a59f1a
1 changed files with 33 additions and 3 deletions
|
|
@ -1179,6 +1179,24 @@ class ResponseAPIUsage(BaseLiteLLMOpenAIResponseObject):
|
|||
model_config = {"extra": "allow"}
|
||||
|
||||
|
||||
# Optional typing for reasoning fields; API may add new values. Prefer Dict[str, Any]
|
||||
# for response parsing so new effort/summary values and new fields are accepted.
|
||||
ResponsesAPIReasoningEffort = str # known: "none", "minimal", "low", "medium", "high", "xhigh"
|
||||
|
||||
|
||||
class ResponsesAPIReasoning(BaseLiteLLMOpenAIResponseObject):
|
||||
"""
|
||||
Reasoning info on a Responses API response. All fields are optional str to accept
|
||||
current API values and any new values OpenAI adds. Extra fields are allowed.
|
||||
"""
|
||||
|
||||
model_config = ConfigDict(extra="allow")
|
||||
|
||||
effort: Optional[str] = None
|
||||
generate_summary: Optional[str] = None
|
||||
summary: Optional[str] = None
|
||||
|
||||
|
||||
ResponsesAPIStatus = Literal[
|
||||
"completed", "failed", "in_progress", "cancelled", "queued", "incomplete"
|
||||
]
|
||||
|
|
@ -1217,7 +1235,7 @@ class ResponsesAPIResponse(BaseLiteLLMOpenAIResponseObject):
|
|||
top_p: Optional[float] = None
|
||||
max_output_tokens: Optional[int] = None
|
||||
previous_response_id: Optional[str] = None
|
||||
reasoning: Optional[Reasoning] = None
|
||||
reasoning: Optional[Dict[str, Any]] = None
|
||||
status: Optional[str] = None
|
||||
text: Optional[Union["ResponseText", Dict[str, Any]]] = None
|
||||
truncation: Optional[Literal["auto", "disabled"]] = None
|
||||
|
|
@ -1227,6 +1245,18 @@ class ResponsesAPIResponse(BaseLiteLLMOpenAIResponseObject):
|
|||
# Define private attributes using PrivateAttr
|
||||
_hidden_params: dict = PrivateAttr(default_factory=dict)
|
||||
|
||||
@field_validator("reasoning", mode="before")
|
||||
@classmethod
|
||||
def validate_reasoning_to_dict(cls, value: Any) -> Optional[Dict[str, Any]]:
|
||||
"""Accept API reasoning dict (including effort 'none'/'xhigh'); always store as dict."""
|
||||
if value is None:
|
||||
return None
|
||||
if isinstance(value, dict):
|
||||
return value
|
||||
if hasattr(value, "model_dump"):
|
||||
return value.model_dump()
|
||||
return value
|
||||
|
||||
@field_validator("usage", mode="before")
|
||||
@classmethod
|
||||
def validate_usage(cls, value):
|
||||
|
|
@ -1626,12 +1656,12 @@ class ImageGenerationPartialImageEvent(BaseLiteLLMOpenAIResponseObject):
|
|||
|
||||
|
||||
class ErrorEventError(BaseLiteLLMOpenAIResponseObject):
|
||||
"""Nested error object within ErrorEvent"""
|
||||
"""Nested error object within ErrorEvent."""
|
||||
|
||||
type: str # e.g., 'invalid_request_error'
|
||||
code: str # e.g., 'context_length_exceeded'
|
||||
message: str
|
||||
param: Optional[str]
|
||||
param: Optional[str] = None
|
||||
|
||||
|
||||
class ErrorEvent(BaseLiteLLMOpenAIResponseObject):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue