mistralai 1.10.1__py3-none-any.whl → 1.12.0__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 (251) hide show
  1. mistralai/_version.py +3 -3
  2. mistralai/accesses.py +22 -12
  3. mistralai/agents.py +88 -44
  4. mistralai/audio.py +20 -0
  5. mistralai/basesdk.py +6 -0
  6. mistralai/chat.py +96 -40
  7. mistralai/classifiers.py +35 -22
  8. mistralai/conversations.py +234 -72
  9. mistralai/documents.py +72 -26
  10. mistralai/embeddings.py +17 -8
  11. mistralai/extra/__init__.py +48 -0
  12. mistralai/extra/exceptions.py +49 -4
  13. mistralai/extra/realtime/__init__.py +25 -0
  14. mistralai/extra/realtime/connection.py +207 -0
  15. mistralai/extra/realtime/transcription.py +271 -0
  16. mistralai/files.py +64 -24
  17. mistralai/fim.py +20 -12
  18. mistralai/httpclient.py +0 -1
  19. mistralai/jobs.py +65 -26
  20. mistralai/libraries.py +20 -10
  21. mistralai/mistral_agents.py +825 -34
  22. mistralai/mistral_jobs.py +33 -14
  23. mistralai/models/__init__.py +119 -0
  24. mistralai/models/agent.py +1 -1
  25. mistralai/models/agentaliasresponse.py +23 -0
  26. mistralai/models/agentconversation.py +15 -5
  27. mistralai/models/agenthandoffdoneevent.py +1 -1
  28. mistralai/models/agenthandoffentry.py +3 -2
  29. mistralai/models/agenthandoffstartedevent.py +1 -1
  30. mistralai/models/agents_api_v1_agents_create_or_update_aliasop.py +26 -0
  31. mistralai/models/agents_api_v1_agents_get_versionop.py +21 -0
  32. mistralai/models/agents_api_v1_agents_getop.py +12 -3
  33. mistralai/models/agents_api_v1_agents_list_version_aliasesop.py +16 -0
  34. mistralai/models/agents_api_v1_agents_list_versionsop.py +33 -0
  35. mistralai/models/agents_api_v1_agents_listop.py +4 -0
  36. mistralai/models/agentscompletionrequest.py +2 -5
  37. mistralai/models/agentscompletionstreamrequest.py +2 -5
  38. mistralai/models/archiveftmodelout.py +1 -1
  39. mistralai/models/assistantmessage.py +1 -1
  40. mistralai/models/audiochunk.py +1 -1
  41. mistralai/models/audioencoding.py +6 -1
  42. mistralai/models/audioformat.py +2 -4
  43. mistralai/models/audiotranscriptionrequest.py +8 -0
  44. mistralai/models/audiotranscriptionrequeststream.py +8 -0
  45. mistralai/models/basemodelcard.py +1 -1
  46. mistralai/models/batchjobin.py +2 -4
  47. mistralai/models/batchjobout.py +1 -1
  48. mistralai/models/batchjobsout.py +1 -1
  49. mistralai/models/chatcompletionchoice.py +10 -5
  50. mistralai/models/chatcompletionrequest.py +2 -5
  51. mistralai/models/chatcompletionstreamrequest.py +2 -5
  52. mistralai/models/classifierdetailedjobout.py +4 -2
  53. mistralai/models/classifierftmodelout.py +3 -2
  54. mistralai/models/classifierjobout.py +4 -2
  55. mistralai/models/codeinterpretertool.py +1 -1
  56. mistralai/models/completiondetailedjobout.py +5 -2
  57. mistralai/models/completionftmodelout.py +3 -2
  58. mistralai/models/completionjobout.py +5 -2
  59. mistralai/models/completionresponsestreamchoice.py +9 -8
  60. mistralai/models/conversationappendrequest.py +4 -1
  61. mistralai/models/conversationappendstreamrequest.py +4 -1
  62. mistralai/models/conversationhistory.py +2 -1
  63. mistralai/models/conversationmessages.py +1 -1
  64. mistralai/models/conversationrequest.py +13 -3
  65. mistralai/models/conversationresponse.py +2 -1
  66. mistralai/models/conversationrestartrequest.py +22 -5
  67. mistralai/models/conversationrestartstreamrequest.py +24 -5
  68. mistralai/models/conversationstreamrequest.py +17 -3
  69. mistralai/models/documentlibrarytool.py +1 -1
  70. mistralai/models/documenturlchunk.py +1 -1
  71. mistralai/models/embeddingdtype.py +7 -1
  72. mistralai/models/encodingformat.py +4 -1
  73. mistralai/models/entitytype.py +8 -1
  74. mistralai/models/filepurpose.py +8 -1
  75. mistralai/models/files_api_routes_list_filesop.py +12 -12
  76. mistralai/models/files_api_routes_upload_fileop.py +2 -6
  77. mistralai/models/fileschema.py +3 -5
  78. mistralai/models/finetuneablemodeltype.py +4 -1
  79. mistralai/models/ftclassifierlossfunction.py +4 -1
  80. mistralai/models/ftmodelcard.py +1 -1
  81. mistralai/models/functioncallentry.py +3 -2
  82. mistralai/models/functioncallevent.py +1 -1
  83. mistralai/models/functionresultentry.py +3 -2
  84. mistralai/models/functiontool.py +1 -1
  85. mistralai/models/githubrepositoryin.py +1 -1
  86. mistralai/models/githubrepositoryout.py +1 -1
  87. mistralai/models/httpvalidationerror.py +4 -2
  88. mistralai/models/imagegenerationtool.py +1 -1
  89. mistralai/models/imageurlchunk.py +1 -1
  90. mistralai/models/jobsout.py +1 -1
  91. mistralai/models/legacyjobmetadataout.py +1 -1
  92. mistralai/models/messageinputentry.py +9 -3
  93. mistralai/models/messageoutputentry.py +6 -3
  94. mistralai/models/messageoutputevent.py +4 -2
  95. mistralai/models/mistralerror.py +11 -7
  96. mistralai/models/mistralpromptmode.py +5 -1
  97. mistralai/models/modelcapabilities.py +3 -0
  98. mistralai/models/modelconversation.py +1 -1
  99. mistralai/models/no_response_error.py +5 -1
  100. mistralai/models/ocrrequest.py +11 -1
  101. mistralai/models/ocrtableobject.py +4 -1
  102. mistralai/models/realtimetranscriptionerror.py +27 -0
  103. mistralai/models/realtimetranscriptionerrordetail.py +29 -0
  104. mistralai/models/realtimetranscriptionsession.py +20 -0
  105. mistralai/models/realtimetranscriptionsessioncreated.py +30 -0
  106. mistralai/models/realtimetranscriptionsessionupdated.py +30 -0
  107. mistralai/models/referencechunk.py +1 -1
  108. mistralai/models/requestsource.py +5 -1
  109. mistralai/models/responsedoneevent.py +1 -1
  110. mistralai/models/responseerrorevent.py +1 -1
  111. mistralai/models/responseformats.py +5 -1
  112. mistralai/models/responsestartedevent.py +1 -1
  113. mistralai/models/responsevalidationerror.py +2 -0
  114. mistralai/models/retrievefileout.py +3 -5
  115. mistralai/models/sampletype.py +7 -1
  116. mistralai/models/sdkerror.py +2 -0
  117. mistralai/models/shareenum.py +7 -1
  118. mistralai/models/sharingdelete.py +2 -4
  119. mistralai/models/sharingin.py +3 -5
  120. mistralai/models/source.py +8 -1
  121. mistralai/models/systemmessage.py +1 -1
  122. mistralai/models/textchunk.py +1 -1
  123. mistralai/models/thinkchunk.py +1 -1
  124. mistralai/models/timestampgranularity.py +4 -1
  125. mistralai/models/tool.py +2 -6
  126. mistralai/models/toolcall.py +2 -6
  127. mistralai/models/toolchoice.py +2 -6
  128. mistralai/models/toolchoiceenum.py +6 -1
  129. mistralai/models/toolexecutiondeltaevent.py +2 -1
  130. mistralai/models/toolexecutiondoneevent.py +2 -1
  131. mistralai/models/toolexecutionentry.py +4 -2
  132. mistralai/models/toolexecutionstartedevent.py +2 -1
  133. mistralai/models/toolfilechunk.py +2 -1
  134. mistralai/models/toolmessage.py +1 -1
  135. mistralai/models/toolreferencechunk.py +2 -1
  136. mistralai/models/tooltypes.py +1 -1
  137. mistralai/models/transcriptionsegmentchunk.py +42 -3
  138. mistralai/models/transcriptionstreamdone.py +1 -1
  139. mistralai/models/transcriptionstreamlanguage.py +1 -1
  140. mistralai/models/transcriptionstreamsegmentdelta.py +39 -3
  141. mistralai/models/transcriptionstreamtextdelta.py +1 -1
  142. mistralai/models/unarchiveftmodelout.py +1 -1
  143. mistralai/models/uploadfileout.py +3 -5
  144. mistralai/models/usermessage.py +1 -1
  145. mistralai/models/wandbintegration.py +1 -1
  146. mistralai/models/wandbintegrationout.py +1 -1
  147. mistralai/models/websearchpremiumtool.py +1 -1
  148. mistralai/models/websearchtool.py +1 -1
  149. mistralai/models_.py +24 -12
  150. mistralai/ocr.py +38 -10
  151. mistralai/sdk.py +2 -2
  152. mistralai/transcriptions.py +52 -12
  153. mistralai/types/basemodel.py +41 -3
  154. mistralai/utils/__init__.py +0 -3
  155. mistralai/utils/annotations.py +32 -8
  156. mistralai/utils/enums.py +60 -0
  157. mistralai/utils/forms.py +21 -10
  158. mistralai/utils/queryparams.py +14 -2
  159. mistralai/utils/requestbodies.py +3 -3
  160. mistralai/utils/retries.py +69 -5
  161. mistralai/utils/serializers.py +0 -20
  162. mistralai/utils/unmarshal_json_response.py +15 -1
  163. {mistralai-1.10.1.dist-info → mistralai-1.12.0.dist-info}/METADATA +28 -31
  164. {mistralai-1.10.1.dist-info → mistralai-1.12.0.dist-info}/RECORD +251 -237
  165. mistralai_azure/_version.py +3 -3
  166. mistralai_azure/basesdk.py +6 -0
  167. mistralai_azure/chat.py +27 -15
  168. mistralai_azure/httpclient.py +0 -1
  169. mistralai_azure/models/__init__.py +16 -1
  170. mistralai_azure/models/assistantmessage.py +1 -1
  171. mistralai_azure/models/chatcompletionchoice.py +10 -7
  172. mistralai_azure/models/chatcompletionrequest.py +8 -6
  173. mistralai_azure/models/chatcompletionstreamrequest.py +8 -6
  174. mistralai_azure/models/completionresponsestreamchoice.py +11 -7
  175. mistralai_azure/models/documenturlchunk.py +1 -1
  176. mistralai_azure/models/httpvalidationerror.py +4 -2
  177. mistralai_azure/models/imageurlchunk.py +1 -1
  178. mistralai_azure/models/mistralazureerror.py +11 -7
  179. mistralai_azure/models/mistralpromptmode.py +1 -1
  180. mistralai_azure/models/no_response_error.py +5 -1
  181. mistralai_azure/models/ocrpageobject.py +32 -5
  182. mistralai_azure/models/ocrrequest.py +20 -1
  183. mistralai_azure/models/ocrtableobject.py +34 -0
  184. mistralai_azure/models/referencechunk.py +1 -1
  185. mistralai_azure/models/responseformats.py +5 -1
  186. mistralai_azure/models/responsevalidationerror.py +2 -0
  187. mistralai_azure/models/sdkerror.py +2 -0
  188. mistralai_azure/models/systemmessage.py +1 -1
  189. mistralai_azure/models/textchunk.py +1 -1
  190. mistralai_azure/models/thinkchunk.py +1 -1
  191. mistralai_azure/models/tool.py +2 -6
  192. mistralai_azure/models/toolcall.py +2 -6
  193. mistralai_azure/models/toolchoice.py +2 -6
  194. mistralai_azure/models/toolchoiceenum.py +6 -1
  195. mistralai_azure/models/toolmessage.py +1 -1
  196. mistralai_azure/models/tooltypes.py +1 -1
  197. mistralai_azure/models/usermessage.py +1 -1
  198. mistralai_azure/ocr.py +26 -6
  199. mistralai_azure/types/basemodel.py +41 -3
  200. mistralai_azure/utils/__init__.py +0 -3
  201. mistralai_azure/utils/annotations.py +32 -8
  202. mistralai_azure/utils/enums.py +60 -0
  203. mistralai_azure/utils/forms.py +21 -10
  204. mistralai_azure/utils/queryparams.py +14 -2
  205. mistralai_azure/utils/requestbodies.py +3 -3
  206. mistralai_azure/utils/retries.py +69 -5
  207. mistralai_azure/utils/serializers.py +0 -20
  208. mistralai_azure/utils/unmarshal_json_response.py +15 -1
  209. mistralai_gcp/_version.py +3 -3
  210. mistralai_gcp/basesdk.py +6 -0
  211. mistralai_gcp/chat.py +27 -15
  212. mistralai_gcp/fim.py +27 -15
  213. mistralai_gcp/httpclient.py +0 -1
  214. mistralai_gcp/models/assistantmessage.py +1 -1
  215. mistralai_gcp/models/chatcompletionchoice.py +10 -7
  216. mistralai_gcp/models/chatcompletionrequest.py +8 -6
  217. mistralai_gcp/models/chatcompletionstreamrequest.py +8 -6
  218. mistralai_gcp/models/completionresponsestreamchoice.py +11 -7
  219. mistralai_gcp/models/fimcompletionrequest.py +6 -1
  220. mistralai_gcp/models/fimcompletionstreamrequest.py +6 -1
  221. mistralai_gcp/models/httpvalidationerror.py +4 -2
  222. mistralai_gcp/models/imageurlchunk.py +1 -1
  223. mistralai_gcp/models/mistralgcperror.py +11 -7
  224. mistralai_gcp/models/mistralpromptmode.py +1 -1
  225. mistralai_gcp/models/no_response_error.py +5 -1
  226. mistralai_gcp/models/referencechunk.py +1 -1
  227. mistralai_gcp/models/responseformats.py +5 -1
  228. mistralai_gcp/models/responsevalidationerror.py +2 -0
  229. mistralai_gcp/models/sdkerror.py +2 -0
  230. mistralai_gcp/models/systemmessage.py +1 -1
  231. mistralai_gcp/models/textchunk.py +1 -1
  232. mistralai_gcp/models/thinkchunk.py +1 -1
  233. mistralai_gcp/models/tool.py +2 -6
  234. mistralai_gcp/models/toolcall.py +2 -6
  235. mistralai_gcp/models/toolchoice.py +2 -6
  236. mistralai_gcp/models/toolchoiceenum.py +6 -1
  237. mistralai_gcp/models/toolmessage.py +1 -1
  238. mistralai_gcp/models/tooltypes.py +1 -1
  239. mistralai_gcp/models/usermessage.py +1 -1
  240. mistralai_gcp/types/basemodel.py +41 -3
  241. mistralai_gcp/utils/__init__.py +0 -3
  242. mistralai_gcp/utils/annotations.py +32 -8
  243. mistralai_gcp/utils/enums.py +60 -0
  244. mistralai_gcp/utils/forms.py +21 -10
  245. mistralai_gcp/utils/queryparams.py +14 -2
  246. mistralai_gcp/utils/requestbodies.py +3 -3
  247. mistralai_gcp/utils/retries.py +69 -5
  248. mistralai_gcp/utils/serializers.py +0 -20
  249. mistralai_gcp/utils/unmarshal_json_response.py +15 -1
  250. {mistralai-1.10.1.dist-info → mistralai-1.12.0.dist-info}/WHEEL +0 -0
  251. {mistralai-1.10.1.dist-info → mistralai-1.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,20 +1,22 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from mistralai.types import BaseModel
4
+ from mistralai.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
5
  import pydantic
6
- from pydantic import ConfigDict
6
+ from pydantic import ConfigDict, model_serializer
7
7
  from typing import Any, Dict, Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- Type = Literal["transcription_segment"]
11
+ Type = Literal["transcription_segment",]
12
12
 
13
13
 
14
14
  class TranscriptionSegmentChunkTypedDict(TypedDict):
15
15
  text: str
16
16
  start: float
17
17
  end: float
18
+ score: NotRequired[Nullable[float]]
19
+ speaker_id: NotRequired[Nullable[str]]
18
20
  type: NotRequired[Type]
19
21
 
20
22
 
@@ -30,6 +32,10 @@ class TranscriptionSegmentChunk(BaseModel):
30
32
 
31
33
  end: float
32
34
 
35
+ score: OptionalNullable[float] = UNSET
36
+
37
+ speaker_id: OptionalNullable[str] = UNSET
38
+
33
39
  type: Optional[Type] = "transcription_segment"
34
40
 
35
41
  @property
@@ -39,3 +45,36 @@ class TranscriptionSegmentChunk(BaseModel):
39
45
  @additional_properties.setter
40
46
  def additional_properties(self, value):
41
47
  self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
48
+
49
+ @model_serializer(mode="wrap")
50
+ def serialize_model(self, handler):
51
+ optional_fields = ["score", "speaker_id", "type"]
52
+ nullable_fields = ["score", "speaker_id"]
53
+ null_default_fields = []
54
+
55
+ serialized = handler(self)
56
+
57
+ m = {}
58
+
59
+ for n, f in type(self).model_fields.items():
60
+ k = f.alias or n
61
+ val = serialized.get(k)
62
+ serialized.pop(k, None)
63
+
64
+ optional_nullable = k in optional_fields and k in nullable_fields
65
+ is_set = (
66
+ self.__pydantic_fields_set__.intersection({n})
67
+ or k in null_default_fields
68
+ ) # pylint: disable=no-member
69
+
70
+ if val is not None and val != UNSET_SENTINEL:
71
+ m[k] = val
72
+ elif val != UNSET_SENTINEL and (
73
+ not k in optional_fields or (optional_nullable and is_set)
74
+ ):
75
+ m[k] = val
76
+
77
+ for k, v in serialized.items():
78
+ m[k] = v
79
+
80
+ return m
@@ -13,7 +13,7 @@ from typing import Any, Dict, List, Literal, Optional
13
13
  from typing_extensions import NotRequired, TypedDict
14
14
 
15
15
 
16
- TranscriptionStreamDoneType = Literal["transcription.done"]
16
+ TranscriptionStreamDoneType = Literal["transcription.done",]
17
17
 
18
18
 
19
19
  class TranscriptionStreamDoneTypedDict(TypedDict):
@@ -8,7 +8,7 @@ from typing import Any, Dict, Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- TranscriptionStreamLanguageType = Literal["transcription.language"]
11
+ TranscriptionStreamLanguageType = Literal["transcription.language",]
12
12
 
13
13
 
14
14
  class TranscriptionStreamLanguageTypedDict(TypedDict):
@@ -1,20 +1,21 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from mistralai.types import BaseModel
4
+ from mistralai.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
5
  import pydantic
6
- from pydantic import ConfigDict
6
+ from pydantic import ConfigDict, model_serializer
7
7
  from typing import Any, Dict, Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- TranscriptionStreamSegmentDeltaType = Literal["transcription.segment"]
11
+ TranscriptionStreamSegmentDeltaType = Literal["transcription.segment",]
12
12
 
13
13
 
14
14
  class TranscriptionStreamSegmentDeltaTypedDict(TypedDict):
15
15
  text: str
16
16
  start: float
17
17
  end: float
18
+ speaker_id: NotRequired[Nullable[str]]
18
19
  type: NotRequired[TranscriptionStreamSegmentDeltaType]
19
20
 
20
21
 
@@ -30,6 +31,8 @@ class TranscriptionStreamSegmentDelta(BaseModel):
30
31
 
31
32
  end: float
32
33
 
34
+ speaker_id: OptionalNullable[str] = UNSET
35
+
33
36
  type: Optional[TranscriptionStreamSegmentDeltaType] = "transcription.segment"
34
37
 
35
38
  @property
@@ -39,3 +42,36 @@ class TranscriptionStreamSegmentDelta(BaseModel):
39
42
  @additional_properties.setter
40
43
  def additional_properties(self, value):
41
44
  self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
45
+
46
+ @model_serializer(mode="wrap")
47
+ def serialize_model(self, handler):
48
+ optional_fields = ["speaker_id", "type"]
49
+ nullable_fields = ["speaker_id"]
50
+ null_default_fields = []
51
+
52
+ serialized = handler(self)
53
+
54
+ m = {}
55
+
56
+ for n, f in type(self).model_fields.items():
57
+ k = f.alias or n
58
+ val = serialized.get(k)
59
+ serialized.pop(k, None)
60
+
61
+ optional_nullable = k in optional_fields and k in nullable_fields
62
+ is_set = (
63
+ self.__pydantic_fields_set__.intersection({n})
64
+ or k in null_default_fields
65
+ ) # pylint: disable=no-member
66
+
67
+ if val is not None and val != UNSET_SENTINEL:
68
+ m[k] = val
69
+ elif val != UNSET_SENTINEL and (
70
+ not k in optional_fields or (optional_nullable and is_set)
71
+ ):
72
+ m[k] = val
73
+
74
+ for k, v in serialized.items():
75
+ m[k] = v
76
+
77
+ return m
@@ -8,7 +8,7 @@ from typing import Any, Dict, Literal, Optional
8
8
  from typing_extensions import NotRequired, TypedDict
9
9
 
10
10
 
11
- TranscriptionStreamTextDeltaType = Literal["transcription.text.delta"]
11
+ TranscriptionStreamTextDeltaType = Literal["transcription.text.delta",]
12
12
 
13
13
 
14
14
  class TranscriptionStreamTextDeltaTypedDict(TypedDict):
@@ -6,7 +6,7 @@ from typing import Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- UnarchiveFTModelOutObject = Literal["model"]
9
+ UnarchiveFTModelOutObject = Literal["model",]
10
10
 
11
11
 
12
12
  class UnarchiveFTModelOutTypedDict(TypedDict):
@@ -5,10 +5,8 @@ from .filepurpose import FilePurpose
5
5
  from .sampletype import SampleType
6
6
  from .source import Source
7
7
  from mistralai.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
- from mistralai.utils import validate_open_enum
9
8
  import pydantic
10
9
  from pydantic import model_serializer
11
- from pydantic.functional_validators import PlainValidator
12
10
  from typing_extensions import Annotated, NotRequired, TypedDict
13
11
 
14
12
 
@@ -47,11 +45,11 @@ class UploadFileOut(BaseModel):
47
45
  filename: str
48
46
  r"""The name of the uploaded file."""
49
47
 
50
- purpose: Annotated[FilePurpose, PlainValidator(validate_open_enum(False))]
48
+ purpose: FilePurpose
51
49
 
52
- sample_type: Annotated[SampleType, PlainValidator(validate_open_enum(False))]
50
+ sample_type: SampleType
53
51
 
54
- source: Annotated[Source, PlainValidator(validate_open_enum(False))]
52
+ source: Source
55
53
 
56
54
  num_lines: OptionalNullable[int] = UNSET
57
55
 
@@ -16,7 +16,7 @@ UserMessageContentTypedDict = TypeAliasType(
16
16
  UserMessageContent = TypeAliasType("UserMessageContent", Union[str, List[ContentChunk]])
17
17
 
18
18
 
19
- UserMessageRole = Literal["user"]
19
+ UserMessageRole = Literal["user",]
20
20
 
21
21
 
22
22
  class UserMessageTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- WandbIntegrationType = Literal["wandb"]
10
+ WandbIntegrationType = Literal["wandb",]
11
11
 
12
12
 
13
13
  class WandbIntegrationTypedDict(TypedDict):
@@ -7,7 +7,7 @@ from typing import Literal, Optional
7
7
  from typing_extensions import NotRequired, TypedDict
8
8
 
9
9
 
10
- WandbIntegrationOutType = Literal["wandb"]
10
+ WandbIntegrationOutType = Literal["wandb",]
11
11
 
12
12
 
13
13
  class WandbIntegrationOutTypedDict(TypedDict):
@@ -6,7 +6,7 @@ from typing import Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- WebSearchPremiumToolType = Literal["web_search_premium"]
9
+ WebSearchPremiumToolType = Literal["web_search_premium",]
10
10
 
11
11
 
12
12
  class WebSearchPremiumToolTypedDict(TypedDict):
@@ -6,7 +6,7 @@ from typing import Literal, Optional
6
6
  from typing_extensions import NotRequired, TypedDict
7
7
 
8
8
 
9
- WebSearchToolType = Literal["web_search"]
9
+ WebSearchToolType = Literal["web_search",]
10
10
 
11
11
 
12
12
  class WebSearchToolTypedDict(TypedDict):
mistralai/models_.py CHANGED
@@ -51,6 +51,7 @@ class Models(BaseSDK):
51
51
  accept_header_value="application/json",
52
52
  http_headers=http_headers,
53
53
  security=self.sdk_configuration.security,
54
+ allow_empty_value=None,
54
55
  timeout_ms=timeout_ms,
55
56
  )
56
57
 
@@ -67,7 +68,7 @@ class Models(BaseSDK):
67
68
  config=self.sdk_configuration,
68
69
  base_url=base_url or "",
69
70
  operation_id="list_models_v1_models_get",
70
- oauth2_scopes=[],
71
+ oauth2_scopes=None,
71
72
  security_source=get_security_from_env(
72
73
  self.sdk_configuration.security, models.Security
73
74
  ),
@@ -127,6 +128,7 @@ class Models(BaseSDK):
127
128
  accept_header_value="application/json",
128
129
  http_headers=http_headers,
129
130
  security=self.sdk_configuration.security,
131
+ allow_empty_value=None,
130
132
  timeout_ms=timeout_ms,
131
133
  )
132
134
 
@@ -143,7 +145,7 @@ class Models(BaseSDK):
143
145
  config=self.sdk_configuration,
144
146
  base_url=base_url or "",
145
147
  operation_id="list_models_v1_models_get",
146
- oauth2_scopes=[],
148
+ oauth2_scopes=None,
147
149
  security_source=get_security_from_env(
148
150
  self.sdk_configuration.security, models.Security
149
151
  ),
@@ -210,6 +212,7 @@ class Models(BaseSDK):
210
212
  accept_header_value="application/json",
211
213
  http_headers=http_headers,
212
214
  security=self.sdk_configuration.security,
215
+ allow_empty_value=None,
213
216
  timeout_ms=timeout_ms,
214
217
  )
215
218
 
@@ -226,7 +229,7 @@ class Models(BaseSDK):
226
229
  config=self.sdk_configuration,
227
230
  base_url=base_url or "",
228
231
  operation_id="retrieve_model_v1_models__model_id__get",
229
- oauth2_scopes=[],
232
+ oauth2_scopes=None,
230
233
  security_source=get_security_from_env(
231
234
  self.sdk_configuration.security, models.Security
232
235
  ),
@@ -302,6 +305,7 @@ class Models(BaseSDK):
302
305
  accept_header_value="application/json",
303
306
  http_headers=http_headers,
304
307
  security=self.sdk_configuration.security,
308
+ allow_empty_value=None,
305
309
  timeout_ms=timeout_ms,
306
310
  )
307
311
 
@@ -318,7 +322,7 @@ class Models(BaseSDK):
318
322
  config=self.sdk_configuration,
319
323
  base_url=base_url or "",
320
324
  operation_id="retrieve_model_v1_models__model_id__get",
321
- oauth2_scopes=[],
325
+ oauth2_scopes=None,
322
326
  security_source=get_security_from_env(
323
327
  self.sdk_configuration.security, models.Security
324
328
  ),
@@ -394,6 +398,7 @@ class Models(BaseSDK):
394
398
  accept_header_value="application/json",
395
399
  http_headers=http_headers,
396
400
  security=self.sdk_configuration.security,
401
+ allow_empty_value=None,
397
402
  timeout_ms=timeout_ms,
398
403
  )
399
404
 
@@ -410,7 +415,7 @@ class Models(BaseSDK):
410
415
  config=self.sdk_configuration,
411
416
  base_url=base_url or "",
412
417
  operation_id="delete_model_v1_models__model_id__delete",
413
- oauth2_scopes=[],
418
+ oauth2_scopes=None,
414
419
  security_source=get_security_from_env(
415
420
  self.sdk_configuration.security, models.Security
416
421
  ),
@@ -483,6 +488,7 @@ class Models(BaseSDK):
483
488
  accept_header_value="application/json",
484
489
  http_headers=http_headers,
485
490
  security=self.sdk_configuration.security,
491
+ allow_empty_value=None,
486
492
  timeout_ms=timeout_ms,
487
493
  )
488
494
 
@@ -499,7 +505,7 @@ class Models(BaseSDK):
499
505
  config=self.sdk_configuration,
500
506
  base_url=base_url or "",
501
507
  operation_id="delete_model_v1_models__model_id__delete",
502
- oauth2_scopes=[],
508
+ oauth2_scopes=None,
503
509
  security_source=get_security_from_env(
504
510
  self.sdk_configuration.security, models.Security
505
511
  ),
@@ -583,6 +589,7 @@ class Models(BaseSDK):
583
589
  get_serialized_body=lambda: utils.serialize_request_body(
584
590
  request.update_ft_model_in, False, False, "json", models.UpdateFTModelIn
585
591
  ),
592
+ allow_empty_value=None,
586
593
  timeout_ms=timeout_ms,
587
594
  )
588
595
 
@@ -599,7 +606,7 @@ class Models(BaseSDK):
599
606
  config=self.sdk_configuration,
600
607
  base_url=base_url or "",
601
608
  operation_id="jobs_api_routes_fine_tuning_update_fine_tuned_model",
