mistralai 1.8.2__py3-none-any.whl → 1.9.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. mistralai/_hooks/types.py +7 -0
  2. mistralai/_version.py +3 -3
  3. mistralai/accesses.py +672 -0
  4. mistralai/agents.py +8 -4
  5. mistralai/basesdk.py +12 -20
  6. mistralai/beta.py +4 -0
  7. mistralai/chat.py +8 -4
  8. mistralai/classifiers.py +8 -0
  9. mistralai/conversations.py +34 -14
  10. mistralai/documents.py +2136 -0
  11. mistralai/embeddings.py +2 -0
  12. mistralai/extra/run/context.py +2 -4
  13. mistralai/files.py +14 -2
  14. mistralai/fim.py +4 -0
  15. mistralai/httpclient.py +6 -16
  16. mistralai/jobs.py +10 -0
  17. mistralai/libraries.py +1041 -0
  18. mistralai/mistral_agents.py +10 -0
  19. mistralai/mistral_jobs.py +8 -0
  20. mistralai/models/__init__.py +1578 -721
  21. mistralai/models/agent.py +1 -1
  22. mistralai/models/agentconversation.py +1 -1
  23. mistralai/models/agentcreationrequest.py +1 -1
  24. mistralai/models/agenthandoffentry.py +1 -1
  25. mistralai/models/agents_api_v1_conversations_getop.py +2 -0
  26. mistralai/models/agents_api_v1_conversations_historyop.py +2 -0
  27. mistralai/models/agents_api_v1_conversations_messagesop.py +2 -0
  28. mistralai/models/agents_api_v1_conversations_restart_streamop.py +2 -0
  29. mistralai/models/agents_api_v1_conversations_restartop.py +2 -0
  30. mistralai/models/agentscompletionrequest.py +3 -1
  31. mistralai/models/agentscompletionstreamrequest.py +3 -1
  32. mistralai/models/agentupdaterequest.py +1 -1
  33. mistralai/models/assistantmessage.py +1 -1
  34. mistralai/models/basemodelcard.py +6 -1
  35. mistralai/models/batchjobin.py +1 -1
  36. mistralai/models/batchjobout.py +1 -1
  37. mistralai/models/chatcompletionrequest.py +3 -1
  38. mistralai/models/chatcompletionstreamrequest.py +3 -1
  39. mistralai/models/classifierdetailedjobout.py +1 -1
  40. mistralai/models/classifierftmodelout.py +1 -1
  41. mistralai/models/classifierjobout.py +1 -1
  42. mistralai/models/classifiertargetin.py +1 -1
  43. mistralai/models/classifiertrainingparameters.py +1 -1
  44. mistralai/models/classifiertrainingparametersin.py +1 -1
  45. mistralai/models/completionargs.py +1 -1
  46. mistralai/models/completiondetailedjobout.py +1 -1
  47. mistralai/models/completionftmodelout.py +1 -1
  48. mistralai/models/completionjobout.py +1 -1
  49. mistralai/models/completionresponsestreamchoice.py +1 -1
  50. mistralai/models/completiontrainingparameters.py +1 -1
  51. mistralai/models/completiontrainingparametersin.py +1 -1
  52. mistralai/models/contentchunk.py +3 -0
  53. mistralai/models/conversationevents.py +6 -0
  54. mistralai/models/conversationhistory.py +4 -4
  55. mistralai/models/conversationrequest.py +1 -1
  56. mistralai/models/conversationstreamrequest.py +1 -1
  57. mistralai/models/conversationusageinfo.py +1 -1
  58. mistralai/models/deltamessage.py +1 -1
  59. mistralai/models/documentout.py +105 -0
  60. mistralai/models/documenttextcontent.py +13 -0
  61. mistralai/models/documentupdatein.py +44 -0
  62. mistralai/models/documenturlchunk.py +1 -1
  63. mistralai/models/embeddingrequest.py +1 -1
  64. mistralai/models/entitytype.py +9 -0
  65. mistralai/models/eventout.py +1 -1
  66. mistralai/models/file.py +33 -0
  67. mistralai/models/filechunk.py +23 -0
  68. mistralai/models/files_api_routes_list_filesop.py +1 -1
  69. mistralai/models/files_api_routes_upload_fileop.py +2 -27
  70. mistralai/models/fileschema.py +1 -1
  71. mistralai/models/fimcompletionrequest.py +1 -1
  72. mistralai/models/fimcompletionstreamrequest.py +1 -1
  73. mistralai/models/ftmodelcard.py +6 -1
  74. mistralai/models/functioncallentry.py +1 -1
  75. mistralai/models/functionresultentry.py +1 -1
  76. mistralai/models/githubrepositoryin.py +1 -1
  77. mistralai/models/githubrepositoryout.py +1 -1
  78. mistralai/models/imageurl.py +1 -1
  79. mistralai/models/inputentries.py +21 -2
  80. mistralai/models/jobin.py +1 -1
  81. mistralai/models/jobmetadataout.py +1 -1
  82. mistralai/models/jobs_api_routes_batch_get_batch_jobsop.py +1 -1
  83. mistralai/models/jobs_api_routes_fine_tuning_get_fine_tuning_jobsop.py +1 -1
  84. mistralai/models/jsonschema.py +1 -1
  85. mistralai/models/legacyjobmetadataout.py +1 -1
  86. mistralai/models/libraries_delete_v1op.py +16 -0
  87. mistralai/models/libraries_documents_delete_v1op.py +21 -0
  88. mistralai/models/libraries_documents_get_extracted_text_signed_url_v1op.py +21 -0
  89. mistralai/models/libraries_documents_get_signed_url_v1op.py +21 -0
  90. mistralai/models/libraries_documents_get_status_v1op.py +21 -0
  91. mistralai/models/libraries_documents_get_text_content_v1op.py +21 -0
  92. mistralai/models/libraries_documents_get_v1op.py +21 -0
  93. mistralai/models/libraries_documents_list_v1op.py +78 -0
  94. mistralai/models/libraries_documents_reprocess_v1op.py +21 -0
  95. mistralai/models/libraries_documents_update_v1op.py +28 -0
  96. mistralai/models/libraries_documents_upload_v1op.py +56 -0
  97. mistralai/models/libraries_get_v1op.py +16 -0
  98. mistralai/models/libraries_share_create_v1op.py +22 -0
  99. mistralai/models/libraries_share_delete_v1op.py +23 -0
  100. mistralai/models/libraries_share_list_v1op.py +16 -0
  101. mistralai/models/libraries_update_v1op.py +23 -0
  102. mistralai/models/libraryin.py +50 -0
  103. mistralai/models/libraryinupdate.py +47 -0
  104. mistralai/models/libraryout.py +107 -0
  105. mistralai/models/listdocumentout.py +19 -0
  106. mistralai/models/listlibraryout.py +15 -0
  107. mistralai/models/listsharingout.py +15 -0
  108. mistralai/models/messageinputentry.py +12 -2
  109. mistralai/models/messageoutputentry.py +1 -1
  110. mistralai/models/messageoutputevent.py +1 -1
  111. mistralai/models/metricout.py +1 -1
  112. mistralai/models/modelcapabilities.py +3 -0
  113. mistralai/models/modelconversation.py +1 -1
  114. mistralai/models/ocrimageobject.py +1 -1
  115. mistralai/models/ocrpageobject.py +1 -1
  116. mistralai/models/ocrrequest.py +5 -3
  117. mistralai/models/ocrresponse.py +1 -1
  118. mistralai/models/ocrusageinfo.py +1 -1
  119. mistralai/models/paginationinfo.py +25 -0
  120. mistralai/models/processingstatusout.py +16 -0
  121. mistralai/models/responseformat.py +1 -1
  122. mistralai/models/retrievefileout.py +1 -1
  123. mistralai/models/shareenum.py +8 -0
  124. mistralai/models/sharingdelete.py +26 -0
  125. mistralai/models/sharingin.py +30 -0
  126. mistralai/models/sharingout.py +59 -0
  127. mistralai/models/ssetypes.py +1 -0
  128. mistralai/models/toolexecutiondeltaevent.py +34 -0
  129. mistralai/models/toolexecutionentry.py +4 -1
  130. mistralai/models/toolexecutionstartedevent.py +3 -0
  131. mistralai/models/toolfilechunk.py +1 -1
  132. mistralai/models/toolmessage.py +1 -1
  133. mistralai/models/toolreferencechunk.py +8 -5
  134. mistralai/models/updateftmodelin.py +1 -1
  135. mistralai/models/uploadfileout.py +1 -1
  136. mistralai/models/usermessage.py +1 -1
  137. mistralai/models/wandbintegration.py +1 -1
  138. mistralai/models/wandbintegrationout.py +1 -1
  139. mistralai/models_.py +14 -2
  140. mistralai/ocr.py +2 -0
  141. mistralai/sdk.py +68 -40
  142. mistralai/sdkconfiguration.py +0 -7
  143. mistralai/types/basemodel.py +3 -3
  144. mistralai/utils/__init__.py +131 -45
  145. mistralai/utils/datetimes.py +23 -0
  146. mistralai/utils/enums.py +67 -27
  147. mistralai/utils/forms.py +49 -28
  148. mistralai/utils/serializers.py +32 -3
  149. {mistralai-1.8.2.dist-info → mistralai-1.9.2.dist-info}/METADATA +41 -7
  150. {mistralai-1.8.2.dist-info → mistralai-1.9.2.dist-info}/RECORD +152 -113
  151. {mistralai-1.8.2.dist-info → mistralai-1.9.2.dist-info}/LICENSE +0 -0
  152. {mistralai-1.8.2.dist-info → mistralai-1.9.2.dist-info}/WHEEL +0 -0
