arize 8.0.0a21__py3-none-any.whl → 8.0.0a23__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 (166) hide show
  1. arize/__init__.py +17 -9
  2. arize/_exporter/client.py +55 -36
  3. arize/_exporter/parsers/tracing_data_parser.py +41 -30
  4. arize/_exporter/validation.py +3 -3
  5. arize/_flight/client.py +208 -77
  6. arize/_generated/api_client/__init__.py +30 -6
  7. arize/_generated/api_client/api/__init__.py +1 -0
  8. arize/_generated/api_client/api/datasets_api.py +864 -190
  9. arize/_generated/api_client/api/experiments_api.py +167 -131
  10. arize/_generated/api_client/api/projects_api.py +1197 -0
  11. arize/_generated/api_client/api_client.py +2 -2
  12. arize/_generated/api_client/configuration.py +42 -34
  13. arize/_generated/api_client/exceptions.py +2 -2
  14. arize/_generated/api_client/models/__init__.py +15 -4
  15. arize/_generated/api_client/models/dataset.py +10 -10
  16. arize/_generated/api_client/models/dataset_example.py +111 -0
  17. arize/_generated/api_client/models/dataset_example_update.py +100 -0
  18. arize/_generated/api_client/models/dataset_version.py +13 -13
  19. arize/_generated/api_client/models/datasets_create_request.py +16 -8
  20. arize/_generated/api_client/models/datasets_examples_insert_request.py +100 -0
  21. arize/_generated/api_client/models/datasets_examples_list200_response.py +106 -0
  22. arize/_generated/api_client/models/datasets_examples_update_request.py +102 -0
  23. arize/_generated/api_client/models/datasets_list200_response.py +10 -4
  24. arize/_generated/api_client/models/experiment.py +14 -16
  25. arize/_generated/api_client/models/experiment_run.py +108 -0
  26. arize/_generated/api_client/models/experiment_run_create.py +102 -0
  27. arize/_generated/api_client/models/experiments_create_request.py +16 -10
  28. arize/_generated/api_client/models/experiments_list200_response.py +10 -4
  29. arize/_generated/api_client/models/experiments_runs_list200_response.py +19 -5
  30. arize/_generated/api_client/models/{error.py → pagination_metadata.py} +13 -11
  31. arize/_generated/api_client/models/primitive_value.py +172 -0
  32. arize/_generated/api_client/models/problem.py +100 -0
  33. arize/_generated/api_client/models/project.py +99 -0
  34. arize/_generated/api_client/models/{datasets_list_examples200_response.py → projects_create_request.py} +13 -11
  35. arize/_generated/api_client/models/projects_list200_response.py +106 -0
  36. arize/_generated/api_client/rest.py +2 -2
  37. arize/_generated/api_client/test/test_dataset.py +4 -2
  38. arize/_generated/api_client/test/test_dataset_example.py +56 -0
  39. arize/_generated/api_client/test/test_dataset_example_update.py +52 -0
  40. arize/_generated/api_client/test/test_dataset_version.py +7 -2
  41. arize/_generated/api_client/test/test_datasets_api.py +27 -13
  42. arize/_generated/api_client/test/test_datasets_create_request.py +8 -4
  43. arize/_generated/api_client/test/{test_datasets_list_examples200_response.py → test_datasets_examples_insert_request.py} +19 -15
  44. arize/_generated/api_client/test/test_datasets_examples_list200_response.py +66 -0
  45. arize/_generated/api_client/test/test_datasets_examples_update_request.py +61 -0
  46. arize/_generated/api_client/test/test_datasets_list200_response.py +9 -3
  47. arize/_generated/api_client/test/test_experiment.py +2 -4
  48. arize/_generated/api_client/test/test_experiment_run.py +56 -0
  49. arize/_generated/api_client/test/test_experiment_run_create.py +54 -0
  50. arize/_generated/api_client/test/test_experiments_api.py +6 -6
  51. arize/_generated/api_client/test/test_experiments_create_request.py +9 -6
  52. arize/_generated/api_client/test/test_experiments_list200_response.py +9 -5
  53. arize/_generated/api_client/test/test_experiments_runs_list200_response.py +15 -5
  54. arize/_generated/api_client/test/test_pagination_metadata.py +53 -0
  55. arize/_generated/api_client/test/{test_error.py → test_primitive_value.py} +13 -14
  56. arize/_generated/api_client/test/test_problem.py +57 -0
  57. arize/_generated/api_client/test/test_project.py +58 -0
  58. arize/_generated/api_client/test/test_projects_api.py +59 -0
  59. arize/_generated/api_client/test/test_projects_create_request.py +54 -0
  60. arize/_generated/api_client/test/test_projects_list200_response.py +70 -0
  61. arize/_generated/api_client_README.md +43 -29
  62. arize/_generated/protocol/flight/flight_pb2.py +400 -0
  63. arize/_lazy.py +27 -19
  64. arize/client.py +269 -55
  65. arize/config.py +365 -116
  66. arize/constants/__init__.py +1 -0
  67. arize/constants/config.py +11 -4
  68. arize/constants/ml.py +6 -4
  69. arize/constants/openinference.py +2 -0
  70. arize/constants/pyarrow.py +2 -0
  71. arize/constants/spans.py +3 -1
  72. arize/datasets/__init__.py +1 -0
  73. arize/datasets/client.py +299 -84
  74. arize/datasets/errors.py +32 -2
  75. arize/datasets/validation.py +18 -8
  76. arize/embeddings/__init__.py +2 -0
  77. arize/embeddings/auto_generator.py +23 -19
  78. arize/embeddings/base_generators.py +89 -36
  79. arize/embeddings/constants.py +2 -0
  80. arize/embeddings/cv_generators.py +26 -4
  81. arize/embeddings/errors.py +27 -5
  82. arize/embeddings/nlp_generators.py +31 -12
  83. arize/embeddings/tabular_generators.py +32 -20
  84. arize/embeddings/usecases.py +12 -2
  85. arize/exceptions/__init__.py +1 -0
  86. arize/exceptions/auth.py +11 -1
  87. arize/exceptions/base.py +29 -4
  88. arize/exceptions/models.py +21 -2
  89. arize/exceptions/parameters.py +31 -0
  90. arize/exceptions/spaces.py +12 -1
  91. arize/exceptions/types.py +86 -7
  92. arize/exceptions/values.py +220 -20
  93. arize/experiments/__init__.py +1 -0
  94. arize/experiments/client.py +390 -286
  95. arize/experiments/evaluators/__init__.py +1 -0
  96. arize/experiments/evaluators/base.py +74 -41
  97. arize/experiments/evaluators/exceptions.py +6 -3
  98. arize/experiments/evaluators/executors.py +121 -73
  99. arize/experiments/evaluators/rate_limiters.py +106 -57
  100. arize/experiments/evaluators/types.py +34 -7
  101. arize/experiments/evaluators/utils.py +65 -27
  102. arize/experiments/functions.py +103 -101
  103. arize/experiments/tracing.py +52 -44
  104. arize/experiments/types.py +56 -31
  105. arize/logging.py +54 -22
  106. arize/models/__init__.py +1 -0
  107. arize/models/batch_validation/__init__.py +1 -0
  108. arize/models/batch_validation/errors.py +543 -65
  109. arize/models/batch_validation/validator.py +339 -300
  110. arize/models/bounded_executor.py +20 -7
  111. arize/models/casting.py +75 -29
  112. arize/models/client.py +326 -107
  113. arize/models/proto.py +95 -40
  114. arize/models/stream_validation.py +42 -14
  115. arize/models/surrogate_explainer/__init__.py +1 -0
  116. arize/models/surrogate_explainer/mimic.py +24 -13
  117. arize/pre_releases.py +43 -0
  118. arize/projects/__init__.py +1 -0
  119. arize/projects/client.py +129 -0
  120. arize/regions.py +40 -0
  121. arize/spans/__init__.py +1 -0
  122. arize/spans/client.py +130 -106
  123. arize/spans/columns.py +13 -0
  124. arize/spans/conversion.py +54 -38
  125. arize/spans/validation/__init__.py +1 -0
  126. arize/spans/validation/annotations/__init__.py +1 -0
  127. arize/spans/validation/annotations/annotations_validation.py +6 -4
  128. arize/spans/validation/annotations/dataframe_form_validation.py +13 -11
  129. arize/spans/validation/annotations/value_validation.py +35 -11
  130. arize/spans/validation/common/__init__.py +1 -0
  131. arize/spans/validation/common/argument_validation.py +33 -8
  132. arize/spans/validation/common/dataframe_form_validation.py +35 -9
  133. arize/spans/validation/common/errors.py +211 -11
  134. arize/spans/validation/common/value_validation.py +80 -13
  135. arize/spans/validation/evals/__init__.py +1 -0
  136. arize/spans/validation/evals/dataframe_form_validation.py +28 -8
  137. arize/spans/validation/evals/evals_validation.py +34 -4
  138. arize/spans/validation/evals/value_validation.py +26 -3
  139. arize/spans/validation/metadata/__init__.py +1 -1
  140. arize/spans/validation/metadata/argument_validation.py +14 -5
  141. arize/spans/validation/metadata/dataframe_form_validation.py +26 -10
  142. arize/spans/validation/metadata/value_validation.py +24 -10
  143. arize/spans/validation/spans/__init__.py +1 -0
  144. arize/spans/validation/spans/dataframe_form_validation.py +34 -13
  145. arize/spans/validation/spans/spans_validation.py +35 -4
  146. arize/spans/validation/spans/value_validation.py +76 -7
  147. arize/types.py +293 -157
  148. arize/utils/__init__.py +1 -0
  149. arize/utils/arrow.py +31 -15
  150. arize/utils/cache.py +34 -6
  151. arize/utils/dataframe.py +19 -2
  152. arize/utils/online_tasks/__init__.py +2 -0
  153. arize/utils/online_tasks/dataframe_preprocessor.py +53 -41
  154. arize/utils/openinference_conversion.py +44 -5
  155. arize/utils/proto.py +10 -0
  156. arize/utils/size.py +5 -3
  157. arize/version.py +3 -1
  158. {arize-8.0.0a21.dist-info → arize-8.0.0a23.dist-info}/METADATA +4 -3
  159. arize-8.0.0a23.dist-info/RECORD +174 -0
  160. {arize-8.0.0a21.dist-info → arize-8.0.0a23.dist-info}/WHEEL +1 -1
  161. arize-8.0.0a23.dist-info/licenses/LICENSE +176 -0
  162. arize-8.0.0a23.dist-info/licenses/NOTICE +13 -0
  163. arize/_generated/protocol/flight/export_pb2.py +0 -61
  164. arize/_generated/protocol/flight/ingest_pb2.py +0 -365
  165. arize-8.0.0a21.dist-info/RECORD +0 -146
  166. arize-8.0.0a21.dist-info/licenses/LICENSE.md +0 -12
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Arize REST API
5
5
 
