Files
openrouter-python-sdk-retry…/src/openrouter/components/openresponsesresult.py
T
github-actions[bot]GitHubspeakeasybotspeakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
0f116c9792 chore: 🐝 Update SDK - Generate 0.9.2 (#205)
Co-authored-by: speakeasybot <bot@speakeasyapi.dev>
Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
2026-06-11 12:10:31 -04:00

359 lines
12 KiB
Python

"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .applypatchservertool import ApplyPatchServerTool, ApplyPatchServerToolTypedDict
from .baseinputs_union import BaseInputsUnion, BaseInputsUnionTypedDict
from .basereasoningconfig import BaseReasoningConfig, BaseReasoningConfigTypedDict
from .codeinterpreterservertool import (
CodeInterpreterServerTool,
CodeInterpreterServerToolTypedDict,
)
from .codexlocalshelltool import CodexLocalShellTool, CodexLocalShellToolTypedDict
from .computeruseservertool import ComputerUseServerTool, ComputerUseServerToolTypedDict
from .customtool import CustomTool, CustomToolTypedDict
from .filesearchservertool import FileSearchServerTool, FileSearchServerToolTypedDict
from .imagegenerationservertool import (
ImageGenerationServerTool,
ImageGenerationServerToolTypedDict,
)
from .incompletedetails import IncompleteDetails, IncompleteDetailsTypedDict
from .legacy_websearchservertool import (
LegacyWebSearchServerTool,
LegacyWebSearchServerToolTypedDict,
)
from .mcpservertool import McpServerTool, McpServerToolTypedDict
from .openairesponsesresponsestatus import OpenAIResponsesResponseStatus
from .openairesponsestoolchoice_union import (
OpenAIResponsesToolChoiceUnion,
OpenAIResponsesToolChoiceUnionTypedDict,
)
from .openroutermetadata import OpenRouterMetadata, OpenRouterMetadataTypedDict
from .outputitems import OutputItems, OutputItemsTypedDict
from .preview_20250311_websearchservertool import (
Preview20250311WebSearchServerTool,
Preview20250311WebSearchServerToolTypedDict,
)
from .preview_websearchservertool import (
PreviewWebSearchServerTool,
PreviewWebSearchServerToolTypedDict,
)
from .responseserrorfield import ResponsesErrorField, ResponsesErrorFieldTypedDict
from .shellservertool import ShellServerTool, ShellServerToolTypedDict
from .storedprompttemplate import StoredPromptTemplate, StoredPromptTemplateTypedDict
from .textextendedconfig import TextExtendedConfig, TextExtendedConfigTypedDict
from .truncation import Truncation
from .usage import Usage, UsageTypedDict
from .websearchservertool import WebSearchServerTool, WebSearchServerToolTypedDict
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
)
from openrouter.utils import get_discriminator, validate_open_enum
from pydantic import Discriminator, Tag, model_serializer
from pydantic.functional_validators import PlainValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
OpenResponsesResultObject = Literal["response",]
OpenResponsesResultType = Literal["function",]
class OpenResponsesResultToolFunctionTypedDict(TypedDict):
r"""Function tool definition"""
name: str
parameters: Nullable[Dict[str, Nullable[Any]]]
type: OpenResponsesResultType
description: NotRequired[Nullable[str]]
strict: NotRequired[Nullable[bool]]
class OpenResponsesResultToolFunction(BaseModel):
r"""Function tool definition"""
name: str
parameters: Nullable[Dict[str, Nullable[Any]]]
type: OpenResponsesResultType
description: OptionalNullable[str] = UNSET
strict: OptionalNullable[bool] = UNSET
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = ["description", "strict"]
nullable_fields = ["description", "parameters", "strict"]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
OpenResponsesResultToolUnionTypedDict = TypeAliasType(
"OpenResponsesResultToolUnionTypedDict",
Union[
CodexLocalShellToolTypedDict,
ApplyPatchServerToolTypedDict,
ShellServerToolTypedDict,
CodeInterpreterServerToolTypedDict,
CustomToolTypedDict,
ComputerUseServerToolTypedDict,
OpenResponsesResultToolFunctionTypedDict,
FileSearchServerToolTypedDict,
LegacyWebSearchServerToolTypedDict,
WebSearchServerToolTypedDict,
Preview20250311WebSearchServerToolTypedDict,
PreviewWebSearchServerToolTypedDict,
McpServerToolTypedDict,
ImageGenerationServerToolTypedDict,
],
)
OpenResponsesResultToolUnion = Annotated[
Union[
Annotated[OpenResponsesResultToolFunction, Tag("function")],
Annotated[PreviewWebSearchServerTool, Tag("web_search_preview")],
Annotated[
Preview20250311WebSearchServerTool, Tag("web_search_preview_2025_03_11")
],
Annotated[LegacyWebSearchServerTool, Tag("web_search")],
Annotated[WebSearchServerTool, Tag("web_search_2025_08_26")],
Annotated[FileSearchServerTool, Tag("file_search")],
Annotated[ComputerUseServerTool, Tag("computer_use_preview")],
Annotated[CodeInterpreterServerTool, Tag("code_interpreter")],
Annotated[McpServerTool, Tag("mcp")],
Annotated[ImageGenerationServerTool, Tag("image_generation")],
Annotated[CodexLocalShellTool, Tag("local_shell")],
Annotated[ShellServerTool, Tag("shell")],
Annotated[ApplyPatchServerTool, Tag("apply_patch")],
Annotated[CustomTool, Tag("custom")],
],
Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
class OpenResponsesResultTypedDict(TypedDict):
r"""Complete non-streaming response from the Responses API"""
completed_at: Nullable[int]
created_at: int
error: Nullable[ResponsesErrorFieldTypedDict]
r"""Error information returned from the API"""
frequency_penalty: Nullable[float]
id: str
incomplete_details: Nullable[IncompleteDetailsTypedDict]
instructions: Nullable[BaseInputsUnionTypedDict]
metadata: Nullable[Dict[str, str]]
r"""Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must be ≤512 characters. Maximum 16 pairs allowed."""
model: str
object: OpenResponsesResultObject
output: List[OutputItemsTypedDict]
parallel_tool_calls: bool
presence_penalty: Nullable[float]
status: OpenAIResponsesResponseStatus
temperature: Nullable[float]
tool_choice: OpenAIResponsesToolChoiceUnionTypedDict
tools: List[OpenResponsesResultToolUnionTypedDict]
top_p: Nullable[float]
background: NotRequired[Nullable[bool]]
max_output_tokens: NotRequired[Nullable[int]]
max_tool_calls: NotRequired[Nullable[int]]
output_text: NotRequired[str]
previous_response_id: NotRequired[Nullable[str]]
prompt: NotRequired[Nullable[StoredPromptTemplateTypedDict]]
prompt_cache_key: NotRequired[Nullable[str]]
reasoning: NotRequired[Nullable[BaseReasoningConfigTypedDict]]
safety_identifier: NotRequired[Nullable[str]]
service_tier: NotRequired[Nullable[str]]
store: NotRequired[bool]
text: NotRequired[TextExtendedConfigTypedDict]
r"""Text output configuration including format and verbosity"""
top_logprobs: NotRequired[int]
truncation: NotRequired[Nullable[Truncation]]
usage: NotRequired[Nullable[UsageTypedDict]]
r"""Token usage information for the response"""
user: NotRequired[Nullable[str]]
openrouter_metadata: NotRequired[OpenRouterMetadataTypedDict]
class OpenResponsesResult(BaseModel):
r"""Complete non-streaming response from the Responses API"""
completed_at: Nullable[int]
created_at: int
error: Nullable[ResponsesErrorField]
r"""Error information returned from the API"""
frequency_penalty: Nullable[float]
id: str
incomplete_details: Nullable[IncompleteDetails]
instructions: Nullable[BaseInputsUnion]
metadata: Nullable[Dict[str, str]]
r"""Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must be ≤512 characters. Maximum 16 pairs allowed."""
model: str
object: OpenResponsesResultObject
output: List[OutputItems]
parallel_tool_calls: bool
presence_penalty: Nullable[float]
status: Annotated[
OpenAIResponsesResponseStatus, PlainValidator(validate_open_enum(False))
]
temperature: Nullable[float]
tool_choice: OpenAIResponsesToolChoiceUnion
tools: List[OpenResponsesResultToolUnion]
top_p: Nullable[float]
background: OptionalNullable[bool] = UNSET
max_output_tokens: OptionalNullable[int] = UNSET
max_tool_calls: OptionalNullable[int] = UNSET
output_text: Optional[str] = None
previous_response_id: OptionalNullable[str] = UNSET
prompt: OptionalNullable[StoredPromptTemplate] = UNSET
prompt_cache_key: OptionalNullable[str] = UNSET
reasoning: OptionalNullable[BaseReasoningConfig] = UNSET
safety_identifier: OptionalNullable[str] = UNSET
service_tier: OptionalNullable[str] = UNSET
store: Optional[bool] = None
text: Optional[TextExtendedConfig] = None
r"""Text output configuration including format and verbosity"""
top_logprobs: Optional[int] = None
truncation: Annotated[
OptionalNullable[Truncation], PlainValidator(validate_open_enum(False))
] = UNSET
usage: OptionalNullable[Usage] = UNSET
r"""Token usage information for the response"""
user: OptionalNullable[str] = UNSET
openrouter_metadata: Optional[OpenRouterMetadata] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"background",
"max_output_tokens",
"max_tool_calls",
"output_text",
"previous_response_id",
"prompt",
"prompt_cache_key",
"reasoning",
"safety_identifier",
"service_tier",
"store",
"text",
"top_logprobs",
"truncation",
"usage",
"user",
"openrouter_metadata",
]
nullable_fields = [
"background",
"completed_at",
"error",
"frequency_penalty",
"incomplete_details",
"instructions",
"max_output_tokens",
"max_tool_calls",
"metadata",
"presence_penalty",
"previous_response_id",
"prompt",
"prompt_cache_key",
"reasoning",
"safety_identifier",
"service_tier",
"temperature",
"top_p",
"truncation",
"usage",
"user",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m