chore: 🐝 Update SDK - Generate (spec change merged) 0.11.25 (#438)

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:
github-actions[bot]
2026-07-13 19:22:44 +00:00
committed by GitHub
co-authored by speakeasybot speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
parent 68b867f65c
commit 4d598caab2
27 changed files with 1101 additions and 772 deletions
+71 -49
View File
@@ -1,19 +1,19 @@
lockVersion: 2.0.0
id: c48cf606-fb42-4a45-9c23-8f0555307828
management:
docChecksum: 992dd7bf5d636d875da8e17e4faaed29
docChecksum: a444511ee53d41b62d62b2d23ddd3b64
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
releaseVersion: 0.11.24
configChecksum: b26850041dd0457b248bd1e3bb936fa6
releaseVersion: 0.11.25
configChecksum: b10f43281932fd64b0c43f8577a40816
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
generation_id: d85ca6f5-dca8-4c80-9b34-a859642d0dd5
pristine_commit_hash: d8a45b3c5aa026db485cc892cce4ce59f9b2d9e3
pristine_tree_hash: cb0f77756ac02a67faf406ee499b1f9ea70061f0
generation_id: 554b7889-8ccd-4aef-a14b-c347df957007
pristine_commit_hash: 95be3ea8a18d40e9df231449f23161356fdfd5ff
pristine_tree_hash: e9b22615b85a97ffd1078604414fc174d55b227f
features:
python:
acceptHeaders: 3.0.0
@@ -2084,10 +2084,6 @@ trackedFiles:
id: ccedea0ab250
last_write_checksum: sha1:08342a9cceb4f7a5dc0b574a429d46af9d9a13f4
pristine_git_object: 9e0a058e6a19b68f470eb0938670dff51b47f4b5
docs/components/ignore.mdx:
id: 2714aa9d51d7
last_write_checksum: sha1:fd8114687442350261ba507cd41d1f0ebb067928
pristine_git_object: 8ba131528ef679ebd2880be85b7732ad5a078174
docs/components/imageconfig.mdx:
id: 455a9f530ea8
last_write_checksum: sha1:3ec5e8ac11e823479e41115da31aae29d2a1cbd3
@@ -2136,10 +2132,34 @@ trackedFiles:
id: dd9998bc9093
last_write_checksum: sha1:a7d7c52d0a7c5128a40fd9f1524e8b6f372a9061
pristine_git_object: df5a9a53d2ea20bb548913c902b0bffdf2dc5d15
docs/components/imagegenerationproviderpreferences.mdx:
id: 96067cea4257
last_write_checksum: sha1:63f1caa2d78a1e1d32c1222e8275155417e7e87f
pristine_git_object: b98f786f64edd693499cd395774d60fca698aa85
docs/components/imagegenerationproviderpreferencesignore.mdx:
id: 0c7b1553ce53
last_write_checksum: sha1:6d55c341ed1a68b8656b8b4564794941881b3487
pristine_git_object: 5f20d5e467c508d7814a43897a4ae35e907b0740
docs/components/imagegenerationproviderpreferencesonly.mdx:
id: c8343461ec27
last_write_checksum: sha1:8e2ed740ce1cf64959b7732c12bf664f5cc4a8f3
pristine_git_object: 11f1471c8b6c04f52af89d74d6dec2e9d12c2d82
docs/components/imagegenerationproviderpreferencesoptions.mdx:
id: 32d5c4b3e06b
last_write_checksum: sha1:2e7bf9676997ff8ee9a42928a7f236a7870023bb
pristine_git_object: 15d1f0fccbd55826da587a1224021132c9731d6e
docs/components/imagegenerationproviderpreferencesorder.mdx:
id: 0547877073f3
last_write_checksum: sha1:3e890c691097373cc9a2d7e47c3594f56b57809c
pristine_git_object: 3125f8b2ec3ee98a992c7397978917d47e1043cd
docs/components/imagegenerationproviderpreferencessort.mdx:
id: ce43ddb42deb
last_write_checksum: sha1:acd4609eea738b06a6252ee2ea0a4621eeaad2bd
pristine_git_object: 7696bf5f4a2c4a1f05e148513b70fe96b2f948a8
docs/components/imagegenerationrequest.mdx:
id: b093cb0f5e81
last_write_checksum: sha1:4a0e2091a23f660c3e706c0e695504fb090e94d1
pristine_git_object: f9b74f407b1fbc065f271341d42c94142b2e2503
last_write_checksum: sha1:1bccab895149605ba994e84b202c1f7b50c6ccb2
pristine_git_object: 36805ca3350396bfded85776a3fe88e268ca0a35
docs/components/imagegenerationrequestaspectratio.mdx:
id: bda89377f32d
last_write_checksum: sha1:9cc231ee222c01ce471ecff3804a9e5acb8a054f
@@ -2148,18 +2168,10 @@ trackedFiles:
id: cab3c6c6dfc6
last_write_checksum: sha1:ea6f2fa5f8f63600e2d1a67a784e6a93cf295975
pristine_git_object: 8501680bcfebabb3af52b518c01f732d18282120
docs/components/imagegenerationrequestoptions.mdx:
id: 2245ece0aaf8
last_write_checksum: sha1:feec51e178c169d3550ef010a94c69c16e137afc
pristine_git_object: 39c52366e3516de4554c93613d8bbbc8b64a8a5a
docs/components/imagegenerationrequestoutputformat.mdx:
id: 380f12bf77bd
last_write_checksum: sha1:afb479dc34118828e988888a8f49e7a5a50a45ab
pristine_git_object: 4901416246fb4e34fc9227d3dc0bbbc08aa717e2
docs/components/imagegenerationrequestprovider.mdx:
id: 8b592ddbab98
last_write_checksum: sha1:c67183fc76f6e46530829fc5b85b8c164a4c2557
pristine_git_object: 51188d0f86b2208ae9dc3d797ce3595961162602
docs/components/imagegenerationrequestquality.mdx:
id: 7699c7fce91f
last_write_checksum: sha1:e0c8abee1332b182aeb1228b9c7a7f4cec83e99b
@@ -3112,10 +3124,6 @@ trackedFiles:
id: 35262d81b0a1
last_write_checksum: sha1:53220ed66cf059d9f06df81b7f5bb0f2d87f5283
pristine_git_object: bf3c27b8d2da352bd80bb18179159839e69b9b0a
docs/components/only.mdx:
id: cee5f91a1c3b
last_write_checksum: sha1:abccbc4844ea73ff3641b1aa2a98bdfaebf8d216
pristine_git_object: cc284e22005d61c156fac73624aee6ead3c1e9eb
docs/components/openairesponsecustomtoolcall.mdx:
id: 090c07768006
last_write_checksum: sha1:34b7e423654fb097e3420b2fa3ef010f15821796
@@ -3320,10 +3328,6 @@ trackedFiles:
id: f88a0ae3ee7d
last_write_checksum: sha1:196dfc00e44fa232c6e4f0f496f265a163ffe66b
pristine_git_object: b4df5fb4757522576e8452d88f22499cee204278
docs/components/order.mdx:
id: ae1a6aab00d6
last_write_checksum: sha1:efc73cd83c8f4e0095ba6901df6dc95349b822a2
pristine_git_object: edc1ffcd263a4fffa0d4d5b7da1e2c0315a61cb8
docs/components/outcome.mdx:
id: dc555505ef36
last_write_checksum: sha1:5e99185f9d49f3f404ca4e54ef84d0cdbf31546c
@@ -3918,8 +3922,24 @@ trackedFiles:
pristine_git_object: 05bcfceecf3e74def73684391a76fa68829271a3
docs/components/providerpreferences.mdx:
id: adbdfaa46438
last_write_checksum: sha1:d0f7b534fbaed359e2f2abd736bd669367371462
pristine_git_object: 750d3a21ada3133dba71217f0444c2064b2ff081
last_write_checksum: sha1:26ef79be79d733e12a89acc7687ccbd87ebc2f2e
pristine_git_object: a312c6f654c101959c3f182c268556c01e578a40
docs/components/providerpreferencesignore.mdx:
id: e0455b31c87b
last_write_checksum: sha1:823f56c785a5c80949105fc0f4297a5b0ff2c2b2
pristine_git_object: 77ecc57935ce0edf477099eac9550490515be515
docs/components/providerpreferencesonly.mdx:
id: a72941ff2735
last_write_checksum: sha1:614acb6d266ffd00b1f4f0b7fb4ab6cee551bc96
pristine_git_object: a6e0692f2fe4e5f87d3816797118dd19f0ebd480
docs/components/providerpreferencesorder.mdx:
id: a1fce55fe271
last_write_checksum: sha1:ccbc5120235aa6a8c3aefe791a49bf1539bde74f
pristine_git_object: b9fce30d460f0ed187b5c81225d41c8f4217d1e8
docs/components/providerpreferencessort.mdx:
id: 64d54fd9ff0b
last_write_checksum: sha1:4eb43e63950c0481fae29816afe807226bdda4ea
pristine_git_object: 72d68077694236233f2bde5d65959b550210a20d
docs/components/providerresponse.mdx:
id: 36e1a24f90b6
last_write_checksum: sha1:512adc6bd7e7854ce01d5e5c46ce76b26a1b1174
@@ -4364,10 +4384,6 @@ trackedFiles:
id: b35cae5eacec
last_write_checksum: sha1:6865169ff4445d70d63c674092812b47236f213f
pristine_git_object: 1c0dd3c44cfce8b531e7d89e3db6b2787f060984
docs/components/sort.mdx:
id: 2423f4a05690
last_write_checksum: sha1:3443886b2481e8685a1c390530dfd7b763d9f237
pristine_git_object: b12340f49cd6973329dc305d88b7190bcb5c163b
docs/components/sourcecontent.mdx:
id: d211413b56ad
last_write_checksum: sha1:e9ec235c28760da429e35fea006321e7a697e5c4
@@ -6586,8 +6602,8 @@ trackedFiles:
pristine_git_object: 52efbd96250f06588fea44689bed93f27f2e0230
docs/sdks/images/README.mdx:
id: 534a6c102c4f
last_write_checksum: sha1:eb919a70e20e9bde335ff1e8ae52ba0a309ca5c3
pristine_git_object: 8277c7710decc3ee152c7fe725c90bac9784800a
last_write_checksum: sha1:1c0a9c704bdd9090f5a0a74f4d9ae0c4360707bb
pristine_git_object: 4b3508543942b711f2d74df5436748e1815619e2
docs/sdks/models/README.mdx:
id: 58f1ca464e0b
last_write_checksum: sha1:90e4f262bc449464226d1d83c731709e3352bbb1
@@ -6642,8 +6658,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
last_write_checksum: sha1:451a4be23fc081294b962e2bc0c6f0dbae2c43ab
pristine_git_object: 88b38af4fdfc0341a41fae784c7c78c1137e00a3
last_write_checksum: sha1:ecba4ec7fe5c538617fb6e42582204ae5711d106
pristine_git_object: 6804383f389474f6b72740ce0a281ba45ed8251d
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -6670,8 +6686,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
last_write_checksum: sha1:5a4d07dc0be8788ed4abef1a2b48b18cdaa1afb1
pristine_git_object: e328286d4babd45c447a377612162c30d1220393
last_write_checksum: sha1:a776602f2cf82d2f44e51bbbd69dfeee7a7f46f3
pristine_git_object: d272f6c0b2f426b678e025f6181287b08ea995ed
src/openrouter/analytics.py:
id: cb406b5aaabb
last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841
@@ -6710,8 +6726,8 @@ trackedFiles:
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
src/openrouter/components/__init__.py:
id: 81754e97b3f4
last_write_checksum: sha1:1d909d376196542b7bd1a320346e7bbda7cb5f48
pristine_git_object: 1f755537449f9869a6c5e548ae39bdb03b8f777f
last_write_checksum: sha1:045cf74eb4e03399ac8521ff3db0a2ed9f33b002
pristine_git_object: 43900430f099cab065756d44e23f9c4118c99180
src/openrouter/components/aabenchmarkentry.py:
id: e2e0f0b48c82
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
@@ -7660,10 +7676,14 @@ trackedFiles:
id: 7a791a02cb5b
last_write_checksum: sha1:497f9be381527fd1ee961450a2364a898dba875b
pristine_git_object: 6b9a8990973466285f9b49b366bbc5fc1ae42e41
src/openrouter/components/imagegenerationproviderpreferences.py:
id: 100a82a54e2d
last_write_checksum: sha1:63973ed1d6c151ffdb2977626461d911ca8869b4
pristine_git_object: 692420fd5cf21e77ff5caad6dc34995710cb734c
src/openrouter/components/imagegenerationrequest.py:
id: f8291a7be9a0
last_write_checksum: sha1:348c6aa7d1b7a02694e44396e51ab56e20853bb9
pristine_git_object: 9866560ee4d4d61c0bec89e276bb0a39f6d215ad
last_write_checksum: sha1:48a9640c0b9f48833d5514c7671bfa4b76aac776
pristine_git_object: 9f5f9caf2d762e3db6affdd2aa20612978821dee
src/openrouter/components/imagegenerationresponse.py:
id: 53354cd0cbfc
last_write_checksum: sha1:53f1cde7b8bfe4f9e786a76f6e57b0a1f76aced2
@@ -8350,8 +8370,8 @@ trackedFiles:
pristine_git_object: c85a381a5f596fcbc2e3e599a65e8d03d62fabcd
src/openrouter/components/providerpreferences.py:
id: cdd58c8d664d
last_write_checksum: sha1:381d12826558a405f980ca338413e472296c12a2
pristine_git_object: abbb3cb3d7d8946aabdbd5e6b07b2e45954f6948
last_write_checksum: sha1:93405c39357e66bfe8cb60010622a884122b9197
pristine_git_object: 2d44eabbe3200d884a5e01589732570d3a3ab7e1
src/openrouter/components/providerresponse.py:
id: ad3887be54c5
last_write_checksum: sha1:b8868ce7950808be5b37e964607abab8348e2ab6
@@ -9046,8 +9066,8 @@ trackedFiles:
pristine_git_object: 89560b566073785535643e694c112bedbd3db13d
src/openrouter/images.py:
id: c4d7adf63ae0
last_write_checksum: sha1:2237619daf56a48c3ee0c8980178d36443ca1b13
pristine_git_object: b7a120ad3562280aab790be56cbf482286fe40b4
last_write_checksum: sha1:277721bb6c89aabdc3fd5b8bbb73b9dc6e98d2f9
pristine_git_object: 8a3080f7b51f197bb357e5e264b173d230b1f293
src/openrouter/models/__init__.py:
id: ed73b93abb3f
last_write_checksum: sha1:932a790ae66ccd7d7022b39c659bcf72a664ebea
@@ -11109,4 +11129,6 @@ examples:
"500":
application/json: {"error": {"code": 500, "message": "Internal Server Error"}}
examplesVersion: 1.0.2
releaseNotes: "## Python SDK Changes:\n* `open_router.beta.responses.send()`: \n * `request.input.union(Array<>)[].union(AdditionalToolsItem).tools[]` **Changed** (Breaking ⚠️)\n* `open_router.presets.create_presets_responses()`: \n * `request.input.union(Array<>)[].union(AdditionalToolsItem).tools[]` **Changed** (Breaking ⚠️)\n* `open_router.presets.create_presets_messages()`: \n * `request.tools[]` **Changed** (Breaking ⚠️)\n* `open_router.models.list()`: \n * `request` **Changed**\n * `response` **Changed**\n* `open_router.observability.list()`: `request` **Changed**\n* `open_router.guardrails.list_guardrail_member_assignments()`: `request` **Changed**\n* `open_router.guardrails.list_key_assignments()`: `request` **Changed**\n* `open_router.guardrails.list_member_assignments()`: `request` **Changed**\n* `open_router.guardrails.list()`: `request` **Changed**\n* `open_router.models.list_for_user()`: \n * `request` **Changed**\n * `response` **Changed**\n* `open_router.guardrails.list_guardrail_key_assignments()`: `request` **Changed**\n* `open_router.organization.list_members()`: `request` **Changed**\n* `open_router.presets.list()`: `request` **Changed**\n* `open_router.embeddings.list_models()`: \n * `request` **Changed**\n * `response` **Changed**\n* `open_router.byok.list()`: `request` **Changed**\n* `open_router.presets.list_versions()`: `request` **Changed**\n* `open_router.workspaces.list()`: `request` **Changed**\n* `open_router.workspaces.list_members()`: `request` **Changed**\n"
releaseNotes: |
## Python SDK Changes:
* `open_router.images.generate()`: `request.provider` **Changed**
+1 -1
View File
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
version: 0.11.24
version: 0.11.25
additionalDependencies:
dev: {}
main: {}
+70 -10
View File
@@ -9590,6 +9590,75 @@ components:
- b64_json
- created
type: object
ImageGenerationProviderPreferences:
description: Provider routing preferences and provider-specific passthrough configuration.
example:
allow_fallbacks: false
only:
- google-ai-studio
properties:
allow_fallbacks:
description: >
Whether to allow backup providers to serve requests
- true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the next best provider.
- false: use only the primary/custom provider, and return the upstream error if it's unavailable.
nullable: true
type: boolean
ignore:
description: >-
List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request.
example:
- openai
- anthropic
items:
anyOf:
- $ref: '#/components/schemas/ProviderName'
- type: string
nullable: true
type: array
only:
description: >-
List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request.
example:
- openai
- anthropic
items:
anyOf:
- $ref: '#/components/schemas/ProviderName'
- type: string
nullable: true
type: array
options:
allOf:
- $ref: '#/components/schemas/ProviderOptions'
- example:
black-forest-labs:
guidance: 3
steps: 40
order:
description: >-
An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message.
example:
- openai
- anthropic
items:
anyOf:
- $ref: '#/components/schemas/ProviderName'
- type: string
nullable: true
type: array
sort:
anyOf:
- $ref: '#/components/schemas/ProviderSort'
- $ref: '#/components/schemas/ProviderSortConfig'
- nullable: true
description: >-
The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed.
example: price
type: object
ImageGenerationRequest:
description: Image generation request input
example:
@@ -9668,16 +9737,7 @@ components:
minLength: 1
type: string
provider:
description: Provider-specific passthrough configuration
properties:
options:
allOf:
- $ref: '#/components/schemas/ProviderOptions'
- example:
black-forest-labs:
guidance: 3
steps: 40
type: object
$ref: '#/components/schemas/ImageGenerationProviderPreferences'
quality:
description: Rendering quality. Providers without a quality knob ignore this.
enum:
+5 -5
View File
@@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0
sources:
OpenRouter API:
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:aa9148968ef9a66307aca31b047a12fb8a955aa957482a3b06a582537f259cb4
sourceBlobDigest: sha256:ac0a0e1f34d3f5e342c3ba497bf58ea2d83107f59302dd2c399a70116dfe8845
sourceRevisionDigest: sha256:c4b604e524d65fc80cad85d0620c391b70d087ed384bbb1ed03166267524ec3d
sourceBlobDigest: sha256:59fc42341a3b4ae0f2344e88df306b70fb85b526e84e1c274c006afb7d99153b
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
sourceRevisionDigest: sha256:aa9148968ef9a66307aca31b047a12fb8a955aa957482a3b06a582537f259cb4
sourceBlobDigest: sha256:ac0a0e1f34d3f5e342c3ba497bf58ea2d83107f59302dd2c399a70116dfe8845
sourceRevisionDigest: sha256:c4b604e524d65fc80cad85d0620c391b70d087ed384bbb1ed03166267524ec3d
sourceBlobDigest: sha256:59fc42341a3b4ae0f2344e88df306b70fb85b526e84e1c274c006afb7d99153b
codeSamplesNamespace: open-router-python-code-samples
codeSamplesRevisionDigest: sha256:252d3909d3f6fce4c2605924214b126af1fe4c3162dd52ba9cf9ad32ddd7dbda
codeSamplesRevisionDigest: sha256:b959c03fc95af18ab71b3e8edc54d3a74d06d0a3f0d786576f3ab1a1c049cdd0
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
+11 -1
View File
@@ -348,4 +348,14 @@ Based on:
### Generated
- [python v0.11.24] .
### Releases
- [PyPI v0.11.24] https://pypi.org/project/openrouter/0.11.24 - .
- [PyPI v0.11.24] https://pypi.org/project/openrouter/0.11.24 - .
## 2026-07-13 19:18:28
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.11.25] .
### Releases
- [PyPI v0.11.25] https://pypi.org/project/openrouter/0.11.25 - .
@@ -0,0 +1,17 @@
---
title: "ImageGenerationProviderPreferences"
---
Provider routing preferences and provider-specific passthrough configuration.
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `allow_fallbacks` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether to allow backup providers to serve requests<br/>- true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the next best provider.<br/>- false: use only the primary/custom provider, and return the upstream error if it's unavailable.<br/> | |
| `ignore` | List[[components.ImageGenerationProviderPreferencesIgnore](../components/imagegenerationproviderpreferencesignore.mdx)] | :heavy_minus_sign: | List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `only` | List[[components.ImageGenerationProviderPreferencesOnly](../components/imagegenerationproviderpreferencesonly.mdx)] | :heavy_minus_sign: | List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `options` | [Optional[components.ImageGenerationProviderPreferencesOptions]](../components/imagegenerationproviderpreferencesoptions.mdx) | :heavy_minus_sign: | N/A | \{<br/>"black-forest-labs": \{<br/>"guidance": 3,<br/>"steps": 40<br/>}<br/>} |
| `order` | List[[components.ImageGenerationProviderPreferencesOrder](../components/imagegenerationproviderpreferencesorder.mdx)] | :heavy_minus_sign: | An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `sort` | [OptionalNullable[components.ImageGenerationProviderPreferencesSort]](../components/imagegenerationproviderpreferencessort.mdx) | :heavy_minus_sign: | The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed. | price |
@@ -0,0 +1,18 @@
---
title: "ImageGenerationProviderPreferencesIgnore"
---
## Supported Types
### `components.ProviderName`
```python
value: components.ProviderName = /* values here */
```
### `str`
```python
value: str = /* values here */
```
@@ -0,0 +1,18 @@
---
title: "ImageGenerationProviderPreferencesOnly"
---
## Supported Types
### `components.ProviderName`
```python
value: components.ProviderName = /* values here */
```
### `str`
```python
value: str = /* values here */
```
@@ -1,5 +1,5 @@
---
title: "ImageGenerationRequestOptions"
title: "ImageGenerationProviderPreferencesOptions"
---
Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.
@@ -0,0 +1,18 @@
---
title: "ImageGenerationProviderPreferencesOrder"
---
## Supported Types
### `components.ProviderName`
```python
value: components.ProviderName = /* values here */
```
### `str`
```python
value: str = /* values here */
```
@@ -0,0 +1,27 @@
---
title: "ImageGenerationProviderPreferencesSort"
---
The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed.
## Supported Types
### `components.ProviderSort`
```python
value: components.ProviderSort = /* values here */
```
### `components.ProviderSortConfig`
```python
value: components.ProviderSortConfig = /* values here */
```
### `Any`
```python
value: Any = /* values here */
```
+1 -1
View File
@@ -17,7 +17,7 @@ Image generation request input
| `output_compression` | *Optional[int]* | :heavy_minus_sign: | Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob. | 100 |
| `output_format` | [Optional[components.ImageGenerationRequestOutputFormat]](../components/imagegenerationrequestoutputformat.mdx) | :heavy_minus_sign: | Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. | png |
| `prompt` | *str* | :heavy_check_mark: | Text description of the desired image | a red panda astronaut floating in space, studio lighting |
| `provider` | [Optional[components.ImageGenerationRequestProvider]](../components/imagegenerationrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `provider` | [Optional[components.ImageGenerationProviderPreferences]](../components/imagegenerationproviderpreferences.mdx) | :heavy_minus_sign: | Provider routing preferences and provider-specific passthrough configuration. | \{<br/>"allow_fallbacks": false,<br/>"only": [<br/>"google-ai-studio"<br/>]<br/>} |
| `quality` | [Optional[components.ImageGenerationRequestQuality]](../components/imagegenerationrequestquality.mdx) | :heavy_minus_sign: | Rendering quality. Providers without a quality knob ignore this. | high |
| `resolution` | [Optional[components.ImageGenerationRequestResolution]](../components/imagegenerationrequestresolution.mdx) | :heavy_minus_sign: | Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider. | 2K |
| `seed` | *Optional[int]* | :heavy_minus_sign: | If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. | |
@@ -1,12 +0,0 @@
---
title: "ImageGenerationRequestProvider"
---
Provider-specific passthrough configuration
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `options` | [Optional[components.ImageGenerationRequestOptions]](../components/imagegenerationrequestoptions.mdx) | :heavy_minus_sign: | N/A | \{<br/>"black-forest-labs": \{<br/>"guidance": 3,<br/>"steps": 40<br/>}<br/>} |
+4 -4
View File
@@ -12,13 +12,13 @@ When multiple model providers are available, optionally indicate your routing pr
| `allow_fallbacks` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether to allow backup providers to serve requests<br/>- true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the next best provider.<br/>- false: use only the primary/custom provider, and return the upstream error if it's unavailable.<br/> | |
| `data_collection` | [OptionalNullable[components.DataCollection]](../components/datacollection.mdx) | :heavy_minus_sign: | Data collection setting. If no available model provider meets the requirement, your request will return an error.<br/>- allow: (default) allow providers which store user data non-transiently and may train on it<br/><br/>- deny: use only providers which do not collect user data. | allow |
| `enforce_distillable_text` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether to restrict routing to only models that allow text distillation. When true, only models where the author has allowed distillation will be used. | true |
| `ignore` | List[[components.Ignore](../components/ignore.mdx)] | :heavy_minus_sign: | List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `ignore` | List[[components.ProviderPreferencesIgnore](../components/providerpreferencesignore.mdx)] | :heavy_minus_sign: | List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `max_price` | [Optional[components.MaxPrice]](../components/maxprice.mdx) | :heavy_minus_sign: | The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion. | |
| `only` | List[[components.Only](../components/only.mdx)] | :heavy_minus_sign: | List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `order` | List[[components.Order](../components/order.mdx)] | :heavy_minus_sign: | An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `only` | List[[components.ProviderPreferencesOnly](../components/providerpreferencesonly.mdx)] | :heavy_minus_sign: | List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `order` | List[[components.ProviderPreferencesOrder](../components/providerpreferencesorder.mdx)] | :heavy_minus_sign: | An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. | [<br/>"openai",<br/>"anthropic"<br/>] |
| `preferred_max_latency` | [OptionalNullable[components.PreferredMaxLatency]](../components/preferredmaxlatency.mdx) | :heavy_minus_sign: | Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. | 5 |
| `preferred_min_throughput` | [OptionalNullable[components.PreferredMinThroughput]](../components/preferredminthroughput.mdx) | :heavy_minus_sign: | Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. | 100 |
| `quantizations` | List[[components.Quantization](../components/quantization.mdx)] | :heavy_minus_sign: | A list of quantization levels to filter the provider by. | |
| `require_parameters` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether to filter providers to only those that support the parameters you've provided. If this setting is omitted or set to false, then providers will receive only the parameters they support, and ignore the rest. | |
| `sort` | [OptionalNullable[components.Sort]](../components/sort.mdx) | :heavy_minus_sign: | The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed. | price |
| `sort` | [OptionalNullable[components.ProviderPreferencesSort]](../components/providerpreferencessort.mdx) | :heavy_minus_sign: | The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed. | price |
| `zdr` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do not retain prompts will be used. | true |
@@ -1,5 +1,5 @@
---
title: "Only"
title: "ProviderPreferencesIgnore"
---
## Supported Types
@@ -1,5 +1,5 @@
---
title: "Ignore"
title: "ProviderPreferencesOnly"
---
## Supported Types
@@ -1,5 +1,5 @@
---
title: "Order"
title: "ProviderPreferencesOrder"
---
## Supported Types
@@ -1,5 +1,5 @@
---
title: "Sort"
title: "ProviderPreferencesSort"
---
The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed.
+1 -1
View File
@@ -55,7 +55,7 @@ with OpenRouter(
| `n` | *Optional[int]* | :heavy_minus_sign: | Number of images to generate (1-10). Providers that only support single-image generation reject n > 1. | 1 |
| `output_compression` | *Optional[int]* | :heavy_minus_sign: | Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob. | 100 |
| `output_format` | [Optional[components.ImageGenerationRequestOutputFormat]](../../components/imagegenerationrequestoutputformat.mdx) | :heavy_minus_sign: | Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. | png |
| `provider` | [Optional[components.ImageGenerationRequestProvider]](../../components/imagegenerationrequestprovider.mdx) | :heavy_minus_sign: | Provider-specific passthrough configuration | |
| `provider` | [Optional[components.ImageGenerationProviderPreferences]](../../components/imagegenerationproviderpreferences.mdx) | :heavy_minus_sign: | Provider routing preferences and provider-specific passthrough configuration. | \{<br/>"allow_fallbacks": false,<br/>"only": [<br/>"google-ai-studio"<br/>]<br/>} |
| `quality` | [Optional[components.ImageGenerationRequestQuality]](../../components/imagegenerationrequestquality.mdx) | :heavy_minus_sign: | Rendering quality. Providers without a quality knob ignore this. | high |
| `resolution` | [Optional[components.ImageGenerationRequestResolution]](../../components/imagegenerationrequestresolution.mdx) | :heavy_minus_sign: | Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider. | 2K |
| `seed` | *Optional[int]* | :heavy_minus_sign: | If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. | |
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
version = "0.11.24"
version = "0.11.25"
description = "Official Python Client SDK for OpenRouter."
authors = [{ name = "OpenRouter" },]
readme = "README-PYPI.md"
+2 -2
View File
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
__version__: str = "0.11.24"
__version__: str = "0.11.25"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
__user_agent__: str = "speakeasy-sdk/python 0.11.24 2.914.0 1.0.0 openrouter"
__user_agent__: str = "speakeasy-sdk/python 0.11.25 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
+62 -36
View File
@@ -1149,15 +1149,25 @@ if TYPE_CHECKING:
ImageGenCompletedEventType,
ImageGenCompletedEventTypedDict,
)
from .imagegenerationproviderpreferences import (
ImageGenerationProviderPreferences,
ImageGenerationProviderPreferencesIgnore,
ImageGenerationProviderPreferencesIgnoreTypedDict,
ImageGenerationProviderPreferencesOnly,
ImageGenerationProviderPreferencesOnlyTypedDict,
ImageGenerationProviderPreferencesOptions,
ImageGenerationProviderPreferencesOptionsTypedDict,
ImageGenerationProviderPreferencesOrder,
ImageGenerationProviderPreferencesOrderTypedDict,
ImageGenerationProviderPreferencesSort,
ImageGenerationProviderPreferencesSortTypedDict,
ImageGenerationProviderPreferencesTypedDict,
)
from .imagegenerationrequest import (
ImageGenerationRequest,
ImageGenerationRequestAspectRatio,
ImageGenerationRequestBackground,
ImageGenerationRequestOptions,
ImageGenerationRequestOptionsTypedDict,
ImageGenerationRequestOutputFormat,
ImageGenerationRequestProvider,
ImageGenerationRequestProviderTypedDict,
ImageGenerationRequestQuality,
ImageGenerationRequestResolution,
ImageGenerationRequestTypedDict,
@@ -2212,18 +2222,18 @@ if TYPE_CHECKING:
)
from .providerpreferences import (
DataCollection,
Ignore,
IgnoreTypedDict,
MaxPrice,
MaxPriceTypedDict,
Only,
OnlyTypedDict,
Order,
OrderTypedDict,
ProviderPreferences,
ProviderPreferencesIgnore,
ProviderPreferencesIgnoreTypedDict,
ProviderPreferencesOnly,
ProviderPreferencesOnlyTypedDict,
ProviderPreferencesOrder,
ProviderPreferencesOrderTypedDict,
ProviderPreferencesSort,
ProviderPreferencesSortTypedDict,
ProviderPreferencesTypedDict,
Sort,
SortTypedDict,
)
from .providerresponse import (
ProviderResponse,
@@ -3625,8 +3635,6 @@ __all__ = [
"Guardrail",
"GuardrailInterval",
"GuardrailTypedDict",
"Ignore",
"IgnoreTypedDict",
"ImageConfig",
"ImageConfigTypedDict",
"ImageEndpoint",
@@ -3658,14 +3666,22 @@ __all__ = [
"ImageGenTextChunkEventPhase",
"ImageGenTextChunkEventType",
"ImageGenTextChunkEventTypedDict",
"ImageGenerationProviderPreferences",
"ImageGenerationProviderPreferencesIgnore",
"ImageGenerationProviderPreferencesIgnoreTypedDict",
"ImageGenerationProviderPreferencesOnly",
"ImageGenerationProviderPreferencesOnlyTypedDict",
"ImageGenerationProviderPreferencesOptions",
"ImageGenerationProviderPreferencesOptionsTypedDict",
"ImageGenerationProviderPreferencesOrder",
"ImageGenerationProviderPreferencesOrderTypedDict",
"ImageGenerationProviderPreferencesSort",
"ImageGenerationProviderPreferencesSortTypedDict",
"ImageGenerationProviderPreferencesTypedDict",
"ImageGenerationRequest",
"ImageGenerationRequestAspectRatio",
"ImageGenerationRequestBackground",
"ImageGenerationRequestOptions",
"ImageGenerationRequestOptionsTypedDict",
"ImageGenerationRequestOutputFormat",
"ImageGenerationRequestProvider",
"ImageGenerationRequestProviderTypedDict",
"ImageGenerationRequestQuality",
"ImageGenerationRequestResolution",
"ImageGenerationRequestTypedDict",
@@ -4041,8 +4057,6 @@ __all__ = [
"ObservabilityWebhookDestinationConfigTypedDict",
"ObservabilityWebhookDestinationType",
"ObservabilityWebhookDestinationTypedDict",
"Only",
"OnlyTypedDict",
"OpenAIResponseCustomToolCall",
"OpenAIResponseCustomToolCallOutput",
"OpenAIResponseCustomToolCallOutputOutput1",
@@ -4119,8 +4133,6 @@ __all__ = [
"OpenRouterWebSearchServerToolType",
"OpenRouterWebSearchServerToolTypedDict",
"Operator",
"Order",
"OrderTypedDict",
"Outcome",
"OutcomeExit",
"OutcomeExitTypedDict",
@@ -4348,6 +4360,14 @@ __all__ = [
"ProviderOverloadedResponseErrorData",
"ProviderOverloadedResponseErrorDataTypedDict",
"ProviderPreferences",
"ProviderPreferencesIgnore",
"ProviderPreferencesIgnoreTypedDict",
"ProviderPreferencesOnly",
"ProviderPreferencesOnlyTypedDict",
"ProviderPreferencesOrder",
"ProviderPreferencesOrderTypedDict",
"ProviderPreferencesSort",
"ProviderPreferencesSortTypedDict",
"ProviderPreferencesTypedDict",
"ProviderResponse",
"ProviderResponseProviderName",
@@ -4534,8 +4554,6 @@ __all__ = [
"ShellServerToolOpenRouterTypedDict",
"ShellServerToolType",
"ShellServerToolTypedDict",
"Sort",
"SortTypedDict",
"SourceContent",
"SourceContentTypedDict",
"SourceType",
@@ -5694,14 +5712,22 @@ _dynamic_imports: dict[str, str] = {
"ImageGenCompletedEvent": ".imagegencompletedevent",
"ImageGenCompletedEventType": ".imagegencompletedevent",
"ImageGenCompletedEventTypedDict": ".imagegencompletedevent",
"ImageGenerationProviderPreferences": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesIgnore": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesIgnoreTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOnly": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOnlyTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOptions": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOptionsTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOrder": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesOrderTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesSort": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesSortTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationProviderPreferencesTypedDict": ".imagegenerationproviderpreferences",
"ImageGenerationRequest": ".imagegenerationrequest",
"ImageGenerationRequestAspectRatio": ".imagegenerationrequest",
"ImageGenerationRequestBackground": ".imagegenerationrequest",
"ImageGenerationRequestOptions": ".imagegenerationrequest",
"ImageGenerationRequestOptionsTypedDict": ".imagegenerationrequest",
"ImageGenerationRequestOutputFormat": ".imagegenerationrequest",
"ImageGenerationRequestProvider": ".imagegenerationrequest",
"ImageGenerationRequestProviderTypedDict": ".imagegenerationrequest",
"ImageGenerationRequestQuality": ".imagegenerationrequest",
"ImageGenerationRequestResolution": ".imagegenerationrequest",
"ImageGenerationRequestTypedDict": ".imagegenerationrequest",
@@ -6529,18 +6555,18 @@ _dynamic_imports: dict[str, str] = {
"ProviderOverloadedResponseErrorData": ".provideroverloadedresponseerrordata",
"ProviderOverloadedResponseErrorDataTypedDict": ".provideroverloadedresponseerrordata",
"DataCollection": ".providerpreferences",
"Ignore": ".providerpreferences",
"IgnoreTypedDict": ".providerpreferences",
"MaxPrice": ".providerpreferences",
"MaxPriceTypedDict": ".providerpreferences",
"Only": ".providerpreferences",
"OnlyTypedDict": ".providerpreferences",
"Order": ".providerpreferences",
"OrderTypedDict": ".providerpreferences",
"ProviderPreferences": ".providerpreferences",
"ProviderPreferencesIgnore": ".providerpreferences",
"ProviderPreferencesIgnoreTypedDict": ".providerpreferences",
"ProviderPreferencesOnly": ".providerpreferences",
"ProviderPreferencesOnlyTypedDict": ".providerpreferences",
"ProviderPreferencesOrder": ".providerpreferences",
"ProviderPreferencesOrderTypedDict": ".providerpreferences",
"ProviderPreferencesSort": ".providerpreferences",
"ProviderPreferencesSortTypedDict": ".providerpreferences",
"ProviderPreferencesTypedDict": ".providerpreferences",
"Sort": ".providerpreferences",
"SortTypedDict": ".providerpreferences",
"ProviderResponse": ".providerresponse",
"ProviderResponseProviderName": ".providerresponse",
"ProviderResponseTypedDict": ".providerresponse",
@@ -0,0 +1,699 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .providername import ProviderName
from .providersort import ProviderSort
from .providersortconfig import ProviderSortConfig, ProviderSortConfigTypedDict
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
)
import pydantic
from pydantic import model_serializer
from typing import Any, Dict, List, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
ImageGenerationProviderPreferencesIgnoreTypedDict = TypeAliasType(
"ImageGenerationProviderPreferencesIgnoreTypedDict", Union[ProviderName, str]
)
ImageGenerationProviderPreferencesIgnore = TypeAliasType(
"ImageGenerationProviderPreferencesIgnore", Union[ProviderName, str]
)
ImageGenerationProviderPreferencesOnlyTypedDict = TypeAliasType(
"ImageGenerationProviderPreferencesOnlyTypedDict", Union[ProviderName, str]
)
ImageGenerationProviderPreferencesOnly = TypeAliasType(
"ImageGenerationProviderPreferencesOnly", Union[ProviderName, str]
)
class ImageGenerationProviderPreferencesOptionsTypedDict(TypedDict):
r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped."""
oneai: NotRequired[Dict[str, Nullable[Any]]]
ai21: NotRequired[Dict[str, Nullable[Any]]]
aion_labs: NotRequired[Dict[str, Nullable[Any]]]
akashml: NotRequired[Dict[str, Nullable[Any]]]
alibaba: NotRequired[Dict[str, Nullable[Any]]]
amazon_bedrock: NotRequired[Dict[str, Nullable[Any]]]
amazon_nova: NotRequired[Dict[str, Nullable[Any]]]
ambient: NotRequired[Dict[str, Nullable[Any]]]
anthropic: NotRequired[Dict[str, Nullable[Any]]]
anyscale: NotRequired[Dict[str, Nullable[Any]]]
arcee_ai: NotRequired[Dict[str, Nullable[Any]]]
atlas_cloud: NotRequired[Dict[str, Nullable[Any]]]
atoma: NotRequired[Dict[str, Nullable[Any]]]
avian: NotRequired[Dict[str, Nullable[Any]]]
azure: NotRequired[Dict[str, Nullable[Any]]]
baidu: NotRequired[Dict[str, Nullable[Any]]]
baseten: NotRequired[Dict[str, Nullable[Any]]]
black_forest_labs: NotRequired[Dict[str, Nullable[Any]]]
byteplus: NotRequired[Dict[str, Nullable[Any]]]
centml: NotRequired[Dict[str, Nullable[Any]]]
cerebras: NotRequired[Dict[str, Nullable[Any]]]
chutes: NotRequired[Dict[str, Nullable[Any]]]
cirrascale: NotRequired[Dict[str, Nullable[Any]]]
clarifai: NotRequired[Dict[str, Nullable[Any]]]
cloudflare: NotRequired[Dict[str, Nullable[Any]]]
cohere: NotRequired[Dict[str, Nullable[Any]]]
crofai: NotRequired[Dict[str, Nullable[Any]]]
crucible: NotRequired[Dict[str, Nullable[Any]]]
crusoe: NotRequired[Dict[str, Nullable[Any]]]
darkbloom: NotRequired[Dict[str, Nullable[Any]]]
decart: NotRequired[Dict[str, Nullable[Any]]]
deepgram: NotRequired[Dict[str, Nullable[Any]]]
deepinfra: NotRequired[Dict[str, Nullable[Any]]]
deepseek: NotRequired[Dict[str, Nullable[Any]]]
dekallm: NotRequired[Dict[str, Nullable[Any]]]
digitalocean: NotRequired[Dict[str, Nullable[Any]]]
enfer: NotRequired[Dict[str, Nullable[Any]]]
fake_provider: NotRequired[Dict[str, Nullable[Any]]]
featherless: NotRequired[Dict[str, Nullable[Any]]]
fireworks: NotRequired[Dict[str, Nullable[Any]]]
friendli: NotRequired[Dict[str, Nullable[Any]]]
gmicloud: NotRequired[Dict[str, Nullable[Any]]]
google_ai_studio: NotRequired[Dict[str, Nullable[Any]]]
google_vertex: NotRequired[Dict[str, Nullable[Any]]]
gopomelo: NotRequired[Dict[str, Nullable[Any]]]
groq: NotRequired[Dict[str, Nullable[Any]]]
heygen: NotRequired[Dict[str, Nullable[Any]]]
huggingface: NotRequired[Dict[str, Nullable[Any]]]
hyperbolic: NotRequired[Dict[str, Nullable[Any]]]
hyperbolic_quantized: NotRequired[Dict[str, Nullable[Any]]]
inception: NotRequired[Dict[str, Nullable[Any]]]
inceptron: NotRequired[Dict[str, Nullable[Any]]]
inferact_vllm: NotRequired[Dict[str, Nullable[Any]]]
inference_net: NotRequired[Dict[str, Nullable[Any]]]
infermatic: NotRequired[Dict[str, Nullable[Any]]]
inflection: NotRequired[Dict[str, Nullable[Any]]]
inocloud: NotRequired[Dict[str, Nullable[Any]]]
io_net: NotRequired[Dict[str, Nullable[Any]]]
ionstream: NotRequired[Dict[str, Nullable[Any]]]
klusterai: NotRequired[Dict[str, Nullable[Any]]]
lambda_: NotRequired[Dict[str, Nullable[Any]]]
lepton: NotRequired[Dict[str, Nullable[Any]]]
liquid: NotRequired[Dict[str, Nullable[Any]]]
lynn: NotRequired[Dict[str, Nullable[Any]]]
lynn_private: NotRequired[Dict[str, Nullable[Any]]]
mancer: NotRequired[Dict[str, Nullable[Any]]]
mancer_old: NotRequired[Dict[str, Nullable[Any]]]
mara: NotRequired[Dict[str, Nullable[Any]]]
meta: NotRequired[Dict[str, Nullable[Any]]]
minimax: NotRequired[Dict[str, Nullable[Any]]]
mistral: NotRequired[Dict[str, Nullable[Any]]]
modal: NotRequired[Dict[str, Nullable[Any]]]
modelrun: NotRequired[Dict[str, Nullable[Any]]]
modular: NotRequired[Dict[str, Nullable[Any]]]
moonshotai: NotRequired[Dict[str, Nullable[Any]]]
morph: NotRequired[Dict[str, Nullable[Any]]]
ncompass: NotRequired[Dict[str, Nullable[Any]]]
nebius: NotRequired[Dict[str, Nullable[Any]]]
nex_agi: NotRequired[Dict[str, Nullable[Any]]]
nextbit: NotRequired[Dict[str, Nullable[Any]]]
nineteen: NotRequired[Dict[str, Nullable[Any]]]
novita: NotRequired[Dict[str, Nullable[Any]]]
nvidia: NotRequired[Dict[str, Nullable[Any]]]
octoai: NotRequired[Dict[str, Nullable[Any]]]
open_inference: NotRequired[Dict[str, Nullable[Any]]]
openai: NotRequired[Dict[str, Nullable[Any]]]
parasail: NotRequired[Dict[str, Nullable[Any]]]
perceptron: NotRequired[Dict[str, Nullable[Any]]]
perplexity: NotRequired[Dict[str, Nullable[Any]]]
phala: NotRequired[Dict[str, Nullable[Any]]]
poolside: NotRequired[Dict[str, Nullable[Any]]]
quiver: NotRequired[Dict[str, Nullable[Any]]]
recraft: NotRequired[Dict[str, Nullable[Any]]]
recursal: NotRequired[Dict[str, Nullable[Any]]]
reflection: NotRequired[Dict[str, Nullable[Any]]]
reka: NotRequired[Dict[str, Nullable[Any]]]
relace: NotRequired[Dict[str, Nullable[Any]]]
replicate: NotRequired[Dict[str, Nullable[Any]]]
sakana: NotRequired[Dict[str, Nullable[Any]]]
sambanova: NotRequired[Dict[str, Nullable[Any]]]
sambanova_cloaked: NotRequired[Dict[str, Nullable[Any]]]
seed: NotRequired[Dict[str, Nullable[Any]]]
sf_compute: NotRequired[Dict[str, Nullable[Any]]]
siliconflow: NotRequired[Dict[str, Nullable[Any]]]
sourceful: NotRequired[Dict[str, Nullable[Any]]]
stealth: NotRequired[Dict[str, Nullable[Any]]]
stepfun: NotRequired[Dict[str, Nullable[Any]]]
streamlake: NotRequired[Dict[str, Nullable[Any]]]
switchpoint: NotRequired[Dict[str, Nullable[Any]]]
targon: NotRequired[Dict[str, Nullable[Any]]]
tenstorrent: NotRequired[Dict[str, Nullable[Any]]]
together: NotRequired[Dict[str, Nullable[Any]]]
together_lite: NotRequired[Dict[str, Nullable[Any]]]
ubicloud: NotRequired[Dict[str, Nullable[Any]]]
upstage: NotRequired[Dict[str, Nullable[Any]]]
venice: NotRequired[Dict[str, Nullable[Any]]]
wafer: NotRequired[Dict[str, Nullable[Any]]]
wandb: NotRequired[Dict[str, Nullable[Any]]]
xai: NotRequired[Dict[str, Nullable[Any]]]
xiaomi: NotRequired[Dict[str, Nullable[Any]]]
z_ai: NotRequired[Dict[str, Nullable[Any]]]
class ImageGenerationProviderPreferencesOptions(BaseModel):
r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped."""
oneai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="01ai")
] = None
ai21: Optional[Dict[str, Nullable[Any]]] = None
aion_labs: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="aion-labs")
] = None
akashml: Optional[Dict[str, Nullable[Any]]] = None
alibaba: Optional[Dict[str, Nullable[Any]]] = None
amazon_bedrock: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-bedrock")
] = None
amazon_nova: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-nova")
] = None
ambient: Optional[Dict[str, Nullable[Any]]] = None
anthropic: Optional[Dict[str, Nullable[Any]]] = None
anyscale: Optional[Dict[str, Nullable[Any]]] = None
arcee_ai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="arcee-ai")
] = None
atlas_cloud: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="atlas-cloud")
] = None
atoma: Optional[Dict[str, Nullable[Any]]] = None
avian: Optional[Dict[str, Nullable[Any]]] = None
azure: Optional[Dict[str, Nullable[Any]]] = None
baidu: Optional[Dict[str, Nullable[Any]]] = None
baseten: Optional[Dict[str, Nullable[Any]]] = None
black_forest_labs: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="black-forest-labs")
] = None
byteplus: Optional[Dict[str, Nullable[Any]]] = None
centml: Optional[Dict[str, Nullable[Any]]] = None
cerebras: Optional[Dict[str, Nullable[Any]]] = None
chutes: Optional[Dict[str, Nullable[Any]]] = None
cirrascale: Optional[Dict[str, Nullable[Any]]] = None
clarifai: Optional[Dict[str, Nullable[Any]]] = None
cloudflare: Optional[Dict[str, Nullable[Any]]] = None
cohere: Optional[Dict[str, Nullable[Any]]] = None
crofai: Optional[Dict[str, Nullable[Any]]] = None
crucible: Optional[Dict[str, Nullable[Any]]] = None
crusoe: Optional[Dict[str, Nullable[Any]]] = None
darkbloom: Optional[Dict[str, Nullable[Any]]] = None
decart: Optional[Dict[str, Nullable[Any]]] = None
deepgram: Optional[Dict[str, Nullable[Any]]] = None
deepinfra: Optional[Dict[str, Nullable[Any]]] = None
deepseek: Optional[Dict[str, Nullable[Any]]] = None
dekallm: Optional[Dict[str, Nullable[Any]]] = None
digitalocean: Optional[Dict[str, Nullable[Any]]] = None
enfer: Optional[Dict[str, Nullable[Any]]] = None
fake_provider: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="fake-provider")
] = None
featherless: Optional[Dict[str, Nullable[Any]]] = None
fireworks: Optional[Dict[str, Nullable[Any]]] = None
friendli: Optional[Dict[str, Nullable[Any]]] = None
gmicloud: Optional[Dict[str, Nullable[Any]]] = None
google_ai_studio: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-ai-studio")
] = None
google_vertex: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-vertex")
] = None
gopomelo: Optional[Dict[str, Nullable[Any]]] = None
groq: Optional[Dict[str, Nullable[Any]]] = None
heygen: Optional[Dict[str, Nullable[Any]]] = None
huggingface: Optional[Dict[str, Nullable[Any]]] = None
hyperbolic: Optional[Dict[str, Nullable[Any]]] = None
hyperbolic_quantized: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="hyperbolic-quantized")
] = None
inception: Optional[Dict[str, Nullable[Any]]] = None
inceptron: Optional[Dict[str, Nullable[Any]]] = None
inferact_vllm: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inferact-vllm")
] = None
inference_net: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inference-net")
] = None
infermatic: Optional[Dict[str, Nullable[Any]]] = None
inflection: Optional[Dict[str, Nullable[Any]]] = None
inocloud: Optional[Dict[str, Nullable[Any]]] = None
io_net: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="io-net")
] = None
ionstream: Optional[Dict[str, Nullable[Any]]] = None
klusterai: Optional[Dict[str, Nullable[Any]]] = None
lambda_: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lambda")
] = None
lepton: Optional[Dict[str, Nullable[Any]]] = None
liquid: Optional[Dict[str, Nullable[Any]]] = None
lynn: Optional[Dict[str, Nullable[Any]]] = None
lynn_private: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lynn-private")
] = None
mancer: Optional[Dict[str, Nullable[Any]]] = None
mancer_old: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="mancer-old")
] = None
mara: Optional[Dict[str, Nullable[Any]]] = None
meta: Optional[Dict[str, Nullable[Any]]] = None
minimax: Optional[Dict[str, Nullable[Any]]] = None
mistral: Optional[Dict[str, Nullable[Any]]] = None
modal: Optional[Dict[str, Nullable[Any]]] = None
modelrun: Optional[Dict[str, Nullable[Any]]] = None
modular: Optional[Dict[str, Nullable[Any]]] = None
moonshotai: Optional[Dict[str, Nullable[Any]]] = None
morph: Optional[Dict[str, Nullable[Any]]] = None
ncompass: Optional[Dict[str, Nullable[Any]]] = None
nebius: Optional[Dict[str, Nullable[Any]]] = None
nex_agi: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="nex-agi")
] = None
nextbit: Optional[Dict[str, Nullable[Any]]] = None
nineteen: Optional[Dict[str, Nullable[Any]]] = None
novita: Optional[Dict[str, Nullable[Any]]] = None
nvidia: Optional[Dict[str, Nullable[Any]]] = None
octoai: Optional[Dict[str, Nullable[Any]]] = None
open_inference: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="open-inference")
] = None
openai: Optional[Dict[str, Nullable[Any]]] = None
parasail: Optional[Dict[str, Nullable[Any]]] = None
perceptron: Optional[Dict[str, Nullable[Any]]] = None
perplexity: Optional[Dict[str, Nullable[Any]]] = None
phala: Optional[Dict[str, Nullable[Any]]] = None
poolside: Optional[Dict[str, Nullable[Any]]] = None
quiver: Optional[Dict[str, Nullable[Any]]] = None
recraft: Optional[Dict[str, Nullable[Any]]] = None
recursal: Optional[Dict[str, Nullable[Any]]] = None
reflection: Optional[Dict[str, Nullable[Any]]] = None
reka: Optional[Dict[str, Nullable[Any]]] = None
relace: Optional[Dict[str, Nullable[Any]]] = None
replicate: Optional[Dict[str, Nullable[Any]]] = None
sakana: Optional[Dict[str, Nullable[Any]]] = None
sambanova: Optional[Dict[str, Nullable[Any]]] = None
sambanova_cloaked: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sambanova-cloaked")
] = None
seed: Optional[Dict[str, Nullable[Any]]] = None
sf_compute: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sf-compute")
] = None
siliconflow: Optional[Dict[str, Nullable[Any]]] = None
sourceful: Optional[Dict[str, Nullable[Any]]] = None
stealth: Optional[Dict[str, Nullable[Any]]] = None
stepfun: Optional[Dict[str, Nullable[Any]]] = None
streamlake: Optional[Dict[str, Nullable[Any]]] = None
switchpoint: Optional[Dict[str, Nullable[Any]]] = None
targon: Optional[Dict[str, Nullable[Any]]] = None
tenstorrent: Optional[Dict[str, Nullable[Any]]] = None
together: Optional[Dict[str, Nullable[Any]]] = None
together_lite: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="together-lite")
] = None
ubicloud: Optional[Dict[str, Nullable[Any]]] = None
upstage: Optional[Dict[str, Nullable[Any]]] = None
venice: Optional[Dict[str, Nullable[Any]]] = None
wafer: Optional[Dict[str, Nullable[Any]]] = None
wandb: Optional[Dict[str, Nullable[Any]]] = None
xai: Optional[Dict[str, Nullable[Any]]] = None
xiaomi: Optional[Dict[str, Nullable[Any]]] = None
z_ai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="z-ai")
] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
[
"01ai",
"ai21",
"aion-labs",
"akashml",
"alibaba",
"amazon-bedrock",
"amazon-nova",
"ambient",
"anthropic",
"anyscale",
"arcee-ai",
"atlas-cloud",
"atoma",
"avian",
"azure",
"baidu",
"baseten",
"black-forest-labs",
"byteplus",
"centml",
"cerebras",
"chutes",
"cirrascale",
"clarifai",
"cloudflare",
"cohere",
"crofai",
"crucible",
"crusoe",
"darkbloom",
"decart",
"deepgram",
"deepinfra",
"deepseek",
"dekallm",
"digitalocean",
"enfer",
"fake-provider",
"featherless",
"fireworks",
"friendli",
"gmicloud",
"google-ai-studio",
"google-vertex",
"gopomelo",
"groq",
"heygen",
"huggingface",
"hyperbolic",
"hyperbolic-quantized",
"inception",
"inceptron",
"inferact-vllm",
"inference-net",
"infermatic",
"inflection",
"inocloud",
"io-net",
"ionstream",
"klusterai",
"lambda",
"lepton",
"liquid",
"lynn",
"lynn-private",
"mancer",
"mancer-old",
"mara",
"meta",
"minimax",
"mistral",
"modal",
"modelrun",
"modular",
"moonshotai",
"morph",
"ncompass",
"nebius",
"nex-agi",
"nextbit",
"nineteen",
"novita",
"nvidia",
"octoai",
"open-inference",
"openai",
"parasail",
"perceptron",
"perplexity",
"phala",
"poolside",
"quiver",
"recraft",
"recursal",
"reflection",
"reka",
"relace",
"replicate",
"sakana",
"sambanova",
"sambanova-cloaked",
"seed",
"sf-compute",
"siliconflow",
"sourceful",
"stealth",
"stepfun",
"streamlake",
"switchpoint",
"targon",
"tenstorrent",
"together",
"together-lite",
"ubicloud",
"upstage",
"venice",
"wafer",
"wandb",
"xai",
"xiaomi",
"z-ai",
]
)
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))
if val != UNSET_SENTINEL:
if val is not None or k not in optional_fields:
m[k] = val
return m
ImageGenerationProviderPreferencesOrderTypedDict = TypeAliasType(
"ImageGenerationProviderPreferencesOrderTypedDict", Union[ProviderName, str]
)
ImageGenerationProviderPreferencesOrder = TypeAliasType(
"ImageGenerationProviderPreferencesOrder", Union[ProviderName, str]
)
ImageGenerationProviderPreferencesSortTypedDict = TypeAliasType(
"ImageGenerationProviderPreferencesSortTypedDict",
Union[ProviderSortConfigTypedDict, ProviderSort, Any],
)
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
ImageGenerationProviderPreferencesSort = TypeAliasType(
"ImageGenerationProviderPreferencesSort",
Union[ProviderSortConfig, ProviderSort, Any],
)
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
class ImageGenerationProviderPreferencesTypedDict(TypedDict):
r"""Provider routing preferences and provider-specific passthrough configuration."""
allow_fallbacks: NotRequired[Nullable[bool]]
r"""Whether to allow backup providers to serve requests
- true: (default) when the primary provider (or your custom providers in \"order\") is unavailable, use the next best provider.
- false: use only the primary/custom provider, and return the upstream error if it's unavailable.
"""
ignore: NotRequired[
Nullable[List[ImageGenerationProviderPreferencesIgnoreTypedDict]]
]
r"""List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request."""
only: NotRequired[Nullable[List[ImageGenerationProviderPreferencesOnlyTypedDict]]]
r"""List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request."""
options: NotRequired[ImageGenerationProviderPreferencesOptionsTypedDict]
order: NotRequired[Nullable[List[ImageGenerationProviderPreferencesOrderTypedDict]]]
r"""An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message."""
sort: NotRequired[Nullable[ImageGenerationProviderPreferencesSortTypedDict]]
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
class ImageGenerationProviderPreferences(BaseModel):
r"""Provider routing preferences and provider-specific passthrough configuration."""
allow_fallbacks: OptionalNullable[bool] = UNSET
r"""Whether to allow backup providers to serve requests
- true: (default) when the primary provider (or your custom providers in \"order\") is unavailable, use the next best provider.
- false: use only the primary/custom provider, and return the upstream error if it's unavailable.
"""
ignore: OptionalNullable[List[ImageGenerationProviderPreferencesIgnore]] = UNSET
r"""List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request."""
only: OptionalNullable[List[ImageGenerationProviderPreferencesOnly]] = UNSET
r"""List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request."""
options: Optional[ImageGenerationProviderPreferencesOptions] = None
order: OptionalNullable[List[ImageGenerationProviderPreferencesOrder]] = UNSET
r"""An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message."""
sort: OptionalNullable[ImageGenerationProviderPreferencesSort] = UNSET
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
["allow_fallbacks", "ignore", "only", "options", "order", "sort"]
)
nullable_fields = set(["allow_fallbacks", "ignore", "only", "order", "sort"])
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
try:
ImageGenerationProviderPreferencesOptions.model_rebuild()
except NameError:
pass
@@ -2,11 +2,14 @@
from __future__ import annotations
from .contentpartimage import ContentPartImage, ContentPartImageTypedDict
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr
import pydantic
from .imagegenerationproviderpreferences import (
ImageGenerationProviderPreferences,
ImageGenerationProviderPreferencesTypedDict,
)
from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr
from pydantic import model_serializer
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
from typing import List, Literal, Optional, Union
from typing_extensions import NotRequired, TypedDict
ImageGenerationRequestAspectRatio = Union[
@@ -62,592 +65,6 @@ ImageGenerationRequestOutputFormat = Union[
r"""Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`."""
class ImageGenerationRequestOptionsTypedDict(TypedDict):
r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped."""
oneai: NotRequired[Dict[str, Nullable[Any]]]
ai21: NotRequired[Dict[str, Nullable[Any]]]
aion_labs: NotRequired[Dict[str, Nullable[Any]]]
akashml: NotRequired[Dict[str, Nullable[Any]]]
alibaba: NotRequired[Dict[str, Nullable[Any]]]
amazon_bedrock: NotRequired[Dict[str, Nullable[Any]]]
amazon_nova: NotRequired[Dict[str, Nullable[Any]]]
ambient: NotRequired[Dict[str, Nullable[Any]]]
anthropic: NotRequired[Dict[str, Nullable[Any]]]
anyscale: NotRequired[Dict[str, Nullable[Any]]]
arcee_ai: NotRequired[Dict[str, Nullable[Any]]]
atlas_cloud: NotRequired[Dict[str, Nullable[Any]]]
atoma: NotRequired[Dict[str, Nullable[Any]]]
avian: NotRequired[Dict[str, Nullable[Any]]]
azure: NotRequired[Dict[str, Nullable[Any]]]
baidu: NotRequired[Dict[str, Nullable[Any]]]
baseten: NotRequired[Dict[str, Nullable[Any]]]
black_forest_labs: NotRequired[Dict[str, Nullable[Any]]]
byteplus: NotRequired[Dict[str, Nullable[Any]]]
centml: NotRequired[Dict[str, Nullable[Any]]]
cerebras: NotRequired[Dict[str, Nullable[Any]]]
chutes: NotRequired[Dict[str, Nullable[Any]]]
cirrascale: NotRequired[Dict[str, Nullable[Any]]]
clarifai: NotRequired[Dict[str, Nullable[Any]]]
cloudflare: NotRequired[Dict[str, Nullable[Any]]]
cohere: NotRequired[Dict[str, Nullable[Any]]]
crofai: NotRequired[Dict[str, Nullable[Any]]]
crucible: NotRequired[Dict[str, Nullable[Any]]]
crusoe: NotRequired[Dict[str, Nullable[Any]]]
darkbloom: NotRequired[Dict[str, Nullable[Any]]]
decart: NotRequired[Dict[str, Nullable[Any]]]
deepgram: NotRequired[Dict[str, Nullable[Any]]]
deepinfra: NotRequired[Dict[str, Nullable[Any]]]
deepseek: NotRequired[Dict[str, Nullable[Any]]]
dekallm: NotRequired[Dict[str, Nullable[Any]]]
digitalocean: NotRequired[Dict[str, Nullable[Any]]]
enfer: NotRequired[Dict[str, Nullable[Any]]]
fake_provider: NotRequired[Dict[str, Nullable[Any]]]
featherless: NotRequired[Dict[str, Nullable[Any]]]
fireworks: NotRequired[Dict[str, Nullable[Any]]]
friendli: NotRequired[Dict[str, Nullable[Any]]]
gmicloud: NotRequired[Dict[str, Nullable[Any]]]
google_ai_studio: NotRequired[Dict[str, Nullable[Any]]]
google_vertex: NotRequired[Dict[str, Nullable[Any]]]
gopomelo: NotRequired[Dict[str, Nullable[Any]]]
groq: NotRequired[Dict[str, Nullable[Any]]]
heygen: NotRequired[Dict[str, Nullable[Any]]]
huggingface: NotRequired[Dict[str, Nullable[Any]]]
hyperbolic: NotRequired[Dict[str, Nullable[Any]]]
hyperbolic_quantized: NotRequired[Dict[str, Nullable[Any]]]
inception: NotRequired[Dict[str, Nullable[Any]]]
inceptron: NotRequired[Dict[str, Nullable[Any]]]
inferact_vllm: NotRequired[Dict[str, Nullable[Any]]]
inference_net: NotRequired[Dict[str, Nullable[Any]]]
infermatic: NotRequired[Dict[str, Nullable[Any]]]
inflection: NotRequired[Dict[str, Nullable[Any]]]
inocloud: NotRequired[Dict[str, Nullable[Any]]]
io_net: NotRequired[Dict[str, Nullable[Any]]]
ionstream: NotRequired[Dict[str, Nullable[Any]]]
klusterai: NotRequired[Dict[str, Nullable[Any]]]
lambda_: NotRequired[Dict[str, Nullable[Any]]]
lepton: NotRequired[Dict[str, Nullable[Any]]]
liquid: NotRequired[Dict[str, Nullable[Any]]]
lynn: NotRequired[Dict[str, Nullable[Any]]]
lynn_private: NotRequired[Dict[str, Nullable[Any]]]
mancer: NotRequired[Dict[str, Nullable[Any]]]
mancer_old: NotRequired[Dict[str, Nullable[Any]]]
mara: NotRequired[Dict[str, Nullable[Any]]]
meta: NotRequired[Dict[str, Nullable[Any]]]
minimax: NotRequired[Dict[str, Nullable[Any]]]
mistral: NotRequired[Dict[str, Nullable[Any]]]
modal: NotRequired[Dict[str, Nullable[Any]]]
modelrun: NotRequired[Dict[str, Nullable[Any]]]
modular: NotRequired[Dict[str, Nullable[Any]]]
moonshotai: NotRequired[Dict[str, Nullable[Any]]]
morph: NotRequired[Dict[str, Nullable[Any]]]
ncompass: NotRequired[Dict[str, Nullable[Any]]]
nebius: NotRequired[Dict[str, Nullable[Any]]]
nex_agi: NotRequired[Dict[str, Nullable[Any]]]
nextbit: NotRequired[Dict[str, Nullable[Any]]]
nineteen: NotRequired[Dict[str, Nullable[Any]]]
novita: NotRequired[Dict[str, Nullable[Any]]]
nvidia: NotRequired[Dict[str, Nullable[Any]]]
octoai: NotRequired[Dict[str, Nullable[Any]]]
open_inference: NotRequired[Dict[str, Nullable[Any]]]
openai: NotRequired[Dict[str, Nullable[Any]]]
parasail: NotRequired[Dict[str, Nullable[Any]]]
perceptron: NotRequired[Dict[str, Nullable[Any]]]
perplexity: NotRequired[Dict[str, Nullable[Any]]]
phala: NotRequired[Dict[str, Nullable[Any]]]
poolside: NotRequired[Dict[str, Nullable[Any]]]
quiver: NotRequired[Dict[str, Nullable[Any]]]
recraft: NotRequired[Dict[str, Nullable[Any]]]
recursal: NotRequired[Dict[str, Nullable[Any]]]
reflection: NotRequired[Dict[str, Nullable[Any]]]
reka: NotRequired[Dict[str, Nullable[Any]]]
relace: NotRequired[Dict[str, Nullable[Any]]]
replicate: NotRequired[Dict[str, Nullable[Any]]]
sakana: NotRequired[Dict[str, Nullable[Any]]]
sambanova: NotRequired[Dict[str, Nullable[Any]]]
sambanova_cloaked: NotRequired[Dict[str, Nullable[Any]]]
seed: NotRequired[Dict[str, Nullable[Any]]]
sf_compute: NotRequired[Dict[str, Nullable[Any]]]
siliconflow: NotRequired[Dict[str, Nullable[Any]]]
sourceful: NotRequired[Dict[str, Nullable[Any]]]
stealth: NotRequired[Dict[str, Nullable[Any]]]
stepfun: NotRequired[Dict[str, Nullable[Any]]]
streamlake: NotRequired[Dict[str, Nullable[Any]]]
switchpoint: NotRequired[Dict[str, Nullable[Any]]]
targon: NotRequired[Dict[str, Nullable[Any]]]
tenstorrent: NotRequired[Dict[str, Nullable[Any]]]
together: NotRequired[Dict[str, Nullable[Any]]]
together_lite: NotRequired[Dict[str, Nullable[Any]]]
ubicloud: NotRequired[Dict[str, Nullable[Any]]]
upstage: NotRequired[Dict[str, Nullable[Any]]]
venice: NotRequired[Dict[str, Nullable[Any]]]
wafer: NotRequired[Dict[str, Nullable[Any]]]
wandb: NotRequired[Dict[str, Nullable[Any]]]
xai: NotRequired[Dict[str, Nullable[Any]]]
xiaomi: NotRequired[Dict[str, Nullable[Any]]]
z_ai: NotRequired[Dict[str, Nullable[Any]]]
class ImageGenerationRequestOptions(BaseModel):
r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped."""
oneai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="01ai")
] = None
ai21: Optional[Dict[str, Nullable[Any]]] = None
aion_labs: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="aion-labs")
] = None
akashml: Optional[Dict[str, Nullable[Any]]] = None
alibaba: Optional[Dict[str, Nullable[Any]]] = None
amazon_bedrock: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-bedrock")
] = None
amazon_nova: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-nova")
] = None
ambient: Optional[Dict[str, Nullable[Any]]] = None
anthropic: Optional[Dict[str, Nullable[Any]]] = None
anyscale: Optional[Dict[str, Nullable[Any]]] = None
arcee_ai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="arcee-ai")
] = None
atlas_cloud: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="atlas-cloud")
] = None
atoma: Optional[Dict[str, Nullable[Any]]] = None
avian: Optional[Dict[str, Nullable[Any]]] = None
azure: Optional[Dict[str, Nullable[Any]]] = None
baidu: Optional[Dict[str, Nullable[Any]]] = None
baseten: Optional[Dict[str, Nullable[Any]]] = None
black_forest_labs: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="black-forest-labs")
] = None
byteplus: Optional[Dict[str, Nullable[Any]]] = None
centml: Optional[Dict[str, Nullable[Any]]] = None
cerebras: Optional[Dict[str, Nullable[Any]]] = None
chutes: Optional[Dict[str, Nullable[Any]]] = None
cirrascale: Optional[Dict[str, Nullable[Any]]] = None
clarifai: Optional[Dict[str, Nullable[Any]]] = None
cloudflare: Optional[Dict[str, Nullable[Any]]] = None
cohere: Optional[Dict[str, Nullable[Any]]] = None
crofai: Optional[Dict[str, Nullable[Any]]] = None
crucible: Optional[Dict[str, Nullable[Any]]] = None
crusoe: Optional[Dict[str, Nullable[Any]]] = None
darkbloom: Optional[Dict[str, Nullable[Any]]] = None
decart: Optional[Dict[str, Nullable[Any]]] = None
deepgram: Optional[Dict[str, Nullable[Any]]] = None
deepinfra: Optional[Dict[str, Nullable[Any]]] = None
deepseek: Optional[Dict[str, Nullable[Any]]] = None
dekallm: Optional[Dict[str, Nullable[Any]]] = None
digitalocean: Optional[Dict[str, Nullable[Any]]] = None
enfer: Optional[Dict[str, Nullable[Any]]] = None
fake_provider: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="fake-provider")
] = None
featherless: Optional[Dict[str, Nullable[Any]]] = None
fireworks: Optional[Dict[str, Nullable[Any]]] = None
friendli: Optional[Dict[str, Nullable[Any]]] = None
gmicloud: Optional[Dict[str, Nullable[Any]]] = None
google_ai_studio: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-ai-studio")
] = None
google_vertex: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-vertex")
] = None
gopomelo: Optional[Dict[str, Nullable[Any]]] = None
groq: Optional[Dict[str, Nullable[Any]]] = None
heygen: Optional[Dict[str, Nullable[Any]]] = None
huggingface: Optional[Dict[str, Nullable[Any]]] = None
hyperbolic: Optional[Dict[str, Nullable[Any]]] = None
hyperbolic_quantized: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="hyperbolic-quantized")
] = None
inception: Optional[Dict[str, Nullable[Any]]] = None
inceptron: Optional[Dict[str, Nullable[Any]]] = None
inferact_vllm: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inferact-vllm")
] = None
inference_net: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inference-net")
] = None
infermatic: Optional[Dict[str, Nullable[Any]]] = None
inflection: Optional[Dict[str, Nullable[Any]]] = None
inocloud: Optional[Dict[str, Nullable[Any]]] = None
io_net: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="io-net")
] = None
ionstream: Optional[Dict[str, Nullable[Any]]] = None
klusterai: Optional[Dict[str, Nullable[Any]]] = None
lambda_: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lambda")
] = None
lepton: Optional[Dict[str, Nullable[Any]]] = None
liquid: Optional[Dict[str, Nullable[Any]]] = None
lynn: Optional[Dict[str, Nullable[Any]]] = None
lynn_private: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lynn-private")
] = None
mancer: Optional[Dict[str, Nullable[Any]]] = None
mancer_old: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="mancer-old")
] = None
mara: Optional[Dict[str, Nullable[Any]]] = None
meta: Optional[Dict[str, Nullable[Any]]] = None
minimax: Optional[Dict[str, Nullable[Any]]] = None
mistral: Optional[Dict[str, Nullable[Any]]] = None
modal: Optional[Dict[str, Nullable[Any]]] = None
modelrun: Optional[Dict[str, Nullable[Any]]] = None
modular: Optional[Dict[str, Nullable[Any]]] = None
moonshotai: Optional[Dict[str, Nullable[Any]]] = None
morph: Optional[Dict[str, Nullable[Any]]] = None
ncompass: Optional[Dict[str, Nullable[Any]]] = None
nebius: Optional[Dict[str, Nullable[Any]]] = None
nex_agi: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="nex-agi")
] = None
nextbit: Optional[Dict[str, Nullable[Any]]] = None
nineteen: Optional[Dict[str, Nullable[Any]]] = None
novita: Optional[Dict[str, Nullable[Any]]] = None
nvidia: Optional[Dict[str, Nullable[Any]]] = None
octoai: Optional[Dict[str, Nullable[Any]]] = None
open_inference: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="open-inference")
] = None
openai: Optional[Dict[str, Nullable[Any]]] = None
parasail: Optional[Dict[str, Nullable[Any]]] = None
perceptron: Optional[Dict[str, Nullable[Any]]] = None
perplexity: Optional[Dict[str, Nullable[Any]]] = None
phala: Optional[Dict[str, Nullable[Any]]] = None
poolside: Optional[Dict[str, Nullable[Any]]] = None
quiver: Optional[Dict[str, Nullable[Any]]] = None
recraft: Optional[Dict[str, Nullable[Any]]] = None
recursal: Optional[Dict[str, Nullable[Any]]] = None
reflection: Optional[Dict[str, Nullable[Any]]] = None
reka: Optional[Dict[str, Nullable[Any]]] = None
relace: Optional[Dict[str, Nullable[Any]]] = None
replicate: Optional[Dict[str, Nullable[Any]]] = None
sakana: Optional[Dict[str, Nullable[Any]]] = None
sambanova: Optional[Dict[str, Nullable[Any]]] = None
sambanova_cloaked: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sambanova-cloaked")
] = None
seed: Optional[Dict[str, Nullable[Any]]] = None
sf_compute: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sf-compute")
] = None
siliconflow: Optional[Dict[str, Nullable[Any]]] = None
sourceful: Optional[Dict[str, Nullable[Any]]] = None
stealth: Optional[Dict[str, Nullable[Any]]] = None
stepfun: Optional[Dict[str, Nullable[Any]]] = None
streamlake: Optional[Dict[str, Nullable[Any]]] = None
switchpoint: Optional[Dict[str, Nullable[Any]]] = None
targon: Optional[Dict[str, Nullable[Any]]] = None
tenstorrent: Optional[Dict[str, Nullable[Any]]] = None
together: Optional[Dict[str, Nullable[Any]]] = None
together_lite: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="together-lite")
] = None
ubicloud: Optional[Dict[str, Nullable[Any]]] = None
upstage: Optional[Dict[str, Nullable[Any]]] = None
venice: Optional[Dict[str, Nullable[Any]]] = None
wafer: Optional[Dict[str, Nullable[Any]]] = None
wandb: Optional[Dict[str, Nullable[Any]]] = None
xai: Optional[Dict[str, Nullable[Any]]] = None
xiaomi: Optional[Dict[str, Nullable[Any]]] = None
z_ai: Annotated[
Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="z-ai")
] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
[
"01ai",
"ai21",
"aion-labs",
"akashml",
"alibaba",
"amazon-bedrock",
"amazon-nova",
"ambient",
"anthropic",
"anyscale",
"arcee-ai",
"atlas-cloud",
"atoma",
"avian",
"azure",
"baidu",
"baseten",
"black-forest-labs",
"byteplus",
"centml",
"cerebras",
"chutes",
"cirrascale",
"clarifai",
"cloudflare",
"cohere",
"crofai",
"crucible",
"crusoe",
"darkbloom",
"decart",
"deepgram",
"deepinfra",
"deepseek",
"dekallm",
"digitalocean",
"enfer",
"fake-provider",
"featherless",
"fireworks",
"friendli",
"gmicloud",
"google-ai-studio",
"google-vertex",
"gopomelo",
"groq",
"heygen",
"huggingface",
"hyperbolic",
"hyperbolic-quantized",
"inception",
"inceptron",
"inferact-vllm",
"inference-net",
"infermatic",
"inflection",
"inocloud",
"io-net",
"ionstream",
"klusterai",
"lambda",
"lepton",
"liquid",
"lynn",
"lynn-private",
"mancer",
"mancer-old",
"mara",
"meta",
"minimax",
"mistral",
"modal",
"modelrun",
"modular",
"moonshotai",
"morph",
"ncompass",
"nebius",
"nex-agi",
"nextbit",
"nineteen",
"novita",
"nvidia",
"octoai",
"open-inference",
"openai",
"parasail",
"perceptron",
"perplexity",
"phala",
"poolside",
"quiver",
"recraft",
"recursal",
"reflection",
"reka",
"relace",
"replicate",
"sakana",
"sambanova",
"sambanova-cloaked",
"seed",
"sf-compute",
"siliconflow",
"sourceful",
"stealth",
"stepfun",
"streamlake",
"switchpoint",
"targon",
"tenstorrent",
"together",
"together-lite",
"ubicloud",
"upstage",
"venice",
"wafer",
"wandb",
"xai",
"xiaomi",
"z-ai",
]
)
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))
if val != UNSET_SENTINEL:
if val is not None or k not in optional_fields:
m[k] = val
return m
class ImageGenerationRequestProviderTypedDict(TypedDict):
r"""Provider-specific passthrough configuration"""
options: NotRequired[ImageGenerationRequestOptionsTypedDict]
class ImageGenerationRequestProvider(BaseModel):
r"""Provider-specific passthrough configuration"""
options: Optional[ImageGenerationRequestOptions] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["options"])
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))
if val != UNSET_SENTINEL:
if val is not None or k not in optional_fields:
m[k] = val
return m
ImageGenerationRequestQuality = Union[
Literal[
"auto",
@@ -691,8 +108,8 @@ class ImageGenerationRequestTypedDict(TypedDict):
r"""Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob."""
output_format: NotRequired[ImageGenerationRequestOutputFormat]
r"""Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`."""
provider: NotRequired[ImageGenerationRequestProviderTypedDict]
r"""Provider-specific passthrough configuration"""
provider: NotRequired[ImageGenerationProviderPreferencesTypedDict]
r"""Provider routing preferences and provider-specific passthrough configuration."""
quality: NotRequired[ImageGenerationRequestQuality]
r"""Rendering quality. Providers without a quality knob ignore this."""
resolution: NotRequired[ImageGenerationRequestResolution]
@@ -732,8 +149,8 @@ class ImageGenerationRequest(BaseModel):
output_format: Optional[ImageGenerationRequestOutputFormat] = None
r"""Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`."""
provider: Optional[ImageGenerationRequestProvider] = None
r"""Provider-specific passthrough configuration"""
provider: Optional[ImageGenerationProviderPreferences] = None
r"""Provider routing preferences and provider-specific passthrough configuration."""
quality: Optional[ImageGenerationRequestQuality] = None
r"""Rendering quality. Providers without a quality knob ignore this."""
@@ -780,9 +197,3 @@ class ImageGenerationRequest(BaseModel):
m[k] = val
return m
try:
ImageGenerationRequestOptions.model_rebuild()
except NameError:
pass
@@ -37,10 +37,14 @@ r"""Data collection setting. If no available model provider meets the requiremen
"""
IgnoreTypedDict = TypeAliasType("IgnoreTypedDict", Union[ProviderName, str])
ProviderPreferencesIgnoreTypedDict = TypeAliasType(
"ProviderPreferencesIgnoreTypedDict", Union[ProviderName, str]
)
Ignore = TypeAliasType("Ignore", Union[ProviderName, str])
ProviderPreferencesIgnore = TypeAliasType(
"ProviderPreferencesIgnore", Union[ProviderName, str]
)
class MaxPriceTypedDict(TypedDict):
@@ -93,25 +97,36 @@ class MaxPrice(BaseModel):
return m
OnlyTypedDict = TypeAliasType("OnlyTypedDict", Union[ProviderName, str])
ProviderPreferencesOnlyTypedDict = TypeAliasType(
"ProviderPreferencesOnlyTypedDict", Union[ProviderName, str]
)
Only = TypeAliasType("Only", Union[ProviderName, str])
ProviderPreferencesOnly = TypeAliasType(
"ProviderPreferencesOnly", Union[ProviderName, str]
)
OrderTypedDict = TypeAliasType("OrderTypedDict", Union[ProviderName, str])
ProviderPreferencesOrderTypedDict = TypeAliasType(
"ProviderPreferencesOrderTypedDict", Union[ProviderName, str]
)
Order = TypeAliasType("Order", Union[ProviderName, str])
ProviderPreferencesOrder = TypeAliasType(
"ProviderPreferencesOrder", Union[ProviderName, str]
)
SortTypedDict = TypeAliasType(
"SortTypedDict", Union[ProviderSortConfigTypedDict, ProviderSort, Any]
ProviderPreferencesSortTypedDict = TypeAliasType(
"ProviderPreferencesSortTypedDict",
Union[ProviderSortConfigTypedDict, ProviderSort, Any],
)
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
Sort = TypeAliasType("Sort", Union[ProviderSortConfig, ProviderSort, Any])
ProviderPreferencesSort = TypeAliasType(
"ProviderPreferencesSort", Union[ProviderSortConfig, ProviderSort, Any]
)
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
@@ -132,13 +147,13 @@ class ProviderPreferencesTypedDict(TypedDict):
"""
enforce_distillable_text: NotRequired[Nullable[bool]]
r"""Whether to restrict routing to only models that allow text distillation. When true, only models where the author has allowed distillation will be used."""
ignore: NotRequired[Nullable[List[IgnoreTypedDict]]]
ignore: NotRequired[Nullable[List[ProviderPreferencesIgnoreTypedDict]]]
r"""List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request."""
max_price: NotRequired[MaxPriceTypedDict]
r"""The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion."""
only: NotRequired[Nullable[List[OnlyTypedDict]]]
only: NotRequired[Nullable[List[ProviderPreferencesOnlyTypedDict]]]
r"""List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request."""
order: NotRequired[Nullable[List[OrderTypedDict]]]
order: NotRequired[Nullable[List[ProviderPreferencesOrderTypedDict]]]
r"""An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message."""
preferred_max_latency: NotRequired[Nullable[PreferredMaxLatencyTypedDict]]
r"""Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold."""
@@ -148,7 +163,7 @@ class ProviderPreferencesTypedDict(TypedDict):
r"""A list of quantization levels to filter the provider by."""
require_parameters: NotRequired[Nullable[bool]]
r"""Whether to filter providers to only those that support the parameters you've provided. If this setting is omitted or set to false, then providers will receive only the parameters they support, and ignore the rest."""
sort: NotRequired[Nullable[SortTypedDict]]
sort: NotRequired[Nullable[ProviderPreferencesSortTypedDict]]
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
zdr: NotRequired[Nullable[bool]]
r"""Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do not retain prompts will be used."""
@@ -174,16 +189,16 @@ class ProviderPreferences(BaseModel):
enforce_distillable_text: OptionalNullable[bool] = UNSET
r"""Whether to restrict routing to only models that allow text distillation. When true, only models where the author has allowed distillation will be used."""
ignore: OptionalNullable[List[Ignore]] = UNSET
ignore: OptionalNullable[List[ProviderPreferencesIgnore]] = UNSET
r"""List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request."""
max_price: Optional[MaxPrice] = None
r"""The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion."""
only: OptionalNullable[List[Only]] = UNSET
only: OptionalNullable[List[ProviderPreferencesOnly]] = UNSET
r"""List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request."""
order: OptionalNullable[List[Order]] = UNSET
order: OptionalNullable[List[ProviderPreferencesOrder]] = UNSET
r"""An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message."""
preferred_max_latency: OptionalNullable[PreferredMaxLatency] = UNSET
@@ -198,7 +213,7 @@ class ProviderPreferences(BaseModel):
require_parameters: OptionalNullable[bool] = UNSET
r"""Whether to filter providers to only those that support the parameters you've provided. If this setting is omitted or set to false, then providers will receive only the parameters they support, and ignore the rest."""
sort: OptionalNullable[Sort] = UNSET
sort: OptionalNullable[ProviderPreferencesSort] = UNSET
r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed."""
zdr: OptionalNullable[bool] = UNSET
+26 -26
View File
@@ -34,8 +34,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -67,7 +67,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -101,8 +101,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -134,7 +134,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -168,8 +168,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -204,7 +204,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -237,8 +237,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -273,7 +273,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -310,7 +310,7 @@ class Images(BaseSDK):
output_format=output_format,
prompt=prompt,
provider=utils.get_pydantic_model(
provider, Optional[components.ImageGenerationRequestProvider]
provider, Optional[components.ImageGenerationProviderPreferences]
),
quality=quality,
resolution=resolution,
@@ -514,8 +514,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -547,7 +547,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -581,8 +581,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -614,7 +614,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -648,8 +648,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -684,7 +684,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -717,8 +717,8 @@ class Images(BaseSDK):
output_format: Optional[components.ImageGenerationRequestOutputFormat] = None,
provider: Optional[
Union[
components.ImageGenerationRequestProvider,
components.ImageGenerationRequestProviderTypedDict,
components.ImageGenerationProviderPreferences,
components.ImageGenerationProviderPreferencesTypedDict,
]
] = None,
quality: Optional[components.ImageGenerationRequestQuality] = None,
@@ -753,7 +753,7 @@ class Images(BaseSDK):
:param n: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.
:param output_compression: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.
:param output_format: Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.
:param provider: Provider-specific passthrough configuration
:param provider: Provider routing preferences and provider-specific passthrough configuration.
:param quality: Rendering quality. Providers without a quality knob ignore this.
:param resolution: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.
:param seed: If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.
@@ -790,7 +790,7 @@ class Images(BaseSDK):
output_format=output_format,
prompt=prompt,
provider=utils.get_pydantic_model(
provider, Optional[components.ImageGenerationRequestProvider]
provider, Optional[components.ImageGenerationProviderPreferences]
),
quality=quality,
resolution=resolution,
Generated
+1 -1
View File
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
version = "0.11.24"
version = "0.11.25"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },