Commits included in this export:

- 6ddaaa6989d725bbe966e45f7aed0c1bd72f9153
  - 4779741b6ba710b1299612b82e8544516bd9dd6a
  - 22083fcc8f58884d8212d6f3314b231c4ddd21cd
  - a925a620f97196d509e073a163caac053bd82316
  - 5c05d8829784601ffd151acef1a6978c266f913d
  - 6f4fff535fbf4274255c255ae23620b8e00e614f
  - ef358e96cb01e469b77d44683603a602b0813116
  - e6299b4ebfe5c2eed6c598771f0fd99f84555401
  - 24d3f0ee1c2aa19a62f7902836034080b9246813
  - 68922847c2969b773887310eb7aa9a814e199c5a
  - 729ee2338c39df22461526153e7f4ba868fd498e
  - e1074ff86fccf5e48406b7595298873106d3cc5a
  - 123bbdaf841d299162a82ee2573adfbb70a45b8f
  - ac457b8a8dad98fdf5ddcae8dd4711361cea3084
  - ea825199f4c59dd68fec01cf8d18a582963c9f25
  - 4d48e4f6bb936e785787314a965298da6b78fea0
  - 718729a573ee98893a4408d5a52ab4686661fe54
  - b867adcde6b64f3f2a11c4626254b39098e4b0b4
  - 21912c097b4066d109766c6b4492826595cd57c5
  - bc1ed85adc976a4634ca8a41b82e4fc2c39a864f
  - d145c89c941937a312ed1357590d2bfda9a3603d
  - 12f05b5dee397ead47cfcd545a7a2e3c7ff57524
  - dd28f75a19a015809797c7abf3f8758f7c37262e
  - c96e569781e07ab44172d9c69940ec17bafd81f4
  - c9d5a90e3c2b5077a2bdd49773f1a46d1a5a79c7
  - 58b08f87116ceab9076de2fdc0a4c74c919b44c4