mistralai/embeddings.py CHANGED
@@ -84,6 +84,7 @@ class Embeddings(BaseSDK):
84
84
 
85
85
  http_res = self.do_request(
86
86
  hook_ctx=HookContext(
87
+ config=self.sdk_configuration,
87
88
  base_url=base_url or "",
88
89
  operation_id="embeddings_v1_embeddings_post",
89
90
  oauth2_scopes=[],
@@ -197,6 +198,7 @@ class Embeddings(BaseSDK):
197
198
 
198
199
  http_res = await self.do_request_async(
199
200
  hook_ctx=HookContext(
201
+ config=self.sdk_configuration,
200
202
  base_url=base_url or "",
201
203
  operation_id="embeddings_v1_embeddings_post",
202
204
  oauth2_scopes=[],
@@ -30,7 +30,6 @@ from mistralai.models import (
30
30
  FunctionTool,
31
31
  MessageInputEntry,
32
32
  InputEntries,
33
- ResponseFormatTypedDict,
34
33
  )
35
34
 
36
35
  from logging import getLogger
@@ -229,9 +228,8 @@ class RunContext:
229
228
  elif isinstance(completion_args, CompletionArgs) and self.output_format:
230
229
  completion_args.response_format = self.response_format
231
230
  elif isinstance(completion_args, dict) and self.output_format:
232
- completion_args["response_format"] = typing.cast(
233
- ResponseFormatTypedDict, self.response_format.model_dump()
234
- )
231
+ completion_args = CompletionArgs.model_validate(completion_args)
232
+ completion_args.response_format = self.response_format
235
233
  request_tools = []
236
234
  if isinstance(tools, list):
237
235
  for tool in tools:
mistralai/files.py CHANGED
@@ -48,8 +48,8 @@ class Files(BaseSDK):
48
48
  base_url = self._get_url(base_url, url_variables)
49
49
 
50
50
  request = models.FilesAPIRoutesUploadFileMultiPartBodyParams(
51
- file=utils.get_pydantic_model(file, models.File),
52
51
  purpose=purpose,
52
+ file=utils.get_pydantic_model(file, models.File),
53
53
  )
54
54
 
55
55
  req = self._build_request(
@@ -85,6 +85,7 @@ class Files(BaseSDK):
85
85
 
86
86
  http_res = self.do_request(
87
87
  hook_ctx=HookContext(
88
+ config=self.sdk_configuration,
88
89
  base_url=base_url or "",
89
90
  operation_id="files_api_routes_upload_file",
90
91
  oauth2_scopes=[],
@@ -155,8 +156,8 @@ class Files(BaseSDK):
155
156
  base_url = self._get_url(base_url, url_variables)
156
157
 
157
158
  request = models.FilesAPIRoutesUploadFileMultiPartBodyParams(
158
- file=utils.get_pydantic_model(file, models.File),
159
159
  purpose=purpose,
160
+ file=utils.get_pydantic_model(file, models.File),
160
161
  )
161
162
 
162
163
  req = self._build_request_async(
@@ -192,6 +193,7 @@ class Files(BaseSDK):
192
193
 
193
194
  http_res = await self.do_request_async(
194
195
  hook_ctx=HookContext(
196
+ config=self.sdk_configuration,
195
197
  base_url=base_url or "",
196
198
  operation_id="files_api_routes_upload_file",
197
199
  oauth2_scopes=[],
@@ -300,6 +302,7 @@ class Files(BaseSDK):
300
302
 
301
303
  http_res = self.do_request(
302
304
  hook_ctx=HookContext(
305
+ config=self.sdk_configuration,
303
306
  base_url=base_url or "",
304
307
  operation_id="files_api_routes_list_files",
305
308
  oauth2_scopes=[],
@@ -408,6 +411,7 @@ class Files(BaseSDK):
408
411
 
409
412
  http_res = await self.do_request_async(
410
413
  hook_ctx=HookContext(
414
+ config=self.sdk_configuration,
411
415
  base_url=base_url or "",
412
416
  operation_id="files_api_routes_list_files",
413
417
  oauth2_scopes=[],
@@ -501,6 +505,7 @@ class Files(BaseSDK):
501
505
 
502
506
  http_res = self.do_request(
503
507
  hook_ctx=HookContext(
508
+ config=self.sdk_configuration,
504
509
  base_url=base_url or "",
505
510
  operation_id="files_api_routes_retrieve_file",
506
511
  oauth2_scopes=[],
@@ -594,6 +599,7 @@ class Files(BaseSDK):
594
599
 
595
600
  http_res = await self.do_request_async(
596
601
  hook_ctx=HookContext(
602
+ config=self.sdk_configuration,
597
603
  base_url=base_url or "",
598
604
  operation_id="files_api_routes_retrieve_file",
599
605
  oauth2_scopes=[],
@@ -687,6 +693,7 @@ class Files(BaseSDK):
687
693
 
688
694
  http_res = self.do_request(
689
695
  hook_ctx=HookContext(
696
+ config=self.sdk_configuration,
690
697
  base_url=base_url or "",
691
698
  operation_id="files_api_routes_delete_file",
692
699
  oauth2_scopes=[],
@@ -780,6 +787,7 @@ class Files(BaseSDK):
780
787
 
781
788
  http_res = await self.do_request_async(
782
789
  hook_ctx=HookContext(
790
+ config=self.sdk_configuration,
783
791
  base_url=base_url or "",
784
792
  operation_id="files_api_routes_delete_file",
785
793
  oauth2_scopes=[],
@@ -873,6 +881,7 @@ class Files(BaseSDK):
873
881
 
874
882
  http_res = self.do_request(
875
883
  hook_ctx=HookContext(
884
+ config=self.sdk_configuration,
876
885
  base_url=base_url or "",
877
886
  operation_id="files_api_routes_download_file",
878
887
  oauth2_scopes=[],
@@ -967,6 +976,7 @@ class Files(BaseSDK):
967
976
 
968
977
  http_res = await self.do_request_async(
969
978
  hook_ctx=HookContext(
979
+ config=self.sdk_configuration,
970
980
  base_url=base_url or "",
971
981
  operation_id="files_api_routes_download_file",
972
982
  oauth2_scopes=[],
@@ -1062,6 +1072,7 @@ class Files(BaseSDK):
1062
1072
 
1063
1073
  http_res = self.do_request(
1064
1074
  hook_ctx=HookContext(
1075
+ config=self.sdk_configuration,
1065
1076
  base_url=base_url or "",
1066
1077
  operation_id="files_api_routes_get_signed_url",
1067
1078
  oauth2_scopes=[],
@@ -1156,6 +1167,7 @@ class Files(BaseSDK):
1156
1167
 
1157
1168
  http_res = await self.do_request_async(
1158
1169
  hook_ctx=HookContext(
1170
+ config=self.sdk_configuration,
1159
1171
  base_url=base_url or "",
1160
1172
  operation_id="files_api_routes_get_signed_url",
1161
1173
  oauth2_scopes=[],
mistralai/fim.py CHANGED
@@ -105,6 +105,7 @@ class Fim(BaseSDK):
105
105
 
106
106
  http_res = self.do_request(
107
107
  hook_ctx=HookContext(
108
+ config=self.sdk_configuration,
108
109
  base_url=base_url or "",
109
110
  operation_id="fim_completion_v1_fim_completions_post",
110
111
  oauth2_scopes=[],
@@ -239,6 +240,7 @@ class Fim(BaseSDK):
239
240
 
240
241
  http_res = await self.do_request_async(
241
242
  hook_ctx=HookContext(
243
+ config=self.sdk_configuration,
242
244
  base_url=base_url or "",
243
245
  operation_id="fim_completion_v1_fim_completions_post",
244
246
  oauth2_scopes=[],
@@ -373,6 +375,7 @@ class Fim(BaseSDK):
373
375
 
374
376
  http_res = self.do_request(
375
377
  hook_ctx=HookContext(
378
+ config=self.sdk_configuration,
376
379
  base_url=base_url or "",
377
380
  operation_id="stream_fim",
378
381
  oauth2_scopes=[],
@@ -513,6 +516,7 @@ class Fim(BaseSDK):
513
516
 
514
517
  http_res = await self.do_request_async(
515
518
  hook_ctx=HookContext(
519
+ config=self.sdk_configuration,
516
520
  base_url=base_url or "",
517
521
  operation_id="stream_fim",
518
522
  oauth2_scopes=[],
mistralai/httpclient.py CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  # pyright: reportReturnType = false
4
4
  import asyncio
5
- from concurrent.futures import ThreadPoolExecutor
6
5
  from typing_extensions import Protocol, runtime_checkable
7
6
  import httpx
8
7
  from typing import Any, Optional, Union
@@ -116,21 +115,12 @@ def close_clients(
116
115
  pass
117
116
 
118
117
  if async_client is not None and not async_client_supplied:
119
- is_async = False
120
118
  try:
121
- asyncio.get_running_loop()
122
- is_async = True
119
+ loop = asyncio.get_running_loop()
120
+ asyncio.run_coroutine_threadsafe(async_client.aclose(), loop)
123
121
  except RuntimeError:
124
- pass
125
-
126
- try:
127
- # If this function is called in an async loop then start another
128
- # loop in a separate thread to close the async http client.
129
- if is_async:
130
- with ThreadPoolExecutor(max_workers=1) as executor:
131
- future = executor.submit(asyncio.run, async_client.aclose())
132
- future.result()
133
- else:
122
+ try:
134
123
  asyncio.run(async_client.aclose())
135
- except Exception:
136
- pass
124
+ except RuntimeError:
125
+ # best effort
126
+ pass
mistralai/jobs.py CHANGED
@@ -96,6 +96,7 @@ class Jobs(BaseSDK):
96
96
 
97
97
  http_res = self.do_request(
98
98
  hook_ctx=HookContext(
99
+ config=self.sdk_configuration,
99
100
  base_url=base_url or "",
100
101
  operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_jobs",
101
102
  oauth2_scopes=[],
@@ -216,6 +217,7 @@ class Jobs(BaseSDK):
216
217
 
217
218
  http_res = await self.do_request_async(
218
219
  hook_ctx=HookContext(
220
+ config=self.sdk_configuration,
219
221
  base_url=base_url or "",
220
222
  operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_jobs",
221
223
  oauth2_scopes=[],
@@ -367,6 +369,7 @@ class Jobs(BaseSDK):
367
369
 
368
370
  http_res = self.do_request(
369
371
  hook_ctx=HookContext(
372
+ config=self.sdk_configuration,
370
373
  base_url=base_url or "",
371
374
  operation_id="jobs_api_routes_fine_tuning_create_fine_tuning_job",
372
375
  oauth2_scopes=[],
@@ -520,6 +523,7 @@ class Jobs(BaseSDK):
520
523
 
521
524
  http_res = await self.do_request_async(
522
525
  hook_ctx=HookContext(
526
+ config=self.sdk_configuration,
523
527
  base_url=base_url or "",
524
528
  operation_id="jobs_api_routes_fine_tuning_create_fine_tuning_job",
525
529
  oauth2_scopes=[],
@@ -615,6 +619,7 @@ class Jobs(BaseSDK):
615
619
 
616
620
  http_res = self.do_request(
617
621
  hook_ctx=HookContext(
622
+ config=self.sdk_configuration,
618
623
  base_url=base_url or "",
619
624
  operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_job",
620
625
  oauth2_scopes=[],
@@ -710,6 +715,7 @@ class Jobs(BaseSDK):
710
715
 
711
716
  http_res = await self.do_request_async(
712
717
  hook_ctx=HookContext(
718
+ config=self.sdk_configuration,
713
719
  base_url=base_url or "",
714
720
  operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_job",
715
721
  oauth2_scopes=[],
@@ -805,6 +811,7 @@ class Jobs(BaseSDK):
805
811
 
806
812
  http_res = self.do_request(
807
813
  hook_ctx=HookContext(
814
+ config=self.sdk_configuration,
808
815
  base_url=base_url or "",
809
816
  operation_id="jobs_api_routes_fine_tuning_cancel_fine_tuning_job",
810
817
  oauth2_scopes=[],
@@ -900,6 +907,7 @@ class Jobs(BaseSDK):
900
907
 
901
908
  http_res = await self.do_request_async(
902
909
  hook_ctx=HookContext(
910
+ config=self.sdk_configuration,
903
911
  base_url=base_url or "",
904
912
  operation_id="jobs_api_routes_fine_tuning_cancel_fine_tuning_job",
905
913
  oauth2_scopes=[],
@@ -995,6 +1003,7 @@ class Jobs(BaseSDK):
995
1003
 
996
1004
  http_res = self.do_request(
997
1005
  hook_ctx=HookContext(
1006
+ config=self.sdk_configuration,
998
1007
  base_url=base_url or "",
999
1008
  operation_id="jobs_api_routes_fine_tuning_start_fine_tuning_job",
1000
1009
  oauth2_scopes=[],
@@ -1090,6 +1099,7 @@ class Jobs(BaseSDK):
1090
1099
 
1091
1100
  http_res = await self.do_request_async(
1092
1101
  hook_ctx=HookContext(
1102
+ config=self.sdk_configuration,
1093
1103
  base_url=base_url or "",
1094
1104
  operation_id="jobs_api_routes_fine_tuning_start_fine_tuning_job",
1095
1105
  oauth2_scopes=[],