602
- oauth2_scopes=[],
609
+ oauth2_scopes=None,
603
610
  security_source=get_security_from_env(
604
611
  self.sdk_configuration.security, models.Security
605
612
  ),
@@ -679,6 +686,7 @@ class Models(BaseSDK):
679
686
  get_serialized_body=lambda: utils.serialize_request_body(
680
687
  request.update_ft_model_in, False, False, "json", models.UpdateFTModelIn
681
688
  ),
689
+ allow_empty_value=None,
682
690
  timeout_ms=timeout_ms,
683
691
  )
684
692
 
@@ -695,7 +703,7 @@ class Models(BaseSDK):
695
703
  config=self.sdk_configuration,
696
704
  base_url=base_url or "",
697
705
  operation_id="jobs_api_routes_fine_tuning_update_fine_tuned_model",
698
- oauth2_scopes=[],
706
+ oauth2_scopes=None,
699
707
  security_source=get_security_from_env(
700
708
  self.sdk_configuration.security, models.Security
701
709
  ),
@@ -764,6 +772,7 @@ class Models(BaseSDK):
764
772
  accept_header_value="application/json",
765
773
  http_headers=http_headers,
766
774
  security=self.sdk_configuration.security,
775
+ allow_empty_value=None,
767
776
  timeout_ms=timeout_ms,
