diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 6e86c59c..9beb24ec 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -5,15 +5,15 @@ management: docVersion: 1.0.0 speakeasyVersion: 1.685.0 generationVersion: 2.794.1 - releaseVersion: 2.0.0a3 - configChecksum: 7fc1ba01c21def8447b979e71593af4a + releaseVersion: 2.0.0a4 + configChecksum: ba32c03a012ed288fd25d0468115c501 repoURL: https://github.com/mistralai/client-python.git installationURL: https://github.com/mistralai/client-python.git published: true persistentEdits: - generation_id: 3aa9018f-cb6c-4c1b-96d0-b832fd5f6513 - pristine_commit_hash: 5c4e3b65b7572c91338d50dc3ca91ea6a46eedf7 - pristine_tree_hash: aaea604044e12872107c3b550ea7be094fb66a99 + generation_id: 9a42b13b-8fe7-416e-b97e-9a713b61df12 + pristine_commit_hash: fe97508889702d0b0a1bb4615bc6ff682ded6104 + pristine_tree_hash: 38fd75708b2c808e2a9d1e51b4129f9dd94676f1 features: python: additionalDependencies: 1.0.0 @@ -1686,8 +1686,8 @@ trackedFiles: pristine_git_object: 036d44b8cfc51599873bd5c401a6aed30450536c src/mistralai/client/_version.py: id: cc807b30de19 - last_write_checksum: sha1:dd6d1521f7ecfc56be58eafc1709873a04d27fb0 - pristine_git_object: 814d9ec74a37ae50f106ea07b3c174e65685521b + last_write_checksum: sha1:67bfbc4ca7bff931843370465ed647cd885b8668 + pristine_git_object: 78591b3e820d9368eeedac50bb5a11242bc8e9cc src/mistralai/client/accesses.py: id: 76fc53bfcf59 last_write_checksum: sha1:16574ca54176ec30b236ab1a4694f57a6314db43 diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 23b915b5..35938ac1 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 2.0.0a3 + version: 2.0.0a4 additionalDependencies: dev: pytest: ^8.2.2 diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index a9e18489..4c7e03f7 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -25,21 +25,21 @@ targets: sourceRevisionDigest: sha256:d303e640ad565cc8a9801519b20dc7eab226efdfdab951c11256962d9e479f74 sourceBlobDigest: sha256:6e4c789de61b2c9c604bf581e0abbadae90e360491d95ec4247678f4f70cee87 codeSamplesNamespace: mistral-openapi-azure-code-samples - codeSamplesRevisionDigest: sha256:0109302b87fa17b0103ef1e372fae76356811b3c552103e659bd5373d537d759 + codeSamplesRevisionDigest: sha256:8711f9530be8d85c07ddd45d57cb9f66471faa6c890b63c86bb26c602a552a3c mistralai-gcp-sdk: source: mistral-google-cloud-source sourceNamespace: mistral-openapi-google-cloud sourceRevisionDigest: sha256:351c4d392b8b2220c337a207e98ed5665ed27fd85de854871a70c4bc2b9c0784 sourceBlobDigest: sha256:d79b21f70efb93b0cd261d2044939a288beaf8707a7caae86aca5c4d5de3821b codeSamplesNamespace: mistral-openapi-google-cloud-code-samples - codeSamplesRevisionDigest: sha256:09bb7cbf291076170d228116db05d1c9606af541b301b6564609c4d76633258a + codeSamplesRevisionDigest: sha256:be70721be1bcbef628ebca0ae3b3321c869d7e5abca8beb5451ba0abb7f2f425 mistralai-sdk: source: mistral-openapi sourceNamespace: mistral-openapi sourceRevisionDigest: sha256:74d0de7750f6a1878b68c9da683eba7a447d7c367131d0cb8f5c3b1e05829624 sourceBlobDigest: sha256:41e8354c48993fc29be68959d835ea4f8e0cc1d4b4fbd527afcd970bc02c62a2 codeSamplesNamespace: mistral-openapi-code-samples - codeSamplesRevisionDigest: sha256:f37fb6188ad25957bef4cadaa03f454a4f9ab0c045db633a46d9cc89af145ba2 + codeSamplesRevisionDigest: sha256:99fcae1bc81801e3825648a44f5ffa62a8f124e3186e5570be40414de164e7f2 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.685.0 diff --git a/MIGRATION.md b/MIGRATION.md index 9f39cdb5..906173fe 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -33,6 +33,26 @@ from mistralai.client.types import BaseModel | `from mistralai.types import ...` | `from mistralai.client.types import ...` | | `from mistralai.utils import ...` | `from mistralai.client.utils import ...` | +### Azure & GCP Import Changes + +Azure and GCP SDKs now live under the `mistralai` namespace as separate distributions: + +| v1 | v2 | +|---|---| +| `from mistralai_azure import MistralAzure` | `from mistralai.azure.client import MistralAzure` | +| `from mistralai_azure.models import ...` | `from mistralai.azure.client.models import ...` | +| `from mistralai_gcp import MistralGoogleCloud` | `from mistralai.gcp.client import MistralGCP` | +| `from mistralai_gcp.models import ...` | `from mistralai.gcp.client.models import ...` | + +#### Installation Changes + +| v1 | v2 | +|---|---| +| `pip install mistralai` | `pip install mistralai` (includes Azure and GCP) | +| `pip install mistralai[gcp]` (for GCP auth) | `pip install "mistralai[gcp]"` (for GCP auth dependencies) | + +Azure and GCP are now standalone distributions that can be installed independently of the core SDK. The `mistralai[azure]` and `mistralai[gcp]` extras are syntactic sugar that pull in the respective distributions. + ### What Stays the Same - The `Mistral` client API is unchanged diff --git a/README.md b/README.md index 53de43f5..22c11c63 100644 --- a/README.md +++ b/README.md @@ -372,35 +372,35 @@ You can run the examples in the `examples/` directory using `uv run`. Before you begin, ensure you have `AZUREAI_ENDPOINT` and an `AZURE_API_KEY`. To obtain these, you will need to deploy Mistral on Azure AI. See [instructions for deploying Mistral on Azure AI here](https://docs.mistral.ai/deployment/cloud/azure/). +**Step 1: Install** + +```bash +pip install mistralai +``` + +**Step 2: Example Usage** + Here's a basic example to get you started. You can also run [the example in the `examples` directory](/examples/azure). ```python -import asyncio import os - -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure client = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) -async def main() -> None: - res = await client.chat.complete_async( - max_tokens= 100, - temperature= 0.5, - messages= [ - { - "content": "Hello there!", - "role": "user" - } - ] - ) - print(res) - -asyncio.run(main()) +res = client.chat.complete( + messages=[ + { + "content": "Hello there!", + "role": "user" + } + ] +) +print(res.choices[0].message.content) ``` -The documentation for the Azure SDK is available [here](packages/mistralai_azure/README.md). ### Google Cloud @@ -417,40 +417,34 @@ gcloud auth application-default login **Step 1: Install** -Install the extras dependencies specific to Google Cloud: - ```bash +pip install mistralai +# For GCP authentication support: pip install "mistralai[gcp]" ``` **Step 2: Example Usage** -Here's a basic example to get you started. +Here's a basic example to get you started. You can also run [the example in the `examples` directory](/examples/gcp). ```python -import asyncio -from mistralai_gcp import MistralGoogleCloud - -client = MistralGoogleCloud() - +import os +from mistralai.gcp.client import MistralGCP -async def main() -> None: - res = await client.chat.complete_async( - model= "mistral-small-2402", - messages= [ - { - "content": "Hello there!", - "role": "user" - } - ] - ) - print(res) +client = MistralGCP(api_key=os.getenv("GCP_API_KEY", "")) -asyncio.run(main()) +res = client.chat.complete( + model="mistral-large-2407", + messages=[ + { + "content": "Hello there!", + "role": "user" + } + ] +) +print(res.choices[0].message.content) ``` -The documentation for the GCP SDK is available [here](packages/mistralai_gcp/README.md). - ## Available Resources and Operations diff --git a/docs/gen-yaml-diff.md b/docs/gen-yaml-diff.md new file mode 100644 index 00000000..881bb3b5 --- /dev/null +++ b/docs/gen-yaml-diff.md @@ -0,0 +1,43 @@ +# gen.yaml Diff: Main vs Azure vs GCP + +## `generation` section + +| Setting | Main | Azure | GCP | +|---------|------|-------|-----| +| `sdkClassName` | `Mistral` | `MistralAzure` | `MistralGCP` | +| `nameResolutionDec2023` | `true` | `true` | `true` | +| `nameResolutionFeb2025` | `true` | `true` | `true` | +| `parameterOrderingFeb2024` | `true` | `true` | `true` | +| `requestResponseComponentNamesFeb2024` | `true` | `true` | `true` | +| `securityFeb2025` | `true` | `true` | `true` | +| `sharedErrorComponentsApr2025` | `true` | `true` | `true` | +| `methodSignaturesApr2024` | `true` | `true` | `true` | +| `sharedNestedComponentsJan2026` | `true` | `true` | `true` | + +## `python` section + +| Setting | Main | Azure | GCP | +|---------|------|-------|-----| +| `version` | `2.0.0a4` | `2.0.0a4` | `2.0.0a4` | +| `additionalDependencies.main` | *none* | *none* | *none* | +| `baseErrorName` | `MistralError` | `MistralAzureError` | `MistralGcpError` | +| `description` | `...Mistral AI API.` | `...in Azure.` | `...in GCP.` | +| `enableCustomCodeRegions` | `true` | `false` | `false` | +| `envVarPrefix` | `MISTRAL` | *missing* | *missing* | +| `responseRequiredSep2024` | `true` | `true` | `true` | +| `flatAdditionalProperties` | `true` | `true` | `true` | +| `forwardCompatibleEnumsByDefault` | `true` | `true` | `true` | +| `forwardCompatibleUnionsByDefault` | `tagged-only` | `tagged-only` | `tagged-only` | +| `preApplyUnionDiscriminators` | `true` | `true` | `true` | +| `moduleName` | `mistralai.client` | `mistralai.azure.client` | `mistralai.gcp.client` | +| `packageName` | `mistralai` | `mistralai-azure` | `mistralai-gcp` | + +## Remaining intentional differences + +All fix flags and feature flags are now aligned. The only remaining differences are expected per-target values: + +- **`version`** -- all at 2.0.0a4 (versions may diverge independently) +- **`baseErrorName`** / `description` -- per-target identity +- **`enableCustomCodeRegions`** -- `false` in Azure/GCP (they have no custom code regions) +- **`envVarPrefix`** -- absent in Azure/GCP (only the main SDK reads `MISTRAL_*` env vars) +- **`moduleName`** / `packageName` -- per-target namespace diff --git a/examples/azure/az_chat_no_streaming.py b/examples/azure/az_chat_no_streaming.py deleted file mode 100644 index 4d5530dc..00000000 --- a/examples/azure/az_chat_no_streaming.py +++ /dev/null @@ -1,15 +0,0 @@ -import os - -from mistralai_azure import MistralAzure -from mistralai_azure.models import ChatCompletionRequestMessages, UserMessage - -client = MistralAzure( - azure_api_key=os.environ["AZURE_API_KEY"], - azure_endpoint=os.environ["AZURE_ENDPOINT"], -) - -messages: list[ChatCompletionRequestMessages] = [ - UserMessage(content="What is the capital of France?"), -] -res = client.chat.complete(messages=messages) -print(res.choices[0].message.content) diff --git a/examples/azure/chat_no_streaming.py b/examples/azure/chat_no_streaming.py index 4d5530dc..5c8665ff 100644 --- a/examples/azure/chat_no_streaming.py +++ b/examples/azure/chat_no_streaming.py @@ -1,14 +1,14 @@ import os -from mistralai_azure import MistralAzure -from mistralai_azure.models import ChatCompletionRequestMessages, UserMessage +from mistralai.azure.client import MistralAzure +from mistralai.azure.client.models import ChatCompletionRequestMessage, UserMessage client = MistralAzure( - azure_api_key=os.environ["AZURE_API_KEY"], - azure_endpoint=os.environ["AZURE_ENDPOINT"], + api_key=os.environ["AZURE_API_KEY"], + server_url=os.environ["AZURE_ENDPOINT"], ) -messages: list[ChatCompletionRequestMessages] = [ +messages: list[ChatCompletionRequestMessage] = [ UserMessage(content="What is the capital of France?"), ] res = client.chat.complete(messages=messages) diff --git a/examples/gcp/async_chat_no_streaming.py b/examples/gcp/async_chat_no_streaming.py index 178f151c..0e5643b9 100755 --- a/examples/gcp/async_chat_no_streaming.py +++ b/examples/gcp/async_chat_no_streaming.py @@ -3,14 +3,14 @@ import asyncio import os -from mistralai_gcp import MistralGoogleCloud -from mistralai_gcp.models.usermessage import UserMessage +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client.models.usermessage import UserMessage async def main(): model = "mistral-large-2407" - client = MistralGoogleCloud(project_id=os.environ["GCP_PROJECT_ID"]) + client = MistralGCP(api_key=os.environ["GCP_API_KEY"]) chat_response = await client.chat.complete_async( model=model, diff --git a/examples/gcp/gcp_async_chat_no_streaming.py b/examples/gcp/gcp_async_chat_no_streaming.py deleted file mode 100755 index 178f151c..00000000 --- a/examples/gcp/gcp_async_chat_no_streaming.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python - -import asyncio -import os - -from mistralai_gcp import MistralGoogleCloud -from mistralai_gcp.models.usermessage import UserMessage - - -async def main(): - model = "mistral-large-2407" - - client = MistralGoogleCloud(project_id=os.environ["GCP_PROJECT_ID"]) - - chat_response = await client.chat.complete_async( - model=model, - messages=[UserMessage(content="What is the best French cheese?")], - ) - - print(chat_response.choices[0].message.content) - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/packages/mistralai_azure/.speakeasy/gen.lock b/packages/mistralai_azure/.speakeasy/gen.lock index a7cdba10..93269863 100644 --- a/packages/mistralai_azure/.speakeasy/gen.lock +++ b/packages/mistralai_azure/.speakeasy/gen.lock @@ -5,20 +5,21 @@ management: docVersion: 1.0.0 speakeasyVersion: 1.685.0 generationVersion: 2.794.1 - releaseVersion: 1.8.1 - configChecksum: 0448ba634aa36625c6ac276e17e3b3b5 + releaseVersion: 2.0.0a4 + configChecksum: 549cf1eae199d39bf97052462fd8e640 repoURL: https://github.com/mistralai/client-python.git repoSubDirectory: packages/mistralai_azure installationURL: https://github.com/mistralai/client-python.git#subdirectory=packages/mistralai_azure published: true persistentEdits: - generation_id: ecb4f74f-ba8a-4f28-941d-36b3258200bd - pristine_commit_hash: 785c0560d42a9c4cff938392bb6d52d98a2f3529 - pristine_tree_hash: 50ed42d2e4b3d4ecd639935cd1511220354a41d7 + generation_id: 25273f4a-1e18-4ae1-88a8-ab09eb3c804c + pristine_commit_hash: 6a25b81af3489d4a3571a22ebda954d53d6d4128 + pristine_tree_hash: 4e6f740b3d31ba6e51805bb36100176f13010779 features: python: additionalDependencies: 1.0.0 additionalProperties: 1.0.1 + configurableModuleName: 0.2.0 constsAndDefaults: 1.0.5 core: 5.23.18 defaultEnabledRetries: 0.2.0 @@ -57,16 +58,12 @@ trackedFiles: pristine_git_object: 2e54e27e0ca97bee87918b2ae38cc6c335669a79 docs/models/assistantmessage.md: id: 7e0218023943 - last_write_checksum: sha1:e75d407349842b2de46ee3ca6250f9f51121cf38 - pristine_git_object: 3d0bd90b4433c1a919f917f4bcf2518927cdcd50 + last_write_checksum: sha1:8e8cc655e97126a378118a213e6167a7929e7600 + pristine_git_object: 1ca5ac82d3e785e026a667800759efa9d2b246ac docs/models/assistantmessagecontent.md: id: 9f1795bbe642 last_write_checksum: sha1:1ce4066623a8d62d969e5ed3a088d73a9ba26643 pristine_git_object: 047b7cf95f4db203bf2c501680b73ca0562a122d - docs/models/assistantmessagerole.md: - id: bb5d2a4bc72f - last_write_checksum: sha1:82f2c4f469426bd476c1003a91394afb89cb7c91 - pristine_git_object: 658229e77eb6419391cf7941568164541c528387 docs/models/chatcompletionchoice.md: id: 0d15c59ab501 last_write_checksum: sha1:a6274a39a4239e054816d08517bf8507cb5c4564 @@ -77,12 +74,12 @@ trackedFiles: pristine_git_object: b2f15ecbe88328de95b4961ddb3940fd8a6ee64b docs/models/chatcompletionrequest.md: id: adffe90369d0 - last_write_checksum: sha1:de5476eb16a5ff75942b1ece68dbe547110dbbb8 - pristine_git_object: 104a1f96e60e1d4b86305dab2829be084b00b153 - docs/models/chatcompletionrequestmessages.md: - id: ec996b350e12 - last_write_checksum: sha1:2ecec8d12cdb48426f4eb62732066fc79fcd4ec3 - pristine_git_object: bc7708a67f06d74e8a5bf1facb2b23fb1e08053c + last_write_checksum: sha1:a404d37c6605a5524f1f48b418bacf46e86a9a68 + pristine_git_object: 3b0f7270840e257475f4b0f15f27e0c0152818d2 + docs/models/chatcompletionrequestmessage.md: + id: 3f5e170d418c + last_write_checksum: sha1:7921c5a508a9f88adc01caab34e26182b8035607 + pristine_git_object: 91e9e062d0ef0cb69235c4ae4516548733ce28a9 docs/models/chatcompletionrequeststop.md: id: fcaf5bbea451 last_write_checksum: sha1:71a25f84f0d88c7acf72e801ced6159546201851 @@ -97,8 +94,16 @@ trackedFiles: pristine_git_object: a0465ffbfc5558628953e03fbc53b80bbdc8649b docs/models/chatcompletionstreamrequest.md: id: cf8f29558a68 - last_write_checksum: sha1:f6bc4a0f064fc3420ae9b29c7e6fc9100ae85e4d - pristine_git_object: 85f237b4fc59ffc487377f150952284cc2102d85 + last_write_checksum: sha1:daca00885f0d0f9863d8420bbee514723084813d + pristine_git_object: f78156a647ec63ca60ff423acbdee2b2404e4e60 + docs/models/chatcompletionstreamrequestmessage.md: + id: 053a98476cd2 + last_write_checksum: sha1:8270692463fab1243d9de4bbef7162daa64e52c5 + pristine_git_object: 2e4e93acca8983a3ea27b391d4606518946e13fe + docs/models/chatcompletionstreamrequeststop.md: + id: d0e89a4dca78 + last_write_checksum: sha1:a889e9580fa94bda7c848682d6ba501b7f5c0f41 + pristine_git_object: a48460a92ac47fec1de2188ba46b238229736d32 docs/models/chatcompletionstreamrequesttoolchoice.md: id: 210d5e5b1413 last_write_checksum: sha1:0543164caf3f4fb2bef3061dbd1a5e6b34b17ae9 @@ -113,20 +118,24 @@ trackedFiles: pristine_git_object: 7a66e8fee2bb0f1c58166177653893bb05b98f1d docs/models/completionresponsestreamchoice.md: id: d56824d615a6 - last_write_checksum: sha1:dcf4b125b533192cb5aea1a68551866954712dc5 - pristine_git_object: c807dacd98eb3561ee45f40db71a92cb72b0f6de - docs/models/content.md: - id: bfd859c99f86 - last_write_checksum: sha1:6673dbd19871a701955a322348a4f7e51c38ffc8 - pristine_git_object: a833dc2c6043e36b85131c9243b4cc02b9fcc4c6 + last_write_checksum: sha1:0296a490df009dbfd04893fdebcc88dd6102a872 + pristine_git_object: 1532c25b8fc065d486f52d4610a7f757e5340875 + docs/models/completionresponsestreamchoicefinishreason.md: + id: 5f1fbfc90b8e + last_write_checksum: sha1:20824b4a223cbd3658b32440973a7d47dcd108b9 + pristine_git_object: 0fece473297227c75db4e7ded63417a2f117cac0 docs/models/contentchunk.md: id: d2d3a32080cd last_write_checksum: sha1:5839a26cdc412b78caad7fb59df97bdcea57be6d pristine_git_object: 22023e8b19692df969693b7a14f8cf6e0143859f docs/models/deltamessage.md: id: 6c5ed6b60968 - last_write_checksum: sha1:c213149256c620715d744c89685d5b6cbdea6f58 - pristine_git_object: 61deabbf7e37388fdd4c1789089d120cc0b937b9 + last_write_checksum: sha1:00052476b9b2474dbc149f18dd18c71c86d0fc74 + pristine_git_object: e0ee575f3fce7c312114ce8c5390efc5c4854952 + docs/models/deltamessagecontent.md: + id: 7307bedc8733 + last_write_checksum: sha1:a1211b8cb576ad1358e68983680ee326c3920a5e + pristine_git_object: 8142772d7ea33ad8a75cf9cf822564ba3f630de2 docs/models/document.md: id: cd1d2a444370 last_write_checksum: sha1:d00a2ac808a0ae83a7b97da87e647ecc8dca9c52 @@ -143,10 +152,6 @@ trackedFiles: id: edc076728e9d last_write_checksum: sha1:07ab5db503211adba2fa099e66d12ac3c4bbf680 pristine_git_object: 18217114060ac4e4b45fefabace4628684f27e5c - docs/models/finishreason.md: - id: 73315c2a39b3 - last_write_checksum: sha1:5b58c7fa9219f728b9731287e21abe1be9f11e4a - pristine_git_object: 45a5aedb7241cf080df3eb976a4413064d314009 docs/models/format_.md: id: a17c22228eda last_write_checksum: sha1:dad6de59fec6378d50356007602e2a0254d8d2e4 @@ -173,16 +178,16 @@ trackedFiles: pristine_git_object: 7c2bcbc36e99c3cf467d213d6a6a59d6300433d8 docs/models/imageurlchunk.md: id: 4407097bfff3 - last_write_checksum: sha1:7a478fd638234ece78770c7fc5e8d0adaf1c3727 - pristine_git_object: f1b926ef8e82443aa1446b1c64c2f02e33d7c789 - docs/models/imageurlchunkimageurl.md: - id: c7fae88454ce - last_write_checksum: sha1:5eff71b7a8be7baacb9ba8ca0be0a0f7a391a325 - pristine_git_object: 767389082d25f06e617fec2ef0134dd9fb2d4064 + last_write_checksum: sha1:73e14a0beccfc9465ee6d2990462e609903f5cd5 + pristine_git_object: 43078c7849fb3e808c2eaeaa5a3caeab2619d700 docs/models/imageurlchunktype.md: id: b9af2db9ff60 last_write_checksum: sha1:990546f94648a09faf9d3ae55d7f6ee66de13e85 pristine_git_object: 2064a0b405870313bd4b802a3b1988418ce8439e + docs/models/imageurlunion.md: + id: 9d3c691a9db0 + last_write_checksum: sha1:4e32bcd7d44746d2ddbfafbef96152bb2bdb2a15 + pristine_git_object: db97130f26199dcb354ecb7469d09530b035daa2 docs/models/jsonschema.md: id: a6b15ed6fac8 last_write_checksum: sha1:523465666ad3c292252b3fe60f345c7ffb29053f @@ -191,10 +196,6 @@ trackedFiles: id: b071d5a509cc last_write_checksum: sha1:09a04749333ab50ae806c3ac6adcaa90d54df0f1 pristine_git_object: d6094ac2c6e0326c039dad2f6b89158694ef6aa7 - docs/models/messages.md: - id: 2103cd675c2f - last_write_checksum: sha1:f6940c9c67b98c49ae2bc2764f6c14178321f244 - pristine_git_object: 1d394500e8ffdd140457575568fc2ce465a1cc3a docs/models/mistralpromptmode.md: id: d17d5db4d3b6 last_write_checksum: sha1:abcb7205c5086169c7d9449d15ac142448a7d258 @@ -247,22 +248,18 @@ trackedFiles: id: cf1f250b82db last_write_checksum: sha1:105e1f9181913104b554051838cbdd0f728aa2c4 pristine_git_object: 2f5f1e5511b048323fee18a0ffdd506fe2b3d56f - docs/models/role.md: - id: b694540a5b1e - last_write_checksum: sha1:260a50c56a8bd03cc535edf98ebec06437f87f8d - pristine_git_object: affca78d5574cc42d8e6169f21968e5a8765e053 + docs/models/roleenum.md: + id: 0d7e1c46e8a4 + last_write_checksum: sha1:61fa8e7b302bffb18a9e4c19e7099580025a92c1 + pristine_git_object: 4213c18d66e0508d066f3317b5fbbca05bef3ac3 docs/models/security.md: id: 452e4d4eb67a last_write_checksum: sha1:ce2871b49c1632d50e22d0b1ebe4999021d52313 pristine_git_object: c698674c513f5b20c04f629e50154e67977275f7 - docs/models/stop.md: - id: f231cc9f5041 - last_write_checksum: sha1:86903cac5f57ad9b8ac07ecba6c454d40a53bdc8 - pristine_git_object: ba40ca83136d6d6cb4f1ef9e5ca3104a704e4846 docs/models/systemmessage.md: id: fdb7963e1cdf - last_write_checksum: sha1:97e726dff19a39b468767d5c01fc6256277ee71f - pristine_git_object: 0dba71c00f40c85e74b2c1967e077ffff9660f13 + last_write_checksum: sha1:561c3372391e093c890f477b3213c308ead50b81 + pristine_git_object: dfb0cd0bd17aecbc1fe4b8410e78440f65038fef docs/models/systemmessagecontent.md: id: 94a56febaeda last_write_checksum: sha1:6cb10b4b860b4204df57a29c650c85c826395aeb @@ -277,16 +274,12 @@ trackedFiles: pristine_git_object: 54f029b814fdcfa2e93e2b8b0594ef9e4eab792a docs/models/textchunk.md: id: 6cd12e0ef110 - last_write_checksum: sha1:6d41d1991d122805734ed0d90ee01592aa5ae6ff - pristine_git_object: 6daab3c381bd8c13d2935bf62578648a8470fc76 + last_write_checksum: sha1:43bc634db23ae0ca56e9e0073817aa0b5a7a43c6 + pristine_git_object: 8521a2c1049ccdcd75c01b34c85eabeeac4e2af5 docs/models/thinkchunk.md: id: bca24d7153f6 - last_write_checksum: sha1:feb95a931bb9cdbfe28ab351618687e513cf830b - pristine_git_object: 66b2e0cde70e25e2927180d2e709503401fddeab - docs/models/thinkchunktype.md: - id: 0fbeed985341 - last_write_checksum: sha1:790f991f95c86c26a6abb9c9c5debda8b53526f5 - pristine_git_object: baf6f755252d027295be082b53ecf80555039414 + last_write_checksum: sha1:714ab1ad03b7641a9225bcb6bd47015e482b70c3 + pristine_git_object: 07f6f7b13336f2766723bcdff1d535a53962487e docs/models/thinking.md: id: 07234f8dd364 last_write_checksum: sha1:a5962d1615b57996730da19e59fbfaa684321442 @@ -309,40 +302,28 @@ trackedFiles: pristine_git_object: 0be3d6c54b13a8bf30773398a2c12e0d30d3ae58 docs/models/toolmessage.md: id: 0553747c37a1 - last_write_checksum: sha1:3ac87031fdd4ba8b0996e95be8e7ef1a7ff41167 - pristine_git_object: a54f49332c2873471759b477fb4c712fa4fb61f5 + last_write_checksum: sha1:f35fa287b94d2c1a9de46c2c479dadd5dca7144d + pristine_git_object: fa00d666d6d2baea0aac10fcdeff449eb73c9d39 docs/models/toolmessagecontent.md: id: f0522d2d3c93 last_write_checksum: sha1:783769c0200baa1b6751327aa3e009fa83da72ee pristine_git_object: 5c76091fbd2c8e0d768921fab19c7b761df73411 - docs/models/toolmessagerole.md: - id: f333d4d1ab56 - last_write_checksum: sha1:7e1c004bad24e928da0c286a9f053516b172d24f - pristine_git_object: c24e59c0c79ea886d266e38c673edd51531b9be6 docs/models/tooltypes.md: id: adb50fe63ea2 last_write_checksum: sha1:f224c3d8732450b9c969b3e04027b7df7892694c pristine_git_object: 84e49253c9b9bd1bd314e2a126106404cbb52f16 - docs/models/type.md: - id: 98c32f09b2c8 - last_write_checksum: sha1:8aa9ca999e9648ddc2240bf80780684e3e858ddf - pristine_git_object: eb0581e7174b6951d69c485a64af5244cb8687fa docs/models/usageinfo.md: id: ec6fe65028a9 last_write_checksum: sha1:cf71fb9676d870eba7c4d10a69636e1db4054adc pristine_git_object: f5204ac94a4d6191839031c66c5a9bc0124a1f35 docs/models/usermessage.md: id: ed66d7a0f80b - last_write_checksum: sha1:8291f7703e49ed669775dc953ea8cab6715dc7ed - pristine_git_object: 63b0131091cd211b3b1477c1d63b5666a26db546 + last_write_checksum: sha1:627f88dbb89e226a7d92564658c23a0e8d71342a + pristine_git_object: 78ed066eed9f0638edc6db697eaeaad6f32b4770 docs/models/usermessagecontent.md: id: 52c072c851e8 last_write_checksum: sha1:1de02bcf7082768ebe1bb912fdbebbec5a577b5a pristine_git_object: 8350f9e8f8996c136093e38760990f62fd01f8cf - docs/models/usermessagerole.md: - id: 99ffa937c462 - last_write_checksum: sha1:52014480516828b43827aa966b7319d9074f1111 - pristine_git_object: 171124e45988e784c56a6b92a0057ba00efc0db4 docs/models/utils/retryconfig.md: id: 4343ac43161c last_write_checksum: sha1:562c0f21e308ad10c27f85f75704c15592c6929d @@ -367,324 +348,328 @@ trackedFiles: id: fe273b08f514 last_write_checksum: sha1:b290b25b36dca3d5eb1a2e66a2e1bcf2e7326cf3 pristine_git_object: c35748f360329c2bc370e9b189f49b1a360b2c48 - src/mistralai_azure/__init__.py: - id: 3cd9e92c2f72 + src/mistralai/azure/client/__init__.py: + id: 5624bda9196d last_write_checksum: sha1:36306d1d404b6aeb912d27f1d9c52f098ff7bf9b pristine_git_object: dd02e42e4cc509dc90e6ae70493054021faa5f9c - src/mistralai_azure/_hooks/__init__.py: - id: 66932eacf398 + src/mistralai/azure/client/_hooks/__init__.py: + id: 850c237217cb last_write_checksum: sha1:e3111289afd28ad557c21d9e2f918caabfb7037d pristine_git_object: 2ee66cdd592fe41731c24ddd407c8ca31c50aec1 - src/mistralai_azure/_hooks/sdkhooks.py: - id: 1184c9201c62 - last_write_checksum: sha1:c98774db1664db2bc6d80e8a5f4f5133260f201a - pristine_git_object: 37ff4e9f0ebd42a58ada6300098a5b1b85a54b69 - src/mistralai_azure/_hooks/types.py: - id: a32fe1943bce - last_write_checksum: sha1:78fc31840a38e668a73871885c779929196a8bec - pristine_git_object: 0c22d7ebccdd64097033454b7c698d10ee59987d - src/mistralai_azure/_version.py: - id: 7711a0bb1da3 - last_write_checksum: sha1:9a446d67d6a86cdf9d9e3447c1c09a4f719b2c9b - pristine_git_object: 79277f9a358b4c851363e11e1e8f534779e9f271 - src/mistralai_azure/basesdk.py: - id: 7d825dbc7d6e - last_write_checksum: sha1:4070786599952b3c603d1384d87d7b92bb13b974 - pristine_git_object: 89f7dc493d7f50d5f2d3f468c0a8392a6ec5e28b - src/mistralai_azure/chat.py: - id: ebf1c99bea88 - last_write_checksum: sha1:2d78fa9e8b3e300e18b6fb3bc116e824261efb55 - pristine_git_object: 10bb247fb89f0f9ef110300224c95f2a7653ad2f - src/mistralai_azure/httpclient.py: - id: 808a3f534ffa + src/mistralai/azure/client/_hooks/sdkhooks.py: + id: e9923767446c + last_write_checksum: sha1:ae162d6e73be0eb767c353c815d76b034395d50f + pristine_git_object: 2080681b7f2c52fcb80dcb95eff48654763e6258 + src/mistralai/azure/client/_hooks/types.py: + id: 07c892e06527 + last_write_checksum: sha1:fde2e0f6da6930232b67682009de520724b23398 + pristine_git_object: 3e4e39555d60adebe84e596c8323ee5b80676fc9 + src/mistralai/azure/client/_version.py: + id: a77160e60e5d + last_write_checksum: sha1:e26eb828e9a240042acc754f38dcf2e581e045aa + pristine_git_object: 4448d2a0fd803f43820378359c921d09eba6f43e + src/mistralai/azure/client/basesdk.py: + id: 5a585a95ec21 + last_write_checksum: sha1:d7a4a959d7d3ca3cd22d8daf144c3b4d5c0d1210 + pristine_git_object: b0391ac078b4e2a5d9107ed014c1ca939a553c23 + src/mistralai/azure/client/chat.py: + id: c18454e628d7 + last_write_checksum: sha1:cc1ff54b85ce494428ebf22ec01bd1199cd9e2b6 + pristine_git_object: 3348bf47eafb3fcfb2de0e7d512073e947b69554 + src/mistralai/azure/client/httpclient.py: + id: 60c81037fbd0 last_write_checksum: sha1:5e55338d6ee9f01ab648cad4380201a8a3da7dd7 pristine_git_object: 89560b566073785535643e694c112bedbd3db13d - src/mistralai_azure/models/__init__.py: - id: e5fcf3933d2c - last_write_checksum: sha1:43f0ebb24f64a382fd18202da65a321d9925dbee - pristine_git_object: 9baa3ff1865cd8aec9e9b93d6e3c315e8c7870c5 - src/mistralai_azure/models/assistantmessage.py: - id: 15f117b45380 - last_write_checksum: sha1:3c2872d06ad465dbbbedcf8d397d1f12961e1e2e - pristine_git_object: 7790eb10a034d892c3c1e793c412c75ff8820e40 - src/mistralai_azure/models/chatcompletionchoice.py: - id: 93cfc6cec0d2 - last_write_checksum: sha1:f5dfcf407d8abd5ce8eb23f058c589861c71a0df - pristine_git_object: 7c6eb933faf09cc5c6102575d371ac280f2e242d - src/mistralai_azure/models/chatcompletionrequest.py: - id: d046a16b5e58 - last_write_checksum: sha1:bc1e0b5c8b11bfef5a9b135436c2f3f555a11fa3 - pristine_git_object: a7b095f34c572e1805650e44f847946280ccb3fe - src/mistralai_azure/models/chatcompletionresponse.py: - id: fc342e80f579 - last_write_checksum: sha1:a93593ec734420bc122f0b0b8c49d630795f1d42 - pristine_git_object: 7a66f3221a154b1a0f47c4f808ece8e580280548 - src/mistralai_azure/models/chatcompletionstreamrequest.py: - id: 1052b055a791 - last_write_checksum: sha1:18f71c5eeda25d23f2c82ddcdb710a20b44b806c - pristine_git_object: 96cd631b0ed74e5c82c6e2492011001021b019f8 - src/mistralai_azure/models/completionchunk.py: - id: e04bc380589d - last_write_checksum: sha1:490c3236276ae8fdecb883744e263aecbe4c608c - pristine_git_object: d6cc2a86a1fda1ebce1f3c5a169ab1118705e3f0 - src/mistralai_azure/models/completionevent.py: - id: e75909f919b1 - last_write_checksum: sha1:9f5423ad56747fb7cc95a6f01e0826510571d4c1 - pristine_git_object: 5a2039c2492bab82184b4f2469806f8b977a7246 - src/mistralai_azure/models/completionresponsestreamchoice.py: - id: 24fe265a60d8 - last_write_checksum: sha1:df52342c3458cca6396d538c5d9a42f07131796d - pristine_git_object: 0e890aacf79f8f220f585d914c6fbe8863232036 - src/mistralai_azure/models/contentchunk.py: - id: 9e6b90acdf54 - last_write_checksum: sha1:e93c57ef87654a06d8849030f65db3d279f8f7ad - pristine_git_object: e6a3e24a8857ea1661874197eec967f0ac99e31d - src/mistralai_azure/models/deltamessage.py: - id: 593eaaeda97b - last_write_checksum: sha1:9c2f6e52c81d2f5bf71f520861158dc5eae6eab7 - pristine_git_object: 7fa3c3f216153ebc0a2d31e590793698e95a8be8 - src/mistralai_azure/models/documenturlchunk.py: - id: bff69bfa8014 - last_write_checksum: sha1:5c515c4c85b78d8f4cf147faab9cf01c3501e0b9 - pristine_git_object: ea8d5625a6d1579dd60f2e4a067f455c82334986 - src/mistralai_azure/models/filechunk.py: - id: 0de687fe41c1 - last_write_checksum: sha1:56a1765b46702d24ee9c00ab3a06ccdbffdd63f9 - pristine_git_object: 2c3edc078b5e781b4d7163ab01e02a3347c81e2f - src/mistralai_azure/models/function.py: - id: 16111a6101f2 - last_write_checksum: sha1:456d34df457592f1975b0d1e158207d4446a6c41 - pristine_git_object: a4642f92a0cf614b458591c220a83ae1c422ce25 - src/mistralai_azure/models/functioncall.py: - id: e383b31a7f16 - last_write_checksum: sha1:cec288f925fa58842bb7d9e688f6122a01973d4b - pristine_git_object: dd93c4629c3bd81dd6fb305474ce0cd5443e1bdb - src/mistralai_azure/models/functionname.py: - id: ebc3e07e4b6f - last_write_checksum: sha1:743cec4c3f586d67d1ab2816d8d76170f46a3ca1 - pristine_git_object: b55c82af3f29efe38698bc776a8532c647dccc36 - src/mistralai_azure/models/httpvalidationerror.py: - id: da4825943f94 - last_write_checksum: sha1:dce58ead8f7f901514250e1ae5965ba039b1da14 - pristine_git_object: 56607d9437ce39097deac134d4f622ea523cbda7 - src/mistralai_azure/models/imageurl.py: - id: 80cc0df94e9d - last_write_checksum: sha1:a1a416ae5bf9c559219cff5f008a90f251a52477 - pristine_git_object: a5a66360b017cbdc342775241aa4aa2322534c6a - src/mistralai_azure/models/imageurlchunk.py: - id: c5c6dd2f1782 - last_write_checksum: sha1:11634325be12aa567b42227f2117e9b8c854a51c - pristine_git_object: a40e451c60caca688a9379dcb20d545e9e6b76e2 - src/mistralai_azure/models/jsonschema.py: - id: 8c635811dd6b - last_write_checksum: sha1:a99a6de224e51eb6cf85fa6de8cf37266ab5fe6d - pristine_git_object: 0f7563fc17bf172d527d09507294b4ef5646c22c - src/mistralai_azure/models/mistralazureerror.py: - id: a919897c4ea9 + src/mistralai/azure/client/models/__init__.py: + id: "335011330e21" + last_write_checksum: sha1:30932f2491b02fc5e73f5bcfd1c789c0a4a4666f + pristine_git_object: 4bad2c079f31de1abe9ed837534b30c2c6d93aa1 + src/mistralai/azure/client/models/assistantmessage.py: + id: 353ed9110f97 + last_write_checksum: sha1:408459b5caa25fff21808330ed37f8fd5fa2b762 + pristine_git_object: b9350ee23cc7cb363aab0dbc306addd78064d182 + src/mistralai/azure/client/models/chatcompletionchoice.py: + id: 6942c7db5891 + last_write_checksum: sha1:817bfda6120a98248322c308629e404081e01279 + pristine_git_object: 67b5ba694217f4f3b95589d7f84af6a9bea9802d + src/mistralai/azure/client/models/chatcompletionrequest.py: + id: 0c711c870184 + last_write_checksum: sha1:fae2a92375aa3e58c258e4497acead859cd3b6dc + pristine_git_object: 921790959880ddf9b9ffce15d881e01f8adefa86 + src/mistralai/azure/client/models/chatcompletionresponse.py: + id: bdfacf065e9e + last_write_checksum: sha1:c72fb624e7475a551d37e0b291b64bcf772c402a + pristine_git_object: d41f9c6fab670cf7c961f50b1302f9a88cf48162 + src/mistralai/azure/client/models/chatcompletionstreamrequest.py: + id: da00a7feb4ef + last_write_checksum: sha1:c8c84c818b3b22bfec1e7f5737bbb281088dd3ba + pristine_git_object: be21eed2ecbe8354eb9a4bfa48122b28dada4aaf + src/mistralai/azure/client/models/completionchunk.py: + id: 28d620f25510 + last_write_checksum: sha1:413545e0521539346bff6e77fdec0c9e383bde17 + pristine_git_object: b94284b2d9c29c25a2f8eaa02828e2a205f4407e + src/mistralai/azure/client/models/completionevent.py: + id: a6f00a747933 + last_write_checksum: sha1:3d04bfbdaf11c52af5613ed0fd70c8dbc59f6d49 + pristine_git_object: c4b272871d9b3ea8443f469d29b0825706c25c00 + src/mistralai/azure/client/models/completionresponsestreamchoice.py: + id: 3ba5d7ba8a13 + last_write_checksum: sha1:f917300daf4febec7661f2c73bae675600ee0bdd + pristine_git_object: 2a4d053feb84cf2a9675d76ae08c83945b26644c + src/mistralai/azure/client/models/contentchunk.py: + id: 1f65e4f8f731 + last_write_checksum: sha1:79efbc90c1ae36b74492666125fb3e5ecaa5c27a + pristine_git_object: 0f09f76703efd95fcd96377b8ec6870d58dbf829 + src/mistralai/azure/client/models/deltamessage.py: + id: b7dab1d158de + last_write_checksum: sha1:553fdff5a3aec6909417be3cb390d99421af1693 + pristine_git_object: 2c01feae56c44d256f1e579c15f08e167dcc6481 + src/mistralai/azure/client/models/documenturlchunk.py: + id: e56fec6e977f + last_write_checksum: sha1:7dc9691b6b0fcace3b051beb41aa8ba7238c4ff8 + pristine_git_object: efc0fff415a3fd9f68cf7db53493861886155d3a + src/mistralai/azure/client/models/filechunk.py: + id: 150d9f180110 + last_write_checksum: sha1:df1e010006338f6dd37009f2547ab8f0b90b917a + pristine_git_object: 829f03d84c25dd859d514ffa26e570f235e4e75b + src/mistralai/azure/client/models/function.py: + id: 6d1e2011a14b + last_write_checksum: sha1:62df160db82853d79907cccff4d0904f6bb9f142 + pristine_git_object: f4edce0fb8563f485d9a63a42439a9b2593a7f40 + src/mistralai/azure/client/models/functioncall.py: + id: ced560a1bd57 + last_write_checksum: sha1:490cb3a0305994de063e06fa4c77defa911271f3 + pristine_git_object: d476792ccbb5aa2002deb870f1c81cc1500f59d4 + src/mistralai/azure/client/models/functionname.py: + id: 6f09474ebc85 + last_write_checksum: sha1:651ceed24416ce8192f70db03cc5cd0db685899f + pristine_git_object: 839e0d557a902da6c819210962e38e1df9bda90f + src/mistralai/azure/client/models/httpvalidationerror.py: + id: ca155413681b + last_write_checksum: sha1:9dea33d9c74bbdf842ee9d157e4aaa05c36ae34a + pristine_git_object: 40bccddc4d0c0e761d70af713387561101e20b60 + src/mistralai/azure/client/models/imageurl.py: + id: c8882341c798 + last_write_checksum: sha1:12e8b9bfb4442197406d88c012165f145b0a562e + pristine_git_object: 08c954faa8e422fe36b5fb02762de322b2b14b22 + src/mistralai/azure/client/models/imageurlchunk.py: + id: b6f0abb574d7 + last_write_checksum: sha1:b1c82c21d1166cd744229ae4936d514ff2986631 + pristine_git_object: ad7c818466bcb8adabe8bca4b88109ef41bb29ed + src/mistralai/azure/client/models/jsonschema.py: + id: bfd486f4bb18 + last_write_checksum: sha1:ffe7190393086a4301aaffa6854cb3d80b0db92f + pristine_git_object: 5aaa490af350ac1c436dafb3d3c73d56402cac11 + src/mistralai/azure/client/models/mistralazureerror.py: + id: 31ed29254e67 last_write_checksum: sha1:25f4411c7411faad753d46118edf74828b1c9f7c pristine_git_object: c5bf17528c7cf25bac8f8874f58692c601fcdd76 - src/mistralai_azure/models/mistralpromptmode.py: - id: f62a521bcdae - last_write_checksum: sha1:82190bc14d2e51440723176cb8108791485c1180 - pristine_git_object: 77230b7e5e61cc662fdc52c72e8b817a15e183c3 - src/mistralai_azure/models/no_response_error.py: - id: 54523e14f29b + src/mistralai/azure/client/models/mistralpromptmode.py: + id: d0028b1e4129 + last_write_checksum: sha1:46fe1ab8ac2d5867877368a59a4aa5be2fabadeb + pristine_git_object: 26e7adbdc4a981c92d51b72542c966b0ba0fb8f8 + src/mistralai/azure/client/models/no_response_error.py: + id: a956d6cd06f0 last_write_checksum: sha1:7f326424a7d5ae1bcd5c89a0d6b3dbda9138942f pristine_git_object: 1deab64bc43e1e65bf3c412d326a4032ce342366 - src/mistralai_azure/models/ocrimageobject.py: - id: 6c349909fb0c - last_write_checksum: sha1:0fed6abf8172f6ee40e703ef86ee9d902c6e5d7e - pristine_git_object: 9d0dd01dbb5be095e234aa3ec9469fface68c3d2 - src/mistralai_azure/models/ocrpagedimensions.py: - id: f33f598001b2 - last_write_checksum: sha1:5281879ef3d737a17a539cefda9f222302ead7da - pristine_git_object: efb62a58f22ad62c730b3af93bff151586105957 - src/mistralai_azure/models/ocrpageobject.py: - id: 99f20768c4d6 - last_write_checksum: sha1:c7479b83b0eb619e6b0f82344e81bc691f0b3a46 - pristine_git_object: e95718001e07bb89ba2fc9094f88b894572148bb - src/mistralai_azure/models/ocrrequest.py: - id: 4e574d5fb9be - last_write_checksum: sha1:1b03dc8b392069f6b142228e74179c8341b09ffa - pristine_git_object: e9c23afcdd7440660f17c7819406d7e603eabbec - src/mistralai_azure/models/ocrresponse.py: - id: 326a4d9fab25 - last_write_checksum: sha1:cf597498a5841a56bbd1aeb8478bd57a01d93cb1 - pristine_git_object: 3e43fa8eb7b80fafbd9344ad5a98c0ead98c54cb - src/mistralai_azure/models/ocrtableobject.py: - id: 3ba1292c343a - last_write_checksum: sha1:2d1d05902a9ed6bccdb41ccac6782f015450cf2e - pristine_git_object: 189f059eaa8a32cc32a5320ea9fe33d779e8ef1c - src/mistralai_azure/models/ocrusageinfo.py: - id: 0de4eae62e4b - last_write_checksum: sha1:85e5a850bd2f847e4a02b0731b0327ca0a02f643 - pristine_git_object: 1f5c9f1bc2cf2d728dec06b0930602852474a29e - src/mistralai_azure/models/prediction.py: - id: 9e8a0a7a3ca7 - last_write_checksum: sha1:e78af600f109a7489a5bcce80b48adf29cc0c4c3 - pristine_git_object: b23a935c00cd7ce4e7b7bd6fe8f2da87f8aaca92 - src/mistralai_azure/models/referencechunk.py: - id: 420a12dfec3b - last_write_checksum: sha1:f49da7a4541f55b283e9391e6397a9e4286570bd - pristine_git_object: 32d2ca68e67be3f03e14f74fd7e7692fa05b70f5 - src/mistralai_azure/models/responseformat.py: - id: aa7acbc1bda7 - last_write_checksum: sha1:70e7960bb4ec5db5f133c4cc8f6e813e39f8c671 - pristine_git_object: c989f3a4467c21416ea59b33fbc734a1477a6eb3 - src/mistralai_azure/models/responseformats.py: - id: 780a7aa0e87e + src/mistralai/azure/client/models/ocrimageobject.py: + id: 9c9f987d94bb + last_write_checksum: sha1:b86f5187d1c425ddf27ed4815657a7c41d71855c + pristine_git_object: 38e9d3e48df5cee8cdd0cd1d7b6df62182814104 + src/mistralai/azure/client/models/ocrpagedimensions.py: + id: 7669a25f32b3 + last_write_checksum: sha1:60642db6bb61f0e96204fb78d3aa0bd80dd0a7e5 + pristine_git_object: 12858da92de99aa6da9d6e148df3ba7ee37496c7 + src/mistralai/azure/client/models/ocrpageobject.py: + id: eea193b05126 + last_write_checksum: sha1:baada584537b75e2e184738424068e61afe263c7 + pristine_git_object: 5fb821c19fd3cca2c2e149bd058a7ca49d2d002b + src/mistralai/azure/client/models/ocrrequest.py: + id: 365a5b4776a2 + last_write_checksum: sha1:9d3a9bccd341219934470688d3818557231b9b62 + pristine_git_object: fece2713166fc943194b7b38ec9b82db295bba0a + src/mistralai/azure/client/models/ocrresponse.py: + id: b8cde8c16a4c + last_write_checksum: sha1:e6f08c68f0388919ca7bcbc4f0cb134525053fcd + pristine_git_object: 787289fa995ba6cbf4b2ef3d3c41edb31f656674 + src/mistralai/azure/client/models/ocrtableobject.py: + id: c2cd51b8789e + last_write_checksum: sha1:11052d42f0d91916f038437923ea656bf882032c + pristine_git_object: 3e3c25830a3216f4ef325f5b1056a0c1a267b090 + src/mistralai/azure/client/models/ocrusageinfo.py: + id: 5e9118cac468 + last_write_checksum: sha1:6b27c09b5ec447c6ede22aa75190a1e06353349c + pristine_git_object: e2ceba35eb3f6e148389a7fd466dea5c051480a4 + src/mistralai/azure/client/models/prediction.py: + id: bd6abfa93083 + last_write_checksum: sha1:87eb3c43fa31b245c13c4708602b300956aa9efb + pristine_git_object: 6b8d6480b9ba1cb6683bdc93c24fb762ccfba146 + src/mistralai/azure/client/models/referencechunk.py: + id: c9612f854670 + last_write_checksum: sha1:9d707492cd962614aa035caecc88ce1257b6e6c6 + pristine_git_object: c48e7607bf78d8a1d901c5103a99a72dcb467c43 + src/mistralai/azure/client/models/responseformat.py: + id: c124e7c316aa + last_write_checksum: sha1:f8c9e581053d1d885196c210a219a3e7aa086610 + pristine_git_object: 39fb03a25efdbc0a92ea91c72038ddd86ee056be + src/mistralai/azure/client/models/responseformats.py: + id: fef416cefcd4 last_write_checksum: sha1:a212e85d286b5b49219f57d071a2232ff8b5263b pristine_git_object: cbf83ce7b54ff8634f741334831807bfb5c98991 - src/mistralai_azure/models/responsevalidationerror.py: - id: 1952c765e2ec - last_write_checksum: sha1:d516c0c88210dd28b65747daa2fa1b63f432fe89 - pristine_git_object: a33954ccead3a8df87bdcc30a090efbb0ebecb94 - src/mistralai_azure/models/sdkerror.py: - id: bd8616367442 - last_write_checksum: sha1:41c259fac1bd50d33f1a2fd64d1ed17fd8d0d075 - pristine_git_object: 216d7f8fca986ac29162a1a7cba8c18b7f73d012 - src/mistralai_azure/models/security.py: - id: 7b3bcb55164e - last_write_checksum: sha1:9cacce270a27809ded4ee91aecac4a681154f5f0 - pristine_git_object: c1ae83138b09eab742f755a0f11428cf8c0fd60d - src/mistralai_azure/models/systemmessage.py: - id: 2e15bb043753 - last_write_checksum: sha1:8ec96bfc0533414a698d92387021cac116eadade - pristine_git_object: f99bf4ffb112b068159a3b95bc99ec7ce91b3f7d - src/mistralai_azure/models/systemmessagecontentchunks.py: - id: b6d9a4838359 - last_write_checksum: sha1:1e3f4688317d10f207dd42ef39cf2ac8f6042e54 - pristine_git_object: 4615a16cf39496dffc4982c6f0552d8bf353e280 - src/mistralai_azure/models/textchunk.py: - id: c169e3f0ffc9 - last_write_checksum: sha1:6cb623bafd4005e527dca9b908bb9f4b371342da - pristine_git_object: 5845456e5ca3089bcb551112408a0de84c597a91 - src/mistralai_azure/models/thinkchunk.py: - id: b1b9aeee4dcf - last_write_checksum: sha1:d15b39ef3e12195183664c32854233b9410d565b - pristine_git_object: f53a9f1ad2e6f124a36c9fb9be65bc09dbfbff4b - src/mistralai_azure/models/tool.py: - id: 99c8106f5428 - last_write_checksum: sha1:6142383805723bbc2b22f1bfcc660288378d1e42 - pristine_git_object: c91deec28488062a0220af41492fdfb34330e7a4 - src/mistralai_azure/models/toolcall.py: - id: 3643db1054cd - last_write_checksum: sha1:9b095f1efe1ea554cfacbc4a8e0c59b1c57d7f32 - pristine_git_object: 44fe8ec86b8f31ad8ee9591ae49036e8caa9ac41 - src/mistralai_azure/models/toolchoice.py: - id: 669768b7cbda - last_write_checksum: sha1:1217d8186e64d16f4c369079c62e3ac466726c60 - pristine_git_object: 93b4b7fe72f05a2ece9fed08a83139f4510b2574 - src/mistralai_azure/models/toolchoiceenum.py: - id: 5f7df8457771 + src/mistralai/azure/client/models/responsevalidationerror.py: + id: afdb9463b434 + last_write_checksum: sha1:26f01befeb347a63928012e7eb36c95a8a392145 + pristine_git_object: cbdffcbba45a988805cdd52d111e77b0ca777dbf + src/mistralai/azure/client/models/sdkerror.py: + id: 4601c7297af7 + last_write_checksum: sha1:b54041f9751e1f2a38dd02a6f8eadb3907fa3df0 + pristine_git_object: a1e9aacaa2fcc839dcb2638788dd7c94298adee7 + src/mistralai/azure/client/models/security.py: + id: 4a2e4760ec08 + last_write_checksum: sha1:0cd2ae54cecd88cfd8d43e92c0d3da7efa48942c + pristine_git_object: 9b83ba98336090bed89fbeda40b4a07b212a1106 + src/mistralai/azure/client/models/systemmessage.py: + id: 8fa0dee9e4e1 + last_write_checksum: sha1:2b52c44b92a098b559ec8b7a80449532169cd317 + pristine_git_object: 38c280c809148e190e329619858718d132da6bc0 + src/mistralai/azure/client/models/systemmessagecontentchunks.py: + id: 5918e770869d + last_write_checksum: sha1:55529f2f29ba3087fbf117dbbe64e1dda92b2958 + pristine_git_object: 225f38b712f5f3c7abfd526cc8c0386687814f36 + src/mistralai/azure/client/models/textchunk.py: + id: 9c81c76a6325 + last_write_checksum: sha1:d1c9eaffeb80299f023351dc8d07eb53e49133f2 + pristine_git_object: e513c1434cc7a4766bb9ef039ad8eed2bf0c12ca + src/mistralai/azure/client/models/thinkchunk.py: + id: df6bbd55b3eb + last_write_checksum: sha1:f24c6a05f4190b7897acbb414d21a7f76e90a0e0 + pristine_git_object: 18c774820628f195e292f994433324efc601769e + src/mistralai/azure/client/models/tool.py: + id: 4075ef72c086 + last_write_checksum: sha1:0c041eaa008ee1851e05bf90e57602c0338f362f + pristine_git_object: 169305bc4c538e88b1e0cf1120aa10e424118880 + src/mistralai/azure/client/models/toolcall.py: + id: c65e6f79e539 + last_write_checksum: sha1:dd2290e019322e9df73b119e054a1d738eb5f3ba + pristine_git_object: a589b1b38ef4caaba2753f8335228bc16cd68961 + src/mistralai/azure/client/models/toolchoice.py: + id: c25062b5de34 + last_write_checksum: sha1:db82f8d3f811461226cffbeacf2699103a5e0689 + pristine_git_object: 1f623222084f12eaa63f2cea656dc7da10b12a3a + src/mistralai/azure/client/models/toolchoiceenum.py: + id: cc06ba3a8d21 last_write_checksum: sha1:3dbba9a58c5569aafe115f3f7713a52b01ad8620 pristine_git_object: 01f6f677b379f9e3c99db9d1ad248cb0033a2804 - src/mistralai_azure/models/toolmessage.py: - id: 1d9845bf98b3 - last_write_checksum: sha1:52bd15280bcae27ec7ba6a1c64b15648de5b0868 - pristine_git_object: 4bc5c9a9b509fdb89a4cf5ce81231189bf46bab4 - src/mistralai_azure/models/tooltypes.py: - id: 34c499f03e21 - last_write_checksum: sha1:f060bd3aebf7d42c1066c543c47cfa020e61eb27 - pristine_git_object: 638890c589ee642fd0a43e00337505e53ea3ec3a - src/mistralai_azure/models/usageinfo.py: - id: 59a5033672bf - last_write_checksum: sha1:7d0e7a483331077309b78e035cab9d65e87d3f65 - pristine_git_object: bbe5cdfaae260df81e93da11d05a1ba55ecbe329 - src/mistralai_azure/models/usermessage.py: - id: c54119314021 - last_write_checksum: sha1:b45f38755a96b07100baf5149631f366009e701f - pristine_git_object: 85fedb4bd1bcf64f69e4ead5310cf3fb354a6e3c - src/mistralai_azure/models/validationerror.py: - id: 83cd7bfd6d92 - last_write_checksum: sha1:250ed57498dabd11c0e2b6d255969e0285bb4214 - pristine_git_object: 4caff4a6b74aeb322bf42cd2070b7bd576ca834a - src/mistralai_azure/ocr.py: - id: 77e2e0f594ad - last_write_checksum: sha1:7daae9b0c14093d6d0bc0258b0bce008cb845a1e - pristine_git_object: 31e27f6eaa6dcc2b8450656d4a59dd4a7a50a29a - src/mistralai_azure/py.typed: - id: 98df238e554c + src/mistralai/azure/client/models/toolmessage.py: + id: 84ac736fa955 + last_write_checksum: sha1:db1034d83cfcc6073682f7368a5e72703c3d88c7 + pristine_git_object: 6e9a790367cfabebc641f73308d4d296c4ca0954 + src/mistralai/azure/client/models/tooltypes.py: + id: fa881b046d34 + last_write_checksum: sha1:cd28ddc02fff9a5abbb59c82fe9e0dcbdb9b6d2a + pristine_git_object: 1cce7446f2772b998208ea1c78c7969e3881d5d0 + src/mistralai/azure/client/models/usageinfo.py: + id: 3edc9c81b329 + last_write_checksum: sha1:0b2117285b13d846a25c6c59436c4628b9d84a03 + pristine_git_object: 19a6b09fb63a3732719c45f8dfca92cfc2c57353 + src/mistralai/azure/client/models/usermessage.py: + id: 3796508adc07 + last_write_checksum: sha1:f4baa9d8b8f99f715873cea83191baf055c3296a + pristine_git_object: 96439c64a979ac3edf8900d39154d706846a3a95 + src/mistralai/azure/client/models/validationerror.py: + id: f2b84813e2ea + last_write_checksum: sha1:f0f9706a5af2ac4f6b234e768fdd492bbdd8a18c + pristine_git_object: 817ecf7a56470369ccacd0f5e0bb739656a5f92c + src/mistralai/azure/client/ocr.py: + id: 5817c10c9297 + last_write_checksum: sha1:24fec22877024154ea417e31ea443b4795c443ba + pristine_git_object: 098e764b6580e35ad0e81242ca601ce821656ee9 + src/mistralai/azure/client/py.typed: + id: e88369f116d2 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 - src/mistralai_azure/sdkconfiguration.py: - id: 476a4f9e2f3e - last_write_checksum: sha1:6b117889b46a546be6e949c1bf843834ceff7417 - pristine_git_object: 51289cf05559ba32dd17e45fab78df4a8697063f - src/mistralai_azure/types/__init__.py: - id: d761bb7a67a5 + src/mistralai/azure/client/sdk.py: + id: 3b0f78fbc4cf + last_write_checksum: sha1:cfd60e4bbc0c19f8d5fdf61eb4544e0380be7f38 + pristine_git_object: 879c841d8ff3d26c4bc06f286fcbb1992ed12185 + src/mistralai/azure/client/sdkconfiguration.py: + id: 602f74633eed + last_write_checksum: sha1:163fe779949725d81181f39b70d6922fc2cb8099 + pristine_git_object: 919225f9bf2e4315f879f0da6c7f8b3e6157bd58 + src/mistralai/azure/client/types/__init__.py: + id: f79033f78412 last_write_checksum: sha1:140ebdd01a46f92ffc710c52c958c4eba3cf68ed pristine_git_object: fc76fe0c5505e29859b5d2bb707d48fd27661b8c - src/mistralai_azure/types/basemodel.py: - id: 68c97875efb7 + src/mistralai/azure/client/types/basemodel.py: + id: fd244927c80c last_write_checksum: sha1:10d84aedeb9d35edfdadf2c3020caa1d24d8b584 pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee - src/mistralai_azure/utils/__init__.py: - id: 3c68abef839b + src/mistralai/azure/client/utils/__init__.py: + id: 26f1a707325b last_write_checksum: sha1:887f56a717845fab7445cc368d2a17d850c3565a pristine_git_object: 05f26ade57efb8c54a774fbcb939fb1a7dc655ce - src/mistralai_azure/utils/annotations.py: - id: 476ee839718f + src/mistralai/azure/client/utils/annotations.py: + id: bb1f6c189fdb last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc pristine_git_object: 12e0aa4f1151bb52474cc02e88397329b90703f6 - src/mistralai_azure/utils/datetimes.py: - id: e9faf3b28c48 + src/mistralai/azure/client/utils/datetimes.py: + id: 2b7db09ee0ab last_write_checksum: sha1:c721e4123000e7dc61ec52b28a739439d9e17341 pristine_git_object: a6c52cd61bbe2d459046c940ce5e8c469f2f0664 - src/mistralai_azure/utils/enums.py: - id: 4d10693bf655 + src/mistralai/azure/client/utils/enums.py: + id: ffbdb1917a68 last_write_checksum: sha1:bc8c3c1285ae09ba8a094ee5c3d9c7f41fa1284d pristine_git_object: 3324e1bc2668c54c4d5f5a1a845675319757a828 - src/mistralai_azure/utils/eventstreaming.py: - id: 5f5e90529fd7 + src/mistralai/azure/client/utils/eventstreaming.py: + id: bdc37b70360c last_write_checksum: sha1:bababae5d54b7efc360db701daa49e18a92c2f3b pristine_git_object: 0969899bfc491e5e408d05643525f347ea95e4fc - src/mistralai_azure/utils/forms.py: - id: 91c3fe9ba311 + src/mistralai/azure/client/utils/forms.py: + id: 51696122c557 last_write_checksum: sha1:15fa7e9ab1611e062a9984cf06cb20969713d295 pristine_git_object: f961e76beaf0a8b1fe0dda44754a74eebd3608e7 - src/mistralai_azure/utils/headers.py: - id: d37ef2f03e41 + src/mistralai/azure/client/utils/headers.py: + id: e42840c8cb13 last_write_checksum: sha1:7c6df233ee006332b566a8afa9ce9a245941d935 pristine_git_object: 37864cbbbc40d1a47112bbfdd3ba79568fc8818a - src/mistralai_azure/utils/logger.py: - id: 9122a46617cc + src/mistralai/azure/client/utils/logger.py: + id: 9db88755a137 last_write_checksum: sha1:f3fdb154a3f09b8cc43d74c7e9c02f899f8086e4 pristine_git_object: b661aff65d38b77d035149699aea09b2785d2fc6 - src/mistralai_azure/utils/metadata.py: - id: 2d93fa8523eb + src/mistralai/azure/client/utils/metadata.py: + id: 44f85bd3b2e2 last_write_checksum: sha1:c6a560bd0c63ab158582f34dadb69433ea73b3d4 pristine_git_object: 173b3e5ce658675c2f504222a56b3daaaa68107d - src/mistralai_azure/utils/queryparams.py: - id: dfd31ba97c2b + src/mistralai/azure/client/utils/queryparams.py: + id: ec1c03114156 last_write_checksum: sha1:b94c3f314fd3da0d1d215afc2731f48748e2aa59 pristine_git_object: c04e0db82b68eca041f2cb2614d748fbac80fd41 - src/mistralai_azure/utils/requestbodies.py: - id: c91db641d5b9 + src/mistralai/azure/client/utils/requestbodies.py: + id: 1030c47d624d last_write_checksum: sha1:41e2d2d2d3ecc394c8122ca4d4b85e1c3e03f054 pristine_git_object: 1de32b6d26f46590232f398fdba6ce0072f1659c - src/mistralai_azure/utils/retries.py: - id: 6f0cd9f6169d + src/mistralai/azure/client/utils/retries.py: + id: d50ed6e400b2 last_write_checksum: sha1:5b97ac4f59357d70c2529975d50364c88bcad607 pristine_git_object: 88a91b10cd2076b4a2c6cff2ac6bfaa5e3c5ad13 - src/mistralai_azure/utils/security.py: - id: "270040388028" + src/mistralai/azure/client/utils/security.py: + id: 1d35741ce5f1 last_write_checksum: sha1:a17130ace2c0db6394f38dd941ad2b700cc755c8 pristine_git_object: 295a3f40031dbb40073ad227fd4a355660f97ab2 - src/mistralai_azure/utils/serializers.py: - id: 595ddab03803 + src/mistralai/azure/client/utils/serializers.py: + id: a1f26d73c3ad last_write_checksum: sha1:ce1d8d7f500a9ccba0aeca5057cee9c271f4dfd7 pristine_git_object: 14321eb479de81d0d9580ec8291e0ff91bf29e57 - src/mistralai_azure/utils/unmarshal_json_response.py: - id: bde89a892417 - last_write_checksum: sha1:d2ce9e3478b38e54e4bb3a43610ee0bab00c2e27 - pristine_git_object: f5813119b559442ee85c0b310765db3866bfa09d - src/mistralai_azure/utils/url.py: - id: 080c62716b06 + src/mistralai/azure/client/utils/unmarshal_json_response.py: + id: 947f4fc4db62 + last_write_checksum: sha1:99bd357d24d2236e3974630d9bd18bae22610cbc + pristine_git_object: 5317ac87097ccb35628202cf7fc5cb21e186855f + src/mistralai/azure/client/utils/url.py: + id: 4976c88d0e3b last_write_checksum: sha1:6479961baa90432ca25626f8e40a7bbc32e73b41 pristine_git_object: c78ccbae426ce6d385709d97ce0b1c2813ea2418 - src/mistralai_azure/utils/values.py: - id: 640889083cda + src/mistralai/azure/client/utils/values.py: + id: 3974a1553447 last_write_checksum: sha1:acaa178a7c41ddd000f58cc691e4632d925b2553 pristine_git_object: dae01a44384ac3bc13ae07453a053bf6c898ebe3 examples: diff --git a/packages/mistralai_azure/.speakeasy/gen.yaml b/packages/mistralai_azure/.speakeasy/gen.yaml index e2be4d84..729cdfcf 100644 --- a/packages/mistralai_azure/.speakeasy/gen.yaml +++ b/packages/mistralai_azure/.speakeasy/gen.yaml @@ -8,11 +8,13 @@ generation: useClassNamesForArrayFields: true fixes: nameResolutionDec2023: true - nameResolutionFeb2025: false + nameResolutionFeb2025: true parameterOrderingFeb2024: true requestResponseComponentNamesFeb2024: true - securityFeb2025: false - sharedErrorComponentsApr2025: false + securityFeb2025: true + sharedErrorComponentsApr2025: true + methodSignaturesApr2024: true + sharedNestedComponentsJan2026: true auth: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false @@ -26,7 +28,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 1.8.1 + version: 2.0.0a4 additionalDependencies: dev: pytest: ^8.2.2 @@ -45,10 +47,13 @@ python: enableCustomCodeRegions: false enumFormat: union fixFlags: - responseRequiredSep2024: false + responseRequiredSep2024: true + flatAdditionalProperties: true flattenGlobalSecurity: true flattenRequests: true flatteningOrder: parameters-first + forwardCompatibleEnumsByDefault: true + forwardCompatibleUnionsByDefault: tagged-only imports: option: openapi paths: @@ -62,12 +67,12 @@ python: license: "" maxMethodParams: 15 methodArguments: infer-optional-args - moduleName: "" + moduleName: mistralai.azure.client multipartArrayFormat: legacy outputModelSuffix: output packageManager: uv - packageName: mistralai_azure - preApplyUnionDiscriminators: false + packageName: mistralai-azure + preApplyUnionDiscriminators: true pytestFilterWarnings: [] pytestTimeout: 0 responseFormat: flat diff --git a/packages/mistralai_azure/README.md b/packages/mistralai_azure/README.md index f869b90a..05872306 100644 --- a/packages/mistralai_azure/README.md +++ b/packages/mistralai_azure/README.md @@ -26,12 +26,12 @@ This example shows how to create chat completions. ```python # Synchronous Example -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -56,13 +56,13 @@ The same SDK client can also be used to make asychronous requests by importing a ```python # Asynchronous Example import asyncio -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os async def main(): s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) res = await s.chat.complete_async( messages=[ @@ -100,12 +100,12 @@ terminate when the server no longer has any events to send and closes the underlying connection. ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -137,13 +137,13 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call: ```python -from mistralai_azure import MistralAzure -from mistralazure.utils import BackoffStrategy, RetryConfig +from mistralai.azure.client import MistralAzure +from mistralai.azure.client.utils import BackoffStrategy, RetryConfig import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -164,14 +164,14 @@ if res is not None: If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK: ```python -from mistralai_azure import MistralAzure -from mistralazure.utils import BackoffStrategy, RetryConfig +from mistralai.azure.client import MistralAzure +from mistralai.azure.client.utils import BackoffStrategy, RetryConfig import os s = MistralAzure( retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False), - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -203,12 +203,13 @@ Handling errors in this SDK should largely match your expectations. All operati ### Example ```python -from mistralai_azure import MistralAzure, models +from mistralai.azure.client import MistralAzure +from mistralai.azure.client import models import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) res = None @@ -248,13 +249,13 @@ You can override the default server globally by passing a server name to the `se #### Example ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( server="prod", - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -277,13 +278,13 @@ if res is not None: The default server can also be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example: ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( server_url="https://api.mistral.ai", - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -311,7 +312,7 @@ This allows you to wrap the client with your own custom logic, such as adding cu For example, you could specify a header for every request that this sdk makes as follows: ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import httpx http_client = httpx.Client(headers={"x-custom-header": "someValue"}) @@ -320,8 +321,8 @@ s = MistralAzure(client=http_client) or you could wrap the client with your own custom logic: ```python -from mistralai_azure import MistralAzure -from mistralai_azure.httpclient import AsyncHttpClient +from mistralai.azure.client import MistralAzure +from mistralai.azure.client.httpclient import AsyncHttpClient import httpx class CustomClient(AsyncHttpClient): @@ -396,12 +397,12 @@ This SDK supports the following security scheme globally: To authenticate with the API the `api_key` parameter must be set when initializing the SDK client instance. For example: ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) diff --git a/packages/mistralai_azure/USAGE.md b/packages/mistralai_azure/USAGE.md index 0ccf3d70..0f90c161 100644 --- a/packages/mistralai_azure/USAGE.md +++ b/packages/mistralai_azure/USAGE.md @@ -5,12 +5,12 @@ This example shows how to create chat completions. ```python # Synchronous Example -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -32,13 +32,13 @@ The same SDK client can also be used to make asychronous requests by importing a ```python # Asynchronous Example import asyncio -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os async def main(): s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) res = await s.chat.complete_async(messages=[ { diff --git a/packages/mistralai_azure/docs/models/assistantmessage.md b/packages/mistralai_azure/docs/models/assistantmessage.md index 3d0bd90b..1ca5ac82 100644 --- a/packages/mistralai_azure/docs/models/assistantmessage.md +++ b/packages/mistralai_azure/docs/models/assistantmessage.md @@ -8,4 +8,4 @@ | `content` | [OptionalNullable[models.AssistantMessageContent]](../models/assistantmessagecontent.md) | :heavy_minus_sign: | N/A | | `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | | `prefix` | *Optional[bool]* | :heavy_minus_sign: | Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message. | -| `role` | [Optional[models.AssistantMessageRole]](../models/assistantmessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | [Optional[models.RoleEnum]](../models/roleenum.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/chatcompletionrequest.md b/packages/mistralai_azure/docs/models/chatcompletionrequest.md index 104a1f96..3b0f7270 100644 --- a/packages/mistralai_azure/docs/models/chatcompletionrequest.md +++ b/packages/mistralai_azure/docs/models/chatcompletionrequest.md @@ -13,7 +13,7 @@ | `stop` | [Optional[models.ChatCompletionRequestStop]](../models/chatcompletionrequeststop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | | `random_seed` | *OptionalNullable[int]* | :heavy_minus_sign: | The seed to use for random sampling. If set, different calls will generate deterministic results. | | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | -| `messages` | List[[models.ChatCompletionRequestMessages](../models/chatcompletionrequestmessages.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | +| `messages` | List[[models.ChatCompletionRequestMessage](../models/chatcompletionrequestmessage.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | | `response_format` | [Optional[models.ResponseFormat]](../models/responseformat.md) | :heavy_minus_sign: | Specify the format that the model must output. By default it will use `{ "type": "text" }`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ "type": "json_schema" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide. | {
"type": "text"
} | | `tools` | List[[models.Tool](../models/tool.md)] | :heavy_minus_sign: | A list of tools the model may call. Use this to provide a list of functions the model may generate JSON inputs for. | | | `tool_choice` | [Optional[models.ChatCompletionRequestToolChoice]](../models/chatcompletionrequesttoolchoice.md) | :heavy_minus_sign: | Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `any` or `required` means the model must call one or more tools. Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. | | diff --git a/packages/mistralai_azure/docs/models/messages.md b/packages/mistralai_azure/docs/models/chatcompletionrequestmessage.md similarity index 92% rename from packages/mistralai_azure/docs/models/messages.md rename to packages/mistralai_azure/docs/models/chatcompletionrequestmessage.md index 1d394500..91e9e062 100644 --- a/packages/mistralai_azure/docs/models/messages.md +++ b/packages/mistralai_azure/docs/models/chatcompletionrequestmessage.md @@ -1,4 +1,4 @@ -# Messages +# ChatCompletionRequestMessage ## Supported Types diff --git a/packages/mistralai_azure/docs/models/chatcompletionstreamrequest.md b/packages/mistralai_azure/docs/models/chatcompletionstreamrequest.md index 85f237b4..f78156a6 100644 --- a/packages/mistralai_azure/docs/models/chatcompletionstreamrequest.md +++ b/packages/mistralai_azure/docs/models/chatcompletionstreamrequest.md @@ -10,10 +10,10 @@ | `top_p` | *Optional[float]* | :heavy_minus_sign: | Nucleus sampling, where the model considers the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or `temperature` but not both. | | | `max_tokens` | *OptionalNullable[int]* | :heavy_minus_sign: | The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length. | | | `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | | -| `stop` | [Optional[models.Stop]](../models/stop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | +| `stop` | [Optional[models.ChatCompletionStreamRequestStop]](../models/chatcompletionstreamrequeststop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | | `random_seed` | *OptionalNullable[int]* | :heavy_minus_sign: | The seed to use for random sampling. If set, different calls will generate deterministic results. | | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | -| `messages` | List[[models.Messages](../models/messages.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | +| `messages` | List[[models.ChatCompletionStreamRequestMessage](../models/chatcompletionstreamrequestmessage.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | | `response_format` | [Optional[models.ResponseFormat]](../models/responseformat.md) | :heavy_minus_sign: | Specify the format that the model must output. By default it will use `{ "type": "text" }`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ "type": "json_schema" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide. | {
"type": "text"
} | | `tools` | List[[models.Tool](../models/tool.md)] | :heavy_minus_sign: | A list of tools the model may call. Use this to provide a list of functions the model may generate JSON inputs for. | | | `tool_choice` | [Optional[models.ChatCompletionStreamRequestToolChoice]](../models/chatcompletionstreamrequesttoolchoice.md) | :heavy_minus_sign: | Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `any` or `required` means the model must call one or more tools. Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. | | diff --git a/packages/mistralai_gcp/docs/models/chatcompletionrequestmessages.md b/packages/mistralai_azure/docs/models/chatcompletionstreamrequestmessage.md similarity index 91% rename from packages/mistralai_gcp/docs/models/chatcompletionrequestmessages.md rename to packages/mistralai_azure/docs/models/chatcompletionstreamrequestmessage.md index bc7708a6..2e4e93ac 100644 --- a/packages/mistralai_gcp/docs/models/chatcompletionrequestmessages.md +++ b/packages/mistralai_azure/docs/models/chatcompletionstreamrequestmessage.md @@ -1,4 +1,4 @@ -# ChatCompletionRequestMessages +# ChatCompletionStreamRequestMessage ## Supported Types diff --git a/packages/mistralai_gcp/docs/models/stop.md b/packages/mistralai_azure/docs/models/chatcompletionstreamrequeststop.md similarity index 88% rename from packages/mistralai_gcp/docs/models/stop.md rename to packages/mistralai_azure/docs/models/chatcompletionstreamrequeststop.md index ba40ca83..a48460a9 100644 --- a/packages/mistralai_gcp/docs/models/stop.md +++ b/packages/mistralai_azure/docs/models/chatcompletionstreamrequeststop.md @@ -1,4 +1,4 @@ -# Stop +# ChatCompletionStreamRequestStop Stop generation if this token is detected. Or if one of these tokens is detected when providing an array diff --git a/packages/mistralai_azure/docs/models/completionresponsestreamchoice.md b/packages/mistralai_azure/docs/models/completionresponsestreamchoice.md index c807dacd..1532c25b 100644 --- a/packages/mistralai_azure/docs/models/completionresponsestreamchoice.md +++ b/packages/mistralai_azure/docs/models/completionresponsestreamchoice.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `index` | *int* | :heavy_check_mark: | N/A | -| `delta` | [models.DeltaMessage](../models/deltamessage.md) | :heavy_check_mark: | N/A | -| `finish_reason` | [Nullable[models.FinishReason]](../models/finishreason.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `index` | *int* | :heavy_check_mark: | N/A | +| `delta` | [models.DeltaMessage](../models/deltamessage.md) | :heavy_check_mark: | N/A | +| `finish_reason` | [Nullable[models.CompletionResponseStreamChoiceFinishReason]](../models/completionresponsestreamchoicefinishreason.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/finishreason.md b/packages/mistralai_azure/docs/models/completionresponsestreamchoicefinishreason.md similarity index 81% rename from packages/mistralai_azure/docs/models/finishreason.md rename to packages/mistralai_azure/docs/models/completionresponsestreamchoicefinishreason.md index 45a5aedb..0fece473 100644 --- a/packages/mistralai_azure/docs/models/finishreason.md +++ b/packages/mistralai_azure/docs/models/completionresponsestreamchoicefinishreason.md @@ -1,4 +1,4 @@ -# FinishReason +# CompletionResponseStreamChoiceFinishReason ## Values diff --git a/packages/mistralai_azure/docs/models/deltamessage.md b/packages/mistralai_azure/docs/models/deltamessage.md index 61deabbf..e0ee575f 100644 --- a/packages/mistralai_azure/docs/models/deltamessage.md +++ b/packages/mistralai_azure/docs/models/deltamessage.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `role` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `content` | [OptionalNullable[models.Content]](../models/content.md) | :heavy_minus_sign: | N/A | -| `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `role` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `content` | [OptionalNullable[models.DeltaMessageContent]](../models/deltamessagecontent.md) | :heavy_minus_sign: | N/A | +| `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/content.md b/packages/mistralai_azure/docs/models/deltamessagecontent.md similarity index 89% rename from packages/mistralai_azure/docs/models/content.md rename to packages/mistralai_azure/docs/models/deltamessagecontent.md index a833dc2c..8142772d 100644 --- a/packages/mistralai_azure/docs/models/content.md +++ b/packages/mistralai_azure/docs/models/deltamessagecontent.md @@ -1,4 +1,4 @@ -# Content +# DeltaMessageContent ## Supported Types diff --git a/packages/mistralai_azure/docs/models/imageurlchunk.md b/packages/mistralai_azure/docs/models/imageurlchunk.md index f1b926ef..43078c78 100644 --- a/packages/mistralai_azure/docs/models/imageurlchunk.md +++ b/packages/mistralai_azure/docs/models/imageurlchunk.md @@ -7,5 +7,5 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `image_url` | [models.ImageURLChunkImageURL](../models/imageurlchunkimageurl.md) | :heavy_check_mark: | N/A | +| `image_url` | [models.ImageURLUnion](../models/imageurlunion.md) | :heavy_check_mark: | N/A | | `type` | [Optional[models.ImageURLChunkType]](../models/imageurlchunktype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/imageurlchunkimageurl.md b/packages/mistralai_azure/docs/models/imageurlunion.md similarity index 86% rename from packages/mistralai_gcp/docs/models/imageurlchunkimageurl.md rename to packages/mistralai_azure/docs/models/imageurlunion.md index 76738908..db97130f 100644 --- a/packages/mistralai_gcp/docs/models/imageurlchunkimageurl.md +++ b/packages/mistralai_azure/docs/models/imageurlunion.md @@ -1,4 +1,4 @@ -# ImageURLChunkImageURL +# ImageURLUnion ## Supported Types diff --git a/packages/mistralai_azure/docs/models/role.md b/packages/mistralai_azure/docs/models/role.md deleted file mode 100644 index affca78d..00000000 --- a/packages/mistralai_azure/docs/models/role.md +++ /dev/null @@ -1,8 +0,0 @@ -# Role - - -## Values - -| Name | Value | -| -------- | -------- | -| `SYSTEM` | system | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/assistantmessagerole.md b/packages/mistralai_azure/docs/models/roleenum.md similarity index 81% rename from packages/mistralai_gcp/docs/models/assistantmessagerole.md rename to packages/mistralai_azure/docs/models/roleenum.md index 658229e7..4213c18d 100644 --- a/packages/mistralai_gcp/docs/models/assistantmessagerole.md +++ b/packages/mistralai_azure/docs/models/roleenum.md @@ -1,4 +1,4 @@ -# AssistantMessageRole +# RoleEnum ## Values diff --git a/packages/mistralai_azure/docs/models/systemmessage.md b/packages/mistralai_azure/docs/models/systemmessage.md index 0dba71c0..dfb0cd0b 100644 --- a/packages/mistralai_azure/docs/models/systemmessage.md +++ b/packages/mistralai_azure/docs/models/systemmessage.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | `content` | [models.SystemMessageContent](../models/systemmessagecontent.md) | :heavy_check_mark: | N/A | -| `role` | [Optional[models.Role]](../models/role.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["system"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/textchunk.md b/packages/mistralai_azure/docs/models/textchunk.md index 6daab3c3..8521a2c1 100644 --- a/packages/mistralai_azure/docs/models/textchunk.md +++ b/packages/mistralai_azure/docs/models/textchunk.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `text` | *str* | :heavy_check_mark: | N/A | -| `type` | [Optional[models.Type]](../models/type.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `text` | *str* | :heavy_check_mark: | N/A | +| `type` | *Literal["text"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/thinkchunk.md b/packages/mistralai_azure/docs/models/thinkchunk.md index 66b2e0cd..07f6f7b1 100644 --- a/packages/mistralai_azure/docs/models/thinkchunk.md +++ b/packages/mistralai_azure/docs/models/thinkchunk.md @@ -7,4 +7,4 @@ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | `thinking` | List[[models.Thinking](../models/thinking.md)] | :heavy_check_mark: | N/A | | `closed` | *Optional[bool]* | :heavy_minus_sign: | Whether the thinking chunk is closed or not. Currently only used for prefixing. | -| `type` | [Optional[models.ThinkChunkType]](../models/thinkchunktype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `type` | *Literal["thinking"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/thinkchunktype.md b/packages/mistralai_azure/docs/models/thinkchunktype.md deleted file mode 100644 index baf6f755..00000000 --- a/packages/mistralai_azure/docs/models/thinkchunktype.md +++ /dev/null @@ -1,8 +0,0 @@ -# ThinkChunkType - - -## Values - -| Name | Value | -| ---------- | ---------- | -| `THINKING` | thinking | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/toolmessage.md b/packages/mistralai_azure/docs/models/toolmessage.md index a54f4933..fa00d666 100644 --- a/packages/mistralai_azure/docs/models/toolmessage.md +++ b/packages/mistralai_azure/docs/models/toolmessage.md @@ -8,4 +8,4 @@ | `content` | [Nullable[models.ToolMessageContent]](../models/toolmessagecontent.md) | :heavy_check_mark: | N/A | | `tool_call_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `role` | [Optional[models.ToolMessageRole]](../models/toolmessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["tool"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/toolmessagerole.md b/packages/mistralai_azure/docs/models/toolmessagerole.md deleted file mode 100644 index c24e59c0..00000000 --- a/packages/mistralai_azure/docs/models/toolmessagerole.md +++ /dev/null @@ -1,8 +0,0 @@ -# ToolMessageRole - - -## Values - -| Name | Value | -| ------ | ------ | -| `TOOL` | tool | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/type.md b/packages/mistralai_azure/docs/models/type.md deleted file mode 100644 index eb0581e7..00000000 --- a/packages/mistralai_azure/docs/models/type.md +++ /dev/null @@ -1,8 +0,0 @@ -# Type - - -## Values - -| Name | Value | -| ------ | ------ | -| `TEXT` | text | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/usermessage.md b/packages/mistralai_azure/docs/models/usermessage.md index 63b01310..78ed066e 100644 --- a/packages/mistralai_azure/docs/models/usermessage.md +++ b/packages/mistralai_azure/docs/models/usermessage.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | | `content` | [Nullable[models.UserMessageContent]](../models/usermessagecontent.md) | :heavy_check_mark: | N/A | -| `role` | [Optional[models.UserMessageRole]](../models/usermessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["user"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/usermessagerole.md b/packages/mistralai_azure/docs/models/usermessagerole.md deleted file mode 100644 index 171124e4..00000000 --- a/packages/mistralai_azure/docs/models/usermessagerole.md +++ /dev/null @@ -1,8 +0,0 @@ -# UserMessageRole - - -## Values - -| Name | Value | -| ------ | ------ | -| `USER` | user | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/sdks/chat/README.md b/packages/mistralai_azure/docs/sdks/chat/README.md index 26d20bb4..3c5e46b2 100644 --- a/packages/mistralai_azure/docs/sdks/chat/README.md +++ b/packages/mistralai_azure/docs/sdks/chat/README.md @@ -17,12 +17,12 @@ Mistral AI provides the ability to stream responses back to a client in order to ### Example Usage ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) @@ -76,12 +76,12 @@ Chat Completion ### Example Usage ```python -from mistralai_azure import MistralAzure +from mistralai.azure.client import MistralAzure import os s = MistralAzure( - azure_api_key=os.getenv("AZURE_API_KEY", ""), - azure_endpoint=os.getenv("AZURE_ENDPOINT", "") + api_key=os.getenv("AZURE_API_KEY", ""), + server_url=os.getenv("AZURE_ENDPOINT", "") ) diff --git a/packages/mistralai_azure/pyproject.toml b/packages/mistralai_azure/pyproject.toml index d129a290..ba51cad1 100644 --- a/packages/mistralai_azure/pyproject.toml +++ b/packages/mistralai_azure/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mistralai_azure" -version = "1.8.0" +version = "2.0.0a4" description = "Python Client SDK for the Mistral AI API in Azure." authors = [{ name = "Mistral" }] requires-python = ">=3.10" @@ -21,20 +21,20 @@ dev = [ ] [tool.setuptools.package-data] -"*" = ["py.typed", "src/mistralai_azure/py.typed"] +"*" = ["py.typed", "src/mistralai/azure/client/py.typed"] [tool.hatch.build.targets.sdist] -include = ["src/mistralai_azure"] +include = ["src/mistralai"] [tool.hatch.build.targets.sdist.force-include] "py.typed" = "py.typed" -"src/mistralai_azure/py.typed" = "src/mistralai_azure/py.typed" +"src/mistralai/azure/client/py.typed" = "src/mistralai/azure/client/py.typed" [tool.hatch.build.targets.wheel] -include = ["src/mistralai_azure"] +include = ["src/mistralai"] [tool.hatch.build.targets.wheel.sources] -"src/mistralai_azure" = "mistralai_azure" +"src" = "" [virtualenvs] in-project = true diff --git a/packages/mistralai_azure/src/mistralai_azure/__init__.py b/packages/mistralai_azure/src/mistralai/azure/client/__init__.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/__init__.py rename to packages/mistralai_azure/src/mistralai/azure/client/__init__.py diff --git a/packages/mistralai_azure/src/mistralai_azure/_hooks/__init__.py b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/__init__.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/_hooks/__init__.py rename to packages/mistralai_azure/src/mistralai/azure/client/_hooks/__init__.py diff --git a/packages/mistralai_azure/src/mistralai_azure/_hooks/registration.py b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/registration.py similarity index 79% rename from packages/mistralai_azure/src/mistralai_azure/_hooks/registration.py rename to packages/mistralai_azure/src/mistralai/azure/client/_hooks/registration.py index 304edfa2..cab47787 100644 --- a/packages/mistralai_azure/src/mistralai_azure/_hooks/registration.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/registration.py @@ -1,6 +1,6 @@ -from .custom_user_agent import CustomUserAgentHook from .types import Hooks + # This file is only ever generated once on the first generation and then is free to be modified. # Any hooks you wish to add should be registered in the init_hooks function. Feel free to define them # in this file or in separate files in the hooks folder. @@ -10,6 +10,4 @@ def init_hooks(hooks: Hooks): # pylint: disable=unused-argument """Add hooks by calling hooks.register{sdk_init/before_request/after_success/after_error}Hook with an instance of a hook that implements that specific Hook interface - Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance - """ - hooks.register_before_request_hook(CustomUserAgentHook()) + Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance""" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/sdkhooks.py b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/sdkhooks.py similarity index 97% rename from packages/mistralai_gcp/src/mistralai_gcp/_hooks/sdkhooks.py rename to packages/mistralai_azure/src/mistralai/azure/client/_hooks/sdkhooks.py index b81c2a27..2080681b 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/sdkhooks.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/sdkhooks.py @@ -13,7 +13,7 @@ ) from .registration import init_hooks from typing import List, Optional, Tuple -from mistralai_gcp.httpclient import HttpClient +from mistralai.azure.client.httpclient import HttpClient class SDKHooks(Hooks): diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/types.py b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/types.py similarity index 95% rename from packages/mistralai_gcp/src/mistralai_gcp/_hooks/types.py rename to packages/mistralai_azure/src/mistralai/azure/client/_hooks/types.py index f8088f4c..3e4e3955 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/types.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/_hooks/types.py @@ -2,8 +2,8 @@ from abc import ABC, abstractmethod import httpx -from mistralai_gcp.httpclient import HttpClient -from mistralai_gcp.sdkconfiguration import SDKConfiguration +from mistralai.azure.client.httpclient import HttpClient +from mistralai.azure.client.sdkconfiguration import SDKConfiguration from typing import Any, Callable, List, Optional, Tuple, Union diff --git a/packages/mistralai_azure/src/mistralai_azure/_version.py b/packages/mistralai_azure/src/mistralai/azure/client/_version.py similarity index 69% rename from packages/mistralai_azure/src/mistralai_azure/_version.py rename to packages/mistralai_azure/src/mistralai/azure/client/_version.py index 79277f9a..4448d2a0 100644 --- a/packages/mistralai_azure/src/mistralai_azure/_version.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/_version.py @@ -2,11 +2,11 @@ import importlib.metadata -__title__: str = "mistralai_azure" -__version__: str = "1.8.1" +__title__: str = "mistralai-azure" +__version__: str = "2.0.0a4" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.794.1" -__user_agent__: str = "speakeasy-sdk/python 1.8.1 2.794.1 1.0.0 mistralai_azure" +__user_agent__: str = "speakeasy-sdk/python 2.0.0a4 2.794.1 1.0.0 mistralai-azure" try: if __package__ is not None: diff --git a/packages/mistralai_gcp/src/mistralai_gcp/basesdk.py b/packages/mistralai_azure/src/mistralai/azure/client/basesdk.py similarity index 98% rename from packages/mistralai_gcp/src/mistralai_gcp/basesdk.py rename to packages/mistralai_azure/src/mistralai/azure/client/basesdk.py index 7a93de23..b0391ac0 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/basesdk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/basesdk.py @@ -2,13 +2,17 @@ from .sdkconfiguration import SDKConfiguration import httpx -from mistralai_gcp import models, utils -from mistralai_gcp._hooks import ( +from mistralai.azure.client import models, utils +from mistralai.azure.client._hooks import ( AfterErrorContext, AfterSuccessContext, BeforeRequestContext, ) -from mistralai_gcp.utils import RetryConfig, SerializedRequestBody, get_body_content +from mistralai.azure.client.utils import ( + RetryConfig, + SerializedRequestBody, + get_body_content, +) from typing import Callable, List, Mapping, Optional, Tuple from urllib.parse import parse_qs, urlparse diff --git a/packages/mistralai_azure/src/mistralai_azure/chat.py b/packages/mistralai_azure/src/mistralai/azure/client/chat.py similarity index 96% rename from packages/mistralai_azure/src/mistralai_azure/chat.py rename to packages/mistralai_azure/src/mistralai/azure/client/chat.py index 10bb247f..3348bf47 100644 --- a/packages/mistralai_azure/src/mistralai_azure/chat.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/chat.py @@ -1,11 +1,11 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .basesdk import BaseSDK -from mistralai_azure import models, utils -from mistralai_azure._hooks import HookContext -from mistralai_azure.types import OptionalNullable, UNSET -from mistralai_azure.utils import eventstreaming -from mistralai_azure.utils.unmarshal_json_response import unmarshal_json_response +from mistralai.azure.client import models, utils +from mistralai.azure.client._hooks import HookContext +from mistralai.azure.client.types import OptionalNullable, UNSET +from mistralai.azure.client.utils import eventstreaming +from mistralai.azure.client.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, Dict, List, Mapping, Optional, Union @@ -15,13 +15,21 @@ class Chat(BaseSDK): def stream( self, *, - messages: Union[List[models.Messages], List[models.MessagesTypedDict]], + messages: Union[ + List[models.ChatCompletionStreamRequestMessage], + List[models.ChatCompletionStreamRequestMessageTypedDict], + ], model: Optional[str] = "azureai", temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, max_tokens: OptionalNullable[int] = UNSET, stream: Optional[bool] = True, - stop: Optional[Union[models.Stop, models.StopTypedDict]] = None, + stop: Optional[ + Union[ + models.ChatCompletionStreamRequestStop, + models.ChatCompletionStreamRequestStopTypedDict, + ] + ] = None, random_seed: OptionalNullable[int] = UNSET, metadata: OptionalNullable[Dict[str, Any]] = UNSET, response_format: Optional[ @@ -97,7 +105,9 @@ def stream( stop=stop, random_seed=random_seed, metadata=metadata, - messages=utils.get_pydantic_model(messages, List[models.Messages]), + messages=utils.get_pydantic_model( + messages, List[models.ChatCompletionStreamRequestMessage] + ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] ), @@ -185,13 +195,21 @@ def stream( async def stream_async( self, *, - messages: Union[List[models.Messages], List[models.MessagesTypedDict]], + messages: Union[ + List[models.ChatCompletionStreamRequestMessage], + List[models.ChatCompletionStreamRequestMessageTypedDict], + ], model: Optional[str] = "azureai", temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, max_tokens: OptionalNullable[int] = UNSET, stream: Optional[bool] = True, - stop: Optional[Union[models.Stop, models.StopTypedDict]] = None, + stop: Optional[ + Union[ + models.ChatCompletionStreamRequestStop, + models.ChatCompletionStreamRequestStopTypedDict, + ] + ] = None, random_seed: OptionalNullable[int] = UNSET, metadata: OptionalNullable[Dict[str, Any]] = UNSET, response_format: Optional[ @@ -267,7 +285,9 @@ async def stream_async( stop=stop, random_seed=random_seed, metadata=metadata, - messages=utils.get_pydantic_model(messages, List[models.Messages]), + messages=utils.get_pydantic_model( + messages, List[models.ChatCompletionStreamRequestMessage] + ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] ), @@ -356,8 +376,8 @@ def complete( self, *, messages: Union[ - List[models.ChatCompletionRequestMessages], - List[models.ChatCompletionRequestMessagesTypedDict], + List[models.ChatCompletionRequestMessage], + List[models.ChatCompletionRequestMessageTypedDict], ], model: Optional[str] = "azureai", temperature: OptionalNullable[float] = UNSET, @@ -444,7 +464,7 @@ def complete( random_seed=random_seed, metadata=metadata, messages=utils.get_pydantic_model( - messages, List[models.ChatCompletionRequestMessages] + messages, List[models.ChatCompletionRequestMessage] ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] @@ -526,8 +546,8 @@ async def complete_async( self, *, messages: Union[ - List[models.ChatCompletionRequestMessages], - List[models.ChatCompletionRequestMessagesTypedDict], + List[models.ChatCompletionRequestMessage], + List[models.ChatCompletionRequestMessageTypedDict], ], model: Optional[str] = "azureai", temperature: OptionalNullable[float] = UNSET, @@ -614,7 +634,7 @@ async def complete_async( random_seed=random_seed, metadata=metadata, messages=utils.get_pydantic_model( - messages, List[models.ChatCompletionRequestMessages] + messages, List[models.ChatCompletionRequestMessage] ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] diff --git a/packages/mistralai_azure/src/mistralai_azure/httpclient.py b/packages/mistralai_azure/src/mistralai/azure/client/httpclient.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/httpclient.py rename to packages/mistralai_azure/src/mistralai/azure/client/httpclient.py diff --git a/packages/mistralai_azure/src/mistralai_azure/models/__init__.py b/packages/mistralai_azure/src/mistralai/azure/client/models/__init__.py similarity index 88% rename from packages/mistralai_azure/src/mistralai_azure/models/__init__.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/__init__.py index 9baa3ff1..4bad2c07 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/__init__.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/__init__.py @@ -11,8 +11,8 @@ AssistantMessage, AssistantMessageContent, AssistantMessageContentTypedDict, - AssistantMessageRole, AssistantMessageTypedDict, + RoleEnum, ) from .chatcompletionchoice import ( ChatCompletionChoice, @@ -21,8 +21,8 @@ ) from .chatcompletionrequest import ( ChatCompletionRequest, - ChatCompletionRequestMessages, - ChatCompletionRequestMessagesTypedDict, + ChatCompletionRequestMessage, + ChatCompletionRequestMessageTypedDict, ChatCompletionRequestStop, ChatCompletionRequestStopTypedDict, ChatCompletionRequestToolChoice, @@ -35,26 +35,26 @@ ) from .chatcompletionstreamrequest import ( ChatCompletionStreamRequest, + ChatCompletionStreamRequestMessage, + ChatCompletionStreamRequestMessageTypedDict, + ChatCompletionStreamRequestStop, + ChatCompletionStreamRequestStopTypedDict, ChatCompletionStreamRequestToolChoice, ChatCompletionStreamRequestToolChoiceTypedDict, ChatCompletionStreamRequestTypedDict, - Messages, - MessagesTypedDict, - Stop, - StopTypedDict, ) from .completionchunk import CompletionChunk, CompletionChunkTypedDict from .completionevent import CompletionEvent, CompletionEventTypedDict from .completionresponsestreamchoice import ( CompletionResponseStreamChoice, + CompletionResponseStreamChoiceFinishReason, CompletionResponseStreamChoiceTypedDict, - FinishReason, ) from .contentchunk import ContentChunk, ContentChunkTypedDict from .deltamessage import ( - Content, - ContentTypedDict, DeltaMessage, + DeltaMessageContent, + DeltaMessageContentTypedDict, DeltaMessageTypedDict, ) from .documenturlchunk import ( @@ -75,10 +75,10 @@ from .imageurl import ImageURL, ImageURLTypedDict from .imageurlchunk import ( ImageURLChunk, - ImageURLChunkImageURL, - ImageURLChunkImageURLTypedDict, ImageURLChunkType, ImageURLChunkTypedDict, + ImageURLUnion, + ImageURLUnionTypedDict, ) from .jsonschema import JSONSchema, JSONSchemaTypedDict from .mistralpromptmode import MistralPromptMode @@ -108,7 +108,6 @@ from .sdkerror import SDKError from .security import Security, SecurityTypedDict from .systemmessage import ( - Role, SystemMessage, SystemMessageContent, SystemMessageContentTypedDict, @@ -118,14 +117,8 @@ SystemMessageContentChunks, SystemMessageContentChunksTypedDict, ) - from .textchunk import TextChunk, TextChunkTypedDict, Type - from .thinkchunk import ( - ThinkChunk, - ThinkChunkType, - ThinkChunkTypedDict, - Thinking, - ThinkingTypedDict, - ) + from .textchunk import TextChunk, TextChunkTypedDict + from .thinkchunk import ThinkChunk, ThinkChunkTypedDict, Thinking, ThinkingTypedDict from .tool import Tool, ToolTypedDict from .toolcall import ToolCall, ToolCallTypedDict from .toolchoice import ToolChoice, ToolChoiceTypedDict @@ -134,7 +127,6 @@ ToolMessage, ToolMessageContent, ToolMessageContentTypedDict, - ToolMessageRole, ToolMessageTypedDict, ) from .tooltypes import ToolTypes @@ -143,7 +135,6 @@ UserMessage, UserMessageContent, UserMessageContentTypedDict, - UserMessageRole, UserMessageTypedDict, ) from .validationerror import ( @@ -159,14 +150,13 @@ "AssistantMessage", "AssistantMessageContent", "AssistantMessageContentTypedDict", - "AssistantMessageRole", "AssistantMessageTypedDict", "ChatCompletionChoice", "ChatCompletionChoiceFinishReason", "ChatCompletionChoiceTypedDict", "ChatCompletionRequest", - "ChatCompletionRequestMessages", - "ChatCompletionRequestMessagesTypedDict", + "ChatCompletionRequestMessage", + "ChatCompletionRequestMessageTypedDict", "ChatCompletionRequestStop", "ChatCompletionRequestStopTypedDict", "ChatCompletionRequestToolChoice", @@ -175,6 +165,10 @@ "ChatCompletionResponse", "ChatCompletionResponseTypedDict", "ChatCompletionStreamRequest", + "ChatCompletionStreamRequestMessage", + "ChatCompletionStreamRequestMessageTypedDict", + "ChatCompletionStreamRequestStop", + "ChatCompletionStreamRequestStopTypedDict", "ChatCompletionStreamRequestToolChoice", "ChatCompletionStreamRequestToolChoiceTypedDict", "ChatCompletionStreamRequestTypedDict", @@ -183,12 +177,13 @@ "CompletionEvent", "CompletionEventTypedDict", "CompletionResponseStreamChoice", + "CompletionResponseStreamChoiceFinishReason", "CompletionResponseStreamChoiceTypedDict", - "Content", "ContentChunk", "ContentChunkTypedDict", - "ContentTypedDict", "DeltaMessage", + "DeltaMessageContent", + "DeltaMessageContentTypedDict", "DeltaMessageTypedDict", "Document", "DocumentTypedDict", @@ -197,7 +192,6 @@ "DocumentURLChunkTypedDict", "FileChunk", "FileChunkTypedDict", - "FinishReason", "Format", "Function", "FunctionCall", @@ -209,17 +203,15 @@ "HTTPValidationErrorData", "ImageURL", "ImageURLChunk", - "ImageURLChunkImageURL", - "ImageURLChunkImageURLTypedDict", "ImageURLChunkType", "ImageURLChunkTypedDict", "ImageURLTypedDict", + "ImageURLUnion", + "ImageURLUnionTypedDict", "JSONSchema", "JSONSchemaTypedDict", "Loc", "LocTypedDict", - "Messages", - "MessagesTypedDict", "MistralAzureError", "MistralPromptMode", "NoResponseError", @@ -246,12 +238,10 @@ "ResponseFormatTypedDict", "ResponseFormats", "ResponseValidationError", - "Role", + "RoleEnum", "SDKError", "Security", "SecurityTypedDict", - "Stop", - "StopTypedDict", "SystemMessage", "SystemMessageContent", "SystemMessageContentChunks", @@ -262,7 +252,6 @@ "TextChunk", "TextChunkTypedDict", "ThinkChunk", - "ThinkChunkType", "ThinkChunkTypedDict", "Thinking", "ThinkingTypedDict", @@ -275,17 +264,14 @@ "ToolMessage", "ToolMessageContent", "ToolMessageContentTypedDict", - "ToolMessageRole", "ToolMessageTypedDict", "ToolTypedDict", "ToolTypes", - "Type", "UsageInfo", "UsageInfoTypedDict", "UserMessage", "UserMessageContent", "UserMessageContentTypedDict", - "UserMessageRole", "UserMessageTypedDict", "ValidationError", "ValidationErrorTypedDict", @@ -295,14 +281,14 @@ "AssistantMessage": ".assistantmessage", "AssistantMessageContent": ".assistantmessage", "AssistantMessageContentTypedDict": ".assistantmessage", - "AssistantMessageRole": ".assistantmessage", "AssistantMessageTypedDict": ".assistantmessage", + "RoleEnum": ".assistantmessage", "ChatCompletionChoice": ".chatcompletionchoice", "ChatCompletionChoiceFinishReason": ".chatcompletionchoice", "ChatCompletionChoiceTypedDict": ".chatcompletionchoice", "ChatCompletionRequest": ".chatcompletionrequest", - "ChatCompletionRequestMessages": ".chatcompletionrequest", - "ChatCompletionRequestMessagesTypedDict": ".chatcompletionrequest", + "ChatCompletionRequestMessage": ".chatcompletionrequest", + "ChatCompletionRequestMessageTypedDict": ".chatcompletionrequest", "ChatCompletionRequestStop": ".chatcompletionrequest", "ChatCompletionRequestStopTypedDict": ".chatcompletionrequest", "ChatCompletionRequestToolChoice": ".chatcompletionrequest", @@ -311,25 +297,25 @@ "ChatCompletionResponse": ".chatcompletionresponse", "ChatCompletionResponseTypedDict": ".chatcompletionresponse", "ChatCompletionStreamRequest": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestMessage": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestMessageTypedDict": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestStop": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestStopTypedDict": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestToolChoice": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestToolChoiceTypedDict": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestTypedDict": ".chatcompletionstreamrequest", - "Messages": ".chatcompletionstreamrequest", - "MessagesTypedDict": ".chatcompletionstreamrequest", - "Stop": ".chatcompletionstreamrequest", - "StopTypedDict": ".chatcompletionstreamrequest", "CompletionChunk": ".completionchunk", "CompletionChunkTypedDict": ".completionchunk", "CompletionEvent": ".completionevent", "CompletionEventTypedDict": ".completionevent", "CompletionResponseStreamChoice": ".completionresponsestreamchoice", + "CompletionResponseStreamChoiceFinishReason": ".completionresponsestreamchoice", "CompletionResponseStreamChoiceTypedDict": ".completionresponsestreamchoice", - "FinishReason": ".completionresponsestreamchoice", "ContentChunk": ".contentchunk", "ContentChunkTypedDict": ".contentchunk", - "Content": ".deltamessage", - "ContentTypedDict": ".deltamessage", "DeltaMessage": ".deltamessage", + "DeltaMessageContent": ".deltamessage", + "DeltaMessageContentTypedDict": ".deltamessage", "DeltaMessageTypedDict": ".deltamessage", "DocumentURLChunk": ".documenturlchunk", "DocumentURLChunkType": ".documenturlchunk", @@ -349,10 +335,10 @@ "ImageURL": ".imageurl", "ImageURLTypedDict": ".imageurl", "ImageURLChunk": ".imageurlchunk", - "ImageURLChunkImageURL": ".imageurlchunk", - "ImageURLChunkImageURLTypedDict": ".imageurlchunk", "ImageURLChunkType": ".imageurlchunk", "ImageURLChunkTypedDict": ".imageurlchunk", + "ImageURLUnion": ".imageurlchunk", + "ImageURLUnionTypedDict": ".imageurlchunk", "JSONSchema": ".jsonschema", "JSONSchemaTypedDict": ".jsonschema", "MistralPromptMode": ".mistralpromptmode", @@ -387,7 +373,6 @@ "SDKError": ".sdkerror", "Security": ".security", "SecurityTypedDict": ".security", - "Role": ".systemmessage", "SystemMessage": ".systemmessage", "SystemMessageContent": ".systemmessage", "SystemMessageContentTypedDict": ".systemmessage", @@ -396,9 +381,7 @@ "SystemMessageContentChunksTypedDict": ".systemmessagecontentchunks", "TextChunk": ".textchunk", "TextChunkTypedDict": ".textchunk", - "Type": ".textchunk", "ThinkChunk": ".thinkchunk", - "ThinkChunkType": ".thinkchunk", "ThinkChunkTypedDict": ".thinkchunk", "Thinking": ".thinkchunk", "ThinkingTypedDict": ".thinkchunk", @@ -412,7 +395,6 @@ "ToolMessage": ".toolmessage", "ToolMessageContent": ".toolmessage", "ToolMessageContentTypedDict": ".toolmessage", - "ToolMessageRole": ".toolmessage", "ToolMessageTypedDict": ".toolmessage", "ToolTypes": ".tooltypes", "UsageInfo": ".usageinfo", @@ -420,7 +402,6 @@ "UserMessage": ".usermessage", "UserMessageContent": ".usermessage", "UserMessageContentTypedDict": ".usermessage", - "UserMessageRole": ".usermessage", "UserMessageTypedDict": ".usermessage", "Loc": ".validationerror", "LocTypedDict": ".validationerror", diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/assistantmessage.py b/packages/mistralai_azure/src/mistralai/azure/client/models/assistantmessage.py similarity index 93% rename from packages/mistralai_gcp/src/mistralai_gcp/models/assistantmessage.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/assistantmessage.py index 17d740b6..b9350ee2 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/assistantmessage.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/assistantmessage.py @@ -3,7 +3,7 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict from .toolcall import ToolCall, ToolCallTypedDict -from mistralai_gcp.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, @@ -25,7 +25,7 @@ ) -AssistantMessageRole = Literal["assistant",] +RoleEnum = Literal["assistant",] class AssistantMessageTypedDict(TypedDict): @@ -33,7 +33,7 @@ class AssistantMessageTypedDict(TypedDict): tool_calls: NotRequired[Nullable[List[ToolCallTypedDict]]] prefix: NotRequired[bool] r"""Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message.""" - role: NotRequired[AssistantMessageRole] + role: NotRequired[RoleEnum] class AssistantMessage(BaseModel): @@ -44,7 +44,7 @@ class AssistantMessage(BaseModel): prefix: Optional[bool] = False r"""Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message.""" - role: Optional[AssistantMessageRole] = "assistant" + role: Optional[RoleEnum] = "assistant" @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionchoice.py b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionchoice.py similarity index 91% rename from packages/mistralai_azure/src/mistralai_azure/models/chatcompletionchoice.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionchoice.py index 7c6eb933..67b5ba69 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionchoice.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionchoice.py @@ -2,7 +2,7 @@ from __future__ import annotations from .assistantmessage import AssistantMessage, AssistantMessageTypedDict -from mistralai_azure.types import BaseModel, UnrecognizedStr +from mistralai.azure.client.types import BaseModel, UnrecognizedStr from typing import Literal, Union from typing_extensions import TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionrequest.py b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionrequest.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/chatcompletionrequest.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionrequest.py index a7b095f3..92179095 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionrequest.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionrequest.py @@ -11,14 +11,14 @@ from .toolchoiceenum import ToolChoiceEnum from .toolmessage import ToolMessage, ToolMessageTypedDict from .usermessage import UserMessage, UserMessageTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) -from mistralai_azure.utils import get_discriminator +from mistralai.azure.client.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer from typing import Any, Dict, List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -36,8 +36,8 @@ r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -ChatCompletionRequestMessagesTypedDict = TypeAliasType( - "ChatCompletionRequestMessagesTypedDict", +ChatCompletionRequestMessageTypedDict = TypeAliasType( + "ChatCompletionRequestMessageTypedDict", Union[ SystemMessageTypedDict, UserMessageTypedDict, @@ -47,7 +47,7 @@ ) -ChatCompletionRequestMessages = Annotated[ +ChatCompletionRequestMessage = Annotated[ Union[ Annotated[AssistantMessage, Tag("assistant")], Annotated[SystemMessage, Tag("system")], @@ -72,7 +72,7 @@ class ChatCompletionRequestTypedDict(TypedDict): - messages: List[ChatCompletionRequestMessagesTypedDict] + messages: List[ChatCompletionRequestMessageTypedDict] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" model: NotRequired[str] r"""The ID of the model to use for this request.""" @@ -112,7 +112,7 @@ class ChatCompletionRequestTypedDict(TypedDict): class ChatCompletionRequest(BaseModel): - messages: List[ChatCompletionRequestMessages] + messages: List[ChatCompletionRequestMessage] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" model: Optional[str] = "azureai" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionresponse.py b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionresponse.py similarity index 92% rename from packages/mistralai_azure/src/mistralai_azure/models/chatcompletionresponse.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionresponse.py index 7a66f322..d41f9c6f 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionresponse.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionresponse.py @@ -3,7 +3,7 @@ from __future__ import annotations from .chatcompletionchoice import ChatCompletionChoice, ChatCompletionChoiceTypedDict from .usageinfo import UsageInfo, UsageInfoTypedDict -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import List from typing_extensions import TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionstreamrequest.py b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionstreamrequest.py similarity index 94% rename from packages/mistralai_azure/src/mistralai_azure/models/chatcompletionstreamrequest.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionstreamrequest.py index 96cd631b..be21eed2 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/chatcompletionstreamrequest.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/chatcompletionstreamrequest.py @@ -11,29 +11,33 @@ from .toolchoiceenum import ToolChoiceEnum from .toolmessage import ToolMessage, ToolMessageTypedDict from .usermessage import UserMessage, UserMessageTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) -from mistralai_azure.utils import get_discriminator +from mistralai.azure.client.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer from typing import Any, Dict, List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -StopTypedDict = TypeAliasType("StopTypedDict", Union[str, List[str]]) +ChatCompletionStreamRequestStopTypedDict = TypeAliasType( + "ChatCompletionStreamRequestStopTypedDict", Union[str, List[str]] +) r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -Stop = TypeAliasType("Stop", Union[str, List[str]]) +ChatCompletionStreamRequestStop = TypeAliasType( + "ChatCompletionStreamRequestStop", Union[str, List[str]] +) r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -MessagesTypedDict = TypeAliasType( - "MessagesTypedDict", +ChatCompletionStreamRequestMessageTypedDict = TypeAliasType( + "ChatCompletionStreamRequestMessageTypedDict", Union[ SystemMessageTypedDict, UserMessageTypedDict, @@ -43,7 +47,7 @@ ) -Messages = Annotated[ +ChatCompletionStreamRequestMessage = Annotated[ Union[ Annotated[AssistantMessage, Tag("assistant")], Annotated[SystemMessage, Tag("system")], @@ -68,7 +72,7 @@ class ChatCompletionStreamRequestTypedDict(TypedDict): - messages: List[MessagesTypedDict] + messages: List[ChatCompletionStreamRequestMessageTypedDict] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" model: NotRequired[str] r"""The ID of the model to use for this request.""" @@ -79,7 +83,7 @@ class ChatCompletionStreamRequestTypedDict(TypedDict): max_tokens: NotRequired[Nullable[int]] r"""The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length.""" stream: NotRequired[bool] - stop: NotRequired[StopTypedDict] + stop: NotRequired[ChatCompletionStreamRequestStopTypedDict] r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" random_seed: NotRequired[Nullable[int]] r"""The seed to use for random sampling. If set, different calls will generate deterministic results.""" @@ -107,7 +111,7 @@ class ChatCompletionStreamRequestTypedDict(TypedDict): class ChatCompletionStreamRequest(BaseModel): - messages: List[Messages] + messages: List[ChatCompletionStreamRequestMessage] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" model: Optional[str] = "azureai" @@ -124,7 +128,7 @@ class ChatCompletionStreamRequest(BaseModel): stream: Optional[bool] = True - stop: Optional[Stop] = None + stop: Optional[ChatCompletionStreamRequestStop] = None r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" random_seed: OptionalNullable[int] = UNSET diff --git a/packages/mistralai_azure/src/mistralai_azure/models/completionchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/completionchunk.py similarity index 94% rename from packages/mistralai_azure/src/mistralai_azure/models/completionchunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/completionchunk.py index d6cc2a86..b94284b2 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/completionchunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/completionchunk.py @@ -6,7 +6,7 @@ CompletionResponseStreamChoiceTypedDict, ) from .usageinfo import UsageInfo, UsageInfoTypedDict -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import List, Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/completionevent.py b/packages/mistralai_azure/src/mistralai/azure/client/models/completionevent.py similarity index 87% rename from packages/mistralai_azure/src/mistralai_azure/models/completionevent.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/completionevent.py index 5a2039c2..c4b27287 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/completionevent.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/completionevent.py @@ -2,7 +2,7 @@ from __future__ import annotations from .completionchunk import CompletionChunk, CompletionChunkTypedDict -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing_extensions import TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/completionresponsestreamchoice.py b/packages/mistralai_azure/src/mistralai/azure/client/models/completionresponsestreamchoice.py similarity index 82% rename from packages/mistralai_azure/src/mistralai_azure/models/completionresponsestreamchoice.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/completionresponsestreamchoice.py index 0e890aac..2a4d053f 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/completionresponsestreamchoice.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/completionresponsestreamchoice.py @@ -2,13 +2,18 @@ from __future__ import annotations from .deltamessage import DeltaMessage, DeltaMessageTypedDict -from mistralai_azure.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from mistralai.azure.client.types import ( + BaseModel, + Nullable, + UNSET_SENTINEL, + UnrecognizedStr, +) from pydantic import model_serializer from typing import Literal, Union from typing_extensions import TypedDict -FinishReason = Union[ +CompletionResponseStreamChoiceFinishReason = Union[ Literal[ "stop", "length", @@ -22,7 +27,7 @@ class CompletionResponseStreamChoiceTypedDict(TypedDict): index: int delta: DeltaMessageTypedDict - finish_reason: Nullable[FinishReason] + finish_reason: Nullable[CompletionResponseStreamChoiceFinishReason] class CompletionResponseStreamChoice(BaseModel): @@ -30,7 +35,7 @@ class CompletionResponseStreamChoice(BaseModel): delta: DeltaMessage - finish_reason: Nullable[FinishReason] + finish_reason: Nullable[CompletionResponseStreamChoiceFinishReason] @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/packages/mistralai_azure/src/mistralai_azure/models/contentchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/contentchunk.py similarity index 93% rename from packages/mistralai_azure/src/mistralai_azure/models/contentchunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/contentchunk.py index e6a3e24a..0f09f767 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/contentchunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/contentchunk.py @@ -4,7 +4,7 @@ from .imageurlchunk import ImageURLChunk, ImageURLChunkTypedDict from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict from .textchunk import TextChunk, TextChunkTypedDict -from mistralai_azure.utils import get_discriminator +from mistralai.azure.client.utils import get_discriminator from pydantic import Discriminator, Tag from typing import Union from typing_extensions import Annotated, TypeAliasType diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/deltamessage.py b/packages/mistralai_azure/src/mistralai/azure/client/models/deltamessage.py similarity index 81% rename from packages/mistralai_gcp/src/mistralai_gcp/models/deltamessage.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/deltamessage.py index 1801ac76..2c01feae 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/deltamessage.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/deltamessage.py @@ -3,7 +3,7 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict from .toolcall import ToolCall, ToolCallTypedDict -from mistralai_gcp.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, @@ -15,24 +15,26 @@ from typing_extensions import NotRequired, TypeAliasType, TypedDict -ContentTypedDict = TypeAliasType( - "ContentTypedDict", Union[str, List[ContentChunkTypedDict]] +DeltaMessageContentTypedDict = TypeAliasType( + "DeltaMessageContentTypedDict", Union[str, List[ContentChunkTypedDict]] ) -Content = TypeAliasType("Content", Union[str, List[ContentChunk]]) +DeltaMessageContent = TypeAliasType( + "DeltaMessageContent", Union[str, List[ContentChunk]] +) class DeltaMessageTypedDict(TypedDict): role: NotRequired[Nullable[str]] - content: NotRequired[Nullable[ContentTypedDict]] + content: NotRequired[Nullable[DeltaMessageContentTypedDict]] tool_calls: NotRequired[Nullable[List[ToolCallTypedDict]]] class DeltaMessage(BaseModel): role: OptionalNullable[str] = UNSET - content: OptionalNullable[Content] = UNSET + content: OptionalNullable[DeltaMessageContent] = UNSET tool_calls: OptionalNullable[List[ToolCall]] = UNSET diff --git a/packages/mistralai_azure/src/mistralai_azure/models/documenturlchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/documenturlchunk.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/documenturlchunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/documenturlchunk.py index ea8d5625..efc0fff4 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/documenturlchunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/documenturlchunk.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/filechunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/filechunk.py similarity index 83% rename from packages/mistralai_azure/src/mistralai_azure/models/filechunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/filechunk.py index 2c3edc07..829f03d8 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/filechunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/filechunk.py @@ -1,8 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel -from mistralai_azure.utils import validate_const +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator from typing import Literal, Optional diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/function.py b/packages/mistralai_azure/src/mistralai/azure/client/models/function.py similarity index 90% rename from packages/mistralai_gcp/src/mistralai_gcp/models/function.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/function.py index 7ad1ae64..f4edce0f 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/function.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/function.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Any, Dict, Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/functioncall.py b/packages/mistralai_azure/src/mistralai/azure/client/models/functioncall.py similarity index 91% rename from packages/mistralai_gcp/src/mistralai_gcp/models/functioncall.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/functioncall.py index 99554c88..d476792c 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/functioncall.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/functioncall.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Any, Dict, Union from typing_extensions import TypeAliasType, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/functionname.py b/packages/mistralai_azure/src/mistralai/azure/client/models/functionname.py similarity index 89% rename from packages/mistralai_azure/src/mistralai_azure/models/functionname.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/functionname.py index b55c82af..839e0d55 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/functionname.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/functionname.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing_extensions import TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/httpvalidationerror.py b/packages/mistralai_azure/src/mistralai/azure/client/models/httpvalidationerror.py similarity index 87% rename from packages/mistralai_azure/src/mistralai_azure/models/httpvalidationerror.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/httpvalidationerror.py index 56607d94..40bccddc 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/httpvalidationerror.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/httpvalidationerror.py @@ -4,8 +4,8 @@ from .validationerror import ValidationError from dataclasses import dataclass, field import httpx -from mistralai_azure.models import MistralAzureError -from mistralai_azure.types import BaseModel +from mistralai.azure.client.models import MistralAzureError +from mistralai.azure.client.types import BaseModel from typing import List, Optional diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/imageurl.py b/packages/mistralai_azure/src/mistralai/azure/client/models/imageurl.py similarity index 96% rename from packages/mistralai_gcp/src/mistralai_gcp/models/imageurl.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/imageurl.py index 20d4ba77..08c954fa 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/imageurl.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/imageurl.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/imageurlchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/imageurlchunk.py similarity index 67% rename from packages/mistralai_gcp/src/mistralai_gcp/models/imageurlchunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/imageurlchunk.py index ddb53f21..ad7c8184 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/imageurlchunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/imageurlchunk.py @@ -2,17 +2,17 @@ from __future__ import annotations from .imageurl import ImageURL, ImageURLTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict -ImageURLChunkImageURLTypedDict = TypeAliasType( - "ImageURLChunkImageURLTypedDict", Union[ImageURLTypedDict, str] +ImageURLUnionTypedDict = TypeAliasType( + "ImageURLUnionTypedDict", Union[ImageURLTypedDict, str] ) -ImageURLChunkImageURL = TypeAliasType("ImageURLChunkImageURL", Union[ImageURL, str]) +ImageURLUnion = TypeAliasType("ImageURLUnion", Union[ImageURL, str]) ImageURLChunkType = Literal["image_url",] @@ -21,13 +21,13 @@ class ImageURLChunkTypedDict(TypedDict): r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" - image_url: ImageURLChunkImageURLTypedDict + image_url: ImageURLUnionTypedDict type: NotRequired[ImageURLChunkType] class ImageURLChunk(BaseModel): r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" - image_url: ImageURLChunkImageURL + image_url: ImageURLUnion type: Optional[ImageURLChunkType] = "image_url" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/jsonschema.py b/packages/mistralai_azure/src/mistralai/azure/client/models/jsonschema.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/jsonschema.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/jsonschema.py index 0f7563fc..5aaa490a 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/jsonschema.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/jsonschema.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/mistralazureerror.py b/packages/mistralai_azure/src/mistralai/azure/client/models/mistralazureerror.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/models/mistralazureerror.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/mistralazureerror.py diff --git a/packages/mistralai_azure/src/mistralai_azure/models/mistralpromptmode.py b/packages/mistralai_azure/src/mistralai/azure/client/models/mistralpromptmode.py similarity index 89% rename from packages/mistralai_azure/src/mistralai_azure/models/mistralpromptmode.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/mistralpromptmode.py index 77230b7e..26e7adbd 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/mistralpromptmode.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/mistralpromptmode.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import UnrecognizedStr +from mistralai.azure.client.types import UnrecognizedStr from typing import Literal, Union diff --git a/packages/mistralai_azure/src/mistralai_azure/models/no_response_error.py b/packages/mistralai_azure/src/mistralai/azure/client/models/no_response_error.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/models/no_response_error.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/no_response_error.py diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrimageobject.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrimageobject.py similarity index 98% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrimageobject.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrimageobject.py index 9d0dd01d..38e9d3e4 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrimageobject.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrimageobject.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrpagedimensions.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrpagedimensions.py similarity index 91% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrpagedimensions.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrpagedimensions.py index efb62a58..12858da9 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrpagedimensions.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrpagedimensions.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing_extensions import TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrpageobject.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrpageobject.py similarity index 98% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrpageobject.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrpageobject.py index e9571800..5fb821c1 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrpageobject.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrpageobject.py @@ -4,7 +4,7 @@ from .ocrimageobject import OCRImageObject, OCRImageObjectTypedDict from .ocrpagedimensions import OCRPageDimensions, OCRPageDimensionsTypedDict from .ocrtableobject import OCRTableObject, OCRTableObjectTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrrequest.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrrequest.py similarity index 99% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrrequest.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrrequest.py index e9c23afc..fece2713 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrrequest.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrrequest.py @@ -5,7 +5,7 @@ from .filechunk import FileChunk, FileChunkTypedDict from .imageurlchunk import ImageURLChunk, ImageURLChunkTypedDict from .responseformat import ResponseFormat, ResponseFormatTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrresponse.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrresponse.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrresponse.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrresponse.py index 3e43fa8e..787289fa 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrresponse.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrresponse.py @@ -3,7 +3,7 @@ from __future__ import annotations from .ocrpageobject import OCRPageObject, OCRPageObjectTypedDict from .ocrusageinfo import OCRUsageInfo, OCRUsageInfoTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrtableobject.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrtableobject.py similarity index 78% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrtableobject.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrtableobject.py index 189f059e..3e3c2583 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrtableobject.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrtableobject.py @@ -1,15 +1,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel, UnrecognizedStr import pydantic -from typing import Literal +from typing import Literal, Union from typing_extensions import Annotated, TypedDict -Format = Literal[ - "markdown", - "html", +Format = Union[ + Literal[ + "markdown", + "html", + ], + UnrecognizedStr, ] r"""Format of the table""" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/ocrusageinfo.py b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrusageinfo.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/ocrusageinfo.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/ocrusageinfo.py index 1f5c9f1b..e2ceba35 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/ocrusageinfo.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/ocrusageinfo.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/prediction.py b/packages/mistralai_azure/src/mistralai/azure/client/models/prediction.py similarity index 89% rename from packages/mistralai_azure/src/mistralai_azure/models/prediction.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/prediction.py index b23a935c..6b8d6480 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/prediction.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/prediction.py @@ -1,8 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel -from mistralai_azure.utils import validate_const +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator from typing import Literal, Optional diff --git a/packages/mistralai_azure/src/mistralai_azure/models/referencechunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/referencechunk.py similarity index 90% rename from packages/mistralai_azure/src/mistralai_azure/models/referencechunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/referencechunk.py index 32d2ca68..c48e7607 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/referencechunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/referencechunk.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import List, Literal, Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/responseformat.py b/packages/mistralai_azure/src/mistralai/azure/client/models/responseformat.py similarity index 98% rename from packages/mistralai_gcp/src/mistralai_gcp/models/responseformat.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/responseformat.py index 9fe5116c..39fb03a2 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/responseformat.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/responseformat.py @@ -3,7 +3,7 @@ from __future__ import annotations from .jsonschema import JSONSchema, JSONSchemaTypedDict from .responseformats import ResponseFormats -from mistralai_gcp.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/responseformats.py b/packages/mistralai_azure/src/mistralai/azure/client/models/responseformats.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/models/responseformats.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/responseformats.py diff --git a/packages/mistralai_azure/src/mistralai_azure/models/responsevalidationerror.py b/packages/mistralai_azure/src/mistralai/azure/client/models/responsevalidationerror.py similarity index 92% rename from packages/mistralai_azure/src/mistralai_azure/models/responsevalidationerror.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/responsevalidationerror.py index a33954cc..cbdffcbb 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/responsevalidationerror.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/responsevalidationerror.py @@ -4,7 +4,7 @@ from typing import Optional from dataclasses import dataclass -from mistralai_azure.models import MistralAzureError +from mistralai.azure.client.models import MistralAzureError @dataclass(unsafe_hash=True) diff --git a/packages/mistralai_azure/src/mistralai_azure/models/sdkerror.py b/packages/mistralai_azure/src/mistralai/azure/client/models/sdkerror.py similarity index 95% rename from packages/mistralai_azure/src/mistralai_azure/models/sdkerror.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/sdkerror.py index 216d7f8f..a1e9aaca 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/sdkerror.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/sdkerror.py @@ -4,7 +4,7 @@ from typing import Optional from dataclasses import dataclass -from mistralai_azure.models import MistralAzureError +from mistralai.azure.client.models import MistralAzureError MAX_MESSAGE_LEN = 10_000 diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/security.py b/packages/mistralai_azure/src/mistralai/azure/client/models/security.py similarity index 80% rename from packages/mistralai_gcp/src/mistralai_gcp/models/security.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/security.py index 38574942..9b83ba98 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/security.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/security.py @@ -1,8 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel -from mistralai_gcp.utils import FieldMetadata, SecurityMetadata +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import FieldMetadata, SecurityMetadata from typing_extensions import Annotated, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/systemmessage.py b/packages/mistralai_azure/src/mistralai/azure/client/models/systemmessage.py similarity index 57% rename from packages/mistralai_azure/src/mistralai_azure/models/systemmessage.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/systemmessage.py index f99bf4ff..38c280c8 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/systemmessage.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/systemmessage.py @@ -5,9 +5,12 @@ SystemMessageContentChunks, SystemMessageContentChunksTypedDict, ) -from mistralai_azure.types import BaseModel -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict SystemMessageContentTypedDict = TypeAliasType( @@ -21,15 +24,15 @@ ) -Role = Literal["system",] - - class SystemMessageTypedDict(TypedDict): content: SystemMessageContentTypedDict - role: NotRequired[Role] + role: Literal["system"] class SystemMessage(BaseModel): content: SystemMessageContent - role: Optional[Role] = "system" + ROLE: Annotated[ + Annotated[Literal["system"], AfterValidator(validate_const("system"))], + pydantic.Field(alias="role"), + ] = "system" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/systemmessagecontentchunks.py b/packages/mistralai_azure/src/mistralai/azure/client/models/systemmessagecontentchunks.py similarity index 66% rename from packages/mistralai_gcp/src/mistralai_gcp/models/systemmessagecontentchunks.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/systemmessagecontentchunks.py index e0b5bbc3..225f38b7 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/systemmessagecontentchunks.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/systemmessagecontentchunks.py @@ -3,8 +3,7 @@ from __future__ import annotations from .textchunk import TextChunk, TextChunkTypedDict from .thinkchunk import ThinkChunk, ThinkChunkTypedDict -from mistralai_gcp.utils import get_discriminator -from pydantic import Discriminator, Tag +from pydantic import Field from typing import Union from typing_extensions import Annotated, TypeAliasType @@ -16,6 +15,5 @@ SystemMessageContentChunks = Annotated[ - Union[Annotated[TextChunk, Tag("text")], Annotated[ThinkChunk, Tag("thinking")]], - Discriminator(lambda m: get_discriminator(m, "type", "type")), + Union[TextChunk, ThinkChunk], Field(discriminator="TYPE") ] diff --git a/packages/mistralai_azure/src/mistralai/azure/client/models/textchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/textchunk.py new file mode 100644 index 00000000..e513c143 --- /dev/null +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/textchunk.py @@ -0,0 +1,23 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import Literal +from typing_extensions import Annotated, TypedDict + + +class TextChunkTypedDict(TypedDict): + text: str + type: Literal["text"] + + +class TextChunk(BaseModel): + text: str + + TYPE: Annotated[ + Annotated[Literal["text"], AfterValidator(validate_const("text"))], + pydantic.Field(alias="type"), + ] = "text" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/thinkchunk.py b/packages/mistralai_azure/src/mistralai/azure/client/models/thinkchunk.py similarity index 65% rename from packages/mistralai_azure/src/mistralai_azure/models/thinkchunk.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/thinkchunk.py index f53a9f1a..18c77482 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/thinkchunk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/thinkchunk.py @@ -3,9 +3,12 @@ from __future__ import annotations from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict from .textchunk import TextChunk, TextChunkTypedDict -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel +from mistralai.azure.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict ThinkingTypedDict = TypeAliasType( @@ -16,14 +19,11 @@ Thinking = TypeAliasType("Thinking", Union[ReferenceChunk, TextChunk]) -ThinkChunkType = Literal["thinking",] - - class ThinkChunkTypedDict(TypedDict): thinking: List[ThinkingTypedDict] closed: NotRequired[bool] r"""Whether the thinking chunk is closed or not. Currently only used for prefixing.""" - type: NotRequired[ThinkChunkType] + type: Literal["thinking"] class ThinkChunk(BaseModel): @@ -32,4 +32,7 @@ class ThinkChunk(BaseModel): closed: Optional[bool] = None r"""Whether the thinking chunk is closed or not. Currently only used for prefixing.""" - type: Optional[ThinkChunkType] = "thinking" + TYPE: Annotated[ + Annotated[Literal["thinking"], AfterValidator(validate_const("thinking"))], + pydantic.Field(alias="type"), + ] = "thinking" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/tool.py b/packages/mistralai_azure/src/mistralai/azure/client/models/tool.py similarity index 89% rename from packages/mistralai_azure/src/mistralai_azure/models/tool.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/tool.py index c91deec2..169305bc 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/tool.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/tool.py @@ -3,7 +3,7 @@ from __future__ import annotations from .function import Function, FunctionTypedDict from .tooltypes import ToolTypes -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/toolcall.py b/packages/mistralai_azure/src/mistralai/azure/client/models/toolcall.py similarity index 92% rename from packages/mistralai_gcp/src/mistralai_gcp/models/toolcall.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/toolcall.py index 23ef157a..a589b1b3 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/toolcall.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/toolcall.py @@ -3,7 +3,7 @@ from __future__ import annotations from .functioncall import FunctionCall, FunctionCallTypedDict from .tooltypes import ToolTypes -from mistralai_gcp.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/toolchoice.py b/packages/mistralai_azure/src/mistralai/azure/client/models/toolchoice.py similarity index 93% rename from packages/mistralai_azure/src/mistralai_azure/models/toolchoice.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/toolchoice.py index 93b4b7fe..1f623222 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/toolchoice.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/toolchoice.py @@ -3,7 +3,7 @@ from __future__ import annotations from .functionname import FunctionName, FunctionNameTypedDict from .tooltypes import ToolTypes -from mistralai_azure.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/toolchoiceenum.py b/packages/mistralai_azure/src/mistralai/azure/client/models/toolchoiceenum.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/models/toolchoiceenum.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/toolchoiceenum.py diff --git a/packages/mistralai_azure/src/mistralai_azure/models/toolmessage.py b/packages/mistralai_azure/src/mistralai/azure/client/models/toolmessage.py similarity index 77% rename from packages/mistralai_azure/src/mistralai_azure/models/toolmessage.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/toolmessage.py index 4bc5c9a9..6e9a7903 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/toolmessage.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/toolmessage.py @@ -2,16 +2,19 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict -from mistralai_azure.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) +from mistralai.azure.client.utils import validate_const +import pydantic from pydantic import model_serializer -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict ToolMessageContentTypedDict = TypeAliasType( @@ -22,14 +25,11 @@ ToolMessageContent = TypeAliasType("ToolMessageContent", Union[str, List[ContentChunk]]) -ToolMessageRole = Literal["tool",] - - class ToolMessageTypedDict(TypedDict): content: Nullable[ToolMessageContentTypedDict] tool_call_id: NotRequired[Nullable[str]] name: NotRequired[Nullable[str]] - role: NotRequired[ToolMessageRole] + role: Literal["tool"] class ToolMessage(BaseModel): @@ -39,11 +39,14 @@ class ToolMessage(BaseModel): name: OptionalNullable[str] = UNSET - role: Optional[ToolMessageRole] = "tool" + ROLE: Annotated[ + Annotated[Literal["tool"], AfterValidator(validate_const("tool"))], + pydantic.Field(alias="role"), + ] = "tool" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["tool_call_id", "name", "role"] + optional_fields = ["tool_call_id", "name"] nullable_fields = ["content", "tool_call_id", "name"] null_default_fields = [] diff --git a/packages/mistralai_azure/src/mistralai_azure/models/tooltypes.py b/packages/mistralai_azure/src/mistralai/azure/client/models/tooltypes.py similarity index 77% rename from packages/mistralai_azure/src/mistralai_azure/models/tooltypes.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/tooltypes.py index 638890c5..1cce7446 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/tooltypes.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/tooltypes.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import UnrecognizedStr +from mistralai.azure.client.types import UnrecognizedStr from typing import Literal, Union diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/usageinfo.py b/packages/mistralai_azure/src/mistralai/azure/client/models/usageinfo.py similarity index 98% rename from packages/mistralai_gcp/src/mistralai_gcp/models/usageinfo.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/usageinfo.py index 59f36158..19a6b09f 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/usageinfo.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/usageinfo.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import ( +from mistralai.azure.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/usermessage.py b/packages/mistralai_azure/src/mistralai/azure/client/models/usermessage.py similarity index 73% rename from packages/mistralai_azure/src/mistralai_azure/models/usermessage.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/usermessage.py index 85fedb4b..96439c64 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/usermessage.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/usermessage.py @@ -2,10 +2,13 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict -from mistralai_azure.types import BaseModel, Nullable, UNSET_SENTINEL +from mistralai.azure.client.types import BaseModel, Nullable, UNSET_SENTINEL +from mistralai.azure.client.utils import validate_const +import pydantic from pydantic import model_serializer -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict UserMessageContentTypedDict = TypeAliasType( @@ -16,22 +19,22 @@ UserMessageContent = TypeAliasType("UserMessageContent", Union[str, List[ContentChunk]]) -UserMessageRole = Literal["user",] - - class UserMessageTypedDict(TypedDict): content: Nullable[UserMessageContentTypedDict] - role: NotRequired[UserMessageRole] + role: Literal["user"] class UserMessage(BaseModel): content: Nullable[UserMessageContent] - role: Optional[UserMessageRole] = "user" + ROLE: Annotated[ + Annotated[Literal["user"], AfterValidator(validate_const("user"))], + pydantic.Field(alias="role"), + ] = "user" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["role"] + optional_fields = [] nullable_fields = ["content"] null_default_fields = [] diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/validationerror.py b/packages/mistralai_azure/src/mistralai/azure/client/models/validationerror.py similarity index 90% rename from packages/mistralai_gcp/src/mistralai_gcp/models/validationerror.py rename to packages/mistralai_azure/src/mistralai/azure/client/models/validationerror.py index 033d4b63..817ecf7a 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/validationerror.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/models/validationerror.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel +from mistralai.azure.client.types import BaseModel from typing import List, Union from typing_extensions import TypeAliasType, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/ocr.py b/packages/mistralai_azure/src/mistralai/azure/client/ocr.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/ocr.py rename to packages/mistralai_azure/src/mistralai/azure/client/ocr.py index 31e27f6e..098e764b 100644 --- a/packages/mistralai_azure/src/mistralai_azure/ocr.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/ocr.py @@ -1,10 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .basesdk import BaseSDK -from mistralai_azure import models, utils -from mistralai_azure._hooks import HookContext -from mistralai_azure.types import Nullable, OptionalNullable, UNSET -from mistralai_azure.utils.unmarshal_json_response import unmarshal_json_response +from mistralai.azure.client import models, utils +from mistralai.azure.client._hooks import HookContext +from mistralai.azure.client.types import Nullable, OptionalNullable, UNSET +from mistralai.azure.client.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, List, Mapping, Optional, Union diff --git a/packages/mistralai_azure/src/mistralai_azure/py.typed b/packages/mistralai_azure/src/mistralai/azure/client/py.typed similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/py.typed rename to packages/mistralai_azure/src/mistralai/azure/client/py.typed diff --git a/packages/mistralai_azure/src/mistralai_azure/sdk.py b/packages/mistralai_azure/src/mistralai/azure/client/sdk.py similarity index 72% rename from packages/mistralai_azure/src/mistralai_azure/sdk.py rename to packages/mistralai_azure/src/mistralai/azure/client/sdk.py index 04bc7743..879c841d 100644 --- a/packages/mistralai_azure/src/mistralai_azure/sdk.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/sdk.py @@ -7,32 +7,37 @@ from .utils.retries import RetryConfig import httpx import importlib -from mistralai_azure import models, utils -from mistralai_azure._hooks import SDKHooks -from mistralai_azure.types import OptionalNullable, UNSET +from mistralai.azure.client import models, utils +from mistralai.azure.client._hooks import SDKHooks +from mistralai.azure.client.types import OptionalNullable, UNSET +import sys from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast import weakref if TYPE_CHECKING: - from mistralai_azure.chat import Chat - from mistralai_azure.ocr import Ocr + from mistralai.azure.client.chat import Chat + from mistralai.azure.client.ocr import Ocr class MistralAzure(BaseSDK): - r"""Mistral AI API: Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it.""" + r"""Mistral AI API: Dora OpenAPI schema + + Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it. + """ chat: "Chat" r"""Chat Completion API.""" ocr: "Ocr" _sub_sdk_map = { - "chat": ("mistralai_azure.chat", "Chat"), - "ocr": ("mistralai_azure.ocr", "Ocr"), + "chat": ("mistralai.azure.client.chat", "Chat"), + "ocr": ("mistralai.azure.client.ocr", "Ocr"), } def __init__( self, - azure_api_key: Union[str, Callable[[], str]], - azure_endpoint: str, + api_key: Union[str, Callable[[], str]], + server: Optional[str] = None, + server_url: Optional[str] = None, url_params: Optional[Dict[str, str]] = None, client: Optional[HttpClient] = None, async_client: Optional[AsyncHttpClient] = None, @@ -42,25 +47,18 @@ def __init__( ) -> None: r"""Instantiates the SDK configuring it with the provided parameters. - :param azure_api_key: The azure_api_key required for authentication - :param azure_endpoint: The Azure AI endpoint URL to use for all methods + :param api_key: The api_key required for authentication + :param server: The server by name to use for all methods + :param server_url: The server URL to use for all methods :param url_params: Parameters to optionally template the server URL with :param client: The HTTP client to use for all synchronous methods :param async_client: The Async HTTP client to use for all asynchronous methods :param retry_config: The retry configuration to use for all supported methods :param timeout_ms: Optional request timeout applied to each operation in milliseconds """ - - # if azure_endpoint doesn't end with `/v1` add it - if not azure_endpoint.endswith("/"): - azure_endpoint += "/" - if not azure_endpoint.endswith("v1/"): - azure_endpoint += "v1/" - server_url = azure_endpoint - client_supplied = True if client is None: - client = httpx.Client() + client = httpx.Client(follow_redirects=True) client_supplied = False assert issubclass( @@ -69,7 +67,7 @@ def __init__( async_client_supplied = True if async_client is None: - async_client = httpx.AsyncClient() + async_client = httpx.AsyncClient(follow_redirects=True) async_client_supplied = False if debug_logger is None: @@ -80,10 +78,11 @@ def __init__( ), "The provided async_client must implement the AsyncHttpClient protocol." security: Any = None - if callable(azure_api_key): - security = lambda: models.Security(api_key=azure_api_key()) # pylint: disable=unnecessary-lambda-assignment + if callable(api_key): + # pylint: disable=unnecessary-lambda-assignment + security = lambda: models.Security(api_key=api_key()) else: - security = models.Security(api_key=azure_api_key) + security = models.Security(api_key=api_key) if server_url is not None: if url_params is not None: @@ -98,11 +97,12 @@ def __init__( async_client_supplied=async_client_supplied, security=security, server_url=server_url, - server=None, + server=server, retry_config=retry_config, timeout_ms=timeout_ms, debug_logger=debug_logger, ), + parent_ref=self, ) hooks = SDKHooks() @@ -127,13 +127,24 @@ def __init__( self.sdk_configuration.async_client_supplied, ) + def dynamic_import(self, modname, retries=3): + for attempt in range(retries): + try: + return importlib.import_module(modname) + except KeyError: + # Clear any half-initialized module and retry + sys.modules.pop(modname, None) + if attempt == retries - 1: + break + raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") + def __getattr__(self, name: str): if name in self._sub_sdk_map: module_path, class_name = self._sub_sdk_map[name] try: - module = importlib.import_module(module_path) + module = self.dynamic_import(module_path) klass = getattr(module, class_name) - instance = klass(self.sdk_configuration) + instance = klass(self.sdk_configuration, parent_ref=self) setattr(self, name, instance) return instance except ImportError as e: diff --git a/packages/mistralai_gcp/src/mistralai_gcp/sdkconfiguration.py b/packages/mistralai_azure/src/mistralai/azure/client/sdkconfiguration.py similarity index 93% rename from packages/mistralai_gcp/src/mistralai_gcp/sdkconfiguration.py rename to packages/mistralai_azure/src/mistralai/azure/client/sdkconfiguration.py index cf85c47e..919225f9 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/sdkconfiguration.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/sdkconfiguration.py @@ -9,8 +9,8 @@ from .httpclient import AsyncHttpClient, HttpClient from .utils import Logger, RetryConfig, remove_suffix from dataclasses import dataclass -from mistralai_gcp import models -from mistralai_gcp.types import OptionalNullable, UNSET +from mistralai.azure.client import models +from mistralai.azure.client.types import OptionalNullable, UNSET from pydantic import Field from typing import Callable, Dict, Optional, Tuple, Union diff --git a/packages/mistralai_azure/src/mistralai_azure/types/__init__.py b/packages/mistralai_azure/src/mistralai/azure/client/types/__init__.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/types/__init__.py rename to packages/mistralai_azure/src/mistralai/azure/client/types/__init__.py diff --git a/packages/mistralai_azure/src/mistralai_azure/types/basemodel.py b/packages/mistralai_azure/src/mistralai/azure/client/types/basemodel.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/types/basemodel.py rename to packages/mistralai_azure/src/mistralai/azure/client/types/basemodel.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/__init__.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/__init__.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/__init__.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/__init__.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/annotations.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/annotations.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/annotations.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/annotations.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/datetimes.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/datetimes.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/datetimes.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/datetimes.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/enums.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/enums.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/enums.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/enums.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/eventstreaming.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/eventstreaming.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/eventstreaming.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/eventstreaming.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/forms.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/forms.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/forms.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/forms.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/headers.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/headers.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/headers.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/headers.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/logger.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/logger.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/logger.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/logger.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/metadata.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/metadata.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/metadata.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/metadata.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/queryparams.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/queryparams.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/queryparams.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/queryparams.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/requestbodies.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/requestbodies.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/requestbodies.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/requestbodies.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/retries.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/retries.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/retries.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/retries.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/security.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/security.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/security.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/security.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/serializers.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/serializers.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/serializers.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/serializers.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/unmarshal_json_response.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/unmarshal_json_response.py similarity index 95% rename from packages/mistralai_azure/src/mistralai_azure/utils/unmarshal_json_response.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/unmarshal_json_response.py index f5813119..5317ac87 100644 --- a/packages/mistralai_azure/src/mistralai_azure/utils/unmarshal_json_response.py +++ b/packages/mistralai_azure/src/mistralai/azure/client/utils/unmarshal_json_response.py @@ -5,7 +5,7 @@ import httpx from .serializers import unmarshal_json -from mistralai_azure import models +from mistralai.azure.client import models T = TypeVar("T") diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/url.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/url.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/url.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/url.py diff --git a/packages/mistralai_azure/src/mistralai_azure/utils/values.py b/packages/mistralai_azure/src/mistralai/azure/client/utils/values.py similarity index 100% rename from packages/mistralai_azure/src/mistralai_azure/utils/values.py rename to packages/mistralai_azure/src/mistralai/azure/client/utils/values.py diff --git a/packages/mistralai_azure/src/mistralai_azure/_hooks/custom_user_agent.py b/packages/mistralai_azure/src/mistralai_azure/_hooks/custom_user_agent.py deleted file mode 100644 index 77df6aef..00000000 --- a/packages/mistralai_azure/src/mistralai_azure/_hooks/custom_user_agent.py +++ /dev/null @@ -1,22 +0,0 @@ -# THIS FILE IS THE EXACT COPY OF THE ORIGINAL FILE FROM src/mistralai/_hooks/custom_user_agent.py -from typing import Union - -import httpx - -from .types import BeforeRequestContext, BeforeRequestHook - -PREFIX = "mistral-client-python/" - -class CustomUserAgentHook(BeforeRequestHook): - def before_request( - self, hook_ctx: BeforeRequestContext, request: httpx.Request - ) -> Union[httpx.Request, Exception]: - current = request.headers["user-agent"] - if current.startswith(PREFIX): - return request - - request.headers["user-agent"] = ( - PREFIX + current.split(" ")[1] - ) - - return request diff --git a/packages/mistralai_azure/src/mistralai_azure/models/imageurlchunk.py b/packages/mistralai_azure/src/mistralai_azure/models/imageurlchunk.py deleted file mode 100644 index a40e451c..00000000 --- a/packages/mistralai_azure/src/mistralai_azure/models/imageurlchunk.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from .imageurl import ImageURL, ImageURLTypedDict -from mistralai_azure.types import BaseModel -from typing import Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict - - -ImageURLChunkImageURLTypedDict = TypeAliasType( - "ImageURLChunkImageURLTypedDict", Union[ImageURLTypedDict, str] -) - - -ImageURLChunkImageURL = TypeAliasType("ImageURLChunkImageURL", Union[ImageURL, str]) - - -ImageURLChunkType = Literal["image_url",] - - -class ImageURLChunkTypedDict(TypedDict): - r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" - - image_url: ImageURLChunkImageURLTypedDict - type: NotRequired[ImageURLChunkType] - - -class ImageURLChunk(BaseModel): - r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" - - image_url: ImageURLChunkImageURL - - type: Optional[ImageURLChunkType] = "image_url" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/textchunk.py b/packages/mistralai_azure/src/mistralai_azure/models/textchunk.py deleted file mode 100644 index 5845456e..00000000 --- a/packages/mistralai_azure/src/mistralai_azure/models/textchunk.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from mistralai_azure.types import BaseModel -from typing import Literal, Optional -from typing_extensions import NotRequired, TypedDict - - -Type = Literal["text",] - - -class TextChunkTypedDict(TypedDict): - text: str - type: NotRequired[Type] - - -class TextChunk(BaseModel): - text: str - - type: Optional[Type] = "text" diff --git a/packages/mistralai_azure/uv.lock b/packages/mistralai_azure/uv.lock index a227d093..cedb1ce8 100644 --- a/packages/mistralai_azure/uv.lock +++ b/packages/mistralai_azure/uv.lock @@ -154,7 +154,7 @@ wheels = [ [[package]] name = "mistralai-azure" -version = "1.8.0" +version = "2.0.0a4" source = { editable = "." } dependencies = [ { name = "httpcore" }, diff --git a/packages/mistralai_gcp/.speakeasy/gen.lock b/packages/mistralai_gcp/.speakeasy/gen.lock index 31eb1bc7..337c9a55 100644 --- a/packages/mistralai_gcp/.speakeasy/gen.lock +++ b/packages/mistralai_gcp/.speakeasy/gen.lock @@ -5,20 +5,21 @@ management: docVersion: 1.0.0 speakeasyVersion: 1.685.0 generationVersion: 2.794.1 - releaseVersion: 1.8.0 - configChecksum: 42a1e5752a774fcdb0a5949bd6535933 + releaseVersion: 2.0.0a4 + configChecksum: 234ab955be3214c3769c926f06dcd40a repoURL: https://github.com/mistralai/client-python.git repoSubDirectory: packages/mistralai_gcp installationURL: https://github.com/mistralai/client-python.git#subdirectory=packages/mistralai_gcp published: true persistentEdits: - generation_id: e1cf1217-2a08-4cb8-b92c-542b4f885caa - pristine_commit_hash: 57fe0df69b76fe4754f039d49f7c40770fb3097d - pristine_tree_hash: c4c1037865fb86650ada485b300f96784045922f + generation_id: 5d03f9dd-9e48-45e2-893e-ae3d323a3834 + pristine_commit_hash: ef7533c5e58c5f50521b490c0ce388da5b76c1d6 + pristine_tree_hash: eea5e4afc33d7339b65aa260834703d94c0f4f8b features: python: additionalDependencies: 1.0.0 additionalProperties: 1.0.1 + configurableModuleName: 0.2.0 constsAndDefaults: 1.0.5 core: 5.23.18 defaultEnabledRetries: 0.2.0 @@ -57,16 +58,12 @@ trackedFiles: pristine_git_object: 2e54e27e0ca97bee87918b2ae38cc6c335669a79 docs/models/assistantmessage.md: id: 7e0218023943 - last_write_checksum: sha1:e75d407349842b2de46ee3ca6250f9f51121cf38 - pristine_git_object: 3d0bd90b4433c1a919f917f4bcf2518927cdcd50 + last_write_checksum: sha1:8e8cc655e97126a378118a213e6167a7929e7600 + pristine_git_object: 1ca5ac82d3e785e026a667800759efa9d2b246ac docs/models/assistantmessagecontent.md: id: 9f1795bbe642 last_write_checksum: sha1:1ce4066623a8d62d969e5ed3a088d73a9ba26643 pristine_git_object: 047b7cf95f4db203bf2c501680b73ca0562a122d - docs/models/assistantmessagerole.md: - id: bb5d2a4bc72f - last_write_checksum: sha1:82f2c4f469426bd476c1003a91394afb89cb7c91 - pristine_git_object: 658229e77eb6419391cf7941568164541c528387 docs/models/chatcompletionchoice.md: id: 0d15c59ab501 last_write_checksum: sha1:a6274a39a4239e054816d08517bf8507cb5c4564 @@ -77,12 +74,12 @@ trackedFiles: pristine_git_object: b2f15ecbe88328de95b4961ddb3940fd8a6ee64b docs/models/chatcompletionrequest.md: id: adffe90369d0 - last_write_checksum: sha1:1ac7d6b5a8aba9c922cf5fe45f94aee55228f9db - pristine_git_object: 6886f9dcd43e8d61f4ec6692235f281cb03a5c86 - docs/models/chatcompletionrequestmessages.md: - id: ec996b350e12 - last_write_checksum: sha1:2ecec8d12cdb48426f4eb62732066fc79fcd4ec3 - pristine_git_object: bc7708a67f06d74e8a5bf1facb2b23fb1e08053c + last_write_checksum: sha1:2bf5152388f18436be4fe1c541b8d423dcae175c + pristine_git_object: 61a25d86e7dc292621f7f6c0f8909137a16b9112 + docs/models/chatcompletionrequestmessage.md: + id: 3f5e170d418c + last_write_checksum: sha1:7921c5a508a9f88adc01caab34e26182b8035607 + pristine_git_object: 91e9e062d0ef0cb69235c4ae4516548733ce28a9 docs/models/chatcompletionrequeststop.md: id: fcaf5bbea451 last_write_checksum: sha1:71a25f84f0d88c7acf72e801ced6159546201851 @@ -97,8 +94,16 @@ trackedFiles: pristine_git_object: a0465ffbfc5558628953e03fbc53b80bbdc8649b docs/models/chatcompletionstreamrequest.md: id: cf8f29558a68 - last_write_checksum: sha1:33778fdf71aa9b934ae48d51664daaa0dd817e04 - pristine_git_object: ff1940dd8a92d7892d895c3fc0e0a4b321e55534 + last_write_checksum: sha1:f30b2a7353e7406eb30af841a1a211ea5cb30cb0 + pristine_git_object: 3e790e7dc7143b0ae287ad2df14ae7e7a4085e3f + docs/models/chatcompletionstreamrequestmessage.md: + id: 053a98476cd2 + last_write_checksum: sha1:8270692463fab1243d9de4bbef7162daa64e52c5 + pristine_git_object: 2e4e93acca8983a3ea27b391d4606518946e13fe + docs/models/chatcompletionstreamrequeststop.md: + id: d0e89a4dca78 + last_write_checksum: sha1:a889e9580fa94bda7c848682d6ba501b7f5c0f41 + pristine_git_object: a48460a92ac47fec1de2188ba46b238229736d32 docs/models/chatcompletionstreamrequesttoolchoice.md: id: 210d5e5b1413 last_write_checksum: sha1:0543164caf3f4fb2bef3061dbd1a5e6b34b17ae9 @@ -113,20 +118,24 @@ trackedFiles: pristine_git_object: 7a66e8fee2bb0f1c58166177653893bb05b98f1d docs/models/completionresponsestreamchoice.md: id: d56824d615a6 - last_write_checksum: sha1:dcf4b125b533192cb5aea1a68551866954712dc5 - pristine_git_object: c807dacd98eb3561ee45f40db71a92cb72b0f6de - docs/models/content.md: - id: bfd859c99f86 - last_write_checksum: sha1:6673dbd19871a701955a322348a4f7e51c38ffc8 - pristine_git_object: a833dc2c6043e36b85131c9243b4cc02b9fcc4c6 + last_write_checksum: sha1:0296a490df009dbfd04893fdebcc88dd6102a872 + pristine_git_object: 1532c25b8fc065d486f52d4610a7f757e5340875 + docs/models/completionresponsestreamchoicefinishreason.md: + id: 5f1fbfc90b8e + last_write_checksum: sha1:20824b4a223cbd3658b32440973a7d47dcd108b9 + pristine_git_object: 0fece473297227c75db4e7ded63417a2f117cac0 docs/models/contentchunk.md: id: d2d3a32080cd last_write_checksum: sha1:5839a26cdc412b78caad7fb59df97bdcea57be6d pristine_git_object: 22023e8b19692df969693b7a14f8cf6e0143859f docs/models/deltamessage.md: id: 6c5ed6b60968 - last_write_checksum: sha1:c213149256c620715d744c89685d5b6cbdea6f58 - pristine_git_object: 61deabbf7e37388fdd4c1789089d120cc0b937b9 + last_write_checksum: sha1:00052476b9b2474dbc149f18dd18c71c86d0fc74 + pristine_git_object: e0ee575f3fce7c312114ce8c5390efc5c4854952 + docs/models/deltamessagecontent.md: + id: 7307bedc8733 + last_write_checksum: sha1:a1211b8cb576ad1358e68983680ee326c3920a5e + pristine_git_object: 8142772d7ea33ad8a75cf9cf822564ba3f630de2 docs/models/fimcompletionrequest.md: id: b44677ecc293 last_write_checksum: sha1:24bcb54d39b3fabd487549a27b4c0a65dd5ffe50 @@ -147,10 +156,6 @@ trackedFiles: id: c97a11b764e9 last_write_checksum: sha1:958d5087050fdeb128745884ebcf565b4fdc3886 pristine_git_object: 5a9e2ff020d4939f7fd42c0673ea7bdd16cca99d - docs/models/finishreason.md: - id: 73315c2a39b3 - last_write_checksum: sha1:5b58c7fa9219f728b9731287e21abe1be9f11e4a - pristine_git_object: 45a5aedb7241cf080df3eb976a4413064d314009 docs/models/function.md: id: 416a80fba031 last_write_checksum: sha1:a9485076d430a7753558461ce87bf42d09e34511 @@ -173,16 +178,12 @@ trackedFiles: pristine_git_object: 7c2bcbc36e99c3cf467d213d6a6a59d6300433d8 docs/models/imageurlchunk.md: id: 4407097bfff3 - last_write_checksum: sha1:7a478fd638234ece78770c7fc5e8d0adaf1c3727 - pristine_git_object: f1b926ef8e82443aa1446b1c64c2f02e33d7c789 - docs/models/imageurlchunkimageurl.md: - id: c7fae88454ce - last_write_checksum: sha1:5eff71b7a8be7baacb9ba8ca0be0a0f7a391a325 - pristine_git_object: 767389082d25f06e617fec2ef0134dd9fb2d4064 - docs/models/imageurlchunktype.md: - id: b9af2db9ff60 - last_write_checksum: sha1:990546f94648a09faf9d3ae55d7f6ee66de13e85 - pristine_git_object: 2064a0b405870313bd4b802a3b1988418ce8439e + last_write_checksum: sha1:b0d8050eaed2058ed8a2e019e31a060345dc508a + pristine_git_object: 68515bc367d71b7917fbe219450c727804ef207f + docs/models/imageurlunion.md: + id: 9d3c691a9db0 + last_write_checksum: sha1:4e32bcd7d44746d2ddbfafbef96152bb2bdb2a15 + pristine_git_object: db97130f26199dcb354ecb7469d09530b035daa2 docs/models/jsonschema.md: id: a6b15ed6fac8 last_write_checksum: sha1:523465666ad3c292252b3fe60f345c7ffb29053f @@ -191,10 +192,6 @@ trackedFiles: id: b071d5a509cc last_write_checksum: sha1:09a04749333ab50ae806c3ac6adcaa90d54df0f1 pristine_git_object: d6094ac2c6e0326c039dad2f6b89158694ef6aa7 - docs/models/messages.md: - id: 2103cd675c2f - last_write_checksum: sha1:f6940c9c67b98c49ae2bc2764f6c14178321f244 - pristine_git_object: 1d394500e8ffdd140457575568fc2ce465a1cc3a docs/models/mistralpromptmode.md: id: d17d5db4d3b6 last_write_checksum: sha1:abcb7205c5086169c7d9449d15ac142448a7d258 @@ -205,12 +202,8 @@ trackedFiles: pristine_git_object: fae3c1ca4ba2c2ddb3b7de401ecdc8d56dcc7740 docs/models/referencechunk.md: id: 07895f9debfd - last_write_checksum: sha1:97d01dd2b907e87b58bebd9c950e1bef29747c89 - pristine_git_object: a132ca2fe6fbbaca644491cbc36d88b0c67cc6bc - docs/models/referencechunktype.md: - id: 0944b80ea9c8 - last_write_checksum: sha1:956b270766c7f11fe99f4a9b484cc29c159e7471 - pristine_git_object: 1e0e2fe64883ef5f3e628777b261b1224661d257 + last_write_checksum: sha1:b8c24b748cf87df322aa31cb78bf84053ebc20d6 + pristine_git_object: 96e4df7f06661a84f43ad1b22bbad4d48ccdb403 docs/models/responseformat.md: id: 50a1e4140614 last_write_checksum: sha1:e877b2e81470ef5eec5675dfb91a47e74d5d3add @@ -219,22 +212,18 @@ trackedFiles: id: cf1f250b82db last_write_checksum: sha1:105e1f9181913104b554051838cbdd0f728aa2c4 pristine_git_object: 2f5f1e5511b048323fee18a0ffdd506fe2b3d56f - docs/models/role.md: - id: b694540a5b1e - last_write_checksum: sha1:260a50c56a8bd03cc535edf98ebec06437f87f8d - pristine_git_object: affca78d5574cc42d8e6169f21968e5a8765e053 + docs/models/roleenum.md: + id: 0d7e1c46e8a4 + last_write_checksum: sha1:61fa8e7b302bffb18a9e4c19e7099580025a92c1 + pristine_git_object: 4213c18d66e0508d066f3317b5fbbca05bef3ac3 docs/models/security.md: id: 452e4d4eb67a last_write_checksum: sha1:ce2871b49c1632d50e22d0b1ebe4999021d52313 pristine_git_object: c698674c513f5b20c04f629e50154e67977275f7 - docs/models/stop.md: - id: f231cc9f5041 - last_write_checksum: sha1:86903cac5f57ad9b8ac07ecba6c454d40a53bdc8 - pristine_git_object: ba40ca83136d6d6cb4f1ef9e5ca3104a704e4846 docs/models/systemmessage.md: id: fdb7963e1cdf - last_write_checksum: sha1:97e726dff19a39b468767d5c01fc6256277ee71f - pristine_git_object: 0dba71c00f40c85e74b2c1967e077ffff9660f13 + last_write_checksum: sha1:561c3372391e093c890f477b3213c308ead50b81 + pristine_git_object: dfb0cd0bd17aecbc1fe4b8410e78440f65038fef docs/models/systemmessagecontent.md: id: 94a56febaeda last_write_checksum: sha1:6cb10b4b860b4204df57a29c650c85c826395aeb @@ -245,16 +234,12 @@ trackedFiles: pristine_git_object: 40030c170746d9953d25b979ab7e6f522018e230 docs/models/textchunk.md: id: 6cd12e0ef110 - last_write_checksum: sha1:6d41d1991d122805734ed0d90ee01592aa5ae6ff - pristine_git_object: 6daab3c381bd8c13d2935bf62578648a8470fc76 + last_write_checksum: sha1:43bc634db23ae0ca56e9e0073817aa0b5a7a43c6 + pristine_git_object: 8521a2c1049ccdcd75c01b34c85eabeeac4e2af5 docs/models/thinkchunk.md: id: bca24d7153f6 - last_write_checksum: sha1:feb95a931bb9cdbfe28ab351618687e513cf830b - pristine_git_object: 66b2e0cde70e25e2927180d2e709503401fddeab - docs/models/thinkchunktype.md: - id: 0fbeed985341 - last_write_checksum: sha1:790f991f95c86c26a6abb9c9c5debda8b53526f5 - pristine_git_object: baf6f755252d027295be082b53ecf80555039414 + last_write_checksum: sha1:714ab1ad03b7641a9225bcb6bd47015e482b70c3 + pristine_git_object: 07f6f7b13336f2766723bcdff1d535a53962487e docs/models/thinking.md: id: 07234f8dd364 last_write_checksum: sha1:a5962d1615b57996730da19e59fbfaa684321442 @@ -277,40 +262,32 @@ trackedFiles: pristine_git_object: 0be3d6c54b13a8bf30773398a2c12e0d30d3ae58 docs/models/toolmessage.md: id: 0553747c37a1 - last_write_checksum: sha1:3ac87031fdd4ba8b0996e95be8e7ef1a7ff41167 - pristine_git_object: a54f49332c2873471759b477fb4c712fa4fb61f5 + last_write_checksum: sha1:f35fa287b94d2c1a9de46c2c479dadd5dca7144d + pristine_git_object: fa00d666d6d2baea0aac10fcdeff449eb73c9d39 docs/models/toolmessagecontent.md: id: f0522d2d3c93 last_write_checksum: sha1:783769c0200baa1b6751327aa3e009fa83da72ee pristine_git_object: 5c76091fbd2c8e0d768921fab19c7b761df73411 - docs/models/toolmessagerole.md: - id: f333d4d1ab56 - last_write_checksum: sha1:7e1c004bad24e928da0c286a9f053516b172d24f - pristine_git_object: c24e59c0c79ea886d266e38c673edd51531b9be6 docs/models/tooltypes.md: id: adb50fe63ea2 last_write_checksum: sha1:f224c3d8732450b9c969b3e04027b7df7892694c pristine_git_object: 84e49253c9b9bd1bd314e2a126106404cbb52f16 - docs/models/type.md: - id: 98c32f09b2c8 - last_write_checksum: sha1:8aa9ca999e9648ddc2240bf80780684e3e858ddf - pristine_git_object: eb0581e7174b6951d69c485a64af5244cb8687fa + docs/models/typeenum.md: + id: d306d1d601a4 + last_write_checksum: sha1:33e1ed53f75cf8979b05d1de7f8176e7a087500f + pristine_git_object: 35a6f34c28d408da6b3ff9c9b527a88290f327e0 docs/models/usageinfo.md: id: ec6fe65028a9 last_write_checksum: sha1:cf71fb9676d870eba7c4d10a69636e1db4054adc pristine_git_object: f5204ac94a4d6191839031c66c5a9bc0124a1f35 docs/models/usermessage.md: id: ed66d7a0f80b - last_write_checksum: sha1:8291f7703e49ed669775dc953ea8cab6715dc7ed - pristine_git_object: 63b0131091cd211b3b1477c1d63b5666a26db546 + last_write_checksum: sha1:627f88dbb89e226a7d92564658c23a0e8d71342a + pristine_git_object: 78ed066eed9f0638edc6db697eaeaad6f32b4770 docs/models/usermessagecontent.md: id: 52c072c851e8 last_write_checksum: sha1:1de02bcf7082768ebe1bb912fdbebbec5a577b5a pristine_git_object: 8350f9e8f8996c136093e38760990f62fd01f8cf - docs/models/usermessagerole.md: - id: 99ffa937c462 - last_write_checksum: sha1:52014480516828b43827aa966b7319d9074f1111 - pristine_git_object: 171124e45988e784c56a6b92a0057ba00efc0db4 docs/models/utils/retryconfig.md: id: 4343ac43161c last_write_checksum: sha1:562c0f21e308ad10c27f85f75704c15592c6929d @@ -335,300 +312,304 @@ trackedFiles: id: fe273b08f514 last_write_checksum: sha1:b290b25b36dca3d5eb1a2e66a2e1bcf2e7326cf3 pristine_git_object: c35748f360329c2bc370e9b189f49b1a360b2c48 - src/mistralai_gcp/__init__.py: - id: b6565f49e73b + src/mistralai/gcp/client/__init__.py: + id: 4f63decd432e last_write_checksum: sha1:36306d1d404b6aeb912d27f1d9c52f098ff7bf9b pristine_git_object: dd02e42e4cc509dc90e6ae70493054021faa5f9c - src/mistralai_gcp/_hooks/__init__.py: - id: 663f3129700b + src/mistralai/gcp/client/_hooks/__init__.py: + id: adcb191838d1 last_write_checksum: sha1:e3111289afd28ad557c21d9e2f918caabfb7037d pristine_git_object: 2ee66cdd592fe41731c24ddd407c8ca31c50aec1 - src/mistralai_gcp/_hooks/sdkhooks.py: - id: 46ab7e644296 - last_write_checksum: sha1:a2c018871bea47706a76b03d9a17dab717c339c0 - pristine_git_object: b81c2a2739d316cfed54daec48df6375155eb802 - src/mistralai_gcp/_hooks/types.py: - id: 1f77198243ec - last_write_checksum: sha1:fbf5f1fb258b75133c6b12ae688c03c18b2debd5 - pristine_git_object: f8088f4c26d3ae27202c716c80c391d4daed4156 - src/mistralai_gcp/_version.py: - id: 4e2b8c406f49 - last_write_checksum: sha1:18c7db41065d76e733dc84c997f2a7808892a7c7 - pristine_git_object: a170f0ab6d229979b9077477809b10f2774a0144 - src/mistralai_gcp/basesdk.py: - id: b84fa6111b69 - last_write_checksum: sha1:41381dd799bd5e1f8a15bb65a0672dc6cc4796c4 - pristine_git_object: 7a93de23ad83096b2392e05b11f29030b5961456 - src/mistralai_gcp/chat.py: - id: 1cc7d54332ba - last_write_checksum: sha1:b4b4db3cfeac555718e2d74e897c6ba22b07a672 - pristine_git_object: 3dd6040fc7a565ffc4854bcc25e1e24a6683896d - src/mistralai_gcp/fim.py: - id: 1e5bec08157c - last_write_checksum: sha1:2c27170c5932893d4e8bec8ce45b2dc6e0957cd6 - pristine_git_object: 36d9fd60baaad606d9d57a30afdd9566b06b4caa - src/mistralai_gcp/httpclient.py: - id: 7de4ac861042 + src/mistralai/gcp/client/_hooks/sdkhooks.py: + id: 7e23394c3f65 + last_write_checksum: sha1:4a03a16da35168f25ed0cccfdb0d4c4d86bbe242 + pristine_git_object: 2af4deeda8055f4c57c0c7f00a7b79033435cf34 + src/mistralai/gcp/client/_hooks/types.py: + id: 4f37fd18bfd9 + last_write_checksum: sha1:2b295cc28d5fa2c79495510c8b97a1ea60f993e0 + pristine_git_object: ea95bed210db9180824efddfb1b3e47f5bf96489 + src/mistralai/gcp/client/_version.py: + id: f87319e32c7b + last_write_checksum: sha1:8c07e6351bf2df8239b3c02db75ee469dba53394 + pristine_git_object: ba48dac120cadd3f586b38659dc04e50838daa11 + src/mistralai/gcp/client/basesdk.py: + id: 4d594572857b + last_write_checksum: sha1:45ed4b6078e01d52d1dcf4bdc5494b700f1a6cde + pristine_git_object: 6f9f5fd9a2cadc8893d6693c1d40a8114c0fdc2a + src/mistralai/gcp/client/chat.py: + id: 4c41f05f786e + last_write_checksum: sha1:a4d5609f51dee25dfc34f83e1eda2888aa01dda6 + pristine_git_object: 78541248204cbd5b92b6d6d362924fcdada8a948 + src/mistralai/gcp/client/fim.py: + id: 13d2d208e0ef + last_write_checksum: sha1:e6226c1720effd314afa7b9a21e5ec2347e5a74f + pristine_git_object: e2acacd58c28fa7ea718240b01a3714f7fc0b8f6 + src/mistralai/gcp/client/httpclient.py: + id: a53dd7be6a4c last_write_checksum: sha1:5e55338d6ee9f01ab648cad4380201a8a3da7dd7 pristine_git_object: 89560b566073785535643e694c112bedbd3db13d - src/mistralai_gcp/models/__init__.py: - id: 9a7b2a1f0dba - last_write_checksum: sha1:54654df1aecc8d4f634ebd4dbcb0fed16da80309 - pristine_git_object: fe85b133a3a7652cfcfd3b44074be3729c8a9b7b - src/mistralai_gcp/models/assistantmessage.py: - id: 0779dd85c548 - last_write_checksum: sha1:ccf5d6a93bf007d47f0415320afb047278e10172 - pristine_git_object: 17d740b6eeb433b2865a652d1dd760227ad38191 - src/mistralai_gcp/models/chatcompletionchoice.py: - id: b5843c853153 - last_write_checksum: sha1:d389ddcfb64980b6c56a42d53bce7c63e26cc569 - pristine_git_object: fe3ee952a207f772ec49972cbd30f83654c84ad9 - src/mistralai_gcp/models/chatcompletionrequest.py: - id: 42d6cdf4646f - last_write_checksum: sha1:9685d594f13e8500e9c7fbab1e0d4042fccfc23d - pristine_git_object: 80345f9d956f64396f48850641842b2a3a6f8bee - src/mistralai_gcp/models/chatcompletionresponse.py: - id: 14720f23411e - last_write_checksum: sha1:46f14c3e00d21e9f01756f111d353768ad939494 - pristine_git_object: a7953eb156cc8185d70f92df8a75a2ebb77840b9 - src/mistralai_gcp/models/chatcompletionstreamrequest.py: - id: 2e17680adc7e - last_write_checksum: sha1:37c2daaad5c557234b5f067152280440f4c96933 - pristine_git_object: e857d51522dc9964cde865d7f681bd856a3cbdaf - src/mistralai_gcp/models/completionchunk.py: - id: 7fa670acf4b8 - last_write_checksum: sha1:0d0fdb8efda7f0b6a8ff376b7da94cac8060e4e2 - pristine_git_object: ca002f52239f69b96dd967b5e91cb4ed544e51d0 - src/mistralai_gcp/models/completionevent.py: - id: c25e6676e263 - last_write_checksum: sha1:528f13beedc9befc6fb71d4f9f2a2d4ff5e91817 - pristine_git_object: 33278c119c62205b8d9b09297066dc61c2a86cd1 - src/mistralai_gcp/models/completionresponsestreamchoice.py: - id: 46946832a23e - last_write_checksum: sha1:bc42569eb80dc034a1bde9170c35e6bc4ff52bb8 - pristine_git_object: ec9df52818fabf6bef33094bc7d25398066df3af - src/mistralai_gcp/models/contentchunk.py: - id: 96dd7160dff7 - last_write_checksum: sha1:484722b90615ca7af20993c570de79fe990a50f2 - pristine_git_object: da5671e348d363927af77188da6af07240398826 - src/mistralai_gcp/models/deltamessage.py: - id: db6c3c4d3384 - last_write_checksum: sha1:e596610fa0dd100203cd7e515750782bfbdb0445 - pristine_git_object: 1801ac76522df2efc362712d46262aeba95abc87 - src/mistralai_gcp/models/fimcompletionrequest.py: - id: ed8593c435af - last_write_checksum: sha1:6561263425e385568189ffc61e6b00034136adc3 - pristine_git_object: bcc97c90d4d327c83666423317dae2dc90db3b82 - src/mistralai_gcp/models/fimcompletionresponse.py: - id: 5f85a7cdb5fd - last_write_checksum: sha1:3ac2057157c7d1cb1bfc81fca2915ba72546f968 - pristine_git_object: e1940b0a2290fc3f9afcbd9e945397b1b90660ec - src/mistralai_gcp/models/fimcompletionstreamrequest.py: - id: f17c4f8fa580 - last_write_checksum: sha1:ebbe89e576d498070fde6b195d5afa2dc8bd5eac - pristine_git_object: 34d2ba65682b971f675f427cdf3aa6539071ce3a - src/mistralai_gcp/models/function.py: - id: 4612d6f83b9a - last_write_checksum: sha1:7692ea8102475e4d82d83722a8aea1efde668774 - pristine_git_object: 7ad1ae645f99ab13c022c92e7733ff4b15d39cac - src/mistralai_gcp/models/functioncall.py: - id: a3ca765a9368 - last_write_checksum: sha1:e044de5b26b15d46dce8ad8bd0d13bdf3d24ef7d - pristine_git_object: 99554c8862922184a05074bf01f71fbe20ac8fea - src/mistralai_gcp/models/functionname.py: - id: f97eb2c1bae3 - last_write_checksum: sha1:6343e5b4f724db6088c2055b058a9ebdd9bda995 - pristine_git_object: 00ec22f5ca6ff2d68d5cce2a020846a672ab0a1b - src/mistralai_gcp/models/httpvalidationerror.py: - id: f1ac6b7c81f3 - last_write_checksum: sha1:8e98e27a5440e2e1dbe330d1c889d43919d90b51 - pristine_git_object: 79609351e675148ef074988bb6ea8a11b81087dc - src/mistralai_gcp/models/imageurl.py: - id: 1668e9d55730 - last_write_checksum: sha1:2b8eaac00c956beb87434f8d5a21dff12611c788 - pristine_git_object: 20d4ba7719a6c04d2c7864459a68cca808e1a3f2 - src/mistralai_gcp/models/imageurlchunk.py: - id: ebc4dfed0347 - last_write_checksum: sha1:5c625584449139a410138c9986323d1f86b52735 - pristine_git_object: ddb53f21a13aeed7884e213e92752de1870d9fb5 - src/mistralai_gcp/models/jsonschema.py: - id: 4c32e4fa593e - last_write_checksum: sha1:3c972f731f2bd92262ea04a65771c093254d3a5f - pristine_git_object: 26914b2f8562da07e2d54d68a5806bedd32ec16a - src/mistralai_gcp/models/mistralgcperror.py: - id: 690cf29f596b + src/mistralai/gcp/client/models/__init__.py: + id: d9e976d01972 + last_write_checksum: sha1:8c826229be899d2da60348eefd1cf36a1ca649af + pristine_git_object: 063bc6122e318eeca54ec3eb08075f1438c394b0 + src/mistralai/gcp/client/models/assistantmessage.py: + id: d39c4bdd289e + last_write_checksum: sha1:63b70230041daf3e63b8fa296c82cf66e2bb0a88 + pristine_git_object: a85535c6f558a98afad97a7e23e9545ad782d550 + src/mistralai/gcp/client/models/chatcompletionchoice.py: + id: 8e65b56f3e6d + last_write_checksum: sha1:e6d1382e9f880b866130d900fd866997aaf80e45 + pristine_git_object: ae5a2fbf38afbd86233dcaa8aa1c8441f5ed9eba + src/mistralai/gcp/client/models/chatcompletionrequest.py: + id: 4694a31c0003 + last_write_checksum: sha1:edb744ec2baca1f9ba6574662fffb36fb7d3faab + pristine_git_object: 1bc039221910bf88396c96affe735c8ac822920b + src/mistralai/gcp/client/models/chatcompletionresponse.py: + id: dd9e4796fca9 + last_write_checksum: sha1:76d7257583389ff5021e320a8f9a45a6deb07c7c + pristine_git_object: 317c4d84e378c14294d58c5aefd8c55ffe28754a + src/mistralai/gcp/client/models/chatcompletionstreamrequest.py: + id: 7294862af8ea + last_write_checksum: sha1:75d5bfcc204339b152dc78e33ac449c3aa9b5432 + pristine_git_object: 0a5a0021a4862e7b92a5c31679bf42bfa704d15b + src/mistralai/gcp/client/models/completionchunk.py: + id: 6b9ed8c30877 + last_write_checksum: sha1:4afc07c1824d81640f52a5c8bf89fde8893269b9 + pristine_git_object: 9e54cb6dfaccf7f815b40be585e11585cb5fef78 + src/mistralai/gcp/client/models/completionevent.py: + id: 3f55c4b8fc75 + last_write_checksum: sha1:66665d921fd27df6ef0efce996a5446e49b989d8 + pristine_git_object: bb1550093ce9adcb9bcd0548b69796e82f4f260b + src/mistralai/gcp/client/models/completionresponsestreamchoice.py: + id: ad9b98ca7e1c + last_write_checksum: sha1:04d195584fe4ea16544685e9989e5ae35205179a + pristine_git_object: 6f306721fbe47780c778833b80e97ab5d25d8367 + src/mistralai/gcp/client/models/contentchunk.py: + id: 8714d3bf2698 + last_write_checksum: sha1:347f43b4d7dcab18e09e6c3323f745a25ecfb04c + pristine_git_object: 1cd9e502ab7d4860daa79f907beafa71da086ab3 + src/mistralai/gcp/client/models/deltamessage.py: + id: 404fc85f1a4c + last_write_checksum: sha1:3375624531d12279d225fb07a68e0396483b962f + pristine_git_object: 96923518438137cb729a69149b5b99be49836ad7 + src/mistralai/gcp/client/models/fimcompletionrequest.py: + id: 5b79e2595d31 + last_write_checksum: sha1:cc4fa68c60a6a500a9887e47dd2e9220327c6226 + pristine_git_object: f37bbcc3cab020224531da898dd99cc175d49cd9 + src/mistralai/gcp/client/models/fimcompletionresponse.py: + id: 402f602d29b8 + last_write_checksum: sha1:cfe26848c7b14d6e374b7944d7ad44df822990b0 + pristine_git_object: 5b80da3f03e4e99dfca971a53af1cf6472c889bb + src/mistralai/gcp/client/models/fimcompletionstreamrequest.py: + id: 31190cf25070 + last_write_checksum: sha1:720f0a039a62cb508d513475a0e4bad45a9aa03c + pristine_git_object: 8e6102612998bde70d830bb0b8ee3a5e2a4dd01e + src/mistralai/gcp/client/models/function.py: + id: 2285a899b32e + last_write_checksum: sha1:a69ad9c8cd723e78a3949deefe43bcbf57426916 + pristine_git_object: 28577eff06d052aeb58c2795dd0a92ae4f2e7552 + src/mistralai/gcp/client/models/functioncall.py: + id: 17bb51f08e5f + last_write_checksum: sha1:b5fe2f061ea5f47057ee50011babc80de27e0ee6 + pristine_git_object: 0f1b24251ce728b3c2a0fb9e9ca94f90a9c3b7be + src/mistralai/gcp/client/models/functionname.py: + id: 313a6001145f + last_write_checksum: sha1:fe1eefaed314efa788bd15beb63bf6b81abb307e + pristine_git_object: 585b9e39762e49356823e211ad86f701bca389b8 + src/mistralai/gcp/client/models/httpvalidationerror.py: + id: bdb67f678798 + last_write_checksum: sha1:c64a1b1b4e3a5a18781c4347b561629dec4658b5 + pristine_git_object: d7944d1edc9334e142b81af48085081495407b47 + src/mistralai/gcp/client/models/imageurl.py: + id: 4e330f3eae74 + last_write_checksum: sha1:a64daae7e0ef71f8024a6381e7f4da465a13f427 + pristine_git_object: e66d77ec412bc27c0c44a94a1da5525438dd7338 + src/mistralai/gcp/client/models/imageurlchunk.py: + id: e68a4a393e9b + last_write_checksum: sha1:2eb2c8a205e5f8b320e2f597075cad9e5e27475b + pristine_git_object: fc5284c102c17a33c1ba6029c87515d509cd014b + src/mistralai/gcp/client/models/jsonschema.py: + id: 39c6e7d412a0 + last_write_checksum: sha1:29ba87457959588ff7d8188ae2382fb88740151d + pristine_git_object: 443c429dd1461d7a6817335626cd585577c5bffe + src/mistralai/gcp/client/models/mistralgcperror.py: + id: 278d296220ff last_write_checksum: sha1:0ec55c68e3daccf2aba3c52f0a7c77ad5102f4c9 pristine_git_object: fec729a590b2ea981e01f4af99d8b36ba52b4664 - src/mistralai_gcp/models/mistralpromptmode.py: - id: d2ba58ed5184 - last_write_checksum: sha1:6fb8323de88682846a2a09e68550f3508a29f1f5 - pristine_git_object: a5cc534f8c53bc87b8451aac1b2a79e695530e71 - src/mistralai_gcp/models/no_response_error.py: - id: 7a773ba0687f + src/mistralai/gcp/client/models/mistralpromptmode.py: + id: 8be4a4a683e4 + last_write_checksum: sha1:c958567e95490abf3941fde69be69733e8afb90e + pristine_git_object: c765e4f1a0b86735255771231377f13d62f3d7a6 + src/mistralai/gcp/client/models/no_response_error.py: + id: 2a7fa173594b last_write_checksum: sha1:7f326424a7d5ae1bcd5c89a0d6b3dbda9138942f pristine_git_object: 1deab64bc43e1e65bf3c412d326a4032ce342366 - src/mistralai_gcp/models/prediction.py: - id: cd3b43190e22 - last_write_checksum: sha1:a0411a8e3b1ecb42b91405dd9ee2a2ee5f3fad59 - pristine_git_object: 36c87ab046ed9f1a28a371fbdc5c7d584d71b6d3 - src/mistralai_gcp/models/referencechunk.py: - id: ee00a52fb6dd - last_write_checksum: sha1:d0c05b6b1e7d085833d4a9ef85f1e0088c86d3a5 - pristine_git_object: 904e8b8250570371e2b59895196986a45e6d3562 - src/mistralai_gcp/models/responseformat.py: - id: ad17dac36a51 - last_write_checksum: sha1:296d4b52f934c48490b71d85e1e9d0e207cee21a - pristine_git_object: 9fe5116ca46d713f5f23c92ec1de8a73c5124408 - src/mistralai_gcp/models/responseformats.py: - id: deb9c36c5ec5 + src/mistralai/gcp/client/models/prediction.py: + id: 7a5463285bc8 + last_write_checksum: sha1:1d1e81082d1c2bfd613f0bc00f7173995ad67c0c + pristine_git_object: f53579edc665dd7fc1cc2497b0cd05b69e541cd8 + src/mistralai/gcp/client/models/referencechunk.py: + id: 523e477f8725 + last_write_checksum: sha1:49f8538014ff95e566f65fa362517a7a9332678c + pristine_git_object: 7396378a3246d869a12e722878c4fb345e6352c0 + src/mistralai/gcp/client/models/responseformat.py: + id: 06774bb65b42 + last_write_checksum: sha1:a52a60dc45c0b0939b99754d6c0c603ef2f737d3 + pristine_git_object: 34ae6b039a6c83c603fc6d47f6b2f233ec6c817a + src/mistralai/gcp/client/models/responseformats.py: + id: 18112ad0f6db last_write_checksum: sha1:a212e85d286b5b49219f57d071a2232ff8b5263b pristine_git_object: cbf83ce7b54ff8634f741334831807bfb5c98991 - src/mistralai_gcp/models/responsevalidationerror.py: - id: 78e210042d35 - last_write_checksum: sha1:b8ba70238453017393e721c7d61b5f1e268d7c17 - pristine_git_object: ebd4f214747d451dc2733d6ea838c67bb0c84797 - src/mistralai_gcp/models/sdkerror.py: - id: beed68eccaa1 - last_write_checksum: sha1:a058f2519ec22f72457e800600be469f13ff9915 - pristine_git_object: 7f53bbcd548d15f4fdd529bd3caea5249eb5e8e6 - src/mistralai_gcp/models/security.py: - id: 32f877bd1399 - last_write_checksum: sha1:7bad1150440143f9f6faefe33911edf6c2afdec1 - pristine_git_object: 3857494264c0444d330c54570483710a5ed321f0 - src/mistralai_gcp/models/systemmessage.py: - id: 13826cd6cb74 - last_write_checksum: sha1:876e84816c4e27ad77d6313777ba841ea3086cf9 - pristine_git_object: d74bdf3255bac53335eea08a6010cf1cc19380dd - src/mistralai_gcp/models/systemmessagecontentchunks.py: - id: 8233735d37db - last_write_checksum: sha1:38fedfdb83824054a1734bcc7d39e7e040bf4792 - pristine_git_object: e0b5bbc30828cbf572e603efc86ee2695102ea31 - src/mistralai_gcp/models/textchunk.py: - id: a330626b2006 - last_write_checksum: sha1:b801cf9b1913a70841c8fbdc9d433f0380ea82d8 - pristine_git_object: c4a8cf28cd2281cfda40cefa70ce1bd64d3e750d - src/mistralai_gcp/models/thinkchunk.py: - id: c38f6a213cc1 - last_write_checksum: sha1:a072f3bf01c2dc90ef6cc1b188b2e00e15923e07 - pristine_git_object: b88c0cb54c6926b3c896b3c192c5f3c51c676a51 - src/mistralai_gcp/models/tool.py: - id: 86b94d6a3bcb - last_write_checksum: sha1:14a081eb8639d834a7c4f209a79e7d1270202205 - pristine_git_object: 800de633962a0ccddab52596eae542318bb491b0 - src/mistralai_gcp/models/toolcall.py: - id: 3047e78c2ac3 - last_write_checksum: sha1:d219f8d7de19f501b799caf0e232bdce95e2c891 - pristine_git_object: 23ef157aa1d24498805a489a8cebf3c0e257d919 - src/mistralai_gcp/models/toolchoice.py: - id: 1f3d5233426e - last_write_checksum: sha1:936b1ac7b44bc1bf357e6a66cc42ed0127ad015e - pristine_git_object: 4a1483305f606afcc704e8d51ae363468354849e - src/mistralai_gcp/models/toolchoiceenum.py: - id: b4431b9cf3fd + src/mistralai/gcp/client/models/responsevalidationerror.py: + id: b90c1c09ac00 + last_write_checksum: sha1:8251d902bf13c636e4fcf25b1a65436dbf8f56a0 + pristine_git_object: e7e010177cd00eb395124b517d0c0f7e5f1f9018 + src/mistralai/gcp/client/models/sdkerror.py: + id: a7cf4fa8974b + last_write_checksum: sha1:6a1c20e187cf03d3b59749ae5d314dd3eabe36b8 + pristine_git_object: 5bd5b6dcb96dc85459e7cf1267acd2a12c52bc98 + src/mistralai/gcp/client/models/security.py: + id: 7e13bda8273b + last_write_checksum: sha1:7086e929823d4eefe80cc279b605adfc8bbb08aa + pristine_git_object: 10a469b54d5e03873fb7d7d98627f2376c93d484 + src/mistralai/gcp/client/models/systemmessage.py: + id: 6537664d2d1b + last_write_checksum: sha1:e7f8dc73154c6985fcdbb77259df9bbc4745f976 + pristine_git_object: a7d695a7791eb5e97cd8f74e81c475c78e4b1a67 + src/mistralai/gcp/client/models/systemmessagecontentchunks.py: + id: e120a6469c89 + last_write_checksum: sha1:55529f2f29ba3087fbf117dbbe64e1dda92b2958 + pristine_git_object: 225f38b712f5f3c7abfd526cc8c0386687814f36 + src/mistralai/gcp/client/models/textchunk.py: + id: a134f120d4dc + last_write_checksum: sha1:9f46381e01f235560017ea80fbc85210eb625a99 + pristine_git_object: 77576c9fd87f0861bf6a3496aeae7e8bb8dc986a + src/mistralai/gcp/client/models/thinkchunk.py: + id: 59a1d1ef2020 + last_write_checksum: sha1:8cbcefd333957e4d725bcf379b9e1d3f995ac6a0 + pristine_git_object: 2409c6dd4ec87f3616286eed52c9ac87567a178c + src/mistralai/gcp/client/models/tool.py: + id: 4b27d45e56ad + last_write_checksum: sha1:6d139575b740ea1f9f68a73b7bc2c95c30a10345 + pristine_git_object: d09c68542f2cb1f3bae0ffc7a7b163ad08a8e973 + src/mistralai/gcp/client/models/toolcall.py: + id: e6c25869a579 + last_write_checksum: sha1:5acf0eca8b1f4c459c6d8cadbbbd90605201ddc0 + pristine_git_object: a1edf3370426957980ff212367d56909ea8fa548 + src/mistralai/gcp/client/models/toolchoice.py: + id: cb13a9f64c92 + last_write_checksum: sha1:3ad6b48b24b39609e86229193ad18d84b1b3c818 + pristine_git_object: de3828dac8bc23e32b9f9434adccc770b5ce1212 + src/mistralai/gcp/client/models/toolchoiceenum.py: + id: d62e9c92d93c last_write_checksum: sha1:3dbba9a58c5569aafe115f3f7713a52b01ad8620 pristine_git_object: 01f6f677b379f9e3c99db9d1ad248cb0033a2804 - src/mistralai_gcp/models/toolmessage.py: - id: e21a2326eb31 - last_write_checksum: sha1:c332f72e272fff7970f52e2b15223a2898ce9b15 - pristine_git_object: d6aa2621b83bde261fab7bd15f58273861f88738 - src/mistralai_gcp/models/tooltypes.py: - id: b4c1716d51b3 - last_write_checksum: sha1:0f8fe0c437736eb584cce298a5e72c4e25f7c42b - pristine_git_object: 8b812ae0cfee81a1cd8ab0180e65f57d19a0dcbd - src/mistralai_gcp/models/usageinfo.py: - id: 574d1999c265 - last_write_checksum: sha1:a0a88fe5b3cae9317781b99cb3cc1916a9ba17cc - pristine_git_object: 59f36158761c3a86900256a6ed73845c455417c7 - src/mistralai_gcp/models/usermessage.py: - id: cf3691ffafa6 - last_write_checksum: sha1:d0ed86a67403d65ed6ac7a31aa5f73e19ecfa670 - pristine_git_object: 0168b45235bc891888c095565af832535dd26139 - src/mistralai_gcp/models/validationerror.py: - id: f1a6468621bd - last_write_checksum: sha1:a4cc5969f12e00be3506edc90ec21a01d5415eff - pristine_git_object: 033d4b63d1c321ae2c49e8684b34817adddca4c2 - src/mistralai_gcp/py.typed: - id: 7f25f97fed44 + src/mistralai/gcp/client/models/toolmessage.py: + id: b3774786c2e9 + last_write_checksum: sha1:4932bb256b1654e84dfce2f7af9f637bb560f0d5 + pristine_git_object: 27a6ca277db0a9e613290a17241d7de77b293e3e + src/mistralai/gcp/client/models/tooltypes.py: + id: 5926c64f5229 + last_write_checksum: sha1:ffd576511eed9f823c3d67df9fc5574d8d53c54b + pristine_git_object: fd1aa13d7b8c5d9bdb0922e04b8bd653ff843f60 + src/mistralai/gcp/client/models/usageinfo.py: + id: 3aab1af66cff + last_write_checksum: sha1:47c6311bc1db47849a72c8e1bcc64dac9cec637e + pristine_git_object: 9b7207b10ea9d46d8216c104c45be1a52fb093d9 + src/mistralai/gcp/client/models/usermessage.py: + id: 9cfa7260463e + last_write_checksum: sha1:580acf868a3d180eef34b2af9c2d20f78e4fb693 + pristine_git_object: c083e16d4aa536beec9f9e1151ebbe8c1797798c + src/mistralai/gcp/client/models/validationerror.py: + id: 6b4f4910ea9c + last_write_checksum: sha1:2792fd656f55519902f37670fb9fb3b43b4aa016 + pristine_git_object: 2d330e9acb579cc4928fa27fdd72288ce8832b8b + src/mistralai/gcp/client/py.typed: + id: 98b8ab80ab0d last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 - src/mistralai_gcp/sdkconfiguration.py: - id: 84fd7d3e219a - last_write_checksum: sha1:df51450c87f807c849e2aefb0a154aa4426fd8e3 - pristine_git_object: cf85c47e5e33956a64ddea53d85cdb7cc4bb687e - src/mistralai_gcp/types/__init__.py: - id: 15a92fdbd0a1 + src/mistralai/gcp/client/sdk.py: + id: a42547ea191a + last_write_checksum: sha1:8b94922e1ebf5af349bc7e0ff83250514bbfbfad + pristine_git_object: 63a766a48f35345038c4649fe185191afade5eaa + src/mistralai/gcp/client/sdkconfiguration.py: + id: 57be0f79ea1e + last_write_checksum: sha1:0c5905e7c6092f57c15ee4318a85c0985bcc1ccf + pristine_git_object: d56a634f688f6697ba84962381084dc2d0836ac9 + src/mistralai/gcp/client/types/__init__.py: + id: f7ef15ac2ba1 last_write_checksum: sha1:140ebdd01a46f92ffc710c52c958c4eba3cf68ed pristine_git_object: fc76fe0c5505e29859b5d2bb707d48fd27661b8c - src/mistralai_gcp/types/basemodel.py: - id: 0dd6dc277359 + src/mistralai/gcp/client/types/basemodel.py: + id: 24babf758c19 last_write_checksum: sha1:10d84aedeb9d35edfdadf2c3020caa1d24d8b584 pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee - src/mistralai_gcp/utils/__init__.py: - id: bb44726e5fa4 + src/mistralai/gcp/client/utils/__init__.py: + id: a30c8ff6dcff last_write_checksum: sha1:887f56a717845fab7445cc368d2a17d850c3565a pristine_git_object: 05f26ade57efb8c54a774fbcb939fb1a7dc655ce - src/mistralai_gcp/utils/annotations.py: - id: aeecca0c40a3 + src/mistralai/gcp/client/utils/annotations.py: + id: 9b2cd4ffc6e9 last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc pristine_git_object: 12e0aa4f1151bb52474cc02e88397329b90703f6 - src/mistralai_gcp/utils/datetimes.py: - id: e3e3bb6cb264 + src/mistralai/gcp/client/utils/datetimes.py: + id: dd1f0f91ea9d last_write_checksum: sha1:c721e4123000e7dc61ec52b28a739439d9e17341 pristine_git_object: a6c52cd61bbe2d459046c940ce5e8c469f2f0664 - src/mistralai_gcp/utils/enums.py: - id: 9f020fc8d361 + src/mistralai/gcp/client/utils/enums.py: + id: 2341407d5443 last_write_checksum: sha1:bc8c3c1285ae09ba8a094ee5c3d9c7f41fa1284d pristine_git_object: 3324e1bc2668c54c4d5f5a1a845675319757a828 - src/mistralai_gcp/utils/eventstreaming.py: - id: d570df9074cf + src/mistralai/gcp/client/utils/eventstreaming.py: + id: bb66f0c3e0dc last_write_checksum: sha1:bababae5d54b7efc360db701daa49e18a92c2f3b pristine_git_object: 0969899bfc491e5e408d05643525f347ea95e4fc - src/mistralai_gcp/utils/forms.py: - id: fe642748c385 + src/mistralai/gcp/client/utils/forms.py: + id: ebf34781d6bd last_write_checksum: sha1:15fa7e9ab1611e062a9984cf06cb20969713d295 pristine_git_object: f961e76beaf0a8b1fe0dda44754a74eebd3608e7 - src/mistralai_gcp/utils/headers.py: - id: 0cb933d098ed + src/mistralai/gcp/client/utils/headers.py: + id: 4c369582903e last_write_checksum: sha1:7c6df233ee006332b566a8afa9ce9a245941d935 pristine_git_object: 37864cbbbc40d1a47112bbfdd3ba79568fc8818a - src/mistralai_gcp/utils/logger.py: - id: 2992f9bda9c7 + src/mistralai/gcp/client/utils/logger.py: + id: 082d86b60820 last_write_checksum: sha1:f3fdb154a3f09b8cc43d74c7e9c02f899f8086e4 pristine_git_object: b661aff65d38b77d035149699aea09b2785d2fc6 - src/mistralai_gcp/utils/metadata.py: - id: af274ae68c93 + src/mistralai/gcp/client/utils/metadata.py: + id: ff0e832b8b9c last_write_checksum: sha1:c6a560bd0c63ab158582f34dadb69433ea73b3d4 pristine_git_object: 173b3e5ce658675c2f504222a56b3daaaa68107d - src/mistralai_gcp/utils/queryparams.py: - id: b20aa8da5982 + src/mistralai/gcp/client/utils/queryparams.py: + id: 133b8408e73e last_write_checksum: sha1:b94c3f314fd3da0d1d215afc2731f48748e2aa59 pristine_git_object: c04e0db82b68eca041f2cb2614d748fbac80fd41 - src/mistralai_gcp/utils/requestbodies.py: - id: 1a2ddaa8f5a2 + src/mistralai/gcp/client/utils/requestbodies.py: + id: 1be13a660954 last_write_checksum: sha1:41e2d2d2d3ecc394c8122ca4d4b85e1c3e03f054 pristine_git_object: 1de32b6d26f46590232f398fdba6ce0072f1659c - src/mistralai_gcp/utils/retries.py: - id: 8caeba1fe4ab + src/mistralai/gcp/client/utils/retries.py: + id: 542ebd75b79b last_write_checksum: sha1:5b97ac4f59357d70c2529975d50364c88bcad607 pristine_git_object: 88a91b10cd2076b4a2c6cff2ac6bfaa5e3c5ad13 - src/mistralai_gcp/utils/security.py: - id: fa4f52aaad5d + src/mistralai/gcp/client/utils/security.py: + id: 5273152365f4 last_write_checksum: sha1:a17130ace2c0db6394f38dd941ad2b700cc755c8 pristine_git_object: 295a3f40031dbb40073ad227fd4a355660f97ab2 - src/mistralai_gcp/utils/serializers.py: - id: 920ccb5c87f2 + src/mistralai/gcp/client/utils/serializers.py: + id: a7836e553d41 last_write_checksum: sha1:ce1d8d7f500a9ccba0aeca5057cee9c271f4dfd7 pristine_git_object: 14321eb479de81d0d9580ec8291e0ff91bf29e57 - src/mistralai_gcp/utils/unmarshal_json_response.py: - id: 65d5fa644cf8 - last_write_checksum: sha1:877dd4bb58700039a481fdf7d7216d2d9a0b3e92 - pristine_git_object: c168a293f7018fc3b83cac0d8f723475e5f05631 - src/mistralai_gcp/utils/url.py: - id: 116eb5a78ca7 + src/mistralai/gcp/client/utils/unmarshal_json_response.py: + id: d972d22cf934 + last_write_checksum: sha1:a68b9e491188e6c1956a749530eac3c7dc8004e7 + pristine_git_object: 83e8275e59adf51fb01a0579ae26627ee29fee49 + src/mistralai/gcp/client/utils/url.py: + id: 0d311bbcb8f8 last_write_checksum: sha1:6479961baa90432ca25626f8e40a7bbc32e73b41 pristine_git_object: c78ccbae426ce6d385709d97ce0b1c2813ea2418 - src/mistralai_gcp/utils/values.py: - id: 9cc9ee47c951 + src/mistralai/gcp/client/utils/values.py: + id: 328207e9ae81 last_write_checksum: sha1:acaa178a7c41ddd000f58cc691e4632d925b2553 pristine_git_object: dae01a44384ac3bc13ae07453a053bf6c898ebe3 examples: diff --git a/packages/mistralai_gcp/.speakeasy/gen.yaml b/packages/mistralai_gcp/.speakeasy/gen.yaml index 2aacaa62..fd8ed632 100644 --- a/packages/mistralai_gcp/.speakeasy/gen.yaml +++ b/packages/mistralai_gcp/.speakeasy/gen.yaml @@ -8,11 +8,13 @@ generation: useClassNamesForArrayFields: true fixes: nameResolutionDec2023: true - nameResolutionFeb2025: false + nameResolutionFeb2025: true parameterOrderingFeb2024: true requestResponseComponentNamesFeb2024: true - securityFeb2025: false - sharedErrorComponentsApr2025: false + securityFeb2025: true + sharedErrorComponentsApr2025: true + methodSignaturesApr2024: true + sharedNestedComponentsJan2026: true auth: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false @@ -26,14 +28,11 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 1.8.0 + version: 2.0.0a4 additionalDependencies: dev: pytest: ^8.2.2 pytest-asyncio: ^0.23.7 - main: - google-auth: ^2.31.0 - requests: ^2.32.3 allowedRedefinedBuiltins: - id - object @@ -48,10 +47,13 @@ python: enableCustomCodeRegions: false enumFormat: union fixFlags: - responseRequiredSep2024: false + responseRequiredSep2024: true + flatAdditionalProperties: true flattenGlobalSecurity: true flattenRequests: true flatteningOrder: parameters-first + forwardCompatibleEnumsByDefault: true + forwardCompatibleUnionsByDefault: tagged-only imports: option: openapi paths: @@ -65,12 +67,12 @@ python: license: "" maxMethodParams: 15 methodArguments: infer-optional-args - moduleName: "" + moduleName: mistralai.gcp.client multipartArrayFormat: legacy outputModelSuffix: output packageManager: uv packageName: mistralai-gcp - preApplyUnionDiscriminators: false + preApplyUnionDiscriminators: true pytestFilterWarnings: [] pytestTimeout: 0 responseFormat: flat diff --git a/packages/mistralai_gcp/README.md b/packages/mistralai_gcp/README.md index a4233244..2c6e3584 100644 --- a/packages/mistralai_gcp/README.md +++ b/packages/mistralai_gcp/README.md @@ -28,7 +28,7 @@ This example shows how to create chat completions. ```python # Synchronous Example -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os ) @@ -51,7 +51,7 @@ The same SDK client can also be used to make asychronous requests by importing a ```python # Asynchronous Example import asyncio -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os async def main(): @@ -96,7 +96,7 @@ terminate when the server no longer has any events to send and closes the underlying connection. ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() @@ -127,8 +127,8 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call: ```python -from mistralai_gcp import MistralGCP -from mistralgcp.utils import BackoffStrategy, RetryConfig +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client.utils import BackoffStrategy, RetryConfig import os s = MistralGCP() @@ -158,8 +158,8 @@ if res is not None: If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK: ```python -from mistralai_gcp import MistralGCP -from mistralgcp.utils import BackoffStrategy, RetryConfig +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client.utils import BackoffStrategy, RetryConfig import os s = MistralGCP( @@ -198,7 +198,8 @@ Handling errors in this SDK should largely match your expectations. All operati ### Example ```python -from mistralai_gcp import MistralGCP, models +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client import models import os s = MistralGCP() @@ -243,7 +244,7 @@ You can override the default server globally by passing a server name to the `se #### Example ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP(server="prod") @@ -271,7 +272,7 @@ if res is not None: The default server can also be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example: ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP( @@ -306,7 +307,7 @@ This allows you to wrap the client with your own custom logic, such as adding cu For example, you could specify a header for every request that this sdk makes as follows: ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import httpx http_client = httpx.Client(headers={"x-custom-header": "someValue"}) @@ -315,8 +316,8 @@ s = MistralGCP(client=http_client) or you could wrap the client with your own custom logic: ```python -from mistralai_gcp import MistralGCP -from mistralai_gcp.httpclient import AsyncHttpClient +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client.httpclient import AsyncHttpClient import httpx class CustomClient(AsyncHttpClient): @@ -391,7 +392,7 @@ This SDK supports the following security scheme globally: To authenticate with the API the `api_key` parameter must be set when initializing the SDK client instance. For example: ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() diff --git a/packages/mistralai_gcp/USAGE.md b/packages/mistralai_gcp/USAGE.md index 30fa08aa..732d92e3 100644 --- a/packages/mistralai_gcp/USAGE.md +++ b/packages/mistralai_gcp/USAGE.md @@ -5,7 +5,7 @@ This example shows how to create chat completions. ```python # Synchronous Example -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() @@ -29,7 +29,7 @@ The same SDK client can also be used to make asychronous requests by importing a ```python # Asynchronous Example import asyncio -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os async def main(): diff --git a/packages/mistralai_gcp/docs/models/assistantmessage.md b/packages/mistralai_gcp/docs/models/assistantmessage.md index 3d0bd90b..1ca5ac82 100644 --- a/packages/mistralai_gcp/docs/models/assistantmessage.md +++ b/packages/mistralai_gcp/docs/models/assistantmessage.md @@ -8,4 +8,4 @@ | `content` | [OptionalNullable[models.AssistantMessageContent]](../models/assistantmessagecontent.md) | :heavy_minus_sign: | N/A | | `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | | `prefix` | *Optional[bool]* | :heavy_minus_sign: | Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message. | -| `role` | [Optional[models.AssistantMessageRole]](../models/assistantmessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | [Optional[models.RoleEnum]](../models/roleenum.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/chatcompletionrequest.md b/packages/mistralai_gcp/docs/models/chatcompletionrequest.md index 6886f9dc..61a25d86 100644 --- a/packages/mistralai_gcp/docs/models/chatcompletionrequest.md +++ b/packages/mistralai_gcp/docs/models/chatcompletionrequest.md @@ -13,7 +13,7 @@ | `stop` | [Optional[models.ChatCompletionRequestStop]](../models/chatcompletionrequeststop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | | `random_seed` | *OptionalNullable[int]* | :heavy_minus_sign: | The seed to use for random sampling. If set, different calls will generate deterministic results. | | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | -| `messages` | List[[models.ChatCompletionRequestMessages](../models/chatcompletionrequestmessages.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | +| `messages` | List[[models.ChatCompletionRequestMessage](../models/chatcompletionrequestmessage.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | | `response_format` | [Optional[models.ResponseFormat]](../models/responseformat.md) | :heavy_minus_sign: | Specify the format that the model must output. By default it will use `{ "type": "text" }`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ "type": "json_schema" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide. | {
"type": "text"
} | | `tools` | List[[models.Tool](../models/tool.md)] | :heavy_minus_sign: | A list of tools the model may call. Use this to provide a list of functions the model may generate JSON inputs for. | | | `tool_choice` | [Optional[models.ChatCompletionRequestToolChoice]](../models/chatcompletionrequesttoolchoice.md) | :heavy_minus_sign: | Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `any` or `required` means the model must call one or more tools. Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. | | diff --git a/packages/mistralai_gcp/docs/models/messages.md b/packages/mistralai_gcp/docs/models/chatcompletionrequestmessage.md similarity index 92% rename from packages/mistralai_gcp/docs/models/messages.md rename to packages/mistralai_gcp/docs/models/chatcompletionrequestmessage.md index 1d394500..91e9e062 100644 --- a/packages/mistralai_gcp/docs/models/messages.md +++ b/packages/mistralai_gcp/docs/models/chatcompletionrequestmessage.md @@ -1,4 +1,4 @@ -# Messages +# ChatCompletionRequestMessage ## Supported Types diff --git a/packages/mistralai_gcp/docs/models/chatcompletionstreamrequest.md b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequest.md index ff1940dd..3e790e7d 100644 --- a/packages/mistralai_gcp/docs/models/chatcompletionstreamrequest.md +++ b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequest.md @@ -10,10 +10,10 @@ | `top_p` | *Optional[float]* | :heavy_minus_sign: | Nucleus sampling, where the model considers the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or `temperature` but not both. | | | `max_tokens` | *OptionalNullable[int]* | :heavy_minus_sign: | The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length. | | | `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | | -| `stop` | [Optional[models.Stop]](../models/stop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | +| `stop` | [Optional[models.ChatCompletionStreamRequestStop]](../models/chatcompletionstreamrequeststop.md) | :heavy_minus_sign: | Stop generation if this token is detected. Or if one of these tokens is detected when providing an array | | | `random_seed` | *OptionalNullable[int]* | :heavy_minus_sign: | The seed to use for random sampling. If set, different calls will generate deterministic results. | | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | -| `messages` | List[[models.Messages](../models/messages.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | +| `messages` | List[[models.ChatCompletionStreamRequestMessage](../models/chatcompletionstreamrequestmessage.md)] | :heavy_check_mark: | The prompt(s) to generate completions for, encoded as a list of dict with role and content. | [
{
"role": "user",
"content": "Who is the best French painter? Answer in one short sentence."
}
] | | `response_format` | [Optional[models.ResponseFormat]](../models/responseformat.md) | :heavy_minus_sign: | Specify the format that the model must output. By default it will use `{ "type": "text" }`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ "type": "json_schema" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide. | {
"type": "text"
} | | `tools` | List[[models.Tool](../models/tool.md)] | :heavy_minus_sign: | A list of tools the model may call. Use this to provide a list of functions the model may generate JSON inputs for. | | | `tool_choice` | [Optional[models.ChatCompletionStreamRequestToolChoice]](../models/chatcompletionstreamrequesttoolchoice.md) | :heavy_minus_sign: | Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `any` or `required` means the model must call one or more tools. Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. | | diff --git a/packages/mistralai_azure/docs/models/chatcompletionrequestmessages.md b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequestmessage.md similarity index 91% rename from packages/mistralai_azure/docs/models/chatcompletionrequestmessages.md rename to packages/mistralai_gcp/docs/models/chatcompletionstreamrequestmessage.md index bc7708a6..2e4e93ac 100644 --- a/packages/mistralai_azure/docs/models/chatcompletionrequestmessages.md +++ b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequestmessage.md @@ -1,4 +1,4 @@ -# ChatCompletionRequestMessages +# ChatCompletionStreamRequestMessage ## Supported Types diff --git a/packages/mistralai_azure/docs/models/stop.md b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequeststop.md similarity index 88% rename from packages/mistralai_azure/docs/models/stop.md rename to packages/mistralai_gcp/docs/models/chatcompletionstreamrequeststop.md index ba40ca83..a48460a9 100644 --- a/packages/mistralai_azure/docs/models/stop.md +++ b/packages/mistralai_gcp/docs/models/chatcompletionstreamrequeststop.md @@ -1,4 +1,4 @@ -# Stop +# ChatCompletionStreamRequestStop Stop generation if this token is detected. Or if one of these tokens is detected when providing an array diff --git a/packages/mistralai_gcp/docs/models/completionresponsestreamchoice.md b/packages/mistralai_gcp/docs/models/completionresponsestreamchoice.md index c807dacd..1532c25b 100644 --- a/packages/mistralai_gcp/docs/models/completionresponsestreamchoice.md +++ b/packages/mistralai_gcp/docs/models/completionresponsestreamchoice.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `index` | *int* | :heavy_check_mark: | N/A | -| `delta` | [models.DeltaMessage](../models/deltamessage.md) | :heavy_check_mark: | N/A | -| `finish_reason` | [Nullable[models.FinishReason]](../models/finishreason.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `index` | *int* | :heavy_check_mark: | N/A | +| `delta` | [models.DeltaMessage](../models/deltamessage.md) | :heavy_check_mark: | N/A | +| `finish_reason` | [Nullable[models.CompletionResponseStreamChoiceFinishReason]](../models/completionresponsestreamchoicefinishreason.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/finishreason.md b/packages/mistralai_gcp/docs/models/completionresponsestreamchoicefinishreason.md similarity index 81% rename from packages/mistralai_gcp/docs/models/finishreason.md rename to packages/mistralai_gcp/docs/models/completionresponsestreamchoicefinishreason.md index 45a5aedb..0fece473 100644 --- a/packages/mistralai_gcp/docs/models/finishreason.md +++ b/packages/mistralai_gcp/docs/models/completionresponsestreamchoicefinishreason.md @@ -1,4 +1,4 @@ -# FinishReason +# CompletionResponseStreamChoiceFinishReason ## Values diff --git a/packages/mistralai_gcp/docs/models/deltamessage.md b/packages/mistralai_gcp/docs/models/deltamessage.md index 61deabbf..e0ee575f 100644 --- a/packages/mistralai_gcp/docs/models/deltamessage.md +++ b/packages/mistralai_gcp/docs/models/deltamessage.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `role` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `content` | [OptionalNullable[models.Content]](../models/content.md) | :heavy_minus_sign: | N/A | -| `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `role` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `content` | [OptionalNullable[models.DeltaMessageContent]](../models/deltamessagecontent.md) | :heavy_minus_sign: | N/A | +| `tool_calls` | List[[models.ToolCall](../models/toolcall.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/content.md b/packages/mistralai_gcp/docs/models/deltamessagecontent.md similarity index 89% rename from packages/mistralai_gcp/docs/models/content.md rename to packages/mistralai_gcp/docs/models/deltamessagecontent.md index a833dc2c..8142772d 100644 --- a/packages/mistralai_gcp/docs/models/content.md +++ b/packages/mistralai_gcp/docs/models/deltamessagecontent.md @@ -1,4 +1,4 @@ -# Content +# DeltaMessageContent ## Supported Types diff --git a/packages/mistralai_gcp/docs/models/imageurlchunk.md b/packages/mistralai_gcp/docs/models/imageurlchunk.md index f1b926ef..68515bc3 100644 --- a/packages/mistralai_gcp/docs/models/imageurlchunk.md +++ b/packages/mistralai_gcp/docs/models/imageurlchunk.md @@ -5,7 +5,7 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `image_url` | [models.ImageURLChunkImageURL](../models/imageurlchunkimageurl.md) | :heavy_check_mark: | N/A | -| `type` | [Optional[models.ImageURLChunkType]](../models/imageurlchunktype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `image_url` | [models.ImageURLUnion](../models/imageurlunion.md) | :heavy_check_mark: | N/A | +| `type` | *Literal["image_url"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/imageurlchunktype.md b/packages/mistralai_gcp/docs/models/imageurlchunktype.md deleted file mode 100644 index 2064a0b4..00000000 --- a/packages/mistralai_gcp/docs/models/imageurlchunktype.md +++ /dev/null @@ -1,8 +0,0 @@ -# ImageURLChunkType - - -## Values - -| Name | Value | -| ----------- | ----------- | -| `IMAGE_URL` | image_url | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/imageurlchunkimageurl.md b/packages/mistralai_gcp/docs/models/imageurlunion.md similarity index 86% rename from packages/mistralai_azure/docs/models/imageurlchunkimageurl.md rename to packages/mistralai_gcp/docs/models/imageurlunion.md index 76738908..db97130f 100644 --- a/packages/mistralai_azure/docs/models/imageurlchunkimageurl.md +++ b/packages/mistralai_gcp/docs/models/imageurlunion.md @@ -1,4 +1,4 @@ -# ImageURLChunkImageURL +# ImageURLUnion ## Supported Types diff --git a/packages/mistralai_gcp/docs/models/referencechunk.md b/packages/mistralai_gcp/docs/models/referencechunk.md index a132ca2f..96e4df7f 100644 --- a/packages/mistralai_gcp/docs/models/referencechunk.md +++ b/packages/mistralai_gcp/docs/models/referencechunk.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `reference_ids` | List[*int*] | :heavy_check_mark: | N/A | -| `type` | [Optional[models.ReferenceChunkType]](../models/referencechunktype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `reference_ids` | List[*int*] | :heavy_check_mark: | N/A | +| `type` | [Optional[models.TypeEnum]](../models/typeenum.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/role.md b/packages/mistralai_gcp/docs/models/role.md deleted file mode 100644 index affca78d..00000000 --- a/packages/mistralai_gcp/docs/models/role.md +++ /dev/null @@ -1,8 +0,0 @@ -# Role - - -## Values - -| Name | Value | -| -------- | -------- | -| `SYSTEM` | system | \ No newline at end of file diff --git a/packages/mistralai_azure/docs/models/assistantmessagerole.md b/packages/mistralai_gcp/docs/models/roleenum.md similarity index 81% rename from packages/mistralai_azure/docs/models/assistantmessagerole.md rename to packages/mistralai_gcp/docs/models/roleenum.md index 658229e7..4213c18d 100644 --- a/packages/mistralai_azure/docs/models/assistantmessagerole.md +++ b/packages/mistralai_gcp/docs/models/roleenum.md @@ -1,4 +1,4 @@ -# AssistantMessageRole +# RoleEnum ## Values diff --git a/packages/mistralai_gcp/docs/models/systemmessage.md b/packages/mistralai_gcp/docs/models/systemmessage.md index 0dba71c0..dfb0cd0b 100644 --- a/packages/mistralai_gcp/docs/models/systemmessage.md +++ b/packages/mistralai_gcp/docs/models/systemmessage.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | `content` | [models.SystemMessageContent](../models/systemmessagecontent.md) | :heavy_check_mark: | N/A | -| `role` | [Optional[models.Role]](../models/role.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["system"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/textchunk.md b/packages/mistralai_gcp/docs/models/textchunk.md index 6daab3c3..8521a2c1 100644 --- a/packages/mistralai_gcp/docs/models/textchunk.md +++ b/packages/mistralai_gcp/docs/models/textchunk.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `text` | *str* | :heavy_check_mark: | N/A | -| `type` | [Optional[models.Type]](../models/type.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `text` | *str* | :heavy_check_mark: | N/A | +| `type` | *Literal["text"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/thinkchunk.md b/packages/mistralai_gcp/docs/models/thinkchunk.md index 66b2e0cd..07f6f7b1 100644 --- a/packages/mistralai_gcp/docs/models/thinkchunk.md +++ b/packages/mistralai_gcp/docs/models/thinkchunk.md @@ -7,4 +7,4 @@ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | `thinking` | List[[models.Thinking](../models/thinking.md)] | :heavy_check_mark: | N/A | | `closed` | *Optional[bool]* | :heavy_minus_sign: | Whether the thinking chunk is closed or not. Currently only used for prefixing. | -| `type` | [Optional[models.ThinkChunkType]](../models/thinkchunktype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `type` | *Literal["thinking"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/thinkchunktype.md b/packages/mistralai_gcp/docs/models/thinkchunktype.md deleted file mode 100644 index baf6f755..00000000 --- a/packages/mistralai_gcp/docs/models/thinkchunktype.md +++ /dev/null @@ -1,8 +0,0 @@ -# ThinkChunkType - - -## Values - -| Name | Value | -| ---------- | ---------- | -| `THINKING` | thinking | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/toolmessage.md b/packages/mistralai_gcp/docs/models/toolmessage.md index a54f4933..fa00d666 100644 --- a/packages/mistralai_gcp/docs/models/toolmessage.md +++ b/packages/mistralai_gcp/docs/models/toolmessage.md @@ -8,4 +8,4 @@ | `content` | [Nullable[models.ToolMessageContent]](../models/toolmessagecontent.md) | :heavy_check_mark: | N/A | | `tool_call_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `role` | [Optional[models.ToolMessageRole]](../models/toolmessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["tool"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/toolmessagerole.md b/packages/mistralai_gcp/docs/models/toolmessagerole.md deleted file mode 100644 index c24e59c0..00000000 --- a/packages/mistralai_gcp/docs/models/toolmessagerole.md +++ /dev/null @@ -1,8 +0,0 @@ -# ToolMessageRole - - -## Values - -| Name | Value | -| ------ | ------ | -| `TOOL` | tool | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/type.md b/packages/mistralai_gcp/docs/models/type.md deleted file mode 100644 index eb0581e7..00000000 --- a/packages/mistralai_gcp/docs/models/type.md +++ /dev/null @@ -1,8 +0,0 @@ -# Type - - -## Values - -| Name | Value | -| ------ | ------ | -| `TEXT` | text | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/referencechunktype.md b/packages/mistralai_gcp/docs/models/typeenum.md similarity index 82% rename from packages/mistralai_gcp/docs/models/referencechunktype.md rename to packages/mistralai_gcp/docs/models/typeenum.md index 1e0e2fe6..35a6f34c 100644 --- a/packages/mistralai_gcp/docs/models/referencechunktype.md +++ b/packages/mistralai_gcp/docs/models/typeenum.md @@ -1,4 +1,4 @@ -# ReferenceChunkType +# TypeEnum ## Values diff --git a/packages/mistralai_gcp/docs/models/usermessage.md b/packages/mistralai_gcp/docs/models/usermessage.md index 63b01310..78ed066e 100644 --- a/packages/mistralai_gcp/docs/models/usermessage.md +++ b/packages/mistralai_gcp/docs/models/usermessage.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | | `content` | [Nullable[models.UserMessageContent]](../models/usermessagecontent.md) | :heavy_check_mark: | N/A | -| `role` | [Optional[models.UserMessageRole]](../models/usermessagerole.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `role` | *Literal["user"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/models/usermessagerole.md b/packages/mistralai_gcp/docs/models/usermessagerole.md deleted file mode 100644 index 171124e4..00000000 --- a/packages/mistralai_gcp/docs/models/usermessagerole.md +++ /dev/null @@ -1,8 +0,0 @@ -# UserMessageRole - - -## Values - -| Name | Value | -| ------ | ------ | -| `USER` | user | \ No newline at end of file diff --git a/packages/mistralai_gcp/docs/sdks/chat/README.md b/packages/mistralai_gcp/docs/sdks/chat/README.md index 6f5f1977..3fc4f708 100644 --- a/packages/mistralai_gcp/docs/sdks/chat/README.md +++ b/packages/mistralai_gcp/docs/sdks/chat/README.md @@ -17,7 +17,7 @@ Mistral AI provides the ability to stream responses back to a client in order to ### Example Usage ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() @@ -72,7 +72,7 @@ Chat Completion ### Example Usage ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() diff --git a/packages/mistralai_gcp/docs/sdks/fim/README.md b/packages/mistralai_gcp/docs/sdks/fim/README.md index b997fabf..a4c13bd6 100644 --- a/packages/mistralai_gcp/docs/sdks/fim/README.md +++ b/packages/mistralai_gcp/docs/sdks/fim/README.md @@ -17,7 +17,7 @@ Mistral AI provides the ability to stream responses back to a client in order to ### Example Usage ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() @@ -65,7 +65,7 @@ FIM completion. ### Example Usage ```python -from mistralai_gcp import MistralGCP +from mistralai.gcp.client import MistralGCP import os s = MistralGCP() diff --git a/packages/mistralai_gcp/pyproject.toml b/packages/mistralai_gcp/pyproject.toml index df3e43ae..5beec81f 100644 --- a/packages/mistralai_gcp/pyproject.toml +++ b/packages/mistralai_gcp/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mistralai-gcp" -version = "1.8.0" +version = "2.0.0a4" description = "Python Client SDK for the Mistral AI API in GCP." authors = [{ name = "Mistral" }] requires-python = ">=3.10" @@ -26,20 +26,20 @@ dev = [ ] [tool.setuptools.package-data] -"*" = ["py.typed", "src/mistralai_gcp/py.typed"] +"*" = ["py.typed", "src/mistralai/gcp/client/py.typed"] [tool.hatch.build.targets.sdist] -include = ["src/mistralai_gcp"] +include = ["src/mistralai"] [tool.hatch.build.targets.sdist.force-include] "py.typed" = "py.typed" -"src/mistralai_gcp/py.typed" = "src/mistralai_gcp/py.typed" +"src/mistralai/gcp/client/py.typed" = "src/mistralai/gcp/client/py.typed" [tool.hatch.build.targets.wheel] -include = ["src/mistralai_gcp"] +include = ["src/mistralai"] [tool.hatch.build.targets.wheel.sources] -"src/mistralai_gcp" = "mistralai_gcp" +"src" = "" [virtualenvs] in-project = true @@ -53,6 +53,8 @@ pythonpath = ["src"] [tool.mypy] disable_error_code = "misc" +explicit_package_bases = true +mypy_path = "src" [[tool.mypy.overrides]] module = "typing_inspect" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/__init__.py b/packages/mistralai_gcp/src/mistralai/gcp/client/__init__.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/__init__.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/__init__.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/__init__.py b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/__init__.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/_hooks/__init__.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/__init__.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/registration.py b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/registration.py similarity index 79% rename from packages/mistralai_gcp/src/mistralai_gcp/_hooks/registration.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/registration.py index 304edfa2..cab47787 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/registration.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/registration.py @@ -1,6 +1,6 @@ -from .custom_user_agent import CustomUserAgentHook from .types import Hooks + # This file is only ever generated once on the first generation and then is free to be modified. # Any hooks you wish to add should be registered in the init_hooks function. Feel free to define them # in this file or in separate files in the hooks folder. @@ -10,6 +10,4 @@ def init_hooks(hooks: Hooks): # pylint: disable=unused-argument """Add hooks by calling hooks.register{sdk_init/before_request/after_success/after_error}Hook with an instance of a hook that implements that specific Hook interface - Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance - """ - hooks.register_before_request_hook(CustomUserAgentHook()) + Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance""" diff --git a/packages/mistralai_azure/src/mistralai_azure/_hooks/sdkhooks.py b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/sdkhooks.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/_hooks/sdkhooks.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/sdkhooks.py index 37ff4e9f..2af4deed 100644 --- a/packages/mistralai_azure/src/mistralai_azure/_hooks/sdkhooks.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/sdkhooks.py @@ -13,7 +13,7 @@ ) from .registration import init_hooks from typing import List, Optional, Tuple -from mistralai_azure.httpclient import HttpClient +from mistralai.gcp.client.httpclient import HttpClient class SDKHooks(Hooks): diff --git a/packages/mistralai_azure/src/mistralai_azure/_hooks/types.py b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/types.py similarity index 96% rename from packages/mistralai_azure/src/mistralai_azure/_hooks/types.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/types.py index 0c22d7eb..ea95bed2 100644 --- a/packages/mistralai_azure/src/mistralai_azure/_hooks/types.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/_hooks/types.py @@ -2,8 +2,8 @@ from abc import ABC, abstractmethod import httpx -from mistralai_azure.httpclient import HttpClient -from mistralai_azure.sdkconfiguration import SDKConfiguration +from mistralai.gcp.client.httpclient import HttpClient +from mistralai.gcp.client.sdkconfiguration import SDKConfiguration from typing import Any, Callable, List, Optional, Tuple, Union diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_version.py b/packages/mistralai_gcp/src/mistralai/gcp/client/_version.py similarity index 76% rename from packages/mistralai_gcp/src/mistralai_gcp/_version.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/_version.py index a170f0ab..ba48dac1 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/_version.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "mistralai-gcp" -__version__: str = "1.8.0" +__version__: str = "2.0.0a4" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.794.1" -__user_agent__: str = "speakeasy-sdk/python 1.8.0 2.794.1 1.0.0 mistralai-gcp" +__user_agent__: str = "speakeasy-sdk/python 2.0.0a4 2.794.1 1.0.0 mistralai-gcp" try: if __package__ is not None: diff --git a/packages/mistralai_azure/src/mistralai_azure/basesdk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/basesdk.py similarity index 98% rename from packages/mistralai_azure/src/mistralai_azure/basesdk.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/basesdk.py index 89f7dc49..6f9f5fd9 100644 --- a/packages/mistralai_azure/src/mistralai_azure/basesdk.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/basesdk.py @@ -2,13 +2,17 @@ from .sdkconfiguration import SDKConfiguration import httpx -from mistralai_azure import models, utils -from mistralai_azure._hooks import ( +from mistralai.gcp.client import models, utils +from mistralai.gcp.client._hooks import ( AfterErrorContext, AfterSuccessContext, BeforeRequestContext, ) -from mistralai_azure.utils import RetryConfig, SerializedRequestBody, get_body_content +from mistralai.gcp.client.utils import ( + RetryConfig, + SerializedRequestBody, + get_body_content, +) from typing import Callable, List, Mapping, Optional, Tuple from urllib.parse import parse_qs, urlparse diff --git a/packages/mistralai_gcp/src/mistralai_gcp/chat.py b/packages/mistralai_gcp/src/mistralai/gcp/client/chat.py similarity index 96% rename from packages/mistralai_gcp/src/mistralai_gcp/chat.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/chat.py index 3dd6040f..78541248 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/chat.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/chat.py @@ -1,11 +1,11 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .basesdk import BaseSDK -from mistralai_gcp import models, utils -from mistralai_gcp._hooks import HookContext -from mistralai_gcp.types import OptionalNullable, UNSET -from mistralai_gcp.utils import eventstreaming -from mistralai_gcp.utils.unmarshal_json_response import unmarshal_json_response +from mistralai.gcp.client import models, utils +from mistralai.gcp.client._hooks import HookContext +from mistralai.gcp.client.types import OptionalNullable, UNSET +from mistralai.gcp.client.utils import eventstreaming +from mistralai.gcp.client.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, Dict, List, Mapping, Optional, Union @@ -16,12 +16,20 @@ def stream( self, *, model: str, - messages: Union[List[models.Messages], List[models.MessagesTypedDict]], + messages: Union[ + List[models.ChatCompletionStreamRequestMessage], + List[models.ChatCompletionStreamRequestMessageTypedDict], + ], temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, max_tokens: OptionalNullable[int] = UNSET, stream: Optional[bool] = True, - stop: Optional[Union[models.Stop, models.StopTypedDict]] = None, + stop: Optional[ + Union[ + models.ChatCompletionStreamRequestStop, + models.ChatCompletionStreamRequestStopTypedDict, + ] + ] = None, random_seed: OptionalNullable[int] = UNSET, metadata: OptionalNullable[Dict[str, Any]] = UNSET, response_format: Optional[ @@ -95,7 +103,9 @@ def stream( stop=stop, random_seed=random_seed, metadata=metadata, - messages=utils.get_pydantic_model(messages, List[models.Messages]), + messages=utils.get_pydantic_model( + messages, List[models.ChatCompletionStreamRequestMessage] + ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] ), @@ -183,12 +193,20 @@ async def stream_async( self, *, model: str, - messages: Union[List[models.Messages], List[models.MessagesTypedDict]], + messages: Union[ + List[models.ChatCompletionStreamRequestMessage], + List[models.ChatCompletionStreamRequestMessageTypedDict], + ], temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, max_tokens: OptionalNullable[int] = UNSET, stream: Optional[bool] = True, - stop: Optional[Union[models.Stop, models.StopTypedDict]] = None, + stop: Optional[ + Union[ + models.ChatCompletionStreamRequestStop, + models.ChatCompletionStreamRequestStopTypedDict, + ] + ] = None, random_seed: OptionalNullable[int] = UNSET, metadata: OptionalNullable[Dict[str, Any]] = UNSET, response_format: Optional[ @@ -262,7 +280,9 @@ async def stream_async( stop=stop, random_seed=random_seed, metadata=metadata, - messages=utils.get_pydantic_model(messages, List[models.Messages]), + messages=utils.get_pydantic_model( + messages, List[models.ChatCompletionStreamRequestMessage] + ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] ), @@ -351,8 +371,8 @@ def complete( *, model: str, messages: Union[ - List[models.ChatCompletionRequestMessages], - List[models.ChatCompletionRequestMessagesTypedDict], + List[models.ChatCompletionRequestMessage], + List[models.ChatCompletionRequestMessageTypedDict], ], temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, @@ -436,7 +456,7 @@ def complete( random_seed=random_seed, metadata=metadata, messages=utils.get_pydantic_model( - messages, List[models.ChatCompletionRequestMessages] + messages, List[models.ChatCompletionRequestMessage] ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] @@ -518,8 +538,8 @@ async def complete_async( *, model: str, messages: Union[ - List[models.ChatCompletionRequestMessages], - List[models.ChatCompletionRequestMessagesTypedDict], + List[models.ChatCompletionRequestMessage], + List[models.ChatCompletionRequestMessageTypedDict], ], temperature: OptionalNullable[float] = UNSET, top_p: Optional[float] = None, @@ -603,7 +623,7 @@ async def complete_async( random_seed=random_seed, metadata=metadata, messages=utils.get_pydantic_model( - messages, List[models.ChatCompletionRequestMessages] + messages, List[models.ChatCompletionRequestMessage] ), response_format=utils.get_pydantic_model( response_format, Optional[models.ResponseFormat] diff --git a/packages/mistralai_gcp/src/mistralai_gcp/fim.py b/packages/mistralai_gcp/src/mistralai/gcp/client/fim.py similarity index 98% rename from packages/mistralai_gcp/src/mistralai_gcp/fim.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/fim.py index 36d9fd60..e2acacd5 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/fim.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/fim.py @@ -1,11 +1,11 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .basesdk import BaseSDK -from mistralai_gcp import models, utils -from mistralai_gcp._hooks import HookContext -from mistralai_gcp.types import OptionalNullable, UNSET -from mistralai_gcp.utils import eventstreaming -from mistralai_gcp.utils.unmarshal_json_response import unmarshal_json_response +from mistralai.gcp.client import models, utils +from mistralai.gcp.client._hooks import HookContext +from mistralai.gcp.client.types import OptionalNullable, UNSET +from mistralai.gcp.client.utils import eventstreaming +from mistralai.gcp.client.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, Dict, Mapping, Optional, Union diff --git a/packages/mistralai_gcp/src/mistralai_gcp/httpclient.py b/packages/mistralai_gcp/src/mistralai/gcp/client/httpclient.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/httpclient.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/httpclient.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/__init__.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/__init__.py similarity index 86% rename from packages/mistralai_gcp/src/mistralai_gcp/models/__init__.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/__init__.py index fe85b133..063bc612 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/__init__.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/__init__.py @@ -11,8 +11,8 @@ AssistantMessage, AssistantMessageContent, AssistantMessageContentTypedDict, - AssistantMessageRole, AssistantMessageTypedDict, + RoleEnum, ) from .chatcompletionchoice import ( ChatCompletionChoice, @@ -21,8 +21,8 @@ ) from .chatcompletionrequest import ( ChatCompletionRequest, - ChatCompletionRequestMessages, - ChatCompletionRequestMessagesTypedDict, + ChatCompletionRequestMessage, + ChatCompletionRequestMessageTypedDict, ChatCompletionRequestStop, ChatCompletionRequestStopTypedDict, ChatCompletionRequestToolChoice, @@ -35,26 +35,26 @@ ) from .chatcompletionstreamrequest import ( ChatCompletionStreamRequest, + ChatCompletionStreamRequestMessage, + ChatCompletionStreamRequestMessageTypedDict, + ChatCompletionStreamRequestStop, + ChatCompletionStreamRequestStopTypedDict, ChatCompletionStreamRequestToolChoice, ChatCompletionStreamRequestToolChoiceTypedDict, ChatCompletionStreamRequestTypedDict, - Messages, - MessagesTypedDict, - Stop, - StopTypedDict, ) from .completionchunk import CompletionChunk, CompletionChunkTypedDict from .completionevent import CompletionEvent, CompletionEventTypedDict from .completionresponsestreamchoice import ( CompletionResponseStreamChoice, + CompletionResponseStreamChoiceFinishReason, CompletionResponseStreamChoiceTypedDict, - FinishReason, ) from .contentchunk import ContentChunk, ContentChunkTypedDict from .deltamessage import ( - Content, - ContentTypedDict, DeltaMessage, + DeltaMessageContent, + DeltaMessageContentTypedDict, DeltaMessageTypedDict, ) from .fimcompletionrequest import ( @@ -85,27 +85,21 @@ from .imageurl import ImageURL, ImageURLTypedDict from .imageurlchunk import ( ImageURLChunk, - ImageURLChunkImageURL, - ImageURLChunkImageURLTypedDict, - ImageURLChunkType, ImageURLChunkTypedDict, + ImageURLUnion, + ImageURLUnionTypedDict, ) from .jsonschema import JSONSchema, JSONSchemaTypedDict from .mistralpromptmode import MistralPromptMode from .no_response_error import NoResponseError from .prediction import Prediction, PredictionTypedDict - from .referencechunk import ( - ReferenceChunk, - ReferenceChunkType, - ReferenceChunkTypedDict, - ) + from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict, TypeEnum from .responseformat import ResponseFormat, ResponseFormatTypedDict from .responseformats import ResponseFormats from .responsevalidationerror import ResponseValidationError from .sdkerror import SDKError from .security import Security, SecurityTypedDict from .systemmessage import ( - Role, SystemMessage, SystemMessageContent, SystemMessageContentTypedDict, @@ -115,14 +109,8 @@ SystemMessageContentChunks, SystemMessageContentChunksTypedDict, ) - from .textchunk import TextChunk, TextChunkTypedDict, Type - from .thinkchunk import ( - ThinkChunk, - ThinkChunkType, - ThinkChunkTypedDict, - Thinking, - ThinkingTypedDict, - ) + from .textchunk import TextChunk, TextChunkTypedDict + from .thinkchunk import ThinkChunk, ThinkChunkTypedDict, Thinking, ThinkingTypedDict from .tool import Tool, ToolTypedDict from .toolcall import ToolCall, ToolCallTypedDict from .toolchoice import ToolChoice, ToolChoiceTypedDict @@ -131,7 +119,6 @@ ToolMessage, ToolMessageContent, ToolMessageContentTypedDict, - ToolMessageRole, ToolMessageTypedDict, ) from .tooltypes import ToolTypes @@ -140,7 +127,6 @@ UserMessage, UserMessageContent, UserMessageContentTypedDict, - UserMessageRole, UserMessageTypedDict, ) from .validationerror import ( @@ -156,14 +142,13 @@ "AssistantMessage", "AssistantMessageContent", "AssistantMessageContentTypedDict", - "AssistantMessageRole", "AssistantMessageTypedDict", "ChatCompletionChoice", "ChatCompletionChoiceFinishReason", "ChatCompletionChoiceTypedDict", "ChatCompletionRequest", - "ChatCompletionRequestMessages", - "ChatCompletionRequestMessagesTypedDict", + "ChatCompletionRequestMessage", + "ChatCompletionRequestMessageTypedDict", "ChatCompletionRequestStop", "ChatCompletionRequestStopTypedDict", "ChatCompletionRequestToolChoice", @@ -172,6 +157,10 @@ "ChatCompletionResponse", "ChatCompletionResponseTypedDict", "ChatCompletionStreamRequest", + "ChatCompletionStreamRequestMessage", + "ChatCompletionStreamRequestMessageTypedDict", + "ChatCompletionStreamRequestStop", + "ChatCompletionStreamRequestStopTypedDict", "ChatCompletionStreamRequestToolChoice", "ChatCompletionStreamRequestToolChoiceTypedDict", "ChatCompletionStreamRequestTypedDict", @@ -180,12 +169,13 @@ "CompletionEvent", "CompletionEventTypedDict", "CompletionResponseStreamChoice", + "CompletionResponseStreamChoiceFinishReason", "CompletionResponseStreamChoiceTypedDict", - "Content", "ContentChunk", "ContentChunkTypedDict", - "ContentTypedDict", "DeltaMessage", + "DeltaMessageContent", + "DeltaMessageContentTypedDict", "DeltaMessageTypedDict", "FIMCompletionRequest", "FIMCompletionRequestStop", @@ -197,7 +187,6 @@ "FIMCompletionStreamRequestStop", "FIMCompletionStreamRequestStopTypedDict", "FIMCompletionStreamRequestTypedDict", - "FinishReason", "Function", "FunctionCall", "FunctionCallTypedDict", @@ -208,35 +197,29 @@ "HTTPValidationErrorData", "ImageURL", "ImageURLChunk", - "ImageURLChunkImageURL", - "ImageURLChunkImageURLTypedDict", - "ImageURLChunkType", "ImageURLChunkTypedDict", "ImageURLTypedDict", + "ImageURLUnion", + "ImageURLUnionTypedDict", "JSONSchema", "JSONSchemaTypedDict", "Loc", "LocTypedDict", - "Messages", - "MessagesTypedDict", "MistralGcpError", "MistralPromptMode", "NoResponseError", "Prediction", "PredictionTypedDict", "ReferenceChunk", - "ReferenceChunkType", "ReferenceChunkTypedDict", "ResponseFormat", "ResponseFormatTypedDict", "ResponseFormats", "ResponseValidationError", - "Role", + "RoleEnum", "SDKError", "Security", "SecurityTypedDict", - "Stop", - "StopTypedDict", "SystemMessage", "SystemMessageContent", "SystemMessageContentChunks", @@ -246,7 +229,6 @@ "TextChunk", "TextChunkTypedDict", "ThinkChunk", - "ThinkChunkType", "ThinkChunkTypedDict", "Thinking", "ThinkingTypedDict", @@ -259,17 +241,15 @@ "ToolMessage", "ToolMessageContent", "ToolMessageContentTypedDict", - "ToolMessageRole", "ToolMessageTypedDict", "ToolTypedDict", "ToolTypes", - "Type", + "TypeEnum", "UsageInfo", "UsageInfoTypedDict", "UserMessage", "UserMessageContent", "UserMessageContentTypedDict", - "UserMessageRole", "UserMessageTypedDict", "ValidationError", "ValidationErrorTypedDict", @@ -279,14 +259,14 @@ "AssistantMessage": ".assistantmessage", "AssistantMessageContent": ".assistantmessage", "AssistantMessageContentTypedDict": ".assistantmessage", - "AssistantMessageRole": ".assistantmessage", "AssistantMessageTypedDict": ".assistantmessage", + "RoleEnum": ".assistantmessage", "ChatCompletionChoice": ".chatcompletionchoice", "ChatCompletionChoiceFinishReason": ".chatcompletionchoice", "ChatCompletionChoiceTypedDict": ".chatcompletionchoice", "ChatCompletionRequest": ".chatcompletionrequest", - "ChatCompletionRequestMessages": ".chatcompletionrequest", - "ChatCompletionRequestMessagesTypedDict": ".chatcompletionrequest", + "ChatCompletionRequestMessage": ".chatcompletionrequest", + "ChatCompletionRequestMessageTypedDict": ".chatcompletionrequest", "ChatCompletionRequestStop": ".chatcompletionrequest", "ChatCompletionRequestStopTypedDict": ".chatcompletionrequest", "ChatCompletionRequestToolChoice": ".chatcompletionrequest", @@ -295,25 +275,25 @@ "ChatCompletionResponse": ".chatcompletionresponse", "ChatCompletionResponseTypedDict": ".chatcompletionresponse", "ChatCompletionStreamRequest": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestMessage": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestMessageTypedDict": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestStop": ".chatcompletionstreamrequest", + "ChatCompletionStreamRequestStopTypedDict": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestToolChoice": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestToolChoiceTypedDict": ".chatcompletionstreamrequest", "ChatCompletionStreamRequestTypedDict": ".chatcompletionstreamrequest", - "Messages": ".chatcompletionstreamrequest", - "MessagesTypedDict": ".chatcompletionstreamrequest", - "Stop": ".chatcompletionstreamrequest", - "StopTypedDict": ".chatcompletionstreamrequest", "CompletionChunk": ".completionchunk", "CompletionChunkTypedDict": ".completionchunk", "CompletionEvent": ".completionevent", "CompletionEventTypedDict": ".completionevent", "CompletionResponseStreamChoice": ".completionresponsestreamchoice", + "CompletionResponseStreamChoiceFinishReason": ".completionresponsestreamchoice", "CompletionResponseStreamChoiceTypedDict": ".completionresponsestreamchoice", - "FinishReason": ".completionresponsestreamchoice", "ContentChunk": ".contentchunk", "ContentChunkTypedDict": ".contentchunk", - "Content": ".deltamessage", - "ContentTypedDict": ".deltamessage", "DeltaMessage": ".deltamessage", + "DeltaMessageContent": ".deltamessage", + "DeltaMessageContentTypedDict": ".deltamessage", "DeltaMessageTypedDict": ".deltamessage", "FIMCompletionRequest": ".fimcompletionrequest", "FIMCompletionRequestStop": ".fimcompletionrequest", @@ -338,10 +318,9 @@ "ImageURL": ".imageurl", "ImageURLTypedDict": ".imageurl", "ImageURLChunk": ".imageurlchunk", - "ImageURLChunkImageURL": ".imageurlchunk", - "ImageURLChunkImageURLTypedDict": ".imageurlchunk", - "ImageURLChunkType": ".imageurlchunk", "ImageURLChunkTypedDict": ".imageurlchunk", + "ImageURLUnion": ".imageurlchunk", + "ImageURLUnionTypedDict": ".imageurlchunk", "JSONSchema": ".jsonschema", "JSONSchemaTypedDict": ".jsonschema", "MistralPromptMode": ".mistralpromptmode", @@ -349,8 +328,8 @@ "Prediction": ".prediction", "PredictionTypedDict": ".prediction", "ReferenceChunk": ".referencechunk", - "ReferenceChunkType": ".referencechunk", "ReferenceChunkTypedDict": ".referencechunk", + "TypeEnum": ".referencechunk", "ResponseFormat": ".responseformat", "ResponseFormatTypedDict": ".responseformat", "ResponseFormats": ".responseformats", @@ -358,7 +337,6 @@ "SDKError": ".sdkerror", "Security": ".security", "SecurityTypedDict": ".security", - "Role": ".systemmessage", "SystemMessage": ".systemmessage", "SystemMessageContent": ".systemmessage", "SystemMessageContentTypedDict": ".systemmessage", @@ -367,9 +345,7 @@ "SystemMessageContentChunksTypedDict": ".systemmessagecontentchunks", "TextChunk": ".textchunk", "TextChunkTypedDict": ".textchunk", - "Type": ".textchunk", "ThinkChunk": ".thinkchunk", - "ThinkChunkType": ".thinkchunk", "ThinkChunkTypedDict": ".thinkchunk", "Thinking": ".thinkchunk", "ThinkingTypedDict": ".thinkchunk", @@ -383,7 +359,6 @@ "ToolMessage": ".toolmessage", "ToolMessageContent": ".toolmessage", "ToolMessageContentTypedDict": ".toolmessage", - "ToolMessageRole": ".toolmessage", "ToolMessageTypedDict": ".toolmessage", "ToolTypes": ".tooltypes", "UsageInfo": ".usageinfo", @@ -391,7 +366,6 @@ "UserMessage": ".usermessage", "UserMessageContent": ".usermessage", "UserMessageContentTypedDict": ".usermessage", - "UserMessageRole": ".usermessage", "UserMessageTypedDict": ".usermessage", "Loc": ".validationerror", "LocTypedDict": ".validationerror", diff --git a/packages/mistralai_azure/src/mistralai_azure/models/assistantmessage.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/assistantmessage.py similarity index 93% rename from packages/mistralai_azure/src/mistralai_azure/models/assistantmessage.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/assistantmessage.py index 7790eb10..a85535c6 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/assistantmessage.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/assistantmessage.py @@ -3,7 +3,7 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict from .toolcall import ToolCall, ToolCallTypedDict -from mistralai_azure.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, @@ -25,7 +25,7 @@ ) -AssistantMessageRole = Literal["assistant",] +RoleEnum = Literal["assistant",] class AssistantMessageTypedDict(TypedDict): @@ -33,7 +33,7 @@ class AssistantMessageTypedDict(TypedDict): tool_calls: NotRequired[Nullable[List[ToolCallTypedDict]]] prefix: NotRequired[bool] r"""Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message.""" - role: NotRequired[AssistantMessageRole] + role: NotRequired[RoleEnum] class AssistantMessage(BaseModel): @@ -44,7 +44,7 @@ class AssistantMessage(BaseModel): prefix: Optional[bool] = False r"""Set this to `true` when adding an assistant message as prefix to condition the model response. The role of the prefix message is to force the model to start its answer by the content of the message.""" - role: Optional[AssistantMessageRole] = "assistant" + role: Optional[RoleEnum] = "assistant" @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionchoice.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionchoice.py similarity index 91% rename from packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionchoice.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionchoice.py index fe3ee952..ae5a2fbf 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionchoice.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionchoice.py @@ -2,7 +2,7 @@ from __future__ import annotations from .assistantmessage import AssistantMessage, AssistantMessageTypedDict -from mistralai_gcp.types import BaseModel, UnrecognizedStr +from mistralai.gcp.client.types import BaseModel, UnrecognizedStr from typing import Literal, Union from typing_extensions import TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionrequest.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionrequest.py similarity index 97% rename from packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionrequest.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionrequest.py index 80345f9d..1bc03922 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionrequest.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionrequest.py @@ -11,14 +11,14 @@ from .toolchoiceenum import ToolChoiceEnum from .toolmessage import ToolMessage, ToolMessageTypedDict from .usermessage import UserMessage, UserMessageTypedDict -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) -from mistralai_gcp.utils import get_discriminator +from mistralai.gcp.client.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer from typing import Any, Dict, List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -36,8 +36,8 @@ r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -ChatCompletionRequestMessagesTypedDict = TypeAliasType( - "ChatCompletionRequestMessagesTypedDict", +ChatCompletionRequestMessageTypedDict = TypeAliasType( + "ChatCompletionRequestMessageTypedDict", Union[ SystemMessageTypedDict, UserMessageTypedDict, @@ -47,7 +47,7 @@ ) -ChatCompletionRequestMessages = Annotated[ +ChatCompletionRequestMessage = Annotated[ Union[ Annotated[AssistantMessage, Tag("assistant")], Annotated[SystemMessage, Tag("system")], @@ -74,7 +74,7 @@ class ChatCompletionRequestTypedDict(TypedDict): model: str r"""ID of the model to use. You can use the [List Available Models](/api/#tag/models/operation/list_models_v1_models_get) API to see all of your available models, or see our [Model overview](/models) for model descriptions.""" - messages: List[ChatCompletionRequestMessagesTypedDict] + messages: List[ChatCompletionRequestMessageTypedDict] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" temperature: NotRequired[Nullable[float]] r"""What sampling temperature to use, we recommend between 0.0 and 0.7. Higher values like 0.7 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both. The default value varies depending on the model you are targeting. Call the `/models` endpoint to retrieve the appropriate value.""" @@ -113,7 +113,7 @@ class ChatCompletionRequest(BaseModel): model: str r"""ID of the model to use. You can use the [List Available Models](/api/#tag/models/operation/list_models_v1_models_get) API to see all of your available models, or see our [Model overview](/models) for model descriptions.""" - messages: List[ChatCompletionRequestMessages] + messages: List[ChatCompletionRequestMessage] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" temperature: OptionalNullable[float] = UNSET diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionresponse.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionresponse.py similarity index 93% rename from packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionresponse.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionresponse.py index a7953eb1..317c4d84 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionresponse.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionresponse.py @@ -3,7 +3,7 @@ from __future__ import annotations from .chatcompletionchoice import ChatCompletionChoice, ChatCompletionChoiceTypedDict from .usageinfo import UsageInfo, UsageInfoTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import List from typing_extensions import TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionstreamrequest.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionstreamrequest.py similarity index 94% rename from packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionstreamrequest.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionstreamrequest.py index e857d515..0a5a0021 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/chatcompletionstreamrequest.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/chatcompletionstreamrequest.py @@ -11,29 +11,33 @@ from .toolchoiceenum import ToolChoiceEnum from .toolmessage import ToolMessage, ToolMessageTypedDict from .usermessage import UserMessage, UserMessageTypedDict -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) -from mistralai_gcp.utils import get_discriminator +from mistralai.gcp.client.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer from typing import Any, Dict, List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -StopTypedDict = TypeAliasType("StopTypedDict", Union[str, List[str]]) +ChatCompletionStreamRequestStopTypedDict = TypeAliasType( + "ChatCompletionStreamRequestStopTypedDict", Union[str, List[str]] +) r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -Stop = TypeAliasType("Stop", Union[str, List[str]]) +ChatCompletionStreamRequestStop = TypeAliasType( + "ChatCompletionStreamRequestStop", Union[str, List[str]] +) r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" -MessagesTypedDict = TypeAliasType( - "MessagesTypedDict", +ChatCompletionStreamRequestMessageTypedDict = TypeAliasType( + "ChatCompletionStreamRequestMessageTypedDict", Union[ SystemMessageTypedDict, UserMessageTypedDict, @@ -43,7 +47,7 @@ ) -Messages = Annotated[ +ChatCompletionStreamRequestMessage = Annotated[ Union[ Annotated[AssistantMessage, Tag("assistant")], Annotated[SystemMessage, Tag("system")], @@ -70,7 +74,7 @@ class ChatCompletionStreamRequestTypedDict(TypedDict): model: str r"""ID of the model to use. You can use the [List Available Models](/api/#tag/models/operation/list_models_v1_models_get) API to see all of your available models, or see our [Model overview](/models) for model descriptions.""" - messages: List[MessagesTypedDict] + messages: List[ChatCompletionStreamRequestMessageTypedDict] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" temperature: NotRequired[Nullable[float]] r"""What sampling temperature to use, we recommend between 0.0 and 0.7. Higher values like 0.7 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both. The default value varies depending on the model you are targeting. Call the `/models` endpoint to retrieve the appropriate value.""" @@ -79,7 +83,7 @@ class ChatCompletionStreamRequestTypedDict(TypedDict): max_tokens: NotRequired[Nullable[int]] r"""The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length.""" stream: NotRequired[bool] - stop: NotRequired[StopTypedDict] + stop: NotRequired[ChatCompletionStreamRequestStopTypedDict] r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" random_seed: NotRequired[Nullable[int]] r"""The seed to use for random sampling. If set, different calls will generate deterministic results.""" @@ -108,7 +112,7 @@ class ChatCompletionStreamRequest(BaseModel): model: str r"""ID of the model to use. You can use the [List Available Models](/api/#tag/models/operation/list_models_v1_models_get) API to see all of your available models, or see our [Model overview](/models) for model descriptions.""" - messages: List[Messages] + messages: List[ChatCompletionStreamRequestMessage] r"""The prompt(s) to generate completions for, encoded as a list of dict with role and content.""" temperature: OptionalNullable[float] = UNSET @@ -122,7 +126,7 @@ class ChatCompletionStreamRequest(BaseModel): stream: Optional[bool] = True - stop: Optional[Stop] = None + stop: Optional[ChatCompletionStreamRequestStop] = None r"""Stop generation if this token is detected. Or if one of these tokens is detected when providing an array""" random_seed: OptionalNullable[int] = UNSET diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/completionchunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionchunk.py similarity index 94% rename from packages/mistralai_gcp/src/mistralai_gcp/models/completionchunk.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/completionchunk.py index ca002f52..9e54cb6d 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/completionchunk.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionchunk.py @@ -6,7 +6,7 @@ CompletionResponseStreamChoiceTypedDict, ) from .usageinfo import UsageInfo, UsageInfoTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import List, Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/completionevent.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionevent.py similarity index 88% rename from packages/mistralai_gcp/src/mistralai_gcp/models/completionevent.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/completionevent.py index 33278c11..bb155009 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/completionevent.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionevent.py @@ -2,7 +2,7 @@ from __future__ import annotations from .completionchunk import CompletionChunk, CompletionChunkTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing_extensions import TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/completionresponsestreamchoice.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionresponsestreamchoice.py similarity index 82% rename from packages/mistralai_gcp/src/mistralai_gcp/models/completionresponsestreamchoice.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/completionresponsestreamchoice.py index ec9df528..6f306721 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/completionresponsestreamchoice.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/completionresponsestreamchoice.py @@ -2,13 +2,18 @@ from __future__ import annotations from .deltamessage import DeltaMessage, DeltaMessageTypedDict -from mistralai_gcp.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from mistralai.gcp.client.types import ( + BaseModel, + Nullable, + UNSET_SENTINEL, + UnrecognizedStr, +) from pydantic import model_serializer from typing import Literal, Union from typing_extensions import TypedDict -FinishReason = Union[ +CompletionResponseStreamChoiceFinishReason = Union[ Literal[ "stop", "length", @@ -22,7 +27,7 @@ class CompletionResponseStreamChoiceTypedDict(TypedDict): index: int delta: DeltaMessageTypedDict - finish_reason: Nullable[FinishReason] + finish_reason: Nullable[CompletionResponseStreamChoiceFinishReason] class CompletionResponseStreamChoice(BaseModel): @@ -30,7 +35,7 @@ class CompletionResponseStreamChoice(BaseModel): delta: DeltaMessage - finish_reason: Nullable[FinishReason] + finish_reason: Nullable[CompletionResponseStreamChoiceFinishReason] @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/contentchunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/contentchunk.py similarity index 93% rename from packages/mistralai_gcp/src/mistralai_gcp/models/contentchunk.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/contentchunk.py index da5671e3..1cd9e502 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/contentchunk.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/contentchunk.py @@ -4,7 +4,7 @@ from .imageurlchunk import ImageURLChunk, ImageURLChunkTypedDict from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict from .textchunk import TextChunk, TextChunkTypedDict -from mistralai_gcp.utils import get_discriminator +from mistralai.gcp.client.utils import get_discriminator from pydantic import Discriminator, Tag from typing import Union from typing_extensions import Annotated, TypeAliasType diff --git a/packages/mistralai_azure/src/mistralai_azure/models/deltamessage.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/deltamessage.py similarity index 81% rename from packages/mistralai_azure/src/mistralai_azure/models/deltamessage.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/deltamessage.py index 7fa3c3f2..96923518 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/deltamessage.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/deltamessage.py @@ -3,7 +3,7 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict from .toolcall import ToolCall, ToolCallTypedDict -from mistralai_azure.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, @@ -15,24 +15,26 @@ from typing_extensions import NotRequired, TypeAliasType, TypedDict -ContentTypedDict = TypeAliasType( - "ContentTypedDict", Union[str, List[ContentChunkTypedDict]] +DeltaMessageContentTypedDict = TypeAliasType( + "DeltaMessageContentTypedDict", Union[str, List[ContentChunkTypedDict]] ) -Content = TypeAliasType("Content", Union[str, List[ContentChunk]]) +DeltaMessageContent = TypeAliasType( + "DeltaMessageContent", Union[str, List[ContentChunk]] +) class DeltaMessageTypedDict(TypedDict): role: NotRequired[Nullable[str]] - content: NotRequired[Nullable[ContentTypedDict]] + content: NotRequired[Nullable[DeltaMessageContentTypedDict]] tool_calls: NotRequired[Nullable[List[ToolCallTypedDict]]] class DeltaMessage(BaseModel): role: OptionalNullable[str] = UNSET - content: OptionalNullable[Content] = UNSET + content: OptionalNullable[DeltaMessageContent] = UNSET tool_calls: OptionalNullable[List[ToolCall]] = UNSET diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionrequest.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionrequest.py similarity index 99% rename from packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionrequest.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionrequest.py index bcc97c90..f37bbcc3 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionrequest.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionrequest.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionresponse.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionresponse.py similarity index 93% rename from packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionresponse.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionresponse.py index e1940b0a..5b80da3f 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionresponse.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionresponse.py @@ -3,7 +3,7 @@ from __future__ import annotations from .chatcompletionchoice import ChatCompletionChoice, ChatCompletionChoiceTypedDict from .usageinfo import UsageInfo, UsageInfoTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import List from typing_extensions import TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionstreamrequest.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionstreamrequest.py similarity index 99% rename from packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionstreamrequest.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionstreamrequest.py index 34d2ba65..8e610261 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/fimcompletionstreamrequest.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/fimcompletionstreamrequest.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_azure/src/mistralai_azure/models/function.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/function.py similarity index 91% rename from packages/mistralai_azure/src/mistralai_azure/models/function.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/function.py index a4642f92..28577eff 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/function.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/function.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import Any, Dict, Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/functioncall.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/functioncall.py similarity index 91% rename from packages/mistralai_azure/src/mistralai_azure/models/functioncall.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/functioncall.py index dd93c462..0f1b2425 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/functioncall.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/functioncall.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import Any, Dict, Union from typing_extensions import TypeAliasType, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/functionname.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/functionname.py similarity index 89% rename from packages/mistralai_gcp/src/mistralai_gcp/models/functionname.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/functionname.py index 00ec22f5..585b9e39 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/functionname.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/functionname.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing_extensions import TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/httpvalidationerror.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/httpvalidationerror.py similarity index 87% rename from packages/mistralai_gcp/src/mistralai_gcp/models/httpvalidationerror.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/httpvalidationerror.py index 79609351..d7944d1e 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/httpvalidationerror.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/httpvalidationerror.py @@ -4,8 +4,8 @@ from .validationerror import ValidationError from dataclasses import dataclass, field import httpx -from mistralai_gcp.models import MistralGcpError -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.models import MistralGcpError +from mistralai.gcp.client.types import BaseModel from typing import List, Optional diff --git a/packages/mistralai_azure/src/mistralai_azure/models/imageurl.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurl.py similarity index 97% rename from packages/mistralai_azure/src/mistralai_azure/models/imageurl.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurl.py index a5a66360..e66d77ec 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/imageurl.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurl.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurlchunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurlchunk.py new file mode 100644 index 00000000..fc5284c1 --- /dev/null +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/imageurlchunk.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .imageurl import ImageURL, ImageURLTypedDict +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict + + +ImageURLUnionTypedDict = TypeAliasType( + "ImageURLUnionTypedDict", Union[ImageURLTypedDict, str] +) + + +ImageURLUnion = TypeAliasType("ImageURLUnion", Union[ImageURL, str]) + + +class ImageURLChunkTypedDict(TypedDict): + r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" + + image_url: ImageURLUnionTypedDict + type: Literal["image_url"] + + +class ImageURLChunk(BaseModel): + r"""{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0""" + + image_url: ImageURLUnion + + TYPE: Annotated[ + Annotated[Literal["image_url"], AfterValidator(validate_const("image_url"))], + pydantic.Field(alias="type"), + ] = "image_url" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/jsonschema.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/jsonschema.py similarity index 97% rename from packages/mistralai_gcp/src/mistralai_gcp/models/jsonschema.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/jsonschema.py index 26914b2f..443c429d 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/jsonschema.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/jsonschema.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/mistralgcperror.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/mistralgcperror.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/models/mistralgcperror.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/mistralgcperror.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/mistralpromptmode.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/mistralpromptmode.py similarity index 89% rename from packages/mistralai_gcp/src/mistralai_gcp/models/mistralpromptmode.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/mistralpromptmode.py index a5cc534f..c765e4f1 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/mistralpromptmode.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/mistralpromptmode.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import UnrecognizedStr +from mistralai.gcp.client.types import UnrecognizedStr from typing import Literal, Union diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/no_response_error.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/no_response_error.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/models/no_response_error.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/no_response_error.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/prediction.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/prediction.py similarity index 89% rename from packages/mistralai_gcp/src/mistralai_gcp/models/prediction.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/prediction.py index 36c87ab0..f53579ed 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/prediction.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/prediction.py @@ -1,8 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel -from mistralai_gcp.utils import validate_const +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator from typing import Literal, Optional diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/referencechunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/referencechunk.py similarity index 65% rename from packages/mistralai_gcp/src/mistralai_gcp/models/referencechunk.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/referencechunk.py index 904e8b82..7396378a 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/referencechunk.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/referencechunk.py @@ -1,20 +1,20 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import List, Literal, Optional from typing_extensions import NotRequired, TypedDict -ReferenceChunkType = Literal["reference",] +TypeEnum = Literal["reference",] class ReferenceChunkTypedDict(TypedDict): reference_ids: List[int] - type: NotRequired[ReferenceChunkType] + type: NotRequired[TypeEnum] class ReferenceChunk(BaseModel): reference_ids: List[int] - type: Optional[ReferenceChunkType] = "reference" + type: Optional[TypeEnum] = "reference" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/responseformat.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/responseformat.py similarity index 98% rename from packages/mistralai_azure/src/mistralai_azure/models/responseformat.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/responseformat.py index c989f3a4..34ae6b03 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/responseformat.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/responseformat.py @@ -3,7 +3,7 @@ from __future__ import annotations from .jsonschema import JSONSchema, JSONSchemaTypedDict from .responseformats import ResponseFormats -from mistralai_azure.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/responseformats.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/responseformats.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/models/responseformats.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/responseformats.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/responsevalidationerror.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/responsevalidationerror.py similarity index 92% rename from packages/mistralai_gcp/src/mistralai_gcp/models/responsevalidationerror.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/responsevalidationerror.py index ebd4f214..e7e01017 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/responsevalidationerror.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/responsevalidationerror.py @@ -4,7 +4,7 @@ from typing import Optional from dataclasses import dataclass -from mistralai_gcp.models import MistralGcpError +from mistralai.gcp.client.models import MistralGcpError @dataclass(unsafe_hash=True) diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/sdkerror.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/sdkerror.py similarity index 95% rename from packages/mistralai_gcp/src/mistralai_gcp/models/sdkerror.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/sdkerror.py index 7f53bbcd..5bd5b6dc 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/sdkerror.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/sdkerror.py @@ -4,7 +4,7 @@ from typing import Optional from dataclasses import dataclass -from mistralai_gcp.models import MistralGcpError +from mistralai.gcp.client.models import MistralGcpError MAX_MESSAGE_LEN = 10_000 diff --git a/packages/mistralai_azure/src/mistralai_azure/models/security.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/security.py similarity index 81% rename from packages/mistralai_azure/src/mistralai_azure/models/security.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/security.py index c1ae8313..10a469b5 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/security.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/security.py @@ -1,8 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel -from mistralai_azure.utils import FieldMetadata, SecurityMetadata +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import FieldMetadata, SecurityMetadata from typing_extensions import Annotated, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/systemmessage.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessage.py similarity index 57% rename from packages/mistralai_gcp/src/mistralai_gcp/models/systemmessage.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessage.py index d74bdf32..a7d695a7 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/systemmessage.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessage.py @@ -5,9 +5,12 @@ SystemMessageContentChunks, SystemMessageContentChunksTypedDict, ) -from mistralai_gcp.types import BaseModel -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict SystemMessageContentTypedDict = TypeAliasType( @@ -21,15 +24,15 @@ ) -Role = Literal["system",] - - class SystemMessageTypedDict(TypedDict): content: SystemMessageContentTypedDict - role: NotRequired[Role] + role: Literal["system"] class SystemMessage(BaseModel): content: SystemMessageContent - role: Optional[Role] = "system" + ROLE: Annotated[ + Annotated[Literal["system"], AfterValidator(validate_const("system"))], + pydantic.Field(alias="role"), + ] = "system" diff --git a/packages/mistralai_azure/src/mistralai_azure/models/systemmessagecontentchunks.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessagecontentchunks.py similarity index 66% rename from packages/mistralai_azure/src/mistralai_azure/models/systemmessagecontentchunks.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessagecontentchunks.py index 4615a16c..225f38b7 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/systemmessagecontentchunks.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/systemmessagecontentchunks.py @@ -3,8 +3,7 @@ from __future__ import annotations from .textchunk import TextChunk, TextChunkTypedDict from .thinkchunk import ThinkChunk, ThinkChunkTypedDict -from mistralai_azure.utils import get_discriminator -from pydantic import Discriminator, Tag +from pydantic import Field from typing import Union from typing_extensions import Annotated, TypeAliasType @@ -16,6 +15,5 @@ SystemMessageContentChunks = Annotated[ - Union[Annotated[TextChunk, Tag("text")], Annotated[ThinkChunk, Tag("thinking")]], - Discriminator(lambda m: get_discriminator(m, "type", "type")), + Union[TextChunk, ThinkChunk], Field(discriminator="TYPE") ] diff --git a/packages/mistralai_gcp/src/mistralai/gcp/client/models/textchunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/textchunk.py new file mode 100644 index 00000000..77576c9f --- /dev/null +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/textchunk.py @@ -0,0 +1,23 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator +from typing import Literal +from typing_extensions import Annotated, TypedDict + + +class TextChunkTypedDict(TypedDict): + text: str + type: Literal["text"] + + +class TextChunk(BaseModel): + text: str + + TYPE: Annotated[ + Annotated[Literal["text"], AfterValidator(validate_const("text"))], + pydantic.Field(alias="type"), + ] = "text" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/thinkchunk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/thinkchunk.py similarity index 65% rename from packages/mistralai_gcp/src/mistralai_gcp/models/thinkchunk.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/thinkchunk.py index b88c0cb5..2409c6dd 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/thinkchunk.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/thinkchunk.py @@ -3,9 +3,12 @@ from __future__ import annotations from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict from .textchunk import TextChunk, TextChunkTypedDict -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel +from mistralai.gcp.client.utils import validate_const +import pydantic +from pydantic.functional_validators import AfterValidator from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict ThinkingTypedDict = TypeAliasType( @@ -16,14 +19,11 @@ Thinking = TypeAliasType("Thinking", Union[ReferenceChunk, TextChunk]) -ThinkChunkType = Literal["thinking",] - - class ThinkChunkTypedDict(TypedDict): thinking: List[ThinkingTypedDict] closed: NotRequired[bool] r"""Whether the thinking chunk is closed or not. Currently only used for prefixing.""" - type: NotRequired[ThinkChunkType] + type: Literal["thinking"] class ThinkChunk(BaseModel): @@ -32,4 +32,7 @@ class ThinkChunk(BaseModel): closed: Optional[bool] = None r"""Whether the thinking chunk is closed or not. Currently only used for prefixing.""" - type: Optional[ThinkChunkType] = "thinking" + TYPE: Annotated[ + Annotated[Literal["thinking"], AfterValidator(validate_const("thinking"))], + pydantic.Field(alias="type"), + ] = "thinking" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/tool.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/tool.py similarity index 90% rename from packages/mistralai_gcp/src/mistralai_gcp/models/tool.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/tool.py index 800de633..d09c6854 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/tool.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/tool.py @@ -3,7 +3,7 @@ from __future__ import annotations from .function import Function, FunctionTypedDict from .tooltypes import ToolTypes -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_azure/src/mistralai_azure/models/toolcall.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolcall.py similarity index 92% rename from packages/mistralai_azure/src/mistralai_azure/models/toolcall.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/toolcall.py index 44fe8ec8..a1edf337 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/toolcall.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolcall.py @@ -3,7 +3,7 @@ from __future__ import annotations from .functioncall import FunctionCall, FunctionCallTypedDict from .tooltypes import ToolTypes -from mistralai_azure.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/toolchoice.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolchoice.py similarity index 94% rename from packages/mistralai_gcp/src/mistralai_gcp/models/toolchoice.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/toolchoice.py index 4a148330..de3828da 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/toolchoice.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolchoice.py @@ -3,7 +3,7 @@ from __future__ import annotations from .functionname import FunctionName, FunctionNameTypedDict from .tooltypes import ToolTypes -from mistralai_gcp.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import Optional from typing_extensions import NotRequired, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/toolchoiceenum.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolchoiceenum.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/models/toolchoiceenum.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/toolchoiceenum.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/toolmessage.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolmessage.py similarity index 77% rename from packages/mistralai_gcp/src/mistralai_gcp/models/toolmessage.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/toolmessage.py index d6aa2621..27a6ca27 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/toolmessage.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/toolmessage.py @@ -2,16 +2,19 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict -from mistralai_gcp.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, ) +from mistralai.gcp.client.utils import validate_const +import pydantic from pydantic import model_serializer -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict ToolMessageContentTypedDict = TypeAliasType( @@ -22,14 +25,11 @@ ToolMessageContent = TypeAliasType("ToolMessageContent", Union[str, List[ContentChunk]]) -ToolMessageRole = Literal["tool",] - - class ToolMessageTypedDict(TypedDict): content: Nullable[ToolMessageContentTypedDict] tool_call_id: NotRequired[Nullable[str]] name: NotRequired[Nullable[str]] - role: NotRequired[ToolMessageRole] + role: Literal["tool"] class ToolMessage(BaseModel): @@ -39,11 +39,14 @@ class ToolMessage(BaseModel): name: OptionalNullable[str] = UNSET - role: Optional[ToolMessageRole] = "tool" + ROLE: Annotated[ + Annotated[Literal["tool"], AfterValidator(validate_const("tool"))], + pydantic.Field(alias="role"), + ] = "tool" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["tool_call_id", "name", "role"] + optional_fields = ["tool_call_id", "name"] nullable_fields = ["content", "tool_call_id", "name"] null_default_fields = [] diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/tooltypes.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/tooltypes.py similarity index 78% rename from packages/mistralai_gcp/src/mistralai_gcp/models/tooltypes.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/tooltypes.py index 8b812ae0..fd1aa13d 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/tooltypes.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/tooltypes.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_gcp.types import UnrecognizedStr +from mistralai.gcp.client.types import UnrecognizedStr from typing import Literal, Union diff --git a/packages/mistralai_azure/src/mistralai_azure/models/usageinfo.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/usageinfo.py similarity index 98% rename from packages/mistralai_azure/src/mistralai_azure/models/usageinfo.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/usageinfo.py index bbe5cdfa..9b7207b1 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/usageinfo.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/usageinfo.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import ( +from mistralai.gcp.client.types import ( BaseModel, Nullable, OptionalNullable, diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/usermessage.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/usermessage.py similarity index 73% rename from packages/mistralai_gcp/src/mistralai_gcp/models/usermessage.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/usermessage.py index 0168b452..c083e16d 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/usermessage.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/usermessage.py @@ -2,10 +2,13 @@ from __future__ import annotations from .contentchunk import ContentChunk, ContentChunkTypedDict -from mistralai_gcp.types import BaseModel, Nullable, UNSET_SENTINEL +from mistralai.gcp.client.types import BaseModel, Nullable, UNSET_SENTINEL +from mistralai.gcp.client.utils import validate_const +import pydantic from pydantic import model_serializer -from typing import List, Literal, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict UserMessageContentTypedDict = TypeAliasType( @@ -16,22 +19,22 @@ UserMessageContent = TypeAliasType("UserMessageContent", Union[str, List[ContentChunk]]) -UserMessageRole = Literal["user",] - - class UserMessageTypedDict(TypedDict): content: Nullable[UserMessageContentTypedDict] - role: NotRequired[UserMessageRole] + role: Literal["user"] class UserMessage(BaseModel): content: Nullable[UserMessageContent] - role: Optional[UserMessageRole] = "user" + ROLE: Annotated[ + Annotated[Literal["user"], AfterValidator(validate_const("user"))], + pydantic.Field(alias="role"), + ] = "user" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["role"] + optional_fields = [] nullable_fields = ["content"] null_default_fields = [] diff --git a/packages/mistralai_azure/src/mistralai_azure/models/validationerror.py b/packages/mistralai_gcp/src/mistralai/gcp/client/models/validationerror.py similarity index 90% rename from packages/mistralai_azure/src/mistralai_azure/models/validationerror.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/models/validationerror.py index 4caff4a6..2d330e9a 100644 --- a/packages/mistralai_azure/src/mistralai_azure/models/validationerror.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/models/validationerror.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from mistralai_azure.types import BaseModel +from mistralai.gcp.client.types import BaseModel from typing import List, Union from typing_extensions import TypeAliasType, TypedDict diff --git a/packages/mistralai_gcp/src/mistralai_gcp/py.typed b/packages/mistralai_gcp/src/mistralai/gcp/client/py.typed similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/py.typed rename to packages/mistralai_gcp/src/mistralai/gcp/client/py.typed diff --git a/packages/mistralai_gcp/src/mistralai/gcp/client/sdk.py b/packages/mistralai_gcp/src/mistralai/gcp/client/sdk.py new file mode 100644 index 00000000..63a766a4 --- /dev/null +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/sdk.py @@ -0,0 +1,189 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from .httpclient import AsyncHttpClient, ClientOwner, HttpClient, close_clients +from .sdkconfiguration import SDKConfiguration +from .utils.logger import Logger, get_default_logger +from .utils.retries import RetryConfig +import httpx +import importlib +from mistralai.gcp.client import models, utils +from mistralai.gcp.client._hooks import SDKHooks +from mistralai.gcp.client.types import OptionalNullable, UNSET +import sys +from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast +import weakref + +if TYPE_CHECKING: + from mistralai.gcp.client.chat import Chat + from mistralai.gcp.client.fim import Fim + + +class MistralGCP(BaseSDK): + r"""Mistral AI API: Dora OpenAPI schema + + Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it. + """ + + chat: "Chat" + r"""Chat Completion API.""" + fim: "Fim" + r"""Fill-in-the-middle API.""" + _sub_sdk_map = { + "chat": ("mistralai.gcp.client.chat", "Chat"), + "fim": ("mistralai.gcp.client.fim", "Fim"), + } + + def __init__( + self, + api_key: Union[str, Callable[[], str]], + server: Optional[str] = None, + server_url: Optional[str] = None, + url_params: Optional[Dict[str, str]] = None, + client: Optional[HttpClient] = None, + async_client: Optional[AsyncHttpClient] = None, + retry_config: OptionalNullable[RetryConfig] = UNSET, + timeout_ms: Optional[int] = None, + debug_logger: Optional[Logger] = None, + ) -> None: + r"""Instantiates the SDK configuring it with the provided parameters. + + :param api_key: The api_key required for authentication + :param server: The server by name to use for all methods + :param server_url: The server URL to use for all methods + :param url_params: Parameters to optionally template the server URL with + :param client: The HTTP client to use for all synchronous methods + :param async_client: The Async HTTP client to use for all asynchronous methods + :param retry_config: The retry configuration to use for all supported methods + :param timeout_ms: Optional request timeout applied to each operation in milliseconds + """ + client_supplied = True + if client is None: + client = httpx.Client(follow_redirects=True) + client_supplied = False + + assert issubclass( + type(client), HttpClient + ), "The provided client must implement the HttpClient protocol." + + async_client_supplied = True + if async_client is None: + async_client = httpx.AsyncClient(follow_redirects=True) + async_client_supplied = False + + if debug_logger is None: + debug_logger = get_default_logger() + + assert issubclass( + type(async_client), AsyncHttpClient + ), "The provided async_client must implement the AsyncHttpClient protocol." + + security: Any = None + if callable(api_key): + # pylint: disable=unnecessary-lambda-assignment + security = lambda: models.Security(api_key=api_key()) + else: + security = models.Security(api_key=api_key) + + if server_url is not None: + if url_params is not None: + server_url = utils.template_url(server_url, url_params) + + BaseSDK.__init__( + self, + SDKConfiguration( + client=client, + client_supplied=client_supplied, + async_client=async_client, + async_client_supplied=async_client_supplied, + security=security, + server_url=server_url, + server=server, + retry_config=retry_config, + timeout_ms=timeout_ms, + debug_logger=debug_logger, + ), + parent_ref=self, + ) + + hooks = SDKHooks() + + # pylint: disable=protected-access + self.sdk_configuration.__dict__["_hooks"] = hooks + + current_server_url, *_ = self.sdk_configuration.get_server_details() + server_url, self.sdk_configuration.client = hooks.sdk_init( + current_server_url, client + ) + if current_server_url != server_url: + self.sdk_configuration.server_url = server_url + + weakref.finalize( + self, + close_clients, + cast(ClientOwner, self.sdk_configuration), + self.sdk_configuration.client, + self.sdk_configuration.client_supplied, + self.sdk_configuration.async_client, + self.sdk_configuration.async_client_supplied, + ) + + def dynamic_import(self, modname, retries=3): + for attempt in range(retries): + try: + return importlib.import_module(modname) + except KeyError: + # Clear any half-initialized module and retry + sys.modules.pop(modname, None) + if attempt == retries - 1: + break + raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") + + def __getattr__(self, name: str): + if name in self._sub_sdk_map: + module_path, class_name = self._sub_sdk_map[name] + try: + module = self.dynamic_import(module_path) + klass = getattr(module, class_name) + instance = klass(self.sdk_configuration, parent_ref=self) + setattr(self, name, instance) + return instance + except ImportError as e: + raise AttributeError( + f"Failed to import module {module_path} for attribute {name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to find class {class_name} in module {module_path} for attribute {name}: {e}" + ) from e + + raise AttributeError( + f"'{type(self).__name__}' object has no attribute '{name}'" + ) + + def __dir__(self): + default_attrs = list(super().__dir__()) + lazy_attrs = list(self._sub_sdk_map.keys()) + return sorted(list(set(default_attrs + lazy_attrs))) + + def __enter__(self): + return self + + async def __aenter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + if ( + self.sdk_configuration.client is not None + and not self.sdk_configuration.client_supplied + ): + self.sdk_configuration.client.close() + self.sdk_configuration.client = None + + async def __aexit__(self, exc_type, exc_val, exc_tb): + if ( + self.sdk_configuration.async_client is not None + and not self.sdk_configuration.async_client_supplied + ): + await self.sdk_configuration.async_client.aclose() + self.sdk_configuration.async_client = None diff --git a/packages/mistralai_azure/src/mistralai_azure/sdkconfiguration.py b/packages/mistralai_gcp/src/mistralai/gcp/client/sdkconfiguration.py similarity index 94% rename from packages/mistralai_azure/src/mistralai_azure/sdkconfiguration.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/sdkconfiguration.py index 51289cf0..d56a634f 100644 --- a/packages/mistralai_azure/src/mistralai_azure/sdkconfiguration.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/sdkconfiguration.py @@ -9,8 +9,8 @@ from .httpclient import AsyncHttpClient, HttpClient from .utils import Logger, RetryConfig, remove_suffix from dataclasses import dataclass -from mistralai_azure import models -from mistralai_azure.types import OptionalNullable, UNSET +from mistralai.gcp.client import models +from mistralai.gcp.client.types import OptionalNullable, UNSET from pydantic import Field from typing import Callable, Dict, Optional, Tuple, Union diff --git a/packages/mistralai_gcp/src/mistralai_gcp/types/__init__.py b/packages/mistralai_gcp/src/mistralai/gcp/client/types/__init__.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/types/__init__.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/types/__init__.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/types/basemodel.py b/packages/mistralai_gcp/src/mistralai/gcp/client/types/basemodel.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/types/basemodel.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/types/basemodel.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/__init__.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/__init__.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/__init__.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/__init__.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/annotations.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/annotations.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/annotations.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/annotations.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/datetimes.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/datetimes.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/datetimes.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/datetimes.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/enums.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/enums.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/enums.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/enums.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/eventstreaming.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/eventstreaming.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/eventstreaming.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/eventstreaming.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/forms.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/forms.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/forms.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/forms.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/headers.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/headers.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/headers.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/headers.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/logger.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/logger.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/logger.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/logger.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/metadata.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/metadata.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/metadata.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/metadata.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/queryparams.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/queryparams.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/queryparams.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/queryparams.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/requestbodies.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/requestbodies.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/requestbodies.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/requestbodies.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/retries.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/retries.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/retries.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/retries.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/security.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/security.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/security.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/security.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/serializers.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/serializers.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/serializers.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/serializers.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/unmarshal_json_response.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/unmarshal_json_response.py similarity index 95% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/unmarshal_json_response.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/unmarshal_json_response.py index c168a293..83e8275e 100644 --- a/packages/mistralai_gcp/src/mistralai_gcp/utils/unmarshal_json_response.py +++ b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/unmarshal_json_response.py @@ -5,7 +5,7 @@ import httpx from .serializers import unmarshal_json -from mistralai_gcp import models +from mistralai.gcp.client import models T = TypeVar("T") diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/url.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/url.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/url.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/url.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/utils/values.py b/packages/mistralai_gcp/src/mistralai/gcp/client/utils/values.py similarity index 100% rename from packages/mistralai_gcp/src/mistralai_gcp/utils/values.py rename to packages/mistralai_gcp/src/mistralai/gcp/client/utils/values.py diff --git a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/custom_user_agent.py b/packages/mistralai_gcp/src/mistralai_gcp/_hooks/custom_user_agent.py deleted file mode 100644 index 77df6aef..00000000 --- a/packages/mistralai_gcp/src/mistralai_gcp/_hooks/custom_user_agent.py +++ /dev/null @@ -1,22 +0,0 @@ -# THIS FILE IS THE EXACT COPY OF THE ORIGINAL FILE FROM src/mistralai/_hooks/custom_user_agent.py -from typing import Union - -import httpx - -from .types import BeforeRequestContext, BeforeRequestHook - -PREFIX = "mistral-client-python/" - -class CustomUserAgentHook(BeforeRequestHook): - def before_request( - self, hook_ctx: BeforeRequestContext, request: httpx.Request - ) -> Union[httpx.Request, Exception]: - current = request.headers["user-agent"] - if current.startswith(PREFIX): - return request - - request.headers["user-agent"] = ( - PREFIX + current.split(" ")[1] - ) - - return request diff --git a/packages/mistralai_gcp/src/mistralai_gcp/models/textchunk.py b/packages/mistralai_gcp/src/mistralai_gcp/models/textchunk.py deleted file mode 100644 index c4a8cf28..00000000 --- a/packages/mistralai_gcp/src/mistralai_gcp/models/textchunk.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from mistralai_gcp.types import BaseModel -from typing import Literal, Optional -from typing_extensions import NotRequired, TypedDict - - -Type = Literal["text",] - - -class TextChunkTypedDict(TypedDict): - text: str - type: NotRequired[Type] - - -class TextChunk(BaseModel): - text: str - - type: Optional[Type] = "text" diff --git a/packages/mistralai_gcp/src/mistralai_gcp/sdk.py b/packages/mistralai_gcp/src/mistralai_gcp/sdk.py deleted file mode 100644 index de48fbbb..00000000 --- a/packages/mistralai_gcp/src/mistralai_gcp/sdk.py +++ /dev/null @@ -1,233 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -import json -import weakref -from typing import Any, Optional, Union, cast - -import google.auth -import google.auth.credentials -import google.auth.transport -import google.auth.transport.requests -import httpx - -from mistralai_gcp import models -from mistralai_gcp._hooks import BeforeRequestHook, SDKHooks -from mistralai_gcp.chat import Chat -from mistralai_gcp.fim import Fim -from mistralai_gcp.types import UNSET, OptionalNullable - -from .basesdk import BaseSDK -from .httpclient import AsyncHttpClient, ClientOwner, HttpClient, close_clients -from .sdkconfiguration import SDKConfiguration -from .utils.logger import Logger, get_default_logger -from .utils.retries import RetryConfig - -LEGACY_MODEL_ID_FORMAT = { - "codestral-2405": "codestral@2405", - "mistral-large-2407": "mistral-large@2407", - "mistral-nemo-2407": "mistral-nemo@2407", -} - - -def get_model_info(model: str) -> tuple[str, str]: - # if the model requiers the legacy fomat, use it, else do nothing. - if model in LEGACY_MODEL_ID_FORMAT: - return "-".join(model.split("-")[:-1]), LEGACY_MODEL_ID_FORMAT[model] - return model, model - - -class MistralGoogleCloud(BaseSDK): - r"""Mistral AI API: Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it.""" - - chat: Chat - r"""Chat Completion API.""" - fim: Fim - r"""Fill-in-the-middle API.""" - - def __init__( - self, - region: str = "europe-west4", - project_id: Optional[str] = None, - access_token: Optional[str] = None, - client: Optional[HttpClient] = None, - async_client: Optional[AsyncHttpClient] = None, - retry_config: OptionalNullable[RetryConfig] = UNSET, - timeout_ms: Optional[int] = None, - debug_logger: Optional[Logger] = None, - ) -> None: - r"""Instantiates the SDK configuring it with the provided parameters. - - :param api_key: The api_key required for authentication - :param server: The server by name to use for all methods - :param server_url: The server URL to use for all methods - :param url_params: Parameters to optionally template the server URL with - :param client: The HTTP client to use for all synchronous methods - :param async_client: The Async HTTP client to use for all asynchronous methods - :param retry_config: The retry configuration to use for all supported methods - :param timeout_ms: Optional request timeout applied to each operation in milliseconds - """ - - credentials = None - if not access_token: - credentials, loaded_project_id = google.auth.default( - scopes=["https://www.googleapis.com/auth/cloud-platform"], - ) - - # default will already raise a google.auth.exceptions.DefaultCredentialsError if no credentials are found - assert isinstance( - credentials, google.auth.credentials.Credentials - ), "credentials must be an instance of google.auth.credentials.Credentials" - - credentials.refresh(google.auth.transport.requests.Request()) - project_id = project_id or loaded_project_id - - if project_id is None: - raise ValueError("project_id must be provided") - - def auth_token() -> str: - if access_token: - return access_token - - assert credentials is not None, "credentials must be initialized" - credentials.refresh(google.auth.transport.requests.Request()) - token = credentials.token - if not token: - raise Exception("Failed to get token from credentials") - return token - - client_supplied = True - if client is None: - client = httpx.Client() - client_supplied = False - - assert issubclass( - type(client), HttpClient - ), "The provided client must implement the HttpClient protocol." - - async_client_supplied = True - if async_client is None: - async_client = httpx.AsyncClient() - async_client_supplied = False - - if debug_logger is None: - debug_logger = get_default_logger() - - assert issubclass( - type(async_client), AsyncHttpClient - ), "The provided async_client must implement the AsyncHttpClient protocol." - - security: Any = None - if callable(auth_token): - security = lambda: models.Security( # pylint: disable=unnecessary-lambda-assignment - api_key=auth_token() - ) - else: - security = models.Security(api_key=auth_token) - - BaseSDK.__init__( - self, - SDKConfiguration( - client=client, - client_supplied=client_supplied, - async_client=async_client, - async_client_supplied=async_client_supplied, - security=security, - server_url=f"https://{region}-aiplatform.googleapis.com", - server=None, - retry_config=retry_config, - timeout_ms=timeout_ms, - debug_logger=debug_logger, - ), - ) - - hooks = SDKHooks() - hook = GoogleCloudBeforeRequestHook(region, project_id) - hooks.register_before_request_hook(hook) - current_server_url, *_ = self.sdk_configuration.get_server_details() - server_url, self.sdk_configuration.client = hooks.sdk_init( - current_server_url, client - ) - if current_server_url != server_url: - self.sdk_configuration.server_url = server_url - - # pylint: disable=protected-access - self.sdk_configuration.__dict__["_hooks"] = hooks - - weakref.finalize( - self, - close_clients, - cast(ClientOwner, self.sdk_configuration), - self.sdk_configuration.client, - self.sdk_configuration.client_supplied, - self.sdk_configuration.async_client, - self.sdk_configuration.async_client_supplied, - ) - - self._init_sdks() - - def _init_sdks(self): - self.chat = Chat(self.sdk_configuration) - self.fim = Fim(self.sdk_configuration) - - def __enter__(self): - return self - - async def __aenter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - if ( - self.sdk_configuration.client is not None - and not self.sdk_configuration.client_supplied - ): - self.sdk_configuration.client.close() - self.sdk_configuration.client = None - - async def __aexit__(self, exc_type, exc_val, exc_tb): - if ( - self.sdk_configuration.async_client is not None - and not self.sdk_configuration.async_client_supplied - ): - await self.sdk_configuration.async_client.aclose() - self.sdk_configuration.async_client = None - - -class GoogleCloudBeforeRequestHook(BeforeRequestHook): - def __init__(self, region: str, project_id: str): - self.region = region - self.project_id = project_id - - def before_request( - self, hook_ctx, request: httpx.Request - ) -> Union[httpx.Request, Exception]: - # The goal of this function is to template in the region, project and model into the URL path - # We do this here so that the API remains more user-friendly - model_id = None - new_content = None - if request.content: - parsed = json.loads(request.content.decode("utf-8")) - model_raw = parsed.get("model") - model_name, model_id = get_model_info(model_raw) - parsed["model"] = model_name - new_content = json.dumps(parsed).encode("utf-8") - - if model_id == "": - raise ValueError("model must be provided") - - stream = "streamRawPredict" in request.url.path - specifier = "streamRawPredict" if stream else "rawPredict" - url = f"/v1/projects/{self.project_id}/locations/{self.region}/publishers/mistralai/models/{model_id}:{specifier}" - - headers = dict(request.headers) - # Delete content-length header as it will need to be recalculated - headers.pop("content-length", None) - - next_request = httpx.Request( - method=request.method, - url=request.url.copy_with(path=url), - headers=headers, - content=new_content, - stream=None, - ) - - return next_request diff --git a/packages/mistralai_gcp/uv.lock b/packages/mistralai_gcp/uv.lock index 4fbca724..78afd5b7 100644 --- a/packages/mistralai_gcp/uv.lock +++ b/packages/mistralai_gcp/uv.lock @@ -277,7 +277,7 @@ wheels = [ [[package]] name = "mistralai-gcp" -version = "1.8.0" +version = "2.0.0a4" source = { editable = "." } dependencies = [ { name = "eval-type-backport" }, diff --git a/pyproject.toml b/pyproject.toml index f8006e7d..2bdbff79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mistralai" -version = "2.0.0a3" +version = "2.0.0a4" description = "Python Client SDK for the Mistral AI API." authors = [{ name = "Mistral" }] requires-python = ">=3.10" @@ -65,11 +65,18 @@ default-groups = [ [tool.setuptools.package-data] "*" = ["py.typed", "src/mistralai/client/py.typed"] +[tool.hatch.build] +dev-mode-dirs = [ + "src", + "packages/mistralai_azure/src", + "packages/mistralai_gcp/src", +] + [tool.hatch.build.targets.sdist] include = [ "src/mistralai", - "packages/mistralai_azure/src/mistralai_azure", - "packages/mistralai_gcp/src/mistralai_gcp", + "packages/mistralai_azure/src/mistralai", + "packages/mistralai_gcp/src/mistralai", ] [tool.hatch.build.targets.sdist.force-include] @@ -79,14 +86,14 @@ include = [ [tool.hatch.build.targets.wheel] include = [ "src/mistralai", - "packages/mistralai_azure/src/mistralai_azure", - "packages/mistralai_gcp/src/mistralai_gcp", + "packages/mistralai_azure/src/mistralai", + "packages/mistralai_gcp/src/mistralai", ] [tool.hatch.build.targets.wheel.sources] "src/mistralai" = "mistralai" -"packages/mistralai_azure/src/mistralai_azure" = "mistralai_azure" -"packages/mistralai_gcp/src/mistralai_gcp" = "mistralai_gcp" +"packages/mistralai_azure/src/mistralai/azure" = "mistralai/azure" +"packages/mistralai_gcp/src/mistralai/gcp" = "mistralai/gcp" [build-system] requires = ["hatchling"] diff --git a/scripts/lint_custom_code.sh b/scripts/lint_custom_code.sh index 57bab71a..ac2f2002 100755 --- a/scripts/lint_custom_code.sh +++ b/scripts/lint_custom_code.sh @@ -7,7 +7,19 @@ if [ -f src/mistralai/__init__.py ]; then echo "ERROR: PEP 420 violation - src/mistralai/__init__.py must not exist" ERRORS=1 else - echo "-> PEP 420 namespace OK" + echo "-> PEP 420 namespace OK (core)" +fi +if [ -f packages/mistralai_azure/src/mistralai/__init__.py ]; then + echo "ERROR: PEP 420 violation - packages/mistralai_azure/src/mistralai/__init__.py must not exist" + ERRORS=1 +else + echo "-> PEP 420 namespace OK (azure)" +fi +if [ -f packages/mistralai_gcp/src/mistralai/__init__.py ]; then + echo "ERROR: PEP 420 violation - packages/mistralai_gcp/src/mistralai/__init__.py must not exist" + ERRORS=1 +else + echo "-> PEP 420 namespace OK (gcp)" fi echo "Running mypy..." diff --git a/scripts/run_examples.sh b/scripts/run_examples.sh index 22fc94e5..183ea6f8 100755 --- a/scripts/run_examples.sh +++ b/scripts/run_examples.sh @@ -29,8 +29,8 @@ done exclude_files=( "examples/mistral/chat/chatbot_with_streaming.py" "examples/mistral/agents/async_conversation_run_mcp_remote_auth.py" - "examples/mistral/jobs/async_fine_tuning_chat.py" "examples/mistral/jobs/async_fine_tuning.py" + "examples/mistral/jobs/async_fine_tuning_chat.py" "examples/mistral/jobs/fine_tuning.py" "examples/mistral/jobs/fine_tuning_dry_run.py" "examples/mistral/classifier/async_classifier.py" diff --git a/src/mistralai/client/_version.py b/src/mistralai/client/_version.py index 814d9ec7..78591b3e 100644 --- a/src/mistralai/client/_version.py +++ b/src/mistralai/client/_version.py @@ -4,10 +4,10 @@ import importlib.metadata __title__: str = "mistralai" -__version__: str = "2.0.0a3" +__version__: str = "2.0.0a4" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.794.1" -__user_agent__: str = "speakeasy-sdk/python 2.0.0a3 2.794.1 1.0.0 mistralai" +__user_agent__: str = "speakeasy-sdk/python 2.0.0a4 2.794.1 1.0.0 mistralai" try: if __package__ is not None: diff --git a/tests/test_azure_integration.py b/tests/test_azure_integration.py new file mode 100644 index 00000000..beb071d1 --- /dev/null +++ b/tests/test_azure_integration.py @@ -0,0 +1,131 @@ +""" +Integration tests for Azure SDK. + +These tests require credentials and make real API calls. +Skip if AZURE_API_KEY and AZURE_ENDPOINT env vars are not set. + +Usage: + AZURE_API_KEY=xxx AZURE_ENDPOINT=xxx pytest tests/test_azure_integration.py -v + +Note: AZURE_ENDPOINT should be the base URL of your Azure AI endpoint. +The SDK appends /chat/completions to this URL. + +Example: + export AZURE_ENDPOINT="https://your-resource.services.ai.azure.com/models" + # SDK will call: https://your-resource.services.ai.azure.com/models/chat/completions + +For Azure AI deployments, the model parameter defaults to "azureai" since the +model is determined by the deployment endpoint, not a model ID. +""" +import os +import pytest + +# Skip all tests if credentials not available +AZURE_API_KEY = os.environ.get("AZURE_API_KEY") +AZURE_ENDPOINT = os.environ.get("AZURE_ENDPOINT") +SKIP_REASON = "AZURE_API_KEY and AZURE_ENDPOINT env vars required" + +pytestmark = pytest.mark.skipif( + not AZURE_API_KEY or not AZURE_ENDPOINT, + reason=SKIP_REASON +) + + +@pytest.fixture +def azure_client(): + from mistralai.azure.client import MistralAzure + print(f"\n[DEBUG] Using AZURE_ENDPOINT: {AZURE_ENDPOINT}") + client = MistralAzure( + api_key=AZURE_API_KEY, + server_url=AZURE_ENDPOINT, + ) + # Print the resolved server URL + server_url, _ = client.sdk_configuration.get_server_details() + print(f"[DEBUG] Resolved server_url: {server_url}") + return client + + +class TestAzureChatComplete: + """Test synchronous chat completion.""" + + def test_basic_completion(self, azure_client): + """Test basic chat completion returns a response.""" + res = azure_client.chat.complete( + model="azureai", + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + assert res is not None + assert res.choices is not None + assert len(res.choices) > 0 + assert res.choices[0].message is not None + assert res.choices[0].message.content is not None + assert len(res.choices[0].message.content) > 0 + + def test_completion_with_max_tokens(self, azure_client): + """Test chat completion respects max_tokens.""" + res = azure_client.chat.complete( + model="azureai", + messages=[ + {"role": "user", "content": "Count from 1 to 100."} + ], + max_tokens=10, + ) + assert res is not None + # With max_tokens=10, response should be truncated + assert res.choices[0].finish_reason in ("length", "stop") + + def test_completion_with_temperature(self, azure_client): + """Test chat completion accepts temperature parameter.""" + res = azure_client.chat.complete( + model="azureai", + messages=[ + {"role": "user", "content": "Say 'test'."} + ], + temperature=0.0, + ) + assert res is not None + assert res.choices[0].message.content is not None + + +class TestAzureChatStream: + """Test streaming chat completion.""" + + def test_basic_stream(self, azure_client): + """Test streaming returns chunks.""" + stream = azure_client.chat.stream( + model="azureai", + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + + chunks = list(stream) + assert len(chunks) > 0 + + # Collect content from all chunks + content = "" + for chunk in chunks: + if chunk.data.choices and chunk.data.choices[0].delta.content: + content += chunk.data.choices[0].delta.content + + assert len(content) > 0 + + +class TestAzureChatCompleteAsync: + """Test async chat completion.""" + + @pytest.mark.asyncio + async def test_basic_completion_async(self, azure_client): + """Test async chat completion returns a response.""" + res = await azure_client.chat.complete_async( + model="azureai", + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + assert res is not None + assert res.choices is not None + assert len(res.choices) > 0 + assert res.choices[0].message.content is not None diff --git a/tests/test_azure_v2_parity.py b/tests/test_azure_v2_parity.py new file mode 100644 index 00000000..0127a202 --- /dev/null +++ b/tests/test_azure_v2_parity.py @@ -0,0 +1,99 @@ +""" +Parity tests for the Azure v2 SDK. + +Verifies that the regenerated mistralai.azure package exposes +the same public API surface as the v1 mistralai_azure package. +Uses introspection only — no API calls or credentials required. +""" +import inspect + +from mistralai.azure.client import MistralAzure +from mistralai.azure.client.chat import Chat +from mistralai.azure.client.ocr import Ocr + +AZURE_METHODS: dict[str, set[str]] = { + "chat": {"complete", "stream"}, + "ocr": {"process"}, +} + +TESTED_METHODS: set[str] = set() + +def mark_tested(resource: str, method: str) -> None: + TESTED_METHODS.add(f"{resource}.{method}") + +class TestAzureSDKStructure: + def test_sdk_has_chat(self): + assert "chat" in MistralAzure.__annotations__ + + def test_sdk_has_ocr(self): + assert "ocr" in MistralAzure.__annotations__ + +class TestAzureChat: + def test_has_complete(self): + assert hasattr(Chat, "complete") + mark_tested("chat", "complete") + + def test_has_complete_async(self): + assert hasattr(Chat, "complete_async") + mark_tested("chat", "complete_async") + + def test_has_stream(self): + assert hasattr(Chat, "stream") + mark_tested("chat", "stream") + + def test_has_stream_async(self): + assert hasattr(Chat, "stream_async") + mark_tested("chat", "stream_async") + + def test_complete_accepts_messages(self): + sig = inspect.signature(Chat.complete) + assert "messages" in sig.parameters + + def test_complete_model_defaults_azureai(self): + sig = inspect.signature(Chat.complete) + model_param = sig.parameters.get("model") + assert model_param is not None + assert model_param.default == "azureai" + + def test_stream_accepts_messages(self): + sig = inspect.signature(Chat.stream) + assert "messages" in sig.parameters + +class TestAzureOcr: + def test_has_process(self): + assert hasattr(Ocr, "process") + mark_tested("ocr", "process") + + def test_has_process_async(self): + assert hasattr(Ocr, "process_async") + mark_tested("ocr", "process_async") + + def test_process_accepts_document(self): + sig = inspect.signature(Ocr.process) + assert "document" in sig.parameters + + def test_process_accepts_model(self): + sig = inspect.signature(Ocr.process) + assert "model" in sig.parameters + +class TestAzureCoverage: + def test_all_methods_tested(self): + expected = set() + for resource, methods in AZURE_METHODS.items(): + for method in methods: + expected.add(f"{resource}.{method}") + expected.add(f"{resource}.{method}_async") + untested = expected - TESTED_METHODS + assert not untested, f"Untested methods: {untested}" + + def test_no_unexpected_public_methods_on_chat(self): + public = {m for m in dir(Chat) if not m.startswith("_") and callable(getattr(Chat, m, None))} + known = {"complete", "complete_async", "stream", "stream_async", "do_request", "do_request_async"} + unexpected = public - known + assert not unexpected, f"Unexpected Chat methods: {unexpected}" + + def test_no_unexpected_public_methods_on_ocr(self): + public = {m for m in dir(Ocr) if not m.startswith("_") and callable(getattr(Ocr, m, None))} + known = {"process", "process_async", "do_request", "do_request_async"} + unexpected = public - known + assert not unexpected, f"Unexpected Ocr methods: {unexpected}" diff --git a/tests/test_gcp_integration.py b/tests/test_gcp_integration.py new file mode 100644 index 00000000..512af21d --- /dev/null +++ b/tests/test_gcp_integration.py @@ -0,0 +1,210 @@ +""" +Integration tests for GCP SDK. + +These tests require GCP credentials and make real API calls. +Skip if GCP_API_KEY env var is not set. + +Prerequisites: + 1. Authenticate with GCP: gcloud auth application-default login + 2. Have "Vertex AI User" role on the project + +Usage: + GCP_API_KEY=xxx GCP_SERVER_URL=xxx pytest tests/test_gcp_integration.py -v + +Environment variables: + GCP_API_KEY: OAuth token from gcloud auth print-access-token + GCP_SERVER_URL: Vertex AI endpoint URL for chat + GCP_FIM_SERVER_URL: Vertex AI endpoint URL for FIM + GCP_MODEL: Model name for chat (default: mistral-small-2503) + GCP_FIM_MODEL: Model name for FIM (default: codestral-2) + +Example: + export GCP_API_KEY=$(gcloud auth print-access-token) + export GCP_SERVER_URL="https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT/locations/us-central1/endpoints/YOUR_CHAT_ENDPOINT" + pytest tests/test_gcp_integration.py -v + +FIM Tests - KNOWN ISSUE: + FIM tests timeout under pytest but the SDK works correctly. + + Evidence: + 1. curl works instantly: + curl -X POST \ + -H "Authorization: Bearer $(gcloud auth print-access-token)" \ + -H "Content-Type: application/json" \ + "https://.../:rawPredict" \ + -d '{"model":"codestral-2","prompt":"def fib():","suffix":" return result"}' + + 2. SDK outside pytest works instantly: + python -c " + from mistralai.gcp.client import MistralGCP + client = MistralGCP(api_key=token, server_url=url) + res = client.fim.complete(model='codestral-2', prompt='def fib():', suffix='return result') + " + + 3. SDK in pytest times out at httpcore socket read level. + + Root cause unknown - likely pytest/httpcore interaction. +""" +import os +import subprocess +import pytest + +# Skip all tests if credentials not available +GCP_API_KEY = os.environ.get("GCP_API_KEY") +GCP_SERVER_URL = os.environ.get("GCP_SERVER_URL") +GCP_FIM_SERVER_URL = os.environ.get("GCP_FIM_SERVER_URL") +SKIP_REASON = "GCP_API_KEY env var required" + +pytestmark = pytest.mark.skipif( + not GCP_API_KEY, + reason=SKIP_REASON +) + +# Models +GCP_MODEL = os.environ.get("GCP_MODEL", "mistral-small-2503") +GCP_FIM_MODEL = os.environ.get("GCP_FIM_MODEL", "codestral-2") + + +@pytest.fixture +def gcp_client(): + """Create a GCP client for chat tests.""" + from mistralai.gcp.client import MistralGCP + return MistralGCP( + api_key=GCP_API_KEY, + server_url=GCP_SERVER_URL, + ) + + +class TestGCPChatComplete: + """Test synchronous chat completion.""" + + def test_basic_completion(self, gcp_client): + """Test basic chat completion returns a response.""" + res = gcp_client.chat.complete( + model=GCP_MODEL, + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + assert res is not None + assert res.choices is not None + assert len(res.choices) > 0 + assert res.choices[0].message is not None + assert res.choices[0].message.content is not None + assert len(res.choices[0].message.content) > 0 + + def test_completion_with_max_tokens(self, gcp_client): + """Test chat completion respects max_tokens.""" + res = gcp_client.chat.complete( + model=GCP_MODEL, + messages=[ + {"role": "user", "content": "Count from 1 to 100."} + ], + max_tokens=10, + ) + assert res is not None + # With max_tokens=10, response should be truncated + assert res.choices[0].finish_reason in ("length", "stop") + + def test_completion_with_temperature(self, gcp_client): + """Test chat completion accepts temperature parameter.""" + res = gcp_client.chat.complete( + model=GCP_MODEL, + messages=[ + {"role": "user", "content": "Say 'test'."} + ], + temperature=0.0, + ) + assert res is not None + assert res.choices[0].message.content is not None + + +class TestGCPChatStream: + """Test streaming chat completion.""" + + def test_basic_stream(self, gcp_client): + """Test streaming returns chunks.""" + stream = gcp_client.chat.stream( + model=GCP_MODEL, + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + + chunks = list(stream) + assert len(chunks) > 0 + + # Collect content from all chunks + content = "" + for chunk in chunks: + if chunk.data.choices and chunk.data.choices[0].delta.content: + content += chunk.data.choices[0].delta.content + + assert len(content) > 0 + + +class TestGCPChatCompleteAsync: + """Test async chat completion.""" + + @pytest.mark.asyncio + async def test_basic_completion_async(self, gcp_client): + """Test async chat completion returns a response.""" + res = await gcp_client.chat.complete_async( + model=GCP_MODEL, + messages=[ + {"role": "user", "content": "Say 'hello' and nothing else."} + ], + ) + assert res is not None + assert res.choices is not None + assert len(res.choices) > 0 + assert res.choices[0].message.content is not None + + +# ============================================================================= +# FIM Tests - Skipped due to pytest/httpcore timeout issue (see module docstring) +# ============================================================================= + +def get_fresh_token(): + """Get fresh GCP token for FIM tests.""" + result = subprocess.run( + ["gcloud", "auth", "print-access-token"], + capture_output=True, text=True + ) + return result.stdout.strip() + + +@pytest.mark.skip(reason="FIM tests timeout under pytest - see module docstring") +def test_fim_complete(): + """Test FIM completion returns a response.""" + from mistralai.gcp.client import MistralGCP + + token = get_fresh_token() + client = MistralGCP(api_key=token, server_url=GCP_FIM_SERVER_URL) + + res = client.fim.complete( + model=GCP_FIM_MODEL, + prompt="def fib():", + suffix=" return result", + timeout_ms=10000, + ) + assert res is not None + assert res.choices is not None + + +@pytest.mark.skip(reason="FIM tests timeout under pytest - see module docstring") +def test_fim_stream(): + """Test FIM streaming returns chunks.""" + from mistralai.gcp.client import MistralGCP + + token = get_fresh_token() + client = MistralGCP(api_key=token, server_url=GCP_FIM_SERVER_URL) + + stream = client.fim.stream( + model=GCP_FIM_MODEL, + prompt="def hello():", + suffix=" return greeting", + timeout_ms=10000, + ) + chunks = list(stream) + assert len(chunks) > 0 diff --git a/tests/test_gcp_v2_parity.py b/tests/test_gcp_v2_parity.py new file mode 100644 index 00000000..e864b627 --- /dev/null +++ b/tests/test_gcp_v2_parity.py @@ -0,0 +1,119 @@ +""" +Parity tests for the GCP v2 SDK. + +Verifies that the regenerated mistralai.gcp package exposes +the same public API surface as the v1 mistralai_gcp package. +Uses introspection only — no API calls or credentials required. +""" +import inspect + +from mistralai.gcp.client import MistralGCP +from mistralai.gcp.client.chat import Chat +from mistralai.gcp.client.fim import Fim + +GCP_METHODS: dict[str, set[str]] = { + "chat": {"complete", "stream"}, + "fim": {"complete", "stream"}, +} + +TESTED_METHODS: set[str] = set() + +def mark_tested(resource: str, method: str) -> None: + TESTED_METHODS.add(f"{resource}.{method}") + +class TestGCPSDKStructure: + def test_sdk_has_chat(self): + assert "chat" in MistralGCP.__annotations__ + + def test_sdk_has_fim(self): + assert "fim" in MistralGCP.__annotations__ + +class TestGCPChat: + def test_has_complete(self): + assert hasattr(Chat, "complete") + mark_tested("chat", "complete") + + def test_has_complete_async(self): + assert hasattr(Chat, "complete_async") + mark_tested("chat", "complete_async") + + def test_has_stream(self): + assert hasattr(Chat, "stream") + mark_tested("chat", "stream") + + def test_has_stream_async(self): + assert hasattr(Chat, "stream_async") + mark_tested("chat", "stream_async") + + def test_complete_accepts_messages(self): + sig = inspect.signature(Chat.complete) + assert "messages" in sig.parameters + + def test_complete_requires_model(self): + sig = inspect.signature(Chat.complete) + model_param = sig.parameters.get("model") + assert model_param is not None + assert model_param.default is inspect.Parameter.empty + + def test_stream_accepts_messages(self): + sig = inspect.signature(Chat.stream) + assert "messages" in sig.parameters + + def test_stream_requires_model(self): + sig = inspect.signature(Chat.stream) + model_param = sig.parameters.get("model") + assert model_param is not None + assert model_param.default is inspect.Parameter.empty + +class TestGCPFim: + def test_has_complete(self): + assert hasattr(Fim, "complete") + mark_tested("fim", "complete") + + def test_has_complete_async(self): + assert hasattr(Fim, "complete_async") + mark_tested("fim", "complete_async") + + def test_has_stream(self): + assert hasattr(Fim, "stream") + mark_tested("fim", "stream") + + def test_has_stream_async(self): + assert hasattr(Fim, "stream_async") + mark_tested("fim", "stream_async") + + def test_complete_accepts_prompt(self): + sig = inspect.signature(Fim.complete) + assert "prompt" in sig.parameters + + def test_complete_requires_model(self): + sig = inspect.signature(Fim.complete) + model_param = sig.parameters.get("model") + assert model_param is not None + assert model_param.default is inspect.Parameter.empty + + def test_stream_accepts_prompt(self): + sig = inspect.signature(Fim.stream) + assert "prompt" in sig.parameters + +class TestGCPCoverage: + def test_all_methods_tested(self): + expected = set() + for resource, methods in GCP_METHODS.items(): + for method in methods: + expected.add(f"{resource}.{method}") + expected.add(f"{resource}.{method}_async") + untested = expected - TESTED_METHODS + assert not untested, f"Untested methods: {untested}" + + def test_no_unexpected_public_methods_on_chat(self): + public = {m for m in dir(Chat) if not m.startswith("_") and callable(getattr(Chat, m, None))} + known = {"complete", "complete_async", "stream", "stream_async", "do_request", "do_request_async"} + unexpected = public - known + assert not unexpected, f"Unexpected Chat methods: {unexpected}" + + def test_no_unexpected_public_methods_on_fim(self): + public = {m for m in dir(Fim) if not m.startswith("_") and callable(getattr(Fim, m, None))} + known = {"complete", "complete_async", "stream", "stream_async", "do_request", "do_request_async"} + unexpected = public - known + assert not unexpected, f"Unexpected Fim methods: {unexpected}" diff --git a/uv.lock b/uv.lock index 1e667c77..ea026c6d 100644 --- a/uv.lock +++ b/uv.lock @@ -10,7 +10,7 @@ resolution-markers = [ [[package]] name = "annotated-types" version = "0.7.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, @@ -19,7 +19,7 @@ wheels = [ [[package]] name = "anyio" version = "4.12.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "idna" }, @@ -33,7 +33,7 @@ wheels = [ [[package]] name = "astroid" version = "3.2.4" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] @@ -45,7 +45,7 @@ wheels = [ [[package]] name = "attrs" version = "25.4.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, @@ -54,7 +54,7 @@ wheels = [ [[package]] name = "authlib" version = "1.6.6" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "cryptography" }, ] @@ -66,7 +66,7 @@ wheels = [ [[package]] name = "cachetools" version = "6.2.4" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/bc/1d/ede8680603f6016887c062a2cf4fc8fdba905866a3ab8831aa8aa651320c/cachetools-6.2.4.tar.gz", hash = "sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607", size = 31731, upload-time = "2025-12-15T18:24:53.744Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2c/fc/1d7b80d0eb7b714984ce40efc78859c022cd930e402f599d8ca9e39c78a4/cachetools-6.2.4-py3-none-any.whl", hash = "sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51", size = 11551, upload-time = "2025-12-15T18:24:52.332Z" }, @@ -75,7 +75,7 @@ wheels = [ [[package]] name = "certifi" version = "2025.11.12" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, @@ -84,7 +84,7 @@ wheels = [ [[package]] name = "cffi" version = "2.0.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] @@ -166,7 +166,7 @@ wheels = [ [[package]] name = "charset-normalizer" version = "3.4.4" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, @@ -255,7 +255,7 @@ wheels = [ [[package]] name = "click" version = "8.3.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] @@ -267,7 +267,7 @@ wheels = [ [[package]] name = "colorama" version = "0.4.6" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, @@ -276,7 +276,7 @@ wheels = [ [[package]] name = "cryptography" version = "46.0.3" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, @@ -341,7 +341,7 @@ wheels = [ [[package]] name = "dill" version = "0.4.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", size = 186976, upload-time = "2025-04-16T00:41:48.867Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049", size = 119668, upload-time = "2025-04-16T00:41:47.671Z" }, @@ -350,7 +350,7 @@ wheels = [ [[package]] name = "eval-type-backport" version = "0.3.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/fb/a3/cafafb4558fd638aadfe4121dc6cefb8d743368c085acb2f521df0f3d9d7/eval_type_backport-0.3.1.tar.gz", hash = "sha256:57e993f7b5b69d271e37482e62f74e76a0276c82490cf8e4f0dffeb6b332d5ed", size = 9445, upload-time = "2025-12-02T11:51:42.987Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cf/22/fdc2e30d43ff853720042fa15baa3e6122722be1a7950a98233ebb55cd71/eval_type_backport-0.3.1-py3-none-any.whl", hash = "sha256:279ab641905e9f11129f56a8a78f493518515b83402b860f6f06dd7c011fdfa8", size = 6063, upload-time = "2025-12-02T11:51:41.665Z" }, @@ -359,7 +359,7 @@ wheels = [ [[package]] name = "exceptiongroup" version = "1.3.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] @@ -371,7 +371,7 @@ wheels = [ [[package]] name = "google-auth" version = "2.45.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "cachetools" }, { name = "pyasn1-modules" }, @@ -385,7 +385,7 @@ wheels = [ [[package]] name = "googleapis-common-protos" version = "1.72.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "protobuf" }, ] @@ -397,7 +397,7 @@ wheels = [ [[package]] name = "griffe" version = "1.15.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "colorama" }, ] @@ -409,7 +409,7 @@ wheels = [ [[package]] name = "h11" version = "0.16.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, @@ -418,7 +418,7 @@ wheels = [ [[package]] name = "httpcore" version = "1.0.9" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "certifi" }, { name = "h11" }, @@ -431,7 +431,7 @@ wheels = [ [[package]] name = "httpx" version = "0.28.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "anyio" }, { name = "certifi" }, @@ -446,7 +446,7 @@ wheels = [ [[package]] name = "httpx-sse" version = "0.4.3" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, @@ -455,7 +455,7 @@ wheels = [ [[package]] name = "idna" version = "3.11" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, @@ -464,7 +464,7 @@ wheels = [ [[package]] name = "importlib-metadata" version = "8.7.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "zipp" }, ] @@ -476,7 +476,7 @@ wheels = [ [[package]] name = "iniconfig" version = "2.3.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, @@ -485,7 +485,7 @@ wheels = [ [[package]] name = "invoke" version = "2.2.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/de/bd/b461d3424a24c80490313fd77feeb666ca4f6a28c7e72713e3d9095719b4/invoke-2.2.1.tar.gz", hash = "sha256:515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707", size = 304762, upload-time = "2025-10-11T00:36:35.172Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/32/4b/b99e37f88336009971405cbb7630610322ed6fbfa31e1d7ab3fbf3049a2d/invoke-2.2.1-py3-none-any.whl", hash = "sha256:2413bc441b376e5cd3f55bb5d364f973ad8bdd7bf87e53c79de3c11bf3feecc8", size = 160287, upload-time = "2025-10-11T00:36:33.703Z" }, @@ -494,7 +494,7 @@ wheels = [ [[package]] name = "isort" version = "5.13.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303, upload-time = "2023-12-13T20:37:26.124Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310, upload-time = "2023-12-13T20:37:23.244Z" }, @@ -503,7 +503,7 @@ wheels = [ [[package]] name = "jsonschema" version = "4.25.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "attrs" }, { name = "jsonschema-specifications" }, @@ -518,7 +518,7 @@ wheels = [ [[package]] name = "jsonschema-specifications" version = "2025.9.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "referencing" }, ] @@ -530,7 +530,7 @@ wheels = [ [[package]] name = "mccabe" version = "0.7.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658, upload-time = "2022-01-24T01:14:51.113Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350, upload-time = "2022-01-24T01:14:49.62Z" }, @@ -539,7 +539,7 @@ wheels = [ [[package]] name = "mcp" version = "1.25.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "anyio" }, { name = "httpx" }, @@ -563,7 +563,7 @@ wheels = [ [[package]] name = "mistralai" -version = "2.0.0a2" +version = "2.0.0a4" source = { editable = "." } dependencies = [ { name = "eval-type-backport" }, @@ -658,7 +658,7 @@ lint = [ [[package]] name = "mypy" version = "1.15.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "mypy-extensions" }, { name = "tomli", marker = "python_full_version < '3.11'" }, @@ -696,7 +696,7 @@ wheels = [ [[package]] name = "mypy-extensions" version = "1.1.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, @@ -705,7 +705,7 @@ wheels = [ [[package]] name = "nodeenv" version = "1.10.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, @@ -714,7 +714,7 @@ wheels = [ [[package]] name = "opentelemetry-api" version = "1.38.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "importlib-metadata" }, { name = "typing-extensions" }, @@ -727,7 +727,7 @@ wheels = [ [[package]] name = "opentelemetry-exporter-otlp-proto-common" version = "1.38.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "opentelemetry-proto" }, ] @@ -739,7 +739,7 @@ wheels = [ [[package]] name = "opentelemetry-exporter-otlp-proto-http" version = "1.38.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "googleapis-common-protos" }, { name = "opentelemetry-api" }, @@ -757,7 +757,7 @@ wheels = [ [[package]] name = "opentelemetry-proto" version = "1.38.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "protobuf" }, ] @@ -769,7 +769,7 @@ wheels = [ [[package]] name = "opentelemetry-sdk" version = "1.38.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "opentelemetry-api" }, { name = "opentelemetry-semantic-conventions" }, @@ -783,7 +783,7 @@ wheels = [ [[package]] name = "opentelemetry-semantic-conventions" version = "0.59b0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "opentelemetry-api" }, { name = "typing-extensions" }, @@ -796,7 +796,7 @@ wheels = [ [[package]] name = "packaging" version = "25.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, @@ -805,7 +805,7 @@ wheels = [ [[package]] name = "platformdirs" version = "4.5.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, @@ -814,7 +814,7 @@ wheels = [ [[package]] name = "pluggy" version = "1.6.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, @@ -823,7 +823,7 @@ wheels = [ [[package]] name = "protobuf" version = "6.33.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/34/44/e49ecff446afeec9d1a66d6bbf9adc21e3c7cea7803a920ca3773379d4f6/protobuf-6.33.2.tar.gz", hash = "sha256:56dc370c91fbb8ac85bc13582c9e373569668a290aa2e66a590c2a0d35ddb9e4", size = 444296, upload-time = "2025-12-06T00:17:53.311Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/bc/91/1e3a34881a88697a7354ffd177e8746e97a722e5e8db101544b47e84afb1/protobuf-6.33.2-cp310-abi3-win32.whl", hash = "sha256:87eb388bd2d0f78febd8f4c8779c79247b26a5befad525008e49a6955787ff3d", size = 425603, upload-time = "2025-12-06T00:17:41.114Z" }, @@ -838,7 +838,7 @@ wheels = [ [[package]] name = "pyasn1" version = "0.6.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322, upload-time = "2024-09-10T22:41:42.55Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135, upload-time = "2024-09-11T16:00:36.122Z" }, @@ -847,7 +847,7 @@ wheels = [ [[package]] name = "pyasn1-modules" version = "0.4.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "pyasn1" }, ] @@ -859,7 +859,7 @@ wheels = [ [[package]] name = "pycparser" version = "2.23" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, @@ -868,7 +868,7 @@ wheels = [ [[package]] name = "pydantic" version = "2.12.5" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "annotated-types" }, { name = "pydantic-core" }, @@ -883,7 +883,7 @@ wheels = [ [[package]] name = "pydantic-core" version = "2.41.5" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions" }, ] @@ -1001,7 +1001,7 @@ wheels = [ [[package]] name = "pydantic-settings" version = "2.12.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, @@ -1015,7 +1015,7 @@ wheels = [ [[package]] name = "pygments" version = "2.19.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, @@ -1024,7 +1024,7 @@ wheels = [ [[package]] name = "pyjwt" version = "2.10.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, @@ -1038,7 +1038,7 @@ crypto = [ [[package]] name = "pylint" version = "3.2.3" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "astroid" }, { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1057,7 +1057,7 @@ wheels = [ [[package]] name = "pyright" version = "1.1.407" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, @@ -1070,7 +1070,7 @@ wheels = [ [[package]] name = "pytest" version = "8.4.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, @@ -1088,7 +1088,7 @@ wheels = [ [[package]] name = "pytest-asyncio" version = "0.23.8" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "pytest" }, ] @@ -1100,7 +1100,7 @@ wheels = [ [[package]] name = "python-dateutil" version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "six" }, ] @@ -1112,7 +1112,7 @@ wheels = [ [[package]] name = "python-dotenv" version = "1.2.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, @@ -1121,7 +1121,7 @@ wheels = [ [[package]] name = "python-multipart" version = "0.0.21" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/78/96/804520d0850c7db98e5ccb70282e29208723f0964e88ffd9d0da2f52ea09/python_multipart-0.0.21.tar.gz", hash = "sha256:7137ebd4d3bbf70ea1622998f902b97a29434a9e8dc40eb203bbcf7c2a2cba92", size = 37196, upload-time = "2025-12-17T09:24:22.446Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/aa/76/03af049af4dcee5d27442f71b6924f01f3efb5d2bd34f23fcd563f2cc5f5/python_multipart-0.0.21-py3-none-any.whl", hash = "sha256:cf7a6713e01c87aa35387f4774e812c4361150938d20d232800f75ffcf266090", size = 24541, upload-time = "2025-12-17T09:24:21.153Z" }, @@ -1130,7 +1130,7 @@ wheels = [ [[package]] name = "pywin32" version = "311" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } wheels = [ { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432, upload-time = "2025-07-14T20:13:05.9Z" }, { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103, upload-time = "2025-07-14T20:13:07.698Z" }, @@ -1152,7 +1152,7 @@ wheels = [ [[package]] name = "pyyaml" version = "6.0.3" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, @@ -1216,7 +1216,7 @@ wheels = [ [[package]] name = "referencing" version = "0.37.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "attrs" }, { name = "rpds-py" }, @@ -1230,7 +1230,7 @@ wheels = [ [[package]] name = "requests" version = "2.32.5" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "certifi" }, { name = "charset-normalizer" }, @@ -1245,7 +1245,7 @@ wheels = [ [[package]] name = "rpds-py" version = "0.30.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, @@ -1367,7 +1367,7 @@ wheels = [ [[package]] name = "rsa" version = "4.9.1" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "pyasn1" }, ] @@ -1379,7 +1379,7 @@ wheels = [ [[package]] name = "ruff" version = "0.11.13" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/ed/da/9c6f995903b4d9474b39da91d2d626659af3ff1eeb43e9ae7c119349dba6/ruff-0.11.13.tar.gz", hash = "sha256:26fa247dc68d1d4e72c179e08889a25ac0c7ba4d78aecfc835d49cbfd60bf514", size = 4282054, upload-time = "2025-06-05T21:00:15.721Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/7d/ce/a11d381192966e0b4290842cc8d4fac7dc9214ddf627c11c1afff87da29b/ruff-0.11.13-py3-none-linux_armv6l.whl", hash = "sha256:4bdfbf1240533f40042ec00c9e09a3aade6f8c10b6414cf11b519488d2635d46", size = 10292516, upload-time = "2025-06-05T20:59:32.944Z" }, @@ -1404,7 +1404,7 @@ wheels = [ [[package]] name = "six" version = "1.17.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, @@ -1413,7 +1413,7 @@ wheels = [ [[package]] name = "sse-starlette" version = "3.1.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "anyio" }, { name = "starlette" }, @@ -1426,7 +1426,7 @@ wheels = [ [[package]] name = "starlette" version = "0.50.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "anyio" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, @@ -1439,7 +1439,7 @@ wheels = [ [[package]] name = "tomli" version = "2.3.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, @@ -1488,7 +1488,7 @@ wheels = [ [[package]] name = "tomlkit" version = "0.13.3" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, @@ -1497,7 +1497,7 @@ wheels = [ [[package]] name = "types-authlib" version = "1.6.6.20251220" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "cryptography" }, ] @@ -1509,7 +1509,7 @@ wheels = [ [[package]] name = "types-python-dateutil" version = "2.9.0.20251115" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/6a/36/06d01fb52c0d57e9ad0c237654990920fa41195e4b3d640830dabf9eeb2f/types_python_dateutil-2.9.0.20251115.tar.gz", hash = "sha256:8a47f2c3920f52a994056b8786309b43143faa5a64d4cbb2722d6addabdf1a58", size = 16363, upload-time = "2025-11-15T03:00:13.717Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/43/0b/56961d3ba517ed0df9b3a27bfda6514f3d01b28d499d1bce9068cfe4edd1/types_python_dateutil-2.9.0.20251115-py3-none-any.whl", hash = "sha256:9cf9c1c582019753b8639a081deefd7e044b9fa36bd8217f565c6c4e36ee0624", size = 18251, upload-time = "2025-11-15T03:00:12.317Z" }, @@ -1518,7 +1518,7 @@ wheels = [ [[package]] name = "types-pyyaml" version = "6.0.12.20250915" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/7e/69/3c51b36d04da19b92f9e815be12753125bd8bc247ba0470a982e6979e71c/types_pyyaml-6.0.12.20250915.tar.gz", hash = "sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3", size = 17522, upload-time = "2025-09-15T03:01:00.728Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/bd/e0/1eed384f02555dde685fff1a1ac805c1c7dcb6dd019c916fe659b1c1f9ec/types_pyyaml-6.0.12.20250915-py3-none-any.whl", hash = "sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6", size = 20338, upload-time = "2025-09-15T03:00:59.218Z" }, @@ -1527,7 +1527,7 @@ wheels = [ [[package]] name = "typing-extensions" version = "4.15.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, @@ -1536,7 +1536,7 @@ wheels = [ [[package]] name = "typing-inspection" version = "0.4.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions" }, ] @@ -1548,7 +1548,7 @@ wheels = [ [[package]] name = "urllib3" version = "2.6.2" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, @@ -1557,7 +1557,7 @@ wheels = [ [[package]] name = "uvicorn" version = "0.40.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "click" }, { name = "h11" }, @@ -1571,7 +1571,7 @@ wheels = [ [[package]] name = "websockets" version = "16.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343, upload-time = "2026-01-10T09:22:21.28Z" }, @@ -1639,7 +1639,7 @@ wheels = [ [[package]] name = "zipp" version = "3.23.0" -source = { registry = "https://pypi.org/simple" } +source = { registry = "https://pypi.org/simple/" } sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" },