GitOrigin-RevId: 6ddaaa6989d725bbe966e45f7aed0c1bd72f9153
This commit is contained in:
OpenRouter Team
2026-02-05 23:15:21 +00:00
parent 0c791b04d1
commit 1cad51abb6
247 changed files with 8079 additions and 4566 deletions
+178 -148
View File
@@ -22,6 +22,8 @@ class Responses(BaseSDK):
def send(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -84,16 +86,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Union[Literal[False], None] = None,
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -106,6 +102,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -150,6 +151,8 @@ class Responses(BaseSDK):
def send(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -212,16 +215,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Literal[True],
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -234,6 +231,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -277,6 +279,8 @@ class Responses(BaseSDK):
def send(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -339,16 +343,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Optional[bool] = False,
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -361,6 +359,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -410,56 +413,60 @@ class Responses(BaseSDK):
else:
base_url = self._get_url(base_url, url_variables)
request = components.OpenResponsesRequest(
input=utils.get_pydantic_model(
input, Optional[components.OpenResponsesInput]
request = operations.CreateResponsesRequest(
http_referer=http_referer,
x_title=x_title,
open_responses_request=components.OpenResponsesRequest(
input=utils.get_pydantic_model(
input, Optional[components.OpenResponsesInput]
),
instructions=instructions,
metadata=metadata,
tools=utils.get_pydantic_model(
tools, Optional[List[components.OpenResponsesRequestToolUnion]]
),
tool_choice=utils.get_pydantic_model(
tool_choice, Optional[components.OpenAIResponsesToolChoiceUnion]
),
parallel_tool_calls=parallel_tool_calls,
model=model,
models=models,
text=utils.get_pydantic_model(
text, Optional[components.OpenResponsesResponseText]
),
reasoning=utils.get_pydantic_model(
reasoning, OptionalNullable[components.OpenResponsesReasoningConfig]
),
max_output_tokens=max_output_tokens,
temperature=temperature,
top_p=top_p,
top_logprobs=top_logprobs,
max_tool_calls=max_tool_calls,
presence_penalty=presence_penalty,
frequency_penalty=frequency_penalty,
top_k=top_k,
image_config=image_config,
modalities=modalities,
prompt_cache_key=prompt_cache_key,
previous_response_id=previous_response_id,
prompt=utils.get_pydantic_model(
prompt, OptionalNullable[components.OpenAIResponsesPrompt]
),
include=include,
background=background,
safety_identifier=safety_identifier,
service_tier=service_tier,
truncation=truncation,
stream=stream,
provider=utils.get_pydantic_model(
provider, OptionalNullable[components.Provider]
),
plugins=utils.get_pydantic_model(
plugins, Optional[List[components.Plugin]]
),
user=user,
session_id=session_id,
),
instructions=instructions,
metadata=metadata,
tools=utils.get_pydantic_model(
tools, Optional[List[components.OpenResponsesRequestToolUnion]]
),
tool_choice=utils.get_pydantic_model(
tool_choice, Optional[components.OpenAIResponsesToolChoiceUnion]
),
parallel_tool_calls=parallel_tool_calls,
model=model,
models=models,
text=utils.get_pydantic_model(
text, Optional[components.OpenResponsesResponseText]
),
reasoning=utils.get_pydantic_model(
reasoning, OptionalNullable[components.OpenResponsesReasoningConfig]
),
max_output_tokens=max_output_tokens,
temperature=temperature,
top_p=top_p,
top_logprobs=top_logprobs,
max_tool_calls=max_tool_calls,
presence_penalty=presence_penalty,
frequency_penalty=frequency_penalty,
top_k=top_k,
image_config=image_config,
modalities=modalities,
prompt_cache_key=prompt_cache_key,
previous_response_id=previous_response_id,
prompt=utils.get_pydantic_model(
prompt, OptionalNullable[components.OpenAIResponsesPrompt]
),
include=include,
background=background,
safety_identifier=safety_identifier,
service_tier=service_tier,
truncation=truncation,
stream=stream,
provider=utils.get_pydantic_model(
provider, OptionalNullable[components.OpenResponsesRequestProvider]
),
plugins=utils.get_pydantic_model(
plugins, Optional[List[components.OpenResponsesRequestPluginUnion]]
),
user=user,
session_id=session_id,
)
req = self._build_request(
@@ -474,9 +481,17 @@ class Responses(BaseSDK):
user_agent_header="user-agent",
accept_header_value="text/event-stream" if stream else "application/json",
http_headers=http_headers,
_globals=operations.CreateResponsesGlobals(
http_referer=self.sdk_configuration.globals.http_referer,
x_title=self.sdk_configuration.globals.x_title,
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
request, False, False, "json", components.OpenResponsesRequest
request.open_responses_request,
False,
False,
"json",
components.OpenResponsesRequest,
),
allow_empty_value=None,
timeout_ms=timeout_ms,
@@ -655,6 +670,8 @@ class Responses(BaseSDK):
async def send_async(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -717,16 +734,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Union[Literal[False], None] = None,
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -739,6 +750,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -783,6 +799,8 @@ class Responses(BaseSDK):
async def send_async(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -845,16 +863,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Literal[True],
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -867,6 +879,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -910,6 +927,8 @@ class Responses(BaseSDK):
async def send_async(
self,
*,
http_referer: Optional[str] = None,
x_title: Optional[str] = None,
input: Optional[
Union[components.OpenResponsesInput, components.OpenResponsesInputTypedDict]
] = None,
@@ -972,16 +991,10 @@ class Responses(BaseSDK):
truncation: OptionalNullable[components.Truncation] = UNSET,
stream: Optional[bool] = False,
provider: OptionalNullable[
Union[
components.OpenResponsesRequestProvider,
components.OpenResponsesRequestProviderTypedDict,
]
Union[components.Provider, components.ProviderTypedDict]
] = UNSET,
plugins: Optional[
Union[
List[components.OpenResponsesRequestPluginUnion],
List[components.OpenResponsesRequestPluginUnionTypedDict],
]
Union[List[components.Plugin], List[components.PluginTypedDict]]
] = None,
user: Optional[str] = None,
session_id: Optional[str] = None,
@@ -994,6 +1007,11 @@ class Responses(BaseSDK):
Creates a streaming or non-streaming response using OpenResponses API format
:param http_referer: The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
:param x_title: The app display name allows you to customize how your app appears in OpenRouter's dashboard.
:param input: Input for a response request - can be a string or array of items
:param instructions:
:param metadata: 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.
@@ -1043,56 +1061,60 @@ class Responses(BaseSDK):
else:
base_url = self._get_url(base_url, url_variables)
request = components.OpenResponsesRequest(
input=utils.get_pydantic_model(
input, Optional[components.OpenResponsesInput]
request = operations.CreateResponsesRequest(
http_referer=http_referer,
x_title=x_title,
open_responses_request=components.OpenResponsesRequest(
input=utils.get_pydantic_model(
input, Optional[components.OpenResponsesInput]
),
instructions=instructions,
metadata=metadata,
tools=utils.get_pydantic_model(
tools, Optional[List[components.OpenResponsesRequestToolUnion]]
),
tool_choice=utils.get_pydantic_model(
tool_choice, Optional[components.OpenAIResponsesToolChoiceUnion]
),
parallel_tool_calls=parallel_tool_calls,
model=model,
models=models,
text=utils.get_pydantic_model(
text, Optional[components.OpenResponsesResponseText]
),
reasoning=utils.get_pydantic_model(
reasoning, OptionalNullable[components.OpenResponsesReasoningConfig]
),
max_output_tokens=max_output_tokens,
temperature=temperature,
top_p=top_p,
top_logprobs=top_logprobs,
max_tool_calls=max_tool_calls,
presence_penalty=presence_penalty,
frequency_penalty=frequency_penalty,
top_k=top_k,
image_config=image_config,
modalities=modalities,
prompt_cache_key=prompt_cache_key,
previous_response_id=previous_response_id,
prompt=utils.get_pydantic_model(
prompt, OptionalNullable[components.OpenAIResponsesPrompt]
),
include=include,
background=background,
safety_identifier=safety_identifier,
service_tier=service_tier,
truncation=truncation,
stream=stream,
provider=utils.get_pydantic_model(
provider, OptionalNullable[components.Provider]
),
plugins=utils.get_pydantic_model(
plugins, Optional[List[components.Plugin]]
),
user=user,
session_id=session_id,
),
instructions=instructions,
metadata=metadata,
tools=utils.get_pydantic_model(
tools, Optional[List[components.OpenResponsesRequestToolUnion]]
),
tool_choice=utils.get_pydantic_model(
tool_choice, Optional[components.OpenAIResponsesToolChoiceUnion]
),
parallel_tool_calls=parallel_tool_calls,
model=model,
models=models,
text=utils.get_pydantic_model(
text, Optional[components.OpenResponsesResponseText]
),
reasoning=utils.get_pydantic_model(
reasoning, OptionalNullable[components.OpenResponsesReasoningConfig]
),
max_output_tokens=max_output_tokens,
temperature=temperature,
top_p=top_p,
top_logprobs=top_logprobs,
max_tool_calls=max_tool_calls,
presence_penalty=presence_penalty,
frequency_penalty=frequency_penalty,
top_k=top_k,
image_config=image_config,
modalities=modalities,
prompt_cache_key=prompt_cache_key,
previous_response_id=previous_response_id,
prompt=utils.get_pydantic_model(
prompt, OptionalNullable[components.OpenAIResponsesPrompt]
),
include=include,
background=background,
safety_identifier=safety_identifier,
service_tier=service_tier,
truncation=truncation,
stream=stream,
provider=utils.get_pydantic_model(
provider, OptionalNullable[components.OpenResponsesRequestProvider]
),
plugins=utils.get_pydantic_model(
plugins, Optional[List[components.OpenResponsesRequestPluginUnion]]
),
user=user,
session_id=session_id,
)
req = self._build_request_async(
@@ -1107,9 +1129,17 @@ class Responses(BaseSDK):
user_agent_header="user-agent",
accept_header_value="text/event-stream" if stream else "application/json",
http_headers=http_headers,
_globals=operations.CreateResponsesGlobals(
http_referer=self.sdk_configuration.globals.http_referer,
x_title=self.sdk_configuration.globals.x_title,
),
security=self.sdk_configuration.security,
get_serialized_body=lambda: utils.serialize_request_body(
request, False, False, "json", components.OpenResponsesRequest
request.open_responses_request,
False,
False,
"json",
components.OpenResponsesRequest,
),
allow_empty_value=None,
timeout_ms=timeout_ms,