6
- API specification for the backend data server. The API is hosted globally at https://api.arize.com/v2 or in your own environment. You can access the OpenAPI spec for this API at https://api.arize.com/v2/spec.yaml
6
+ API specification for the backend data server. The API is hosted globally at https://api.arize.com/v2 or in your own environment.
7
7
 
8
- The version of the OpenAPI document: 0.0.1
8
+ The version of the OpenAPI document: 2.0.0
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -16,7 +16,7 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
16
  from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
- from pydantic import Field, StrictInt, StrictStr
19
+ from pydantic import Field, StrictStr
20
20
  from typing import Optional
21
21
  from typing_extensions import Annotated
22
22
  from arize._generated.api_client.models.experiment import Experiment
@@ -59,8 +59,9 @@ class ExperimentsApi:
59
59
  _headers: Optional[Dict[StrictStr, Any]] = None,
60
60
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
61
61
  ) -> Experiment:
62
- """Create a new experiment with run data
62
+ """Create an experiment
63
63
 
64
+ Create a new experiment. Empty experiments are not allowed. Experiments are composed of \"runs\". Each experiment run (JSON object) must include an `example_id` field that corresponds to an example in the dataset, and a `output` field that contains the task's output for the example (the input). Payload Requirements - The `name` must be unique within the target dataset - Provide at least one run in `experiment_runs`. - Each run must include: - `example_id` -- the ID of an existing example in the dataset/version - `output` -- model/task output for that example - You may include any additional fields per run that can be used for analysis or filtering. For exampple: `model`, `latency_ms`, `temperature`, `prompt`, `tool_calls`, etc. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
64
65
 
65
66
  :param experiments_create_request: Body containing experiment creation parameters (required)
66
67
  :type experiments_create_request: ExperimentsCreateRequest
@@ -96,12 +97,12 @@ class ExperimentsApi:
96
97
 
97
98
  _response_types_map: Dict[str, Optional[str]] = {
98
99
  '201': "Experiment",
99
- '400': "Error",
100
- '401': "Error",
101
- '403': "Error",
102
- '409': "Error",
103
- '422': "Error",
104
- '429': "Error",
100
+ '400': "Problem",
101
+ '401': "Problem",
102
+ '403': "Problem",
103
+ '409': "Problem",
104
+ '422': "Problem",
105
+ '429': "Problem",
105
106
  }
106
107
  response_data = self.api_client.call_api(
107
108
  *_param,
@@ -131,8 +132,9 @@ class ExperimentsApi:
131
132
  _headers: Optional[Dict[StrictStr, Any]] = None,
132
133
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
133
134
  ) -> ApiResponse[Experiment]:
134
- """Create a new experiment with run data
135
+ """Create an experiment
135
136
 
137
+ Create a new experiment. Empty experiments are not allowed. Experiments are composed of \"runs\". Each experiment run (JSON object) must include an `example_id` field that corresponds to an example in the dataset, and a `output` field that contains the task's output for the example (the input). Payload Requirements - The `name` must be unique within the target dataset - Provide at least one run in `experiment_runs`. - Each run must include: - `example_id` -- the ID of an existing example in the dataset/version - `output` -- model/task output for that example - You may include any additional fields per run that can be used for analysis or filtering. For exampple: `model`, `latency_ms`, `temperature`, `prompt`, `tool_calls`, etc. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
136
138
 
137
139
  :param experiments_create_request: Body containing experiment creation parameters (required)
138
140
  :type experiments_create_request: ExperimentsCreateRequest
@@ -168,12 +170,12 @@ class ExperimentsApi:
168
170
 
169
171
  _response_types_map: Dict[str, Optional[str]] = {
170
172
  '201': "Experiment",
171
- '400': "Error",
172
- '401': "Error",
173
- '403': "Error",
174
- '409': "Error",
175
- '422': "Error",
176
- '429': "Error",
173
+ '400': "Problem",
174
+ '401': "Problem",
175
+ '403': "Problem",
176
+ '409': "Problem",
177
+ '422': "Problem",
178
+ '429': "Problem",
177
179
  }
178
180
  response_data = self.api_client.call_api(
179
181
  *_param,
@@ -203,8 +205,9 @@ class ExperimentsApi:
203
205
  _headers: Optional[Dict[StrictStr, Any]] = None,
204
206
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
205
207
  ) -> RESTResponseType:
206
- """Create a new experiment with run data
208
+ """Create an experiment
207
209
 
210
+ Create a new experiment. Empty experiments are not allowed. Experiments are composed of \"runs\". Each experiment run (JSON object) must include an `example_id` field that corresponds to an example in the dataset, and a `output` field that contains the task's output for the example (the input). Payload Requirements - The `name` must be unique within the target dataset - Provide at least one run in `experiment_runs`. - Each run must include: - `example_id` -- the ID of an existing example in the dataset/version - `output` -- model/task output for that example - You may include any additional fields per run that can be used for analysis or filtering. For exampple: `model`, `latency_ms`, `temperature`, `prompt`, `tool_calls`, etc. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
208
211
 
209
212
  :param experiments_create_request: Body containing experiment creation parameters (required)
210
213
  :type experiments_create_request: ExperimentsCreateRequest
@@ -240,12 +243,12 @@ class ExperimentsApi:
240
243
 
241
244
  _response_types_map: Dict[str, Optional[str]] = {
242
245
  '201': "Experiment",
243
- '400': "Error",
244
- '401': "Error",
245
- '403': "Error",
246
- '409': "Error",
247
- '422': "Error",
248
- '429': "Error",
246
+ '400': "Problem",
247
+ '401': "Problem",
248
+ '403': "Problem",
249
+ '409': "Problem",
250
+ '422': "Problem",
251
+ '429': "Problem",
249
252
  }
250
253
  response_data = self.api_client.call_api(
251
254
  *_param,
@@ -290,7 +293,8 @@ class ExperimentsApi:
290
293
  if 'Accept' not in _header_params:
291
294
  _header_params['Accept'] = self.api_client.select_header_accept(
292
295
  [
293
- 'application/json'
296
+ 'application/json',
297
+ 'application/problem+json'
294
298
  ]
295
299
  )
296
300
 
@@ -310,7 +314,7 @@ class ExperimentsApi:
310
314
 
311
315
  # authentication setting
312
316
  _auth_settings: List[str] = [
313
- 'ApiKeyAuth'
317
+ 'bearerAuth'
314
318
  ]
315
319
 
316
320
  return self.api_client.param_serialize(
@@ -348,8 +352,9 @@ class ExperimentsApi:
348
352
  _headers: Optional[Dict[StrictStr, Any]] = None,
349
353
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
350
354
  ) -> None:
351
- """Delete an experiment by ID
355
+ """Delete an experiment
352
356
 
357
+ Delete an experiment by its ID. This operation is irreversible. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
353
358
 
354
359
  :param experiment_id: The unique identifier of the experiment (required)
355
360
  :type experiment_id: str
@@ -385,12 +390,12 @@ class ExperimentsApi:
385
390
 
386
391
  _response_types_map: Dict[str, Optional[str]] = {
387
392
  '204': None,
388
- '400': "Error",
389
- '401': "Error",
390
- '403': "Error",
391
- '404': "Error",
392
- '422': "Error",
393
- '429': "Error",
393
+ '400': "Problem",
394
+ '401': "Problem",
395
+ '403': "Problem",
396
+ '404': "Problem",
397
+ '422': "Problem",
398
+ '429': "Problem",
394
399
  }
395
400
  response_data = self.api_client.call_api(
396
401
  *_param,
@@ -420,8 +425,9 @@ class ExperimentsApi:
420
425
  _headers: Optional[Dict[StrictStr, Any]] = None,
421
426
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
422
427
  ) -> ApiResponse[None]:
423
- """Delete an experiment by ID
428
+ """Delete an experiment
424
429
 
430
+ Delete an experiment by its ID. This operation is irreversible. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
425
431
 
426
432
  :param experiment_id: The unique identifier of the experiment (required)
427
433
  :type experiment_id: str
@@ -457,12 +463,12 @@ class ExperimentsApi:
457
463
 
458
464
  _response_types_map: Dict[str, Optional[str]] = {
459
465
  '204': None,
460
- '400': "Error",
461
- '401': "Error",
462
- '403': "Error",
463
- '404': "Error",
464
- '422': "Error",
465
- '429': "Error",
466
+ '400': "Problem",
467
+ '401': "Problem",
468
+ '403': "Problem",
469
+ '404': "Problem",
470
+ '422': "Problem",
471
+ '429': "Problem",
466
472
  }
467
473
  response_data = self.api_client.call_api(
468
474
  *_param,
@@ -492,8 +498,9 @@ class ExperimentsApi:
492
498
  _headers: Optional[Dict[StrictStr, Any]] = None,
493
499
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
494
500
  ) -> RESTResponseType:
495
- """Delete an experiment by ID
501
+ """Delete an experiment
496
502
 
503
+ Delete an experiment by its ID. This operation is irreversible. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
497
504
 
498
505
  :param experiment_id: The unique identifier of the experiment (required)
499
506
  :type experiment_id: str
@@ -529,12 +536,12 @@ class ExperimentsApi:
529
536
 
530
537
  _response_types_map: Dict[str, Optional[str]] = {
531
538
  '204': None,
532
- '400': "Error",
533
- '401': "Error",
534
- '403': "Error",
535
- '404': "Error",
536
- '422': "Error",
537
- '429': "Error",
539
+ '400': "Problem",
540
+ '401': "Problem",
541
+ '403': "Problem",
542
+ '404': "Problem",
543
+ '422': "Problem",
544
+ '429': "Problem",
538
545
  }
539
546
  response_data = self.api_client.call_api(
540
547
  *_param,
@@ -568,7 +575,7 @@ class ExperimentsApi:
568
575
 
569
576
  # process the path parameters
570
577
  if experiment_id is not None:
571
- _path_params['experimentId'] = experiment_id
578
+ _path_params['experiment_id'] = experiment_id
572
579
  # process the query parameters
573
580
  # process the header parameters
574
581
  # process the form parameters
@@ -579,19 +586,19 @@ class ExperimentsApi:
579
586
  if 'Accept' not in _header_params:
580
587
  _header_params['Accept'] = self.api_client.select_header_accept(
581
588
  [
582
- 'application/json'
589
+ 'application/problem+json'
583
590
  ]
584
591
  )
585
592
 
586
593
 
587
594
  # authentication setting
588
595
  _auth_settings: List[str] = [
589
- 'ApiKeyAuth'
596
+ 'bearerAuth'
590
597
  ]
591
598
 
592
599
  return self.api_client.param_serialize(
593
600
  method='DELETE',
594
- resource_path='/v2/experiments/{experimentId}',
601
+ resource_path='/v2/experiments/{experiment_id}',
595
602
  path_params=_path_params,
596
603
  query_params=_query_params,
597
604
  header_params=_header_params,
@@ -624,8 +631,9 @@ class ExperimentsApi:
624
631
  _headers: Optional[Dict[StrictStr, Any]] = None,
625
632
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
626
633
  ) -> Experiment:
627
- """Get experiment by ID
634
+ """Get an experiment
628
635
 
636
+ Get an experiment object by its ID. The response does not include the experiment's runs. To get the runs of a specific experiment, use the List Experiment Runs endpoint. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
629
637
 
630
638
  :param experiment_id: The unique identifier of the experiment (required)
631
639
  :type experiment_id: str
@@ -661,12 +669,12 @@ class ExperimentsApi:
661
669
 
662
670
  _response_types_map: Dict[str, Optional[str]] = {
663
671
  '200': "Experiment",
664
- '400': "Error",
665
- '401': "Error",
666
- '403': "Error",
667
- '404': "Error",
668
- '422': "Error",
669
- '429': "Error",
672
+ '400': "Problem",
673
+ '401': "Problem",
674
+ '403': "Problem",
675
+ '404': "Problem",
676
+ '422': "Problem",
677
+ '429': "Problem",
670
678
  }
671
679
  response_data = self.api_client.call_api(
672
680
  *_param,
@@ -696,8 +704,9 @@ class ExperimentsApi:
696
704
  _headers: Optional[Dict[StrictStr, Any]] = None,
697
705
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
698
706
  ) -> ApiResponse[Experiment]:
699
- """Get experiment by ID
707
+ """Get an experiment
700
708
 
709
+ Get an experiment object by its ID. The response does not include the experiment's runs. To get the runs of a specific experiment, use the List Experiment Runs endpoint. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
701
710
 
702
711
  :param experiment_id: The unique identifier of the experiment (required)
703
712
  :type experiment_id: str
@@ -733,12 +742,12 @@ class ExperimentsApi:
733
742
 
734
743
  _response_types_map: Dict[str, Optional[str]] = {
735
744
  '200': "Experiment",
736
- '400': "Error",
737
- '401': "Error",
738
- '403': "Error",
739
- '404': "Error",
740
- '422': "Error",
741
- '429': "Error",
745
+ '400': "Problem",
746
+ '401': "Problem",
747
+ '403': "Problem",
748
+ '404': "Problem",
749
+ '422': "Problem",
750
+ '429': "Problem",
742
751
  }
743
752
  response_data = self.api_client.call_api(
744
753
  *_param,
@@ -768,8 +777,9 @@ class ExperimentsApi:
768
777
  _headers: Optional[Dict[StrictStr, Any]] = None,
769
778
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
770
779
  ) -> RESTResponseType:
771
- """Get experiment by ID
780
+ """Get an experiment
772
781
 
782
+ Get an experiment object by its ID. The response does not include the experiment's runs. To get the runs of a specific experiment, use the List Experiment Runs endpoint. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
773
783
 
774
784
  :param experiment_id: The unique identifier of the experiment (required)
775
785
  :type experiment_id: str
@@ -805,12 +815,12 @@ class ExperimentsApi:
805
815
 
806
816
  _response_types_map: Dict[str, Optional[str]] = {
807
817
  '200': "Experiment",
808
- '400': "Error",
809
- '401': "Error",
810
- '403': "Error",
811
- '404': "Error",
812
- '422': "Error",
813
- '429': "Error",
818
+ '400': "Problem",
819
+ '401': "Problem",
820
+ '403': "Problem",
821
+ '404': "Problem",
822
+ '422': "Problem",
823
+ '429': "Problem",
814
824
  }
815
825
  response_data = self.api_client.call_api(
816
826
  *_param,
@@ -844,7 +854,7 @@ class ExperimentsApi:
844
854
 
845
855
  # process the path parameters
846
856
  if experiment_id is not None:
847
- _path_params['experimentId'] = experiment_id
857
+ _path_params['experiment_id'] = experiment_id
848
858
  # process the query parameters
849
859
  # process the header parameters
850
860
  # process the form parameters
@@ -855,19 +865,20 @@ class ExperimentsApi:
855
865
  if 'Accept' not in _header_params:
856
866
  _header_params['Accept'] = self.api_client.select_header_accept(
857
867
  [
858
- 'application/json'
868
+ 'application/json',
869
+ 'application/problem+json'
859
870
  ]
860
871
  )
861
872
 
862
873
 
863
874
  # authentication setting
864
875
  _auth_settings: List[str] = [
865
- 'ApiKeyAuth'
876
+ 'bearerAuth'
866
877
  ]
867
878
 
868
879
  return self.api_client.param_serialize(
869
880
  method='GET',
870
- resource_path='/v2/experiments/{experimentId}',
881
+ resource_path='/v2/experiments/{experiment_id}',
871
882
  path_params=_path_params,
872
883
  query_params=_query_params,
873
884
  header_params=_header_params,
@@ -887,7 +898,8 @@ class ExperimentsApi:
887
898
  def experiments_list(
888
899
  self,
889
900
  dataset_id: Annotated[Optional[StrictStr], Field(description="Filter experiments to a particular dataset ID")] = None,
890
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
901
+ limit: Annotated[Optional[Annotated[int, Field(le=500, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
902
+ cursor: Annotated[Optional[StrictStr], Field(description="Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it. ")] = None,
891
903
  _request_timeout: Union[
892
904
  None,
893
905
  Annotated[StrictFloat, Field(gt=0)],
@@ -903,11 +915,14 @@ class ExperimentsApi:
903
915
  ) -> ExperimentsList200Response:
904
916
  """List experiments
905
917
 
918
+ List all experiments a user has access to. To filter experiments by the dataset they were run on, provide the `dataset_id` query parameter. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
906
919
 
907
920
  :param dataset_id: Filter experiments to a particular dataset ID
908
921
  :type dataset_id: str
909
- :param limit: Maximum number of items to return
922
+ :param limit: Maximum items to return
910
923
  :type limit: int
924
+ :param cursor: Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it.
925
+ :type cursor: str
911
926
  :param _request_timeout: timeout setting for this request. If one
912
927
  number provided, it will be total request
913
928
  timeout. It can also be a pair (tuple) of
@@ -933,6 +948,7 @@ class ExperimentsApi:
933
948
  _param = self._experiments_list_serialize(
934
949
  dataset_id=dataset_id,
935
950
  limit=limit,
951
+ cursor=cursor,
936
952
  _request_auth=_request_auth,
937
953
  _content_type=_content_type,
938
954
  _headers=_headers,
@@ -941,11 +957,11 @@ class ExperimentsApi:
941
957
 
942
958
  _response_types_map: Dict[str, Optional[str]] = {
943
959
  '200': "ExperimentsList200Response",
944
- '400': "Error",
945
- '401': "Error",
946
- '403': "Error",
947
- '422': "Error",
948
- '429': "Error",
960
+ '400': "Problem",
961
+ '401': "Problem",
962
+ '403': "Problem",
963
+ '422': "Problem",
964
+ '429': "Problem",
949
965
  }
950
966
  response_data = self.api_client.call_api(
951
967
  *_param,
@@ -962,7 +978,8 @@ class ExperimentsApi:
962
978
  def experiments_list_with_http_info(
963
979
  self,
964
980
  dataset_id: Annotated[Optional[StrictStr], Field(description="Filter experiments to a particular dataset ID")] = None,
965
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
981
+ limit: Annotated[Optional[Annotated[int, Field(le=500, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
982
+ cursor: Annotated[Optional[StrictStr], Field(description="Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it. ")] = None,
966
983
  _request_timeout: Union[
967
984
  None,
968
985
  Annotated[StrictFloat, Field(gt=0)],
@@ -978,11 +995,14 @@ class ExperimentsApi:
978
995
  ) -> ApiResponse[ExperimentsList200Response]:
979
996
  """List experiments
980
997
 
998
+ List all experiments a user has access to. To filter experiments by the dataset they were run on, provide the `dataset_id` query parameter. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
981
999
 
982
1000
  :param dataset_id: Filter experiments to a particular dataset ID
983
1001
  :type dataset_id: str
984
- :param limit: Maximum number of items to return
1002
+ :param limit: Maximum items to return
985
1003
  :type limit: int
1004
+ :param cursor: Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it.
1005
+ :type cursor: str
986
1006
  :param _request_timeout: timeout setting for this request. If one
987
1007
  number provided, it will be total request
988
1008
  timeout. It can also be a pair (tuple) of
@@ -1008,6 +1028,7 @@ class ExperimentsApi:
1008
1028
  _param = self._experiments_list_serialize(
1009
1029
  dataset_id=dataset_id,
1010
1030
  limit=limit,
1031
+ cursor=cursor,
1011
1032
  _request_auth=_request_auth,
1012
1033
  _content_type=_content_type,
1013
1034
  _headers=_headers,
@@ -1016,11 +1037,11 @@ class ExperimentsApi:
1016
1037
 
1017
1038
  _response_types_map: Dict[str, Optional[str]] = {
1018
1039
  '200': "ExperimentsList200Response",
1019
- '400': "Error",
1020
- '401': "Error",
1021
- '403': "Error",
1022
- '422': "Error",
1023
- '429': "Error",
1040
+ '400': "Problem",
1041
+ '401': "Problem",
1042
+ '403': "Problem",
1043
+ '422': "Problem",
1044
+ '429': "Problem",
1024
1045
  }
1025
1046
  response_data = self.api_client.call_api(
1026
1047
  *_param,
@@ -1037,7 +1058,8 @@ class ExperimentsApi:
1037
1058
  def experiments_list_without_preload_content(
1038
1059
  self,
1039
1060
  dataset_id: Annotated[Optional[StrictStr], Field(description="Filter experiments to a particular dataset ID")] = None,
1040
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
1061
+ limit: Annotated[Optional[Annotated[int, Field(le=500, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
1062
+ cursor: Annotated[Optional[StrictStr], Field(description="Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it. ")] = None,
1041
1063
  _request_timeout: Union[
1042
1064
  None,
1043
1065
  Annotated[StrictFloat, Field(gt=0)],
@@ -1053,11 +1075,14 @@ class ExperimentsApi:
1053
1075
  ) -> RESTResponseType:
1054
1076
  """List experiments
1055
1077
 
1078
+ List all experiments a user has access to. To filter experiments by the dataset they were run on, provide the `dataset_id` query parameter. <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
1056
1079
 
1057
1080
  :param dataset_id: Filter experiments to a particular dataset ID
1058
1081
  :type dataset_id: str
1059
- :param limit: Maximum number of items to return
1082
+ :param limit: Maximum items to return
1060
1083
  :type limit: int
1084
+ :param cursor: Opaque pagination cursor returned from a previous response (`pagination.next_cursor`). Treat it as an unreadable token; do not attempt to parse or construct it.
1085
+ :type cursor: str
1061
1086
  :param _request_timeout: timeout setting for this request. If one
1062
1087
  number provided, it will be total request
1063
1088
  timeout. It can also be a pair (tuple) of
@@ -1083,6 +1108,7 @@ class ExperimentsApi:
1083
1108
  _param = self._experiments_list_serialize(
1084
1109
  dataset_id=dataset_id,
1085
1110
  limit=limit,
1111
+ cursor=cursor,
1086
1112
  _request_auth=_request_auth,
1087
1113
  _content_type=_content_type,
1088
1114
  _headers=_headers,
@@ -1091,11 +1117,11 @@ class ExperimentsApi:
1091
1117
 
1092
1118
  _response_types_map: Dict[str, Optional[str]] = {
1093
1119
  '200': "ExperimentsList200Response",
1094
- '400': "Error",
1095
- '401': "Error",
1096
- '403': "Error",
1097
- '422': "Error",
1098
- '429': "Error",
1120
+ '400': "Problem",
1121
+ '401': "Problem",
1122
+ '403': "Problem",
1123
+ '422': "Problem",
1124
+ '429': "Problem",
1099
1125
  }
1100
1126
  response_data = self.api_client.call_api(
1101
1127
  *_param,
@@ -1108,6 +1134,7 @@ class ExperimentsApi:
1108
1134
  self,
1109
1135
  dataset_id,
1110
1136
  limit,
1137
+ cursor,
1111
1138
  _request_auth,
1112
1139
  _content_type,
1113
1140
  _headers,
@@ -1132,12 +1159,16 @@ class ExperimentsApi:
1132
1159
  # process the query parameters
1133
1160
  if dataset_id is not None:
1134
1161
 
1135
- _query_params.append(('datasetId', dataset_id))
1162
+ _query_params.append(('dataset_id', dataset_id))
1136
1163
 
1137
1164
  if limit is not None:
1138
1165
 
1139
1166
  _query_params.append(('limit', limit))
1140
1167
 
1168
+ if cursor is not None:
1169
+
1170
+ _query_params.append(('cursor', cursor))
1171
+
1141
1172
  # process the header parameters
1142
1173
  # process the form parameters
1143
1174
  # process the body parameter
@@ -1147,14 +1178,15 @@ class ExperimentsApi:
1147
1178
  if 'Accept' not in _header_params:
1148
1179
  _header_params['Accept'] = self.api_client.select_header_accept(
1149
1180
  [
1150
- 'application/json'
1181
+ 'application/json',
1182
+ 'application/problem+json'
1151
1183
  ]
1152
1184
  )
1153
1185
 
1154
1186
 
1155
1187
  # authentication setting
1156
1188
  _auth_settings: List[str] = [
1157
- 'ApiKeyAuth'
1189
+ 'bearerAuth'
1158
1190
  ]
1159
1191
 
1160
1192
  return self.api_client.param_serialize(
@@ -1179,7 +1211,7 @@ class ExperimentsApi:
1179
1211
  def experiments_runs_list(
1180
1212
  self,
1181
1213
  experiment_id: Annotated[StrictStr, Field(description="The unique identifier of the experiment")],
1182
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
1214
+ limit: Annotated[Optional[Annotated[int, Field(le=10000, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
1183
1215
  _request_timeout: Union[
1184
1216
  None,
1185
1217
  Annotated[StrictFloat, Field(gt=0)],
@@ -1193,12 +1225,13 @@ class ExperimentsApi:
1193
1225
  _headers: Optional[Dict[StrictStr, Any]] = None,
1194
1226
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1195
1227
  ) -> ExperimentsRunsList200Response:
1196
- """List experiment runs for a specific experiment
1228
+ """List experiment runs
1197
1229
 
1230
+ List runs for a given experiment. The runs are sorted by insertion order. **Pagination**: - Response includes `pagination` for forward compatibility. - **Currently not implemented**: `pagination.next_cursor` is omitted - When pagination is enabled in the future, the behavior will match other list endpoints (cursor-based, opaque tokens). <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
1198
1231
 
1199
1232
  :param experiment_id: The unique identifier of the experiment (required)
1200
1233
  :type experiment_id: str
1201
- :param limit: Maximum number of items to return
1234
+ :param limit: Maximum items to return
1202
1235
  :type limit: int
1203
1236
  :param _request_timeout: timeout setting for this request. If one
1204
1237
  number provided, it will be total request
@@ -1233,12 +1266,12 @@ class ExperimentsApi:
1233
1266
 
1234
1267
  _response_types_map: Dict[str, Optional[str]] = {
1235
1268
  '200': "ExperimentsRunsList200Response",
1236
- '400': "Error",
1237
- '401': "Error",
1238
- '403': "Error",
1239
- '404': "Error",
1240
- '422': "Error",
1241
- '429': "Error",
1269
+ '400': "Problem",
1270
+ '401': "Problem",
1271
+ '403': "Problem",
1272
+ '404': "Problem",
1273
+ '422': "Problem",
1274
+ '429': "Problem",
1242
1275
  }
1243
1276
  response_data = self.api_client.call_api(
1244
1277
  *_param,
@@ -1255,7 +1288,7 @@ class ExperimentsApi:
1255
1288
  def experiments_runs_list_with_http_info(
1256
1289
  self,
1257
1290
  experiment_id: Annotated[StrictStr, Field(description="The unique identifier of the experiment")],
1258
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
1291
+ limit: Annotated[Optional[Annotated[int, Field(le=10000, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
1259
1292
  _request_timeout: Union[
1260
1293
  None,
1261
1294
  Annotated[StrictFloat, Field(gt=0)],
@@ -1269,12 +1302,13 @@ class ExperimentsApi:
1269
1302
  _headers: Optional[Dict[StrictStr, Any]] = None,
1270
1303
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1271
1304
  ) -> ApiResponse[ExperimentsRunsList200Response]:
1272
- """List experiment runs for a specific experiment
1305
+ """List experiment runs
1273
1306
 
1307
+ List runs for a given experiment. The runs are sorted by insertion order. **Pagination**: - Response includes `pagination` for forward compatibility. - **Currently not implemented**: `pagination.next_cursor` is omitted - When pagination is enabled in the future, the behavior will match other list endpoints (cursor-based, opaque tokens). <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
1274
1308
 
1275
1309
  :param experiment_id: The unique identifier of the experiment (required)
1276
1310
  :type experiment_id: str
1277
- :param limit: Maximum number of items to return
1311
+ :param limit: Maximum items to return
1278
1312
  :type limit: int
1279
1313
  :param _request_timeout: timeout setting for this request. If one
1280
1314
  number provided, it will be total request
@@ -1309,12 +1343,12 @@ class ExperimentsApi:
1309
1343
 
1310
1344
  _response_types_map: Dict[str, Optional[str]] = {
1311
1345
  '200': "ExperimentsRunsList200Response",
1312
- '400': "Error",
1313
- '401': "Error",
1314
- '403': "Error",
1315
- '404': "Error",
1316
- '422': "Error",
1317
- '429': "Error",
1346
+ '400': "Problem",
1347
+ '401': "Problem",
1348
+ '403': "Problem",
1349
+ '404': "Problem",
1350
+ '422': "Problem",
1351
+ '429': "Problem",
1318
1352
  }
1319
1353
  response_data = self.api_client.call_api(
1320
1354
  *_param,
@@ -1331,7 +1365,7 @@ class ExperimentsApi:
1331
1365
  def experiments_runs_list_without_preload_content(
1332
1366
  self,
1333
1367
  experiment_id: Annotated[StrictStr, Field(description="The unique identifier of the experiment")],
1334
- limit: Annotated[Optional[StrictInt], Field(description="Maximum number of items to return")] = None,
1368
+ limit: Annotated[Optional[Annotated[int, Field(le=10000, strict=True, ge=1)]], Field(description="Maximum items to return")] = None,
1335
1369
  _request_timeout: Union[
1336
1370
  None,
1337
1371
  Annotated[StrictFloat, Field(gt=0)],
@@ -1345,12 +1379,13 @@ class ExperimentsApi:
1345
1379
  _headers: Optional[Dict[StrictStr, Any]] = None,
1346
1380
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1347
1381
  ) -> RESTResponseType:
1348
- """List experiment runs for a specific experiment
1382
+ """List experiment runs
1349
1383
 
1384
+ List runs for a given experiment. The runs are sorted by insertion order. **Pagination**: - Response includes `pagination` for forward compatibility. - **Currently not implemented**: `pagination.next_cursor` is omitted - When pagination is enabled in the future, the behavior will match other list endpoints (cursor-based, opaque tokens). <Note>This endpoint is in beta, read more [here](https://arize.com/docs/ax/rest-reference#api-version-stages).</Note>
1350
1385
 
1351
1386
  :param experiment_id: The unique identifier of the experiment (required)
1352
1387
  :type experiment_id: str
1353
- :param limit: Maximum number of items to return
1388
+ :param limit: Maximum items to return
1354
1389
  :type limit: int
1355
1390
  :param _request_timeout: timeout setting for this request. If one
1356
1391
  number provided, it will be total request
@@ -1385,12 +1420,12 @@ class ExperimentsApi:
1385
1420
 
1386
1421
  _response_types_map: Dict[str, Optional[str]] = {
1387
1422
  '200': "ExperimentsRunsList200Response",
1388
- '400': "Error",
1389
- '401': "Error",
1390
- '403': "Error",
1391
- '404': "Error",
1392
- '422': "Error",
1393
- '429': "Error",
1423
+ '400': "Problem",
1424
+ '401': "Problem",
1425
+ '403': "Problem",
1426
+ '404': "Problem",
1427
+ '422': "Problem",
1428
+ '429': "Problem",
1394
1429
  }
1395
1430
  response_data = self.api_client.call_api(
1396
1431
  *_param,
@@ -1425,7 +1460,7 @@ class ExperimentsApi:
1425
1460
 
1426
1461
  # process the path parameters
1427
1462
  if experiment_id is not None:
1428
- _path_params['experimentId'] = experiment_id
1463
+ _path_params['experiment_id'] = experiment_id
1429
1464
  # process the query parameters
1430
1465
  if limit is not None:
1431
1466
 
@@ -1440,19 +1475,20 @@ class ExperimentsApi:
1440
1475
  if 'Accept' not in _header_params:
1441
1476
  _header_params['Accept'] = self.api_client.select_header_accept(
1442
1477
  [
1443
- 'application/json'
1478
+ 'application/json',
1479
+ 'application/problem+json'
1444
1480
  ]
1445
1481
  )
1446
1482
 
1447
1483
 
1448
1484
  # authentication setting
1449
1485
  _auth_settings: List[str] = [
1450
- 'ApiKeyAuth'
1486
+ 'bearerAuth'
1451
1487
  ]
1452
1488
 
1453
1489
  return self.api_client.param_serialize(
1454
1490
  method='GET',
1455
- resource_path='/v2/experiments/{experimentId}/runs',
1491
+ resource_path='/v2/experiments/{experiment_id}/runs',
1456
1492
  path_params=_path_params,
1457
1493
  query_params=_query_params,
1458
1494
  header_params=_header_params,