mistralai 0.5.5a50__py3-none-any.whl → 1.0.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 (105) hide show
  1. mistralai/agents.py +434 -0
  2. mistralai/basesdk.py +43 -6
  3. mistralai/chat.py +29 -34
  4. mistralai/client.py +1 -1
  5. mistralai/embeddings.py +4 -4
  6. mistralai/files.py +10 -10
  7. mistralai/fim.py +17 -18
  8. mistralai/fine_tuning.py +10 -849
  9. mistralai/jobs.py +844 -0
  10. mistralai/models/__init__.py +6 -4
  11. mistralai/models/agentscompletionrequest.py +96 -0
  12. mistralai/models/agentscompletionstreamrequest.py +92 -0
  13. mistralai/models/assistantmessage.py +4 -9
  14. mistralai/models/chatcompletionchoice.py +4 -15
  15. mistralai/models/chatcompletionrequest.py +11 -16
  16. mistralai/models/chatcompletionstreamrequest.py +11 -16
  17. mistralai/models/completionresponsestreamchoice.py +4 -9
  18. mistralai/models/delete_model_v1_models_model_id_deleteop.py +2 -0
  19. mistralai/models/deltamessage.py +4 -9
  20. mistralai/models/detailedjobout.py +4 -9
  21. mistralai/models/embeddingrequest.py +4 -9
  22. mistralai/models/eventout.py +4 -9
  23. mistralai/models/fileschema.py +4 -9
  24. mistralai/models/fimcompletionrequest.py +11 -16
  25. mistralai/models/fimcompletionstreamrequest.py +11 -16
  26. mistralai/models/ftmodelout.py +4 -9
  27. mistralai/models/functioncall.py +9 -3
  28. mistralai/models/githubrepositoryin.py +4 -9
  29. mistralai/models/githubrepositoryout.py +4 -9
  30. mistralai/models/httpvalidationerror.py +1 -1
  31. mistralai/models/jobin.py +4 -9
  32. mistralai/models/jobmetadataout.py +4 -9
  33. mistralai/models/jobout.py +4 -9
  34. mistralai/models/jobs_api_routes_fine_tuning_archive_fine_tuned_modelop.py +2 -0
  35. mistralai/models/jobs_api_routes_fine_tuning_create_fine_tuning_jobop.py +1 -59
  36. mistralai/models/jobs_api_routes_fine_tuning_get_fine_tuning_jobsop.py +4 -9
  37. mistralai/models/jobs_api_routes_fine_tuning_unarchive_fine_tuned_modelop.py +2 -0
  38. mistralai/models/jobs_api_routes_fine_tuning_update_fine_tuned_modelop.py +2 -0
  39. mistralai/models/legacyjobmetadataout.py +4 -9
  40. mistralai/models/metricout.py +4 -9
  41. mistralai/models/modelcard.py +4 -9
  42. mistralai/models/retrieve_model_v1_models_model_id_getop.py +2 -0
  43. mistralai/models/retrievefileout.py +4 -9
  44. mistralai/models/security.py +4 -4
  45. mistralai/models/toolmessage.py +4 -9
  46. mistralai/models/trainingparameters.py +4 -9
  47. mistralai/models/trainingparametersin.py +4 -9
  48. mistralai/models/updateftmodelin.py +4 -9
  49. mistralai/models/uploadfileout.py +4 -9
  50. mistralai/models/wandbintegration.py +4 -9
  51. mistralai/models/wandbintegrationout.py +4 -9
  52. mistralai/models_.py +24 -24
  53. mistralai/sdk.py +14 -6
  54. mistralai/sdkconfiguration.py +5 -4
  55. mistralai/types/basemodel.py +10 -6
  56. mistralai/utils/__init__.py +4 -0
  57. mistralai/utils/eventstreaming.py +8 -9
  58. mistralai/utils/logger.py +16 -0
  59. mistralai/utils/retries.py +2 -2
  60. mistralai/utils/security.py +5 -2
  61. {mistralai-0.5.5a50.dist-info → mistralai-1.0.0.dist-info}/METADATA +136 -67
  62. {mistralai-0.5.5a50.dist-info → mistralai-1.0.0.dist-info}/RECORD +105 -98
  63. mistralai_azure/basesdk.py +42 -4
  64. mistralai_azure/chat.py +15 -20
  65. mistralai_azure/models/__init__.py +3 -3
  66. mistralai_azure/models/assistantmessage.py +4 -9
  67. mistralai_azure/models/chatcompletionchoice.py +4 -15
  68. mistralai_azure/models/chatcompletionrequest.py +7 -12
  69. mistralai_azure/models/chatcompletionstreamrequest.py +7 -12
  70. mistralai_azure/models/completionresponsestreamchoice.py +4 -9
  71. mistralai_azure/models/deltamessage.py +4 -9
  72. mistralai_azure/models/functioncall.py +9 -3
  73. mistralai_azure/models/httpvalidationerror.py +1 -1
  74. mistralai_azure/models/toolmessage.py +4 -9
  75. mistralai_azure/sdk.py +7 -2
  76. mistralai_azure/sdkconfiguration.py +5 -4
  77. mistralai_azure/types/basemodel.py +10 -6
  78. mistralai_azure/utils/__init__.py +4 -0
  79. mistralai_azure/utils/eventstreaming.py +8 -9
  80. mistralai_azure/utils/logger.py +16 -0
  81. mistralai_azure/utils/retries.py +2 -2
  82. mistralai_gcp/basesdk.py +42 -4
  83. mistralai_gcp/chat.py +12 -17
  84. mistralai_gcp/fim.py +12 -13
  85. mistralai_gcp/models/__init__.py +3 -3
  86. mistralai_gcp/models/assistantmessage.py +4 -9
  87. mistralai_gcp/models/chatcompletionchoice.py +4 -15
  88. mistralai_gcp/models/chatcompletionrequest.py +9 -14
  89. mistralai_gcp/models/chatcompletionstreamrequest.py +9 -14
  90. mistralai_gcp/models/completionresponsestreamchoice.py +4 -9
  91. mistralai_gcp/models/deltamessage.py +4 -9
  92. mistralai_gcp/models/fimcompletionrequest.py +11 -16
  93. mistralai_gcp/models/fimcompletionstreamrequest.py +11 -16
  94. mistralai_gcp/models/functioncall.py +9 -3
  95. mistralai_gcp/models/httpvalidationerror.py +1 -1
  96. mistralai_gcp/models/toolmessage.py +4 -9
  97. mistralai_gcp/sdk.py +9 -0
  98. mistralai_gcp/sdkconfiguration.py +5 -4
  99. mistralai_gcp/types/basemodel.py +10 -6
  100. mistralai_gcp/utils/__init__.py +4 -0
  101. mistralai_gcp/utils/eventstreaming.py +8 -9
  102. mistralai_gcp/utils/logger.py +16 -0
  103. mistralai_gcp/utils/retries.py +2 -2
  104. {mistralai-0.5.5a50.dist-info → mistralai-1.0.0.dist-info}/LICENSE +0 -0
  105. {mistralai-0.5.5a50.dist-info → mistralai-1.0.0.dist-info}/WHEEL +0 -0