768
777
  )
769
778
 
@@ -780,7 +789,7 @@ class Models(BaseSDK):
780
789
  config=self.sdk_configuration,
781
790
  base_url=base_url or "",
782
791
  operation_id="jobs_api_routes_fine_tuning_archive_fine_tuned_model",
783
- oauth2_scopes=[],
792
+ oauth2_scopes=None,
784
793
  security_source=get_security_from_env(
785
794
  self.sdk_configuration.security, models.Security
786
795
  ),
@@ -847,6 +856,7 @@ class Models(BaseSDK):
847
856
  accept_header_value="application/json",
848
857
  http_headers=http_headers,
849
858
  security=self.sdk_configuration.security,
859
+ allow_empty_value=None,
850
860
  timeout_ms=timeout_ms,
851
861
  )
852
862
 
@@ -863,7 +873,7 @@ class Models(BaseSDK):
863
873
  config=self.sdk_configuration,
864
874
  base_url=base_url or "",
865
875
  operation_id="jobs_api_routes_fine_tuning_archive_fine_tuned_model",
866
- oauth2_scopes=[],
876
+ oauth2_scopes=None,
867
877
  security_source=get_security_from_env(
868
878
  self.sdk_configuration.security, models.Security
869
879
  ),
@@ -930,6 +940,7 @@ class Models(BaseSDK):
930
940
  accept_header_value="application/json",
