mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-29 11:23:49 +08:00
chore: 🐝 Update SDK - Generate (spec change merged) 0.11.30 (#448)
Co-authored-by: speakeasybot <bot@speakeasyapi.dev> Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
speakeasybot
speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
parent
a4f0294713
commit
4d4ff3efdd
+27
-28
@@ -1,19 +1,19 @@
|
|||||||
lockVersion: 2.0.0
|
lockVersion: 2.0.0
|
||||||
id: c48cf606-fb42-4a45-9c23-8f0555307828
|
id: c48cf606-fb42-4a45-9c23-8f0555307828
|
||||||
management:
|
management:
|
||||||
docChecksum: ff4478e1428e58273d7375ea639734d6
|
docChecksum: 2b57a910ce900868d69481fbdbb107e2
|
||||||
docVersion: 1.0.0
|
docVersion: 1.0.0
|
||||||
speakeasyVersion: 1.787.0
|
speakeasyVersion: 1.787.0
|
||||||
generationVersion: 2.914.0
|
generationVersion: 2.914.0
|
||||||
releaseVersion: 0.11.29
|
releaseVersion: 0.11.30
|
||||||
configChecksum: e092e139147af5b5a502f15607d75192
|
configChecksum: 7dc0b5387e8da51843faaa2b3abeb965
|
||||||
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
|
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
|
||||||
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
|
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
|
||||||
published: true
|
published: true
|
||||||
persistentEdits:
|
persistentEdits:
|
||||||
generation_id: d53fc2a4-a065-484e-b315-dc8906615c95
|
generation_id: a22f6b13-0ff1-4813-b7be-a4b1fab6b7d6
|
||||||
pristine_commit_hash: a593a152775480385c6cd2612c40dfb00014f443
|
pristine_commit_hash: 7f32faacc61245f0cf537d83ad96f0cbae0c5e25
|
||||||
pristine_tree_hash: 4c87fa8a5b2aa4e90475f48c263b2f8da0222530
|
pristine_tree_hash: e68b33ac89a39aaeca3434449e5272b7549f89d5
|
||||||
features:
|
features:
|
||||||
python:
|
python:
|
||||||
acceptHeaders: 3.0.0
|
acceptHeaders: 3.0.0
|
||||||
@@ -1122,8 +1122,8 @@ trackedFiles:
|
|||||||
pristine_git_object: 48386287b072381a9b59de6ae804b0ffbbab221a
|
pristine_git_object: 48386287b072381a9b59de6ae804b0ffbbab221a
|
||||||
docs/components/chatusage.mdx:
|
docs/components/chatusage.mdx:
|
||||||
id: d7c2bc8b3eb2
|
id: d7c2bc8b3eb2
|
||||||
last_write_checksum: sha1:7f8bf402accabcc12f92b52bf6101cac3ef0363e
|
last_write_checksum: sha1:94539927996d770b9629c64bde6d8188976eec1d
|
||||||
pristine_git_object: a45747f57783767d91fe66f212525f7578d7345c
|
pristine_git_object: a32fff446094a26dfa62cdfcd02b5bc3c1293a72
|
||||||
docs/components/chatusagecompletiontokensdetails.mdx:
|
docs/components/chatusagecompletiontokensdetails.mdx:
|
||||||
id: 0274e721a9d9
|
id: 0274e721a9d9
|
||||||
last_write_checksum: sha1:77e7b8ae3c4456f4284f4fbd0093d00fdefd06c9
|
last_write_checksum: sha1:77e7b8ae3c4456f4284f4fbd0093d00fdefd06c9
|
||||||
@@ -4322,8 +4322,8 @@ trackedFiles:
|
|||||||
pristine_git_object: a90fbbefe76853f92638f4ae7ad63cf67951efc4
|
pristine_git_object: a90fbbefe76853f92638f4ae7ad63cf67951efc4
|
||||||
docs/components/servertoolusedetails.mdx:
|
docs/components/servertoolusedetails.mdx:
|
||||||
id: 5a7d75562dec
|
id: 5a7d75562dec
|
||||||
last_write_checksum: sha1:28d1fa7491c62f6fc5592fc8092afa9cfaa0b4f5
|
last_write_checksum: sha1:c2a156aba0f34118e3c681561f817d8deb4a06ac
|
||||||
pristine_git_object: a9f0d64b5351c9d5f5839b29c8c8c9c79a2d0c3a
|
pristine_git_object: de0d677d4f188af0688f78b8c8a25ae07ca3a093
|
||||||
docs/components/serviceunavailableresponseerrordata.mdx:
|
docs/components/serviceunavailableresponseerrordata.mdx:
|
||||||
id: 72f01d77e774
|
id: 72f01d77e774
|
||||||
last_write_checksum: sha1:7b53cfdd92a87ef0b70e0b5f7d2031e73bcbe033
|
last_write_checksum: sha1:7b53cfdd92a87ef0b70e0b5f7d2031e73bcbe033
|
||||||
@@ -5046,8 +5046,8 @@ trackedFiles:
|
|||||||
pristine_git_object: c5fe94ebc3791026c16a9636c7d6077773297e19
|
pristine_git_object: c5fe94ebc3791026c16a9636c7d6077773297e19
|
||||||
docs/components/usage.mdx:
|
docs/components/usage.mdx:
|
||||||
id: d84b29a6ea8c
|
id: d84b29a6ea8c
|
||||||
last_write_checksum: sha1:e9adc633c75f1e77e76fe32545662cc27c6304fc
|
last_write_checksum: sha1:b279f416f251c361dd705a2960b17e23c63aa508
|
||||||
pristine_git_object: c400fc42927885901a17ce82529b39c2cdadce6e
|
pristine_git_object: 2b203365a2a132a20be296a0acf7ba080780f44b
|
||||||
docs/components/usagecostdetails.mdx:
|
docs/components/usagecostdetails.mdx:
|
||||||
id: 95d8a52fead9
|
id: 95d8a52fead9
|
||||||
last_write_checksum: sha1:d8b2597a2921b79c43fd30173a8c395cd60584b2
|
last_write_checksum: sha1:d8b2597a2921b79c43fd30173a8c395cd60584b2
|
||||||
@@ -6666,8 +6666,8 @@ trackedFiles:
|
|||||||
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
|
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
|
||||||
pyproject.toml:
|
pyproject.toml:
|
||||||
id: 5d07e7d72637
|
id: 5d07e7d72637
|
||||||
last_write_checksum: sha1:1117ced9033fbecc539bceaa0497773110a561fa
|
last_write_checksum: sha1:7fff6806442d03388a1eeba7ced666a73f0b9e4b
|
||||||
pristine_git_object: 390707512d3febdc96fb763f9d077eee7567d046
|
pristine_git_object: b5955b6fb83f318988510683756edc44d54bf68d
|
||||||
scripts/prepare_readme.py:
|
scripts/prepare_readme.py:
|
||||||
id: e0c5957a6035
|
id: e0c5957a6035
|
||||||
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
|
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
|
||||||
@@ -6694,8 +6694,8 @@ trackedFiles:
|
|||||||
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
|
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
|
||||||
src/openrouter/_version.py:
|
src/openrouter/_version.py:
|
||||||
id: d8d15ad6c586
|
id: d8d15ad6c586
|
||||||
last_write_checksum: sha1:fda5045f9e84313bfc3c002291fef7a1dba3ee40
|
last_write_checksum: sha1:6fc2a852500a272de2537814ccf9d5ecba9f032e
|
||||||
pristine_git_object: 86673258f99094629fb4fd3a5c17d5f944bf63fd
|
pristine_git_object: 4f9e877e356b1d5d1e23594d3f7de4c2f389c1f6
|
||||||
src/openrouter/analytics.py:
|
src/openrouter/analytics.py:
|
||||||
id: cb406b5aaabb
|
id: cb406b5aaabb
|
||||||
last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841
|
last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841
|
||||||
@@ -6734,8 +6734,8 @@ trackedFiles:
|
|||||||
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
|
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
|
||||||
src/openrouter/components/__init__.py:
|
src/openrouter/components/__init__.py:
|
||||||
id: 81754e97b3f4
|
id: 81754e97b3f4
|
||||||
last_write_checksum: sha1:84999e85717da3612e618f3115f0cf56ea91b268
|
last_write_checksum: sha1:94b5ed66b643a74f91ce1c3ec98744e1146f729e
|
||||||
pristine_git_object: bf5e3e9d282db9aefb6629dbe70240294aadd3d8
|
pristine_git_object: c2d2d47304bce289181c2cba8ddc3ab3f947e3b8
|
||||||
src/openrouter/components/aabenchmarkentry.py:
|
src/openrouter/components/aabenchmarkentry.py:
|
||||||
id: e2e0f0b48c82
|
id: e2e0f0b48c82
|
||||||
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
|
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
|
||||||
@@ -7246,8 +7246,8 @@ trackedFiles:
|
|||||||
pristine_git_object: 2ccba8386486b7a730816a9829b01754935a2e96
|
pristine_git_object: 2ccba8386486b7a730816a9829b01754935a2e96
|
||||||
src/openrouter/components/chatusage.py:
|
src/openrouter/components/chatusage.py:
|
||||||
id: f224a054bf45
|
id: f224a054bf45
|
||||||
last_write_checksum: sha1:3cdcb6cbf944509ef966f90f7d6e3af967323277
|
last_write_checksum: sha1:ea708aa417bad1c480ef113ec9c4491f1cdfcf44
|
||||||
pristine_git_object: 1410ca9d1ed4032acb4a59569be77cea2fb4432b
|
pristine_git_object: 4fd2be35dd11a5c81fcc575f766ae23cbdc4e78e
|
||||||
src/openrouter/components/chatusermessage.py:
|
src/openrouter/components/chatusermessage.py:
|
||||||
id: 7777191e729a
|
id: 7777191e729a
|
||||||
last_write_checksum: sha1:6e9d3d1a827832b947bbb688a8f78f43aaaa9f81
|
last_write_checksum: sha1:6e9d3d1a827832b947bbb688a8f78f43aaaa9f81
|
||||||
@@ -8576,6 +8576,10 @@ trackedFiles:
|
|||||||
id: ae2ca334218a
|
id: ae2ca334218a
|
||||||
last_write_checksum: sha1:4f739c60ede675286c18e898f4cc9505480897a4
|
last_write_checksum: sha1:4f739c60ede675286c18e898f4cc9505480897a4
|
||||||
pristine_git_object: fce3d0742de43f714ec40da747e6dcf7ff5e4075
|
pristine_git_object: fce3d0742de43f714ec40da747e6dcf7ff5e4075
|
||||||
|
src/openrouter/components/servertoolusedetails.py:
|
||||||
|
id: b681965db7f8
|
||||||
|
last_write_checksum: sha1:071f2fee04f80ccff9139c7909b4e3ed331fdb0c
|
||||||
|
pristine_git_object: 16ca66ee3f2402e06b9395a78be7def7da172e79
|
||||||
src/openrouter/components/serviceunavailableresponseerrordata.py:
|
src/openrouter/components/serviceunavailableresponseerrordata.py:
|
||||||
id: 606d51d201e8
|
id: 606d51d201e8
|
||||||
last_write_checksum: sha1:275a171422155df8447f1b250f0a8af61d266b68
|
last_write_checksum: sha1:275a171422155df8447f1b250f0a8af61d266b68
|
||||||
@@ -8854,8 +8858,8 @@ trackedFiles:
|
|||||||
pristine_git_object: a0491cc8fd3bd9986146cb1176e27d5b9c9beb60
|
pristine_git_object: a0491cc8fd3bd9986146cb1176e27d5b9c9beb60
|
||||||
src/openrouter/components/usage.py:
|
src/openrouter/components/usage.py:
|
||||||
id: 965ca6748bf6
|
id: 965ca6748bf6
|
||||||
last_write_checksum: sha1:712340f3df2194c53f37d0491e220296ad3c3dbd
|
last_write_checksum: sha1:ffc3d82f236daff144c71e0c48c201b428d3201a
|
||||||
pristine_git_object: 572d04f457607099ae7e041922de146de10e2eae
|
pristine_git_object: 09f7248804ba12bfbef924b934f57c34974d965b
|
||||||
src/openrouter/components/videogenerationrequest.py:
|
src/openrouter/components/videogenerationrequest.py:
|
||||||
id: 70e3c9ff288c
|
id: 70e3c9ff288c
|
||||||
last_write_checksum: sha1:5dfb79ba40785ce3a31b00f66b5fba956dca1f0d
|
last_write_checksum: sha1:5dfb79ba40785ce3a31b00f66b5fba956dca1f0d
|
||||||
@@ -11147,9 +11151,4 @@ examples:
|
|||||||
examplesVersion: 1.0.2
|
examplesVersion: 1.0.2
|
||||||
releaseNotes: |
|
releaseNotes: |
|
||||||
## Python SDK Changes:
|
## Python SDK Changes:
|
||||||
* `open_router.embeddings.list_models()`: `response.data[].pricing.overrides[]` **Changed**
|
* `open_router.beta.responses.send()`: `response` **Changed**
|
||||||
* `open_router.endpoints.list_zdr_endpoints()`: `response.data[].pricing.overrides[]` **Changed**
|
|
||||||
* `open_router.endpoints.list()`: `response.data.endpoints[].pricing.overrides[]` **Changed**
|
|
||||||
* `open_router.models.get()`: `response.data.pricing.overrides[]` **Changed**
|
|
||||||
* `open_router.models.list()`: `response.data[].pricing.overrides[]` **Changed**
|
|
||||||
* `open_router.models.list_for_user()`: `response.data[].pricing.overrides[]` **Changed**
|
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ generation:
|
|||||||
documentation: mintlify
|
documentation: mintlify
|
||||||
preApplyUnionDiscriminators: true
|
preApplyUnionDiscriminators: true
|
||||||
python:
|
python:
|
||||||
version: 0.11.29
|
version: 0.11.30
|
||||||
additionalDependencies:
|
additionalDependencies:
|
||||||
dev: {}
|
dev: {}
|
||||||
main: {}
|
main: {}
|
||||||
|
|||||||
+26
-18
@@ -5783,24 +5783,7 @@ components:
|
|||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
server_tool_use_details:
|
server_tool_use_details:
|
||||||
description: Usage for server-side tool execution (e.g., web search)
|
$ref: '#/components/schemas/ServerToolUseDetails'
|
||||||
nullable: true
|
|
||||||
properties:
|
|
||||||
tool_calls_executed:
|
|
||||||
description: Number of OpenRouter server tool calls that executed and produced a result
|
|
||||||
nullable: true
|
|
||||||
type: integer
|
|
||||||
tool_calls_requested:
|
|
||||||
description: >-
|
|
||||||
Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here.
|
|
||||||
nullable: true
|
|
||||||
type: integer
|
|
||||||
web_search_requests:
|
|
||||||
description: >-
|
|
||||||
Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two.
|
|
||||||
nullable: true
|
|
||||||
type: integer
|
|
||||||
type: object
|
|
||||||
total_tokens:
|
total_tokens:
|
||||||
description: Total number of tokens
|
description: Total number of tokens
|
||||||
type: integer
|
type: integer
|
||||||
@@ -20568,6 +20551,29 @@ components:
|
|||||||
example: medium
|
example: medium
|
||||||
type: string
|
type: string
|
||||||
x-speakeasy-unknown-values: allow
|
x-speakeasy-unknown-values: allow
|
||||||
|
ServerToolUseDetails:
|
||||||
|
description: Usage for server-side tool execution (e.g., web search)
|
||||||
|
example:
|
||||||
|
tool_calls_executed: 2
|
||||||
|
tool_calls_requested: 2
|
||||||
|
web_search_requests: 2
|
||||||
|
nullable: true
|
||||||
|
properties:
|
||||||
|
tool_calls_executed:
|
||||||
|
description: Number of OpenRouter server tool calls that executed and produced a result.
|
||||||
|
nullable: true
|
||||||
|
type: integer
|
||||||
|
tool_calls_requested:
|
||||||
|
description: >-
|
||||||
|
Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here.
|
||||||
|
nullable: true
|
||||||
|
type: integer
|
||||||
|
web_search_requests:
|
||||||
|
description: >-
|
||||||
|
Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two.
|
||||||
|
nullable: true
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
ServiceTier:
|
ServiceTier:
|
||||||
enum:
|
enum:
|
||||||
- auto
|
- auto
|
||||||
@@ -22847,6 +22853,8 @@ components:
|
|||||||
is_byok:
|
is_byok:
|
||||||
description: Whether a request was made using a Bring Your Own Key configuration
|
description: Whether a request was made using a Bring Your Own Key configuration
|
||||||
type: boolean
|
type: boolean
|
||||||
|
server_tool_use_details:
|
||||||
|
$ref: '#/components/schemas/ServerToolUseDetails'
|
||||||
type: object
|
type: object
|
||||||
description: Token usage information for the response
|
description: Token usage information for the response
|
||||||
example:
|
example:
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0
|
|||||||
sources:
|
sources:
|
||||||
OpenRouter API:
|
OpenRouter API:
|
||||||
sourceNamespace: open-router-chat-completions-api
|
sourceNamespace: open-router-chat-completions-api
|
||||||
sourceRevisionDigest: sha256:bd088c96e6b4db61858c4c25ba4a2276bd36fec50b25bc32d1121c7ab534afa4
|
sourceRevisionDigest: sha256:c6936e0c99ab2b3eb7457eff0cd75cbdb6c29db355e576ef66d79f8e1537ca61
|
||||||
sourceBlobDigest: sha256:bf34b1b3df01fa14f7be4166938bbbd81645bc8f1045b09e547c9f9fae84f890
|
sourceBlobDigest: sha256:24d9b45658f2838dd80fdea05a8ebb456d32fd16300e8e2f0f438aa54a8c91ee
|
||||||
tags:
|
tags:
|
||||||
- latest
|
- latest
|
||||||
- 1.0.0
|
- 1.0.0
|
||||||
@@ -11,10 +11,10 @@ targets:
|
|||||||
open-router:
|
open-router:
|
||||||
source: OpenRouter API
|
source: OpenRouter API
|
||||||
sourceNamespace: open-router-chat-completions-api
|
sourceNamespace: open-router-chat-completions-api
|
||||||
sourceRevisionDigest: sha256:bd088c96e6b4db61858c4c25ba4a2276bd36fec50b25bc32d1121c7ab534afa4
|
sourceRevisionDigest: sha256:c6936e0c99ab2b3eb7457eff0cd75cbdb6c29db355e576ef66d79f8e1537ca61
|
||||||
sourceBlobDigest: sha256:bf34b1b3df01fa14f7be4166938bbbd81645bc8f1045b09e547c9f9fae84f890
|
sourceBlobDigest: sha256:24d9b45658f2838dd80fdea05a8ebb456d32fd16300e8e2f0f438aa54a8c91ee
|
||||||
codeSamplesNamespace: open-router-python-code-samples
|
codeSamplesNamespace: open-router-python-code-samples
|
||||||
codeSamplesRevisionDigest: sha256:7273c5d01f944ef1d07660238a38770b6cf0bcf8fe421b90c142f70bd9182305
|
codeSamplesRevisionDigest: sha256:5ffb925a925219f8c5a35ef3f8eb6b82780cd36ac1a2246ae78f35213af457e4
|
||||||
workflow:
|
workflow:
|
||||||
workflowVersion: 1.0.0
|
workflowVersion: 1.0.0
|
||||||
speakeasyVersion: 1.787.0
|
speakeasyVersion: 1.787.0
|
||||||
|
|||||||
+11
-1
@@ -398,4 +398,14 @@ Based on:
|
|||||||
### Generated
|
### Generated
|
||||||
- [python v0.11.29] .
|
- [python v0.11.29] .
|
||||||
### Releases
|
### Releases
|
||||||
- [PyPI v0.11.29] https://pypi.org/project/openrouter/0.11.29 - .
|
- [PyPI v0.11.29] https://pypi.org/project/openrouter/0.11.29 - .
|
||||||
|
|
||||||
|
## 2026-07-14 17:49:24
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [python v0.11.30] .
|
||||||
|
### Releases
|
||||||
|
- [PyPI v0.11.30] https://pypi.org/project/openrouter/0.11.30 - .
|
||||||
@@ -16,5 +16,5 @@ Token usage statistics
|
|||||||
| `is_byok` | *Optional[bool]* | :heavy_minus_sign: | Whether a request was made using a Bring Your Own Key configuration | |
|
| `is_byok` | *Optional[bool]* | :heavy_minus_sign: | Whether a request was made using a Bring Your Own Key configuration | |
|
||||||
| `prompt_tokens` | *int* | :heavy_check_mark: | Number of tokens in the prompt | |
|
| `prompt_tokens` | *int* | :heavy_check_mark: | Number of tokens in the prompt | |
|
||||||
| `prompt_tokens_details` | [OptionalNullable[components.ChatUsagePromptTokensDetails]](../components/chatusageprompttokensdetails.mdx) | :heavy_minus_sign: | Detailed prompt token usage | |
|
| `prompt_tokens_details` | [OptionalNullable[components.ChatUsagePromptTokensDetails]](../components/chatusageprompttokensdetails.mdx) | :heavy_minus_sign: | Detailed prompt token usage | |
|
||||||
| `server_tool_use_details` | [OptionalNullable[components.ServerToolUseDetails]](../components/servertoolusedetails.mdx) | :heavy_minus_sign: | Usage for server-side tool execution (e.g., web search) | |
|
| `server_tool_use_details` | [OptionalNullable[components.ServerToolUseDetails]](../components/servertoolusedetails.mdx) | :heavy_minus_sign: | Usage for server-side tool execution (e.g., web search) | \{<br/>"tool_calls_executed": 2,<br/>"tool_calls_requested": 2,<br/>"web_search_requests": 2<br/>} |
|
||||||
| `total_tokens` | *int* | :heavy_check_mark: | Total number of tokens | |
|
| `total_tokens` | *int* | :heavy_check_mark: | Total number of tokens | |
|
||||||
@@ -9,6 +9,6 @@ Usage for server-side tool execution (e.g., web search)
|
|||||||
|
|
||||||
| Field | Type | Required | Description |
|
| Field | Type | Required | Description |
|
||||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `tool_calls_executed` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of OpenRouter server tool calls that executed and produced a result |
|
| `tool_calls_executed` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of OpenRouter server tool calls that executed and produced a result. |
|
||||||
| `tool_calls_requested` | *OptionalNullable[int]* | :heavy_minus_sign: | Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here. |
|
| `tool_calls_requested` | *OptionalNullable[int]* | :heavy_minus_sign: | Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here. |
|
||||||
| `web_search_requests` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two. |
|
| `web_search_requests` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two. |
|
||||||
+11
-10
@@ -7,13 +7,14 @@ Token usage information for the response
|
|||||||
|
|
||||||
## Fields
|
## Fields
|
||||||
|
|
||||||
| Field | Type | Required | Description |
|
| Field | Type | Required | Description | Example |
|
||||||
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||||
| `input_tokens` | *int* | :heavy_check_mark: | N/A |
|
| `input_tokens` | *int* | :heavy_check_mark: | N/A | |
|
||||||
| `input_tokens_details` | [components.InputTokensDetails](../components/inputtokensdetails.mdx) | :heavy_check_mark: | N/A |
|
| `input_tokens_details` | [components.InputTokensDetails](../components/inputtokensdetails.mdx) | :heavy_check_mark: | N/A | |
|
||||||
| `output_tokens` | *int* | :heavy_check_mark: | N/A |
|
| `output_tokens` | *int* | :heavy_check_mark: | N/A | |
|
||||||
| `output_tokens_details` | [components.OutputTokensDetails](../components/outputtokensdetails.mdx) | :heavy_check_mark: | N/A |
|
| `output_tokens_details` | [components.OutputTokensDetails](../components/outputtokensdetails.mdx) | :heavy_check_mark: | N/A | |
|
||||||
| `total_tokens` | *int* | :heavy_check_mark: | N/A |
|
| `total_tokens` | *int* | :heavy_check_mark: | N/A | |
|
||||||
| `cost` | *OptionalNullable[float]* | :heavy_minus_sign: | Cost of the completion |
|
| `cost` | *OptionalNullable[float]* | :heavy_minus_sign: | Cost of the completion | |
|
||||||
| `cost_details` | [Optional[components.UsageCostDetails]](../components/usagecostdetails.mdx) | :heavy_minus_sign: | N/A |
|
| `cost_details` | [Optional[components.UsageCostDetails]](../components/usagecostdetails.mdx) | :heavy_minus_sign: | N/A | |
|
||||||
| `is_byok` | *Optional[bool]* | :heavy_minus_sign: | Whether a request was made using a Bring Your Own Key configuration |
|
| `is_byok` | *Optional[bool]* | :heavy_minus_sign: | Whether a request was made using a Bring Your Own Key configuration | |
|
||||||
|
| `server_tool_use_details` | [OptionalNullable[components.ServerToolUseDetails]](../components/servertoolusedetails.mdx) | :heavy_minus_sign: | Usage for server-side tool execution (e.g., web search) | \{<br/>"tool_calls_executed": 2,<br/>"tool_calls_requested": 2,<br/>"web_search_requests": 2<br/>} |
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "openrouter"
|
name = "openrouter"
|
||||||
version = "0.11.29"
|
version = "0.11.30"
|
||||||
description = "Official Python Client SDK for OpenRouter."
|
description = "Official Python Client SDK for OpenRouter."
|
||||||
authors = [{ name = "OpenRouter" },]
|
authors = [{ name = "OpenRouter" },]
|
||||||
readme = "README-PYPI.md"
|
readme = "README-PYPI.md"
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
import importlib.metadata
|
import importlib.metadata
|
||||||
|
|
||||||
__title__: str = "openrouter"
|
__title__: str = "openrouter"
|
||||||
__version__: str = "0.11.29"
|
__version__: str = "0.11.30"
|
||||||
__openapi_doc_version__: str = "1.0.0"
|
__openapi_doc_version__: str = "1.0.0"
|
||||||
__gen_version__: str = "2.914.0"
|
__gen_version__: str = "2.914.0"
|
||||||
__user_agent__: str = "speakeasy-sdk/python 0.11.29 2.914.0 1.0.0 openrouter"
|
__user_agent__: str = "speakeasy-sdk/python 0.11.30 2.914.0 1.0.0 openrouter"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if __package__ is not None:
|
if __package__ is not None:
|
||||||
|
|||||||
@@ -611,8 +611,6 @@ if TYPE_CHECKING:
|
|||||||
ChatUsagePromptTokensDetails,
|
ChatUsagePromptTokensDetails,
|
||||||
ChatUsagePromptTokensDetailsTypedDict,
|
ChatUsagePromptTokensDetailsTypedDict,
|
||||||
ChatUsageTypedDict,
|
ChatUsageTypedDict,
|
||||||
ServerToolUseDetails,
|
|
||||||
ServerToolUseDetailsTypedDict,
|
|
||||||
)
|
)
|
||||||
from .chatusermessage import (
|
from .chatusermessage import (
|
||||||
ChatUserMessage,
|
ChatUserMessage,
|
||||||
@@ -2423,6 +2421,10 @@ if TYPE_CHECKING:
|
|||||||
)
|
)
|
||||||
from .searchqualitylevel import SearchQualityLevel
|
from .searchqualitylevel import SearchQualityLevel
|
||||||
from .security import Security, SecurityTypedDict
|
from .security import Security, SecurityTypedDict
|
||||||
|
from .servertoolusedetails import (
|
||||||
|
ServerToolUseDetails,
|
||||||
|
ServerToolUseDetailsTypedDict,
|
||||||
|
)
|
||||||
from .serviceunavailableresponseerrordata import (
|
from .serviceunavailableresponseerrordata import (
|
||||||
ServiceUnavailableResponseErrorData,
|
ServiceUnavailableResponseErrorData,
|
||||||
ServiceUnavailableResponseErrorDataTypedDict,
|
ServiceUnavailableResponseErrorDataTypedDict,
|
||||||
@@ -5331,8 +5333,6 @@ _dynamic_imports: dict[str, str] = {
|
|||||||
"ChatUsagePromptTokensDetails": ".chatusage",
|
"ChatUsagePromptTokensDetails": ".chatusage",
|
||||||
"ChatUsagePromptTokensDetailsTypedDict": ".chatusage",
|
"ChatUsagePromptTokensDetailsTypedDict": ".chatusage",
|
||||||
"ChatUsageTypedDict": ".chatusage",
|
"ChatUsageTypedDict": ".chatusage",
|
||||||
"ServerToolUseDetails": ".chatusage",
|
|
||||||
"ServerToolUseDetailsTypedDict": ".chatusage",
|
|
||||||
"ChatUserMessage": ".chatusermessage",
|
"ChatUserMessage": ".chatusermessage",
|
||||||
"ChatUserMessageContent": ".chatusermessage",
|
"ChatUserMessageContent": ".chatusermessage",
|
||||||
"ChatUserMessageContentTypedDict": ".chatusermessage",
|
"ChatUserMessageContentTypedDict": ".chatusermessage",
|
||||||
@@ -6709,6 +6709,8 @@ _dynamic_imports: dict[str, str] = {
|
|||||||
"SearchQualityLevel": ".searchqualitylevel",
|
"SearchQualityLevel": ".searchqualitylevel",
|
||||||
"Security": ".security",
|
"Security": ".security",
|
||||||
"SecurityTypedDict": ".security",
|
"SecurityTypedDict": ".security",
|
||||||
|
"ServerToolUseDetails": ".servertoolusedetails",
|
||||||
|
"ServerToolUseDetailsTypedDict": ".servertoolusedetails",
|
||||||
"ServiceUnavailableResponseErrorData": ".serviceunavailableresponseerrordata",
|
"ServiceUnavailableResponseErrorData": ".serviceunavailableresponseerrordata",
|
||||||
"ServiceUnavailableResponseErrorDataTypedDict": ".serviceunavailableresponseerrordata",
|
"ServiceUnavailableResponseErrorDataTypedDict": ".serviceunavailableresponseerrordata",
|
||||||
"ShellCallItem": ".shellcallitem",
|
"ShellCallItem": ".shellcallitem",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from .costdetails import CostDetails, CostDetailsTypedDict
|
from .costdetails import CostDetails, CostDetailsTypedDict
|
||||||
|
from .servertoolusedetails import ServerToolUseDetails, ServerToolUseDetailsTypedDict
|
||||||
from openrouter.types import (
|
from openrouter.types import (
|
||||||
BaseModel,
|
BaseModel,
|
||||||
Nullable,
|
Nullable,
|
||||||
@@ -129,59 +130,6 @@ class ChatUsagePromptTokensDetails(BaseModel):
|
|||||||
return m
|
return m
|
||||||
|
|
||||||
|
|
||||||
class ServerToolUseDetailsTypedDict(TypedDict):
|
|
||||||
r"""Usage for server-side tool execution (e.g., web search)"""
|
|
||||||
|
|
||||||
tool_calls_executed: NotRequired[Nullable[int]]
|
|
||||||
r"""Number of OpenRouter server tool calls that executed and produced a result"""
|
|
||||||
tool_calls_requested: NotRequired[Nullable[int]]
|
|
||||||
r"""Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here."""
|
|
||||||
web_search_requests: NotRequired[Nullable[int]]
|
|
||||||
r"""Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two."""
|
|
||||||
|
|
||||||
|
|
||||||
class ServerToolUseDetails(BaseModel):
|
|
||||||
r"""Usage for server-side tool execution (e.g., web search)"""
|
|
||||||
|
|
||||||
tool_calls_executed: OptionalNullable[int] = UNSET
|
|
||||||
r"""Number of OpenRouter server tool calls that executed and produced a result"""
|
|
||||||
|
|
||||||
tool_calls_requested: OptionalNullable[int] = UNSET
|
|
||||||
r"""Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here."""
|
|
||||||
|
|
||||||
web_search_requests: OptionalNullable[int] = UNSET
|
|
||||||
r"""Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two."""
|
|
||||||
|
|
||||||
@model_serializer(mode="wrap")
|
|
||||||
def serialize_model(self, handler):
|
|
||||||
optional_fields = set(
|
|
||||||
["tool_calls_executed", "tool_calls_requested", "web_search_requests"]
|
|
||||||
)
|
|
||||||
nullable_fields = set(
|
|
||||||
["tool_calls_executed", "tool_calls_requested", "web_search_requests"]
|
|
||||||
)
|
|
||||||
serialized = handler(self)
|
|
||||||
m = {}
|
|
||||||
|
|
||||||
for n, f in type(self).model_fields.items():
|
|
||||||
k = f.alias or n
|
|
||||||
val = serialized.get(k, serialized.get(n))
|
|
||||||
is_nullable_and_explicitly_set = (
|
|
||||||
k in nullable_fields
|
|
||||||
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
||||||
)
|
|
||||||
|
|
||||||
if val != UNSET_SENTINEL:
|
|
||||||
if (
|
|
||||||
val is not None
|
|
||||||
or k not in optional_fields
|
|
||||||
or is_nullable_and_explicitly_set
|
|
||||||
):
|
|
||||||
m[k] = val
|
|
||||||
|
|
||||||
return m
|
|
||||||
|
|
||||||
|
|
||||||
class ChatUsageTypedDict(TypedDict):
|
class ChatUsageTypedDict(TypedDict):
|
||||||
r"""Token usage statistics"""
|
r"""Token usage statistics"""
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
from openrouter.types import (
|
||||||
|
BaseModel,
|
||||||
|
Nullable,
|
||||||
|
OptionalNullable,
|
||||||
|
UNSET,
|
||||||
|
UNSET_SENTINEL,
|
||||||
|
)
|
||||||
|
from pydantic import model_serializer
|
||||||
|
from typing_extensions import NotRequired, TypedDict
|
||||||
|
|
||||||
|
|
||||||
|
class ServerToolUseDetailsTypedDict(TypedDict):
|
||||||
|
r"""Usage for server-side tool execution (e.g., web search)"""
|
||||||
|
|
||||||
|
tool_calls_executed: NotRequired[Nullable[int]]
|
||||||
|
r"""Number of OpenRouter server tool calls that executed and produced a result."""
|
||||||
|
tool_calls_requested: NotRequired[Nullable[int]]
|
||||||
|
r"""Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here."""
|
||||||
|
web_search_requests: NotRequired[Nullable[int]]
|
||||||
|
r"""Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two."""
|
||||||
|
|
||||||
|
|
||||||
|
class ServerToolUseDetails(BaseModel):
|
||||||
|
r"""Usage for server-side tool execution (e.g., web search)"""
|
||||||
|
|
||||||
|
tool_calls_executed: OptionalNullable[int] = UNSET
|
||||||
|
r"""Number of OpenRouter server tool calls that executed and produced a result."""
|
||||||
|
|
||||||
|
tool_calls_requested: OptionalNullable[int] = UNSET
|
||||||
|
r"""Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here."""
|
||||||
|
|
||||||
|
web_search_requests: OptionalNullable[int] = UNSET
|
||||||
|
r"""Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two."""
|
||||||
|
|
||||||
|
@model_serializer(mode="wrap")
|
||||||
|
def serialize_model(self, handler):
|
||||||
|
optional_fields = set(
|
||||||
|
["tool_calls_executed", "tool_calls_requested", "web_search_requests"]
|
||||||
|
)
|
||||||
|
nullable_fields = set(
|
||||||
|
["tool_calls_executed", "tool_calls_requested", "web_search_requests"]
|
||||||
|
)
|
||||||
|
serialized = handler(self)
|
||||||
|
m = {}
|
||||||
|
|
||||||
|
for n, f in type(self).model_fields.items():
|
||||||
|
k = f.alias or n
|
||||||
|
val = serialized.get(k, serialized.get(n))
|
||||||
|
is_nullable_and_explicitly_set = (
|
||||||
|
k in nullable_fields
|
||||||
|
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
||||||
|
)
|
||||||
|
|
||||||
|
if val != UNSET_SENTINEL:
|
||||||
|
if (
|
||||||
|
val is not None
|
||||||
|
or k not in optional_fields
|
||||||
|
or is_nullable_and_explicitly_set
|
||||||
|
):
|
||||||
|
m[k] = val
|
||||||
|
|
||||||
|
return m
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
from .servertoolusedetails import ServerToolUseDetails, ServerToolUseDetailsTypedDict
|
||||||
from openrouter.types import (
|
from openrouter.types import (
|
||||||
BaseModel,
|
BaseModel,
|
||||||
Nullable,
|
Nullable,
|
||||||
@@ -109,6 +110,8 @@ class UsageTypedDict(TypedDict):
|
|||||||
cost_details: NotRequired[UsageCostDetailsTypedDict]
|
cost_details: NotRequired[UsageCostDetailsTypedDict]
|
||||||
is_byok: NotRequired[bool]
|
is_byok: NotRequired[bool]
|
||||||
r"""Whether a request was made using a Bring Your Own Key configuration"""
|
r"""Whether a request was made using a Bring Your Own Key configuration"""
|
||||||
|
server_tool_use_details: NotRequired[Nullable[ServerToolUseDetailsTypedDict]]
|
||||||
|
r"""Usage for server-side tool execution (e.g., web search)"""
|
||||||
|
|
||||||
|
|
||||||
class Usage(BaseModel):
|
class Usage(BaseModel):
|
||||||
@@ -132,10 +135,15 @@ class Usage(BaseModel):
|
|||||||
is_byok: Optional[bool] = None
|
is_byok: Optional[bool] = None
|
||||||
r"""Whether a request was made using a Bring Your Own Key configuration"""
|
r"""Whether a request was made using a Bring Your Own Key configuration"""
|
||||||
|
|
||||||
|
server_tool_use_details: OptionalNullable[ServerToolUseDetails] = UNSET
|
||||||
|
r"""Usage for server-side tool execution (e.g., web search)"""
|
||||||
|
|
||||||
@model_serializer(mode="wrap")
|
@model_serializer(mode="wrap")
|
||||||
def serialize_model(self, handler):
|
def serialize_model(self, handler):
|
||||||
optional_fields = set(["cost", "cost_details", "is_byok"])
|
optional_fields = set(
|
||||||
nullable_fields = set(["cost"])
|
["cost", "cost_details", "is_byok", "server_tool_use_details"]
|
||||||
|
)
|
||||||
|
nullable_fields = set(["cost", "server_tool_use_details"])
|
||||||
serialized = handler(self)
|
serialized = handler(self)
|
||||||
m = {}
|
m = {}
|
||||||
|
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openrouter"
|
name = "openrouter"
|
||||||
version = "0.11.29"
|
version = "0.11.30"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "httpcore" },
|
{ name = "httpcore" },
|
||||||
|
|||||||
Reference in New Issue
Block a user