mistralai/jobs.py ADDED
@@ -0,0 +1,844 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from datetime import datetime
5
+ from mistralai import models, utils
6
+ from mistralai._hooks import HookContext
7
+ from mistralai.types import OptionalNullable, UNSET
8
+ from mistralai.utils import get_security_from_env
9
+ from typing import List, Optional, Union
10
+
11
+ class Jobs(BaseSDK):
12
+
13
+
14
+ def list(
15
+ self, *,
16
+ page: Optional[int] = 0,
17
+ page_size: Optional[int] = 100,
18
+ model: OptionalNullable[str] = UNSET,
19
+ created_after: OptionalNullable[datetime] = UNSET,
20
+ created_by_me: Optional[bool] = False,
21
+ status: OptionalNullable[models.QueryParamStatus] = UNSET,
22
+ wandb_project: OptionalNullable[str] = UNSET,
23
+ wandb_name: OptionalNullable[str] = UNSET,
24
+ suffix: OptionalNullable[str] = UNSET,
25
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
26
+ server_url: Optional[str] = None,
27
+ timeout_ms: Optional[int] = None,
28
+ ) -> Optional[models.JobsOut]:
29
+ r"""Get Fine Tuning Jobs
30
+
31
+ Get a list of fine-tuning jobs for your organization and user.
32
+
33
+ :param page: The page number of the results to be returned.
34
+ :param page_size: The number of items to return per page.
35
+ :param model: The model name used for fine-tuning to filter on. When set, the other results are not displayed.
36
+ :param created_after: The date/time to filter on. When set, the results for previous creation times are not displayed.
37
+ :param created_by_me: When set, only return results for jobs created by the API caller. Other results are not displayed.
38
+ :param status: The current job state to filter on. When set, the other results are not displayed.
39
+ :param wandb_project: The Weights and Biases project to filter on. When set, the other results are not displayed.
40
+ :param wandb_name: The Weight and Biases run name to filter on. When set, the other results are not displayed.
41
+ :param suffix: The model suffix to filter on. When set, the other results are not displayed.
42
+ :param retries: Override the default retry configuration for this method
43
+ :param server_url: Override the default server URL for this method
44
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
45
+ """
46
+ base_url = None
47
+ url_variables = None
48
+ if timeout_ms is None:
49
+ timeout_ms = self.sdk_configuration.timeout_ms
50
+
51
+ if server_url is not None:
52
+ base_url = server_url
53
+
54
+ request = models.JobsAPIRoutesFineTuningGetFineTuningJobsRequest(
55
+ page=page,
56
+ page_size=page_size,
57
+ model=model,
58
+ created_after=created_after,
59
+ created_by_me=created_by_me,
60
+ status=status,
61
+ wandb_project=wandb_project,
62
+ wandb_name=wandb_name,
63
+ suffix=suffix,
64
+ )
65
+
66
+ req = self.build_request(
67
+ method="GET",
68
+ path="/v1/fine_tuning/jobs",
69
+ base_url=base_url,
70
+ url_variables=url_variables,
71
+ request=request,
72
+ request_body_required=False,
73
+ request_has_path_params=False,
74
+ request_has_query_params=True,
75
+ user_agent_header="user-agent",
76
+ accept_header_value="application/json",
77
+ security=self.sdk_configuration.security,
78
+ timeout_ms=timeout_ms,
79
+ )
80
+
81
+ if retries == UNSET:
82
+ if self.sdk_configuration.retry_config is not UNSET:
83
+ retries = self.sdk_configuration.retry_config
84
+
85
+ retry_config = None
86
+ if isinstance(retries, utils.RetryConfig):
87
+ retry_config = (retries, [
88
+ "429",
89
+ "500",
90
+ "502",
91
+ "503",
92
+ "504"
93
+ ])
94
+
95
+ http_res = self.do_request(
96
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_jobs", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
97
+ request=req,
98
+ error_status_codes=["4XX","5XX"],
99
+ retry_config=retry_config
100
+ )
101
+
102
+ if utils.match_response(http_res, "200", "application/json"):
103
+ return utils.unmarshal_json(http_res.text, Optional[models.JobsOut])
104
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
105
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
106
+
107
+ content_type = http_res.headers.get("Content-Type")
108
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
109
+
110
+
111
+
112
+ async def list_async(
113
+ self, *,
114
+ page: Optional[int] = 0,
115
+ page_size: Optional[int] = 100,
116
+ model: OptionalNullable[str] = UNSET,
117
+ created_after: OptionalNullable[datetime] = UNSET,
118
+ created_by_me: Optional[bool] = False,
119
+ status: OptionalNullable[models.QueryParamStatus] = UNSET,
120
+ wandb_project: OptionalNullable[str] = UNSET,
121
+ wandb_name: OptionalNullable[str] = UNSET,
122
+ suffix: OptionalNullable[str] = UNSET,
123
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
124
+ server_url: Optional[str] = None,
125
+ timeout_ms: Optional[int] = None,
126
+ ) -> Optional[models.JobsOut]:
127
+ r"""Get Fine Tuning Jobs
128
+
129
+ Get a list of fine-tuning jobs for your organization and user.
130
+
131
+ :param page: The page number of the results to be returned.
132
+ :param page_size: The number of items to return per page.
133
+ :param model: The model name used for fine-tuning to filter on. When set, the other results are not displayed.
134
+ :param created_after: The date/time to filter on. When set, the results for previous creation times are not displayed.
135
+ :param created_by_me: When set, only return results for jobs created by the API caller. Other results are not displayed.
136
+ :param status: The current job state to filter on. When set, the other results are not displayed.
137
+ :param wandb_project: The Weights and Biases project to filter on. When set, the other results are not displayed.
138
+ :param wandb_name: The Weight and Biases run name to filter on. When set, the other results are not displayed.
139
+ :param suffix: The model suffix to filter on. When set, the other results are not displayed.
140
+ :param retries: Override the default retry configuration for this method
141
+ :param server_url: Override the default server URL for this method
142
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
143
+ """
144
+ base_url = None
145
+ url_variables = None
146
+ if timeout_ms is None:
147
+ timeout_ms = self.sdk_configuration.timeout_ms
148
+
149
+ if server_url is not None:
150
+ base_url = server_url
151
+
152
+ request = models.JobsAPIRoutesFineTuningGetFineTuningJobsRequest(
153
+ page=page,
154
+ page_size=page_size,
155
+ model=model,
156
+ created_after=created_after,
157
+ created_by_me=created_by_me,
158
+ status=status,
159
+ wandb_project=wandb_project,
160
+ wandb_name=wandb_name,
161
+ suffix=suffix,
162
+ )
163
+
164
+ req = self.build_request(
165
+ method="GET",
166
+ path="/v1/fine_tuning/jobs",
167
+ base_url=base_url,
168
+ url_variables=url_variables,
169
+ request=request,
170
+ request_body_required=False,
171
+ request_has_path_params=False,
172
+ request_has_query_params=True,
173
+ user_agent_header="user-agent",
174
+ accept_header_value="application/json",
175
+ security=self.sdk_configuration.security,
176
+ timeout_ms=timeout_ms,
177
+ )
178
+
179
+ if retries == UNSET:
180
+ if self.sdk_configuration.retry_config is not UNSET:
181
+ retries = self.sdk_configuration.retry_config
182
+
183
+ retry_config = None
184
+ if isinstance(retries, utils.RetryConfig):
185
+ retry_config = (retries, [
186
+ "429",
187
+ "500",
188
+ "502",
189
+ "503",
190
+ "504"
191
+ ])
192
+
193
+ http_res = await self.do_request_async(
194
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_jobs", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
195
+ request=req,
196
+ error_status_codes=["4XX","5XX"],
197
+ retry_config=retry_config
198
+ )
199
+
200
+ if utils.match_response(http_res, "200", "application/json"):
201
+ return utils.unmarshal_json(http_res.text, Optional[models.JobsOut])
202
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
203
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
204
+
205
+ content_type = http_res.headers.get("Content-Type")
206
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
207
+
208
+
209
+
210
+ def create(
211
+ self, *,
212
+ model: models.FineTuneableModel,
213
+ hyperparameters: Union[models.TrainingParametersIn, models.TrainingParametersInTypedDict],
214
+ training_files: Optional[Union[List[models.TrainingFile], List[models.TrainingFileTypedDict]]] = None,
215
+ validation_files: OptionalNullable[List[str]] = UNSET,
216
+ suffix: OptionalNullable[str] = UNSET,
217
+ integrations: OptionalNullable[Union[List[models.WandbIntegration], List[models.WandbIntegrationTypedDict]]] = UNSET,
218
+ repositories: Optional[Union[List[models.GithubRepositoryIn], List[models.GithubRepositoryInTypedDict]]] = None,
219
+ auto_start: Optional[bool] = None,
220
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
221
+ server_url: Optional[str] = None,
222
+ timeout_ms: Optional[int] = None,
223
+ ) -> Optional[models.JobsAPIRoutesFineTuningCreateFineTuningJobResponse]:
224
+ r"""Create Fine Tuning Job
225
+
226
+ Create a new fine-tuning job, it will be queued for processing.
227
+
228
+ :param model: The name of the model to fine-tune.
229
+ :param hyperparameters: The fine-tuning hyperparameter settings used in a fine-tune job.
230
+ :param training_files:
231
+ :param validation_files: A list containing the IDs of uploaded files that contain validation data. If you provide these files, the data is used to generate validation metrics periodically during fine-tuning. These metrics can be viewed in `checkpoints` when getting the status of a running fine-tuning job. The same data should not be present in both train and validation files.
232
+ :param suffix: A string that will be added to your fine-tuning model name. For example, a suffix of \"my-great-model\" would produce a model name like `ft:open-mistral-7b:my-great-model:xxx...`
233
+ :param integrations: A list of integrations to enable for your fine-tuning job.
234
+ :param repositories:
235
+ :param auto_start: This field will be required in a future release.
236
+ :param retries: Override the default retry configuration for this method
237
+ :param server_url: Override the default server URL for this method
238
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
239
+ """
240
+ base_url = None
241
+ url_variables = None
242
+ if timeout_ms is None:
243
+ timeout_ms = self.sdk_configuration.timeout_ms
244
+
245
+ if server_url is not None:
246
+ base_url = server_url
247
+
248
+ request = models.JobIn(
249
+ model=model,
250
+ training_files=utils.get_pydantic_model(training_files, Optional[List[models.TrainingFile]]),
251
+ validation_files=validation_files,
252
+ hyperparameters=utils.get_pydantic_model(hyperparameters, models.TrainingParametersIn),
253
+ suffix=suffix,
254
+ integrations=utils.get_pydantic_model(integrations, OptionalNullable[List[models.WandbIntegration]]),
255
+ repositories=utils.get_pydantic_model(repositories, Optional[List[models.GithubRepositoryIn]]),
256
+ auto_start=auto_start,
257
+ )
258
+
259
+ req = self.build_request(
260
+ method="POST",
261
+ path="/v1/fine_tuning/jobs",
262
+ base_url=base_url,
263
+ url_variables=url_variables,
264
+ request=request,
265
+ request_body_required=True,
266
+ request_has_path_params=False,
267
+ request_has_query_params=True,
268
+ user_agent_header="user-agent",
269
+ accept_header_value="application/json",
270
+ security=self.sdk_configuration.security,
271
+ get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", models.JobIn),
272
+ timeout_ms=timeout_ms,
273
+ )
274
+
275
+ if retries == UNSET:
276
+ if self.sdk_configuration.retry_config is not UNSET:
277
+ retries = self.sdk_configuration.retry_config
278
+
279
+ retry_config = None
280
+ if isinstance(retries, utils.RetryConfig):
281
+ retry_config = (retries, [
282
+ "429",
283
+ "500",
284
+ "502",
285
+ "503",
286
+ "504"
287
+ ])
288
+
289
+ http_res = self.do_request(
290
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_create_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
291
+ request=req,
292
+ error_status_codes=["4XX","5XX"],
293
+ retry_config=retry_config
294
+ )
295
+
296
+ if utils.match_response(http_res, "200", "application/json"):
297
+ return utils.unmarshal_json(http_res.text, Optional[models.JobsAPIRoutesFineTuningCreateFineTuningJobResponse])
298
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
299
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
300
+
301
+ content_type = http_res.headers.get("Content-Type")
302
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
303
+
304
+
305
+
306
+ async def create_async(
307
+ self, *,
308
+ model: models.FineTuneableModel,
309
+ hyperparameters: Union[models.TrainingParametersIn, models.TrainingParametersInTypedDict],
310
+ training_files: Optional[Union[List[models.TrainingFile], List[models.TrainingFileTypedDict]]] = None,
311
+ validation_files: OptionalNullable[List[str]] = UNSET,
312
+ suffix: OptionalNullable[str] = UNSET,
313
+ integrations: OptionalNullable[Union[List[models.WandbIntegration], List[models.WandbIntegrationTypedDict]]] = UNSET,
314
+ repositories: Optional[Union[List[models.GithubRepositoryIn], List[models.GithubRepositoryInTypedDict]]] = None,
315
+ auto_start: Optional[bool] = None,
316
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
317
+ server_url: Optional[str] = None,
318
+ timeout_ms: Optional[int] = None,
319
+ ) -> Optional[models.JobsAPIRoutesFineTuningCreateFineTuningJobResponse]:
320
+ r"""Create Fine Tuning Job
321
+
322
+ Create a new fine-tuning job, it will be queued for processing.
323
+
324
+ :param model: The name of the model to fine-tune.
325
+ :param hyperparameters: The fine-tuning hyperparameter settings used in a fine-tune job.
326
+ :param training_files:
327
+ :param validation_files: A list containing the IDs of uploaded files that contain validation data. If you provide these files, the data is used to generate validation metrics periodically during fine-tuning. These metrics can be viewed in `checkpoints` when getting the status of a running fine-tuning job. The same data should not be present in both train and validation files.
328
+ :param suffix: A string that will be added to your fine-tuning model name. For example, a suffix of \"my-great-model\" would produce a model name like `ft:open-mistral-7b:my-great-model:xxx...`
329
+ :param integrations: A list of integrations to enable for your fine-tuning job.
330
+ :param repositories:
331
+ :param auto_start: This field will be required in a future release.
332
+ :param retries: Override the default retry configuration for this method
333
+ :param server_url: Override the default server URL for this method
334
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
335
+ """
336
+ base_url = None
337
+ url_variables = None
338
+ if timeout_ms is None:
339
+ timeout_ms = self.sdk_configuration.timeout_ms
340
+
341
+ if server_url is not None:
342
+ base_url = server_url
343
+
344
+ request = models.JobIn(
345
+ model=model,
346
+ training_files=utils.get_pydantic_model(training_files, Optional[List[models.TrainingFile]]),
347
+ validation_files=validation_files,
348
+ hyperparameters=utils.get_pydantic_model(hyperparameters, models.TrainingParametersIn),
349
+ suffix=suffix,
350
+ integrations=utils.get_pydantic_model(integrations, OptionalNullable[List[models.WandbIntegration]]),
351
+ repositories=utils.get_pydantic_model(repositories, Optional[List[models.GithubRepositoryIn]]),
352
+ auto_start=auto_start,
353
+ )
354
+
355
+ req = self.build_request(
356
+ method="POST",
357
+ path="/v1/fine_tuning/jobs",
358
+ base_url=base_url,
359
+ url_variables=url_variables,
360
+ request=request,
361
+ request_body_required=True,
362
+ request_has_path_params=False,
363
+ request_has_query_params=True,
364
+ user_agent_header="user-agent",
365
+ accept_header_value="application/json",
366
+ security=self.sdk_configuration.security,
367
+ get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", models.JobIn),
368
+ timeout_ms=timeout_ms,
369
+ )
370
+
371
+ if retries == UNSET:
372
+ if self.sdk_configuration.retry_config is not UNSET:
373
+ retries = self.sdk_configuration.retry_config
374
+
375
+ retry_config = None
376
+ if isinstance(retries, utils.RetryConfig):
377
+ retry_config = (retries, [
378
+ "429",
379
+ "500",
380
+ "502",
381
+ "503",
382
+ "504"
383
+ ])
384
+
385
+ http_res = await self.do_request_async(
386
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_create_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
387
+ request=req,
388
+ error_status_codes=["4XX","5XX"],
389
+ retry_config=retry_config
390
+ )
391
+
392
+ if utils.match_response(http_res, "200", "application/json"):
393
+ return utils.unmarshal_json(http_res.text, Optional[models.JobsAPIRoutesFineTuningCreateFineTuningJobResponse])
394
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
395
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
396
+
397
+ content_type = http_res.headers.get("Content-Type")
398
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
399
+
400
+
401
+
402
+ def get(
403
+ self, *,
404
+ job_id: str,
405
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
406
+ server_url: Optional[str] = None,
407
+ timeout_ms: Optional[int] = None,
408
+ ) -> Optional[models.DetailedJobOut]:
409
+ r"""Get Fine Tuning Job
410
+
411
+ Get a fine-tuned job details by its UUID.
412
+
413
+ :param job_id: The ID of the job to analyse.
414
+ :param retries: Override the default retry configuration for this method
415
+ :param server_url: Override the default server URL for this method
416
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
417
+ """
418
+ base_url = None
419
+ url_variables = None
420
+ if timeout_ms is None:
421
+ timeout_ms = self.sdk_configuration.timeout_ms
422
+
423
+ if server_url is not None:
424
+ base_url = server_url
425
+
426
+ request = models.JobsAPIRoutesFineTuningGetFineTuningJobRequest(
427
+ job_id=job_id,
428
+ )
429
+
430
+ req = self.build_request(
431
+ method="GET",
432
+ path="/v1/fine_tuning/jobs/{job_id}",
433
+ base_url=base_url,
434
+ url_variables=url_variables,
435
+ request=request,
436
+ request_body_required=False,
437
+ request_has_path_params=True,
438
+ request_has_query_params=True,
439
+ user_agent_header="user-agent",
440
+ accept_header_value="application/json",
441
+ security=self.sdk_configuration.security,
442
+ timeout_ms=timeout_ms,
443
+ )
444
+
445
+ if retries == UNSET:
446
+ if self.sdk_configuration.retry_config is not UNSET:
447
+ retries = self.sdk_configuration.retry_config
448
+
449
+ retry_config = None
450
+ if isinstance(retries, utils.RetryConfig):
451
+ retry_config = (retries, [
452
+ "429",
453
+ "500",
454
+ "502",
455
+ "503",
456
+ "504"
457
+ ])
458
+
459
+ http_res = self.do_request(
460
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
461
+ request=req,
462
+ error_status_codes=["4XX","5XX"],
463
+ retry_config=retry_config
464
+ )
465
+
466
+ if utils.match_response(http_res, "200", "application/json"):
467
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
468
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
469
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
470
+
471
+ content_type = http_res.headers.get("Content-Type")
472
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
473
+
474
+
475
+
476
+ async def get_async(
477
+ self, *,
478
+ job_id: str,
479
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
480
+ server_url: Optional[str] = None,
481
+ timeout_ms: Optional[int] = None,
482
+ ) -> Optional[models.DetailedJobOut]:
483
+ r"""Get Fine Tuning Job
484
+
485
+ Get a fine-tuned job details by its UUID.
486
+
487
+ :param job_id: The ID of the job to analyse.
488
+ :param retries: Override the default retry configuration for this method
489
+ :param server_url: Override the default server URL for this method
490
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
491
+ """
492
+ base_url = None
493
+ url_variables = None
494
+ if timeout_ms is None:
495
+ timeout_ms = self.sdk_configuration.timeout_ms
496
+
497
+ if server_url is not None:
498
+ base_url = server_url
499
+
500
+ request = models.JobsAPIRoutesFineTuningGetFineTuningJobRequest(
501
+ job_id=job_id,
502
+ )
503
+
504
+ req = self.build_request(
505
+ method="GET",
506
+ path="/v1/fine_tuning/jobs/{job_id}",
507
+ base_url=base_url,
508
+ url_variables=url_variables,
509
+ request=request,
510
+ request_body_required=False,
511
+ request_has_path_params=True,
512
+ request_has_query_params=True,
513
+ user_agent_header="user-agent",
514
+ accept_header_value="application/json",
515
+ security=self.sdk_configuration.security,
516
+ timeout_ms=timeout_ms,
517
+ )
518
+
519
+ if retries == UNSET:
520
+ if self.sdk_configuration.retry_config is not UNSET:
521
+ retries = self.sdk_configuration.retry_config
522
+
523
+ retry_config = None
524
+ if isinstance(retries, utils.RetryConfig):
525
+ retry_config = (retries, [
526
+ "429",
527
+ "500",
528
+ "502",
529
+ "503",
530
+ "504"
531
+ ])
532
+
533
+ http_res = await self.do_request_async(
534
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_get_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
535
+ request=req,
536
+ error_status_codes=["4XX","5XX"],
537
+ retry_config=retry_config
538
+ )
539
+
540
+ if utils.match_response(http_res, "200", "application/json"):
541
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
542
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
543
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
544
+
545
+ content_type = http_res.headers.get("Content-Type")
546
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
547
+
548
+
549
+
550
+ def cancel(
551
+ self, *,
552
+ job_id: str,
553
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
554
+ server_url: Optional[str] = None,
555
+ timeout_ms: Optional[int] = None,
556
+ ) -> Optional[models.DetailedJobOut]:
557
+ r"""Cancel Fine Tuning Job
558
+
559
+ Request the cancellation of a fine tuning job.
560
+
561
+ :param job_id: The ID of the job to cancel.
562
+ :param retries: Override the default retry configuration for this method
563
+ :param server_url: Override the default server URL for this method
564
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
565
+ """
566
+ base_url = None
567
+ url_variables = None
568
+ if timeout_ms is None:
569
+ timeout_ms = self.sdk_configuration.timeout_ms
570
+
571
+ if server_url is not None:
572
+ base_url = server_url
573
+
574
+ request = models.JobsAPIRoutesFineTuningCancelFineTuningJobRequest(
575
+ job_id=job_id,
576
+ )
577
+
578
+ req = self.build_request(
579
+ method="POST",
580
+ path="/v1/fine_tuning/jobs/{job_id}/cancel",
581
+ base_url=base_url,
582
+ url_variables=url_variables,
583
+ request=request,
584
+ request_body_required=False,
585
+ request_has_path_params=True,
586
+ request_has_query_params=True,
587
+ user_agent_header="user-agent",
588
+ accept_header_value="application/json",
589
+ security=self.sdk_configuration.security,
590
+ timeout_ms=timeout_ms,
591
+ )
592
+
593
+ if retries == UNSET:
594
+ if self.sdk_configuration.retry_config is not UNSET:
595
+ retries = self.sdk_configuration.retry_config
596
+
597
+ retry_config = None
598
+ if isinstance(retries, utils.RetryConfig):
599
+ retry_config = (retries, [
600
+ "429",
601
+ "500",
602
+ "502",
603
+ "503",
604
+ "504"
605
+ ])
606
+
607
+ http_res = self.do_request(
608
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_cancel_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
609
+ request=req,
610
+ error_status_codes=["4XX","5XX"],
611
+ retry_config=retry_config
612
+ )
613
+
614
+ if utils.match_response(http_res, "200", "application/json"):
615
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
616
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
617
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
618
+
619
+ content_type = http_res.headers.get("Content-Type")
620
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
621
+
622
+
623
+
624
+ async def cancel_async(
625
+ self, *,
626
+ job_id: str,
627
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
628
+ server_url: Optional[str] = None,
629
+ timeout_ms: Optional[int] = None,
630
+ ) -> Optional[models.DetailedJobOut]:
631
+ r"""Cancel Fine Tuning Job
632
+
633
+ Request the cancellation of a fine tuning job.
634
+
635
+ :param job_id: The ID of the job to cancel.
636
+ :param retries: Override the default retry configuration for this method
637
+ :param server_url: Override the default server URL for this method
638
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
639
+ """
640
+ base_url = None
641
+ url_variables = None
642
+ if timeout_ms is None:
643
+ timeout_ms = self.sdk_configuration.timeout_ms
644
+
645
+ if server_url is not None:
646
+ base_url = server_url
647
+
648
+ request = models.JobsAPIRoutesFineTuningCancelFineTuningJobRequest(
649
+ job_id=job_id,
650
+ )
651
+
652
+ req = self.build_request(
653
+ method="POST",
654
+ path="/v1/fine_tuning/jobs/{job_id}/cancel",
655
+ base_url=base_url,
656
+ url_variables=url_variables,
657
+ request=request,
658
+ request_body_required=False,
659
+ request_has_path_params=True,
660
+ request_has_query_params=True,
661
+ user_agent_header="user-agent",
662
+ accept_header_value="application/json",
663
+ security=self.sdk_configuration.security,
664
+ timeout_ms=timeout_ms,
665
+ )
666
+
667
+ if retries == UNSET:
668
+ if self.sdk_configuration.retry_config is not UNSET:
669
+ retries = self.sdk_configuration.retry_config
670
+
671
+ retry_config = None
672
+ if isinstance(retries, utils.RetryConfig):
673
+ retry_config = (retries, [
674
+ "429",
675
+ "500",
676
+ "502",
677
+ "503",
678
+ "504"
679
+ ])
680
+
681
+ http_res = await self.do_request_async(
682
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_cancel_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
683
+ request=req,
684
+ error_status_codes=["4XX","5XX"],
685
+ retry_config=retry_config
686
+ )
687
+
688
+ if utils.match_response(http_res, "200", "application/json"):
689
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
690
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
691
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
692
+
693
+ content_type = http_res.headers.get("Content-Type")
694
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
695
+
696
+
697
+
698
+ def start(
699
+ self, *,
700
+ job_id: str,
701
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
702
+ server_url: Optional[str] = None,
703
+ timeout_ms: Optional[int] = None,
704
+ ) -> Optional[models.DetailedJobOut]:
705
+ r"""Start Fine Tuning Job
706
+
707
+ Request the start of a validated fine tuning job.
708
+
709
+ :param job_id:
710
+ :param retries: Override the default retry configuration for this method
711
+ :param server_url: Override the default server URL for this method
712
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
713
+ """
714
+ base_url = None
715
+ url_variables = None
716
+ if timeout_ms is None:
717
+ timeout_ms = self.sdk_configuration.timeout_ms
718
+
719
+ if server_url is not None:
720
+ base_url = server_url
721
+
722
+ request = models.JobsAPIRoutesFineTuningStartFineTuningJobRequest(
723
+ job_id=job_id,
724
+ )
725
+
726
+ req = self.build_request(
727
+ method="POST",
728
+ path="/v1/fine_tuning/jobs/{job_id}/start",
729
+ base_url=base_url,
730
+ url_variables=url_variables,
731
+ request=request,
732
+ request_body_required=False,
733
+ request_has_path_params=True,
734
+ request_has_query_params=True,
735
+ user_agent_header="user-agent",
736
+ accept_header_value="application/json",
737
+ security=self.sdk_configuration.security,
738
+ timeout_ms=timeout_ms,
739
+ )
740
+
741
+ if retries == UNSET:
742
+ if self.sdk_configuration.retry_config is not UNSET:
743
+ retries = self.sdk_configuration.retry_config
744
+
745
+ retry_config = None
746
+ if isinstance(retries, utils.RetryConfig):
747
+ retry_config = (retries, [
748
+ "429",
749
+ "500",
750
+ "502",
751
+ "503",
752
+ "504"
753
+ ])
754
+
755
+ http_res = self.do_request(
756
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_start_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
757
+ request=req,
758
+ error_status_codes=["4XX","5XX"],
759
+ retry_config=retry_config
760
+ )
761
+
762
+ if utils.match_response(http_res, "200", "application/json"):
763
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
764
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
765
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
766
+
767
+ content_type = http_res.headers.get("Content-Type")
768
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
769
+
770
+
771
+
772
+ async def start_async(
773
+ self, *,
774
+ job_id: str,
775
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
776
+ server_url: Optional[str] = None,
777
+ timeout_ms: Optional[int] = None,
778
+ ) -> Optional[models.DetailedJobOut]:
779
+ r"""Start Fine Tuning Job
780
+
781
+ Request the start of a validated fine tuning job.
782
+
783
+ :param job_id:
784
+ :param retries: Override the default retry configuration for this method
785
+ :param server_url: Override the default server URL for this method
786
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
787
+ """
788
+ base_url = None
789
+ url_variables = None
790
+ if timeout_ms is None:
791
+ timeout_ms = self.sdk_configuration.timeout_ms
792
+
793
+ if server_url is not None:
794
+ base_url = server_url
795
+
796
+ request = models.JobsAPIRoutesFineTuningStartFineTuningJobRequest(
797
+ job_id=job_id,
798
+ )
799
+
800
+ req = self.build_request(
801
+ method="POST",
802
+ path="/v1/fine_tuning/jobs/{job_id}/start",
803
+ base_url=base_url,
804
+ url_variables=url_variables,
805
+ request=request,
806
+ request_body_required=False,
807
+ request_has_path_params=True,
808
+ request_has_query_params=True,
809
+ user_agent_header="user-agent",
810
+ accept_header_value="application/json",
811
+ security=self.sdk_configuration.security,
812
+ timeout_ms=timeout_ms,
813
+ )
814
+
815
+ if retries == UNSET:
816
+ if self.sdk_configuration.retry_config is not UNSET:
817
+ retries = self.sdk_configuration.retry_config
818
+
819
+ retry_config = None
820
+ if isinstance(retries, utils.RetryConfig):
821
+ retry_config = (retries, [
822
+ "429",
823
+ "500",
824
+ "502",
825
+ "503",
826
+ "504"
827
+ ])
828
+
829
+ http_res = await self.do_request_async(
830
+ hook_ctx=HookContext(operation_id="jobs_api_routes_fine_tuning_start_fine_tuning_job", oauth2_scopes=[], security_source=get_security_from_env(self.sdk_configuration.security, models.Security)),
831
+ request=req,
832
+ error_status_codes=["4XX","5XX"],
833
+ retry_config=retry_config
834
+ )
835
+
836
+ if utils.match_response(http_res, "200", "application/json"):
837
+ return utils.unmarshal_json(http_res.text, Optional[models.DetailedJobOut])
838
+ if utils.match_response(http_res, ["4XX","5XX"], "*"):
839
+ raise models.SDKError("API error occurred", http_res.status_code, http_res.text, http_res)
840
+
841
+ content_type = http_res.headers.get("Content-Type")
842
+ raise models.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res)
843
+
844
+