931
941
  http_headers=http_headers,
932
942
  security=self.sdk_configuration.security,
943
+ allow_empty_value=None,
933
944
  timeout_ms=timeout_ms,
934
945
  )
935
946
 
@@ -946,7 +957,7 @@ class Models(BaseSDK):
946
957
  config=self.sdk_configuration,
947
958
  base_url=base_url or "",
948
959
  operation_id="jobs_api_routes_fine_tuning_unarchive_fine_tuned_model",
949
- oauth2_scopes=[],
960
+ oauth2_scopes=None,
950
961
  security_source=get_security_from_env(
951
962
  self.sdk_configuration.security, models.Security
952
963
  ),
@@ -1013,6 +1024,7 @@ class Models(BaseSDK):
1013
1024
  accept_header_value="application/json",
1014
1025
  http_headers=http_headers,
1015
1026
  security=self.sdk_configuration.security,
1027
+ allow_empty_value=None,
1016
1028
  timeout_ms=timeout_ms,
1017
1029
  )
1018
1030
 
@@ -1029,7 +1041,7 @@ class Models(BaseSDK):
1029
1041
  config=self.sdk_configuration,
1030
1042
  base_url=base_url or "",
1031
1043
  operation_id="jobs_api_routes_fine_tuning_unarchive_fine_tuned_model",
1032
- oauth2_scopes=[],
1044
+ oauth2_scopes=None,
1033
1045
  security_source=get_security_from_env(
1034
1046
  self.sdk_configuration.security, models.Security
1035
1047
  ),
mistralai/ocr.py CHANGED
@@ -3,6 +3,10 @@
3
3
  from .basesdk import BaseSDK
4
4
  from mistralai import models, utils
5
5
  from mistralai._hooks import HookContext
6
+ from mistralai.models import (
7
+ ocrrequest as models_ocrrequest,
8
+ responseformat as models_responseformat,
9
+ )
6
10
  from mistralai.types import Nullable, OptionalNullable, UNSET
7
11
  from mistralai.utils import get_security_from_env
8
12
  from mistralai.utils.unmarshal_json_response import unmarshal_json_response
@@ -16,19 +20,28 @@ class Ocr(BaseSDK):
16
20
  self,
17
21
  *,
18
22
  model: Nullable[str],
19
- document: Union[models.Document, models.DocumentTypedDict],
23
+ document: Union[
24
+ models_ocrrequest.Document, models_ocrrequest.DocumentTypedDict
25
+ ],
20
26
  id: Optional[str] = None,
21
27
  pages: OptionalNullable[List[int]] = UNSET,
22
28
  include_image_base64: OptionalNullable[bool] = UNSET,
23
29
  image_limit: OptionalNullable[int] = UNSET,
24
30
  image_min_size: OptionalNullable[int] = UNSET,
25
31
  bbox_annotation_format: OptionalNullable[
26
- Union[models.ResponseFormat, models.ResponseFormatTypedDict]
32
+ Union[
33
+ models_responseformat.ResponseFormat,
34
+ models_responseformat.ResponseFormatTypedDict,
35
+ ]
27
36
  ] = UNSET,
28
37
  document_annotation_format: OptionalNullable[
29
- Union[models.ResponseFormat, models.ResponseFormatTypedDict]
38
+ Union[
39
+ models_responseformat.ResponseFormat,
40
+ models_responseformat.ResponseFormatTypedDict,
41
+ ]
30
42
  ] = UNSET,
31
- table_format: OptionalNullable[models.TableFormat] = UNSET,
43
+ document_annotation_prompt: OptionalNullable[str] = UNSET,
44
+ table_format: OptionalNullable[models_ocrrequest.TableFormat] = UNSET,
32
45
  extract_header: Optional[bool] = None,
33
46
  extract_footer: Optional[bool] = None,
34
47
  retries: OptionalNullable[utils.RetryConfig] = UNSET,
@@ -47,6 +60,7 @@ class Ocr(BaseSDK):
47
60
  :param image_min_size: Minimum height and width of image to extract
48
61
  :param bbox_annotation_format: Structured output class for extracting useful information from each extracted bounding box / image from document. Only json_schema is valid for this field
49
62
  :param document_annotation_format: Structured output class for extracting useful information from the entire document. Only json_schema is valid for this field
63
+ :param document_annotation_prompt: Optional prompt to guide the model in extracting structured output from the entire document. A document_annotation_format must be provided.
50
64
  :param table_format:
51
65
  :param extract_header:
52
66
  :param extract_footer:
@@ -79,6 +93,7 @@ class Ocr(BaseSDK):
79
93
  document_annotation_format=utils.get_pydantic_model(
80
94
  document_annotation_format, OptionalNullable[models.ResponseFormat]
81
95
  ),
96
+ document_annotation_prompt=document_annotation_prompt,
82
97
  table_format=table_format,
83
98
  extract_header=extract_header,
84
99
  extract_footer=extract_footer,
@@ -100,6 +115,7 @@ class Ocr(BaseSDK):
100
115
  get_serialized_body=lambda: utils.serialize_request_body(
101
116
  request, False, False, "json", models.OCRRequest
102
117
  ),
118
+ allow_empty_value=None,
103
119
  timeout_ms=timeout_ms,
104
120
  )
105
121
 
@@ -116,7 +132,7 @@ class Ocr(BaseSDK):
116
132
  config=self.sdk_configuration,
117
133
  base_url=base_url or "",
118
134
  operation_id="ocr_v1_ocr_post",
119
- oauth2_scopes=[],
135
+ oauth2_scopes=None,
120
136
  security_source=get_security_from_env(
121
137
  self.sdk_configuration.security, models.Security
122
138
  ),
@@ -147,19 +163,28 @@ class Ocr(BaseSDK):
147
163
  self,
148
164
  *,
149
165
  model: Nullable[str],
150
- document: Union[models.Document, models.DocumentTypedDict],
166
+ document: Union[
167
+ models_ocrrequest.Document, models_ocrrequest.DocumentTypedDict
168
+ ],
151
169
  id: Optional[str] = None,
152
170
  pages: OptionalNullable[List[int]] = UNSET,
153
171
  include_image_base64: OptionalNullable[bool] = UNSET,
154
172
  image_limit: OptionalNullable[int] = UNSET,
155
173
  image_min_size: OptionalNullable[int] = UNSET,
156
174
  bbox_annotation_format: OptionalNullable[
157
- Union[models.ResponseFormat, models.ResponseFormatTypedDict]
175
+ Union[
176
+ models_responseformat.ResponseFormat,
177
+ models_responseformat.ResponseFormatTypedDict,
178
+ ]
158
179
  ] = UNSET,
159
180
  document_annotation_format: OptionalNullable[
160
- Union[models.ResponseFormat, models.ResponseFormatTypedDict]
181
+ Union[
182
+ models_responseformat.ResponseFormat,
183
+ models_responseformat.ResponseFormatTypedDict,
184
+ ]
161
185
  ] = UNSET,
162
- table_format: OptionalNullable[models.TableFormat] = UNSET,
186
+ document_annotation_prompt: OptionalNullable[str] = UNSET,
187
+ table_format: OptionalNullable[models_ocrrequest.TableFormat] = UNSET,
163
188
  extract_header: Optional[bool] = None,
164
189
  extract_footer: Optional[bool] = None,
165
190
  retries: OptionalNullable[utils.RetryConfig] = UNSET,
@@ -178,6 +203,7 @@ class Ocr(BaseSDK):
178
203
  :param image_min_size: Minimum height and width of image to extract
179
204
  :param bbox_annotation_format: Structured output class for extracting useful information from each extracted bounding box / image from document. Only json_schema is valid for this field
180
205
  :param document_annotation_format: Structured output class for extracting useful information from the entire document. Only json_schema is valid for this field
206
+ :param document_annotation_prompt: Optional prompt to guide the model in extracting structured output from the entire document. A document_annotation_format must be provided.
181
207
  :param table_format:
182
208
  :param extract_header:
183
209
  :param extract_footer:
@@ -210,6 +236,7 @@ class Ocr(BaseSDK):
210
236
  document_annotation_format=utils.get_pydantic_model(
211
237
  document_annotation_format, OptionalNullable[models.ResponseFormat]
212
238
  ),
239
+ document_annotation_prompt=document_annotation_prompt,
213
240
  table_format=table_format,
214
241
  extract_header=extract_header,
215
242
  extract_footer=extract_footer,
@@ -231,6 +258,7 @@ class Ocr(BaseSDK):
231
258
  get_serialized_body=lambda: utils.serialize_request_body(
232
259
  request, False, False, "json", models.OCRRequest
233
260
  ),
261
+ allow_empty_value=None,
234
262
  timeout_ms=timeout_ms,
235
263
  )
236
264
 
@@ -247,7 +275,7 @@ class Ocr(BaseSDK):
247
275
  config=self.sdk_configuration,
248
276
  base_url=base_url or "",
249
277
  operation_id="ocr_v1_ocr_post",
250
- oauth2_scopes=[],
278
+ oauth2_scopes=None,
251
279
  security_source=get_security_from_env(
252
280
  self.sdk_configuration.security, models.Security
253
281
  ),
mistralai/sdk.py CHANGED
@@ -92,7 +92,7 @@ class Mistral(BaseSDK):
92
92
  """
93
93
  client_supplied = True
94
94
  if client is None:
95
- client = httpx.Client()
95
+ client = httpx.Client(follow_redirects=True)
96
96
  client_supplied = False
97
97
 
98
98
  assert issubclass(
@@ -101,7 +101,7 @@ class Mistral(BaseSDK):
101
101
 
102
102
  async_client_supplied = True
103
103
  if async_client is None:
104
- async_client = httpx.AsyncClient()
104
+ async_client = httpx.AsyncClient(follow_redirects=True)
105
105
  async_client_supplied = False
106
106
 
107
107
  if debug_logger is None: