vellum-ai 0.6.9__py3-none-any.whl → 0.7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. vellum/__init__.py +56 -0
  2. vellum/client.py +73 -40
  3. vellum/core/client_wrapper.py +1 -1
  4. vellum/lib/test_suites/resources.py +5 -5
  5. vellum/resources/document_indexes/client.py +114 -0
  6. vellum/resources/test_suites/client.py +19 -51
  7. vellum/types/__init__.py +58 -0
  8. vellum/types/array_vellum_value_item_request.py +82 -0
  9. vellum/types/code_execution_node_json_result.py +1 -1
  10. vellum/types/error_vellum_value_request.py +30 -0
  11. vellum/types/execution_json_vellum_value.py +1 -1
  12. vellum/types/function_call_vellum_value_request.py +30 -0
  13. vellum/types/image_vellum_value_request.py +30 -0
  14. vellum/types/json_variable_value.py +1 -1
  15. vellum/types/json_vellum_value.py +1 -1
  16. vellum/types/json_vellum_value_request.py +29 -0
  17. vellum/types/merge_node_result.py +3 -0
  18. vellum/types/merge_node_result_data.py +25 -0
  19. vellum/types/named_test_case_array_variable_value.py +31 -0
  20. vellum/types/named_test_case_array_variable_value_request.py +31 -0
  21. vellum/types/named_test_case_json_variable_value.py +1 -1
  22. vellum/types/named_test_case_json_variable_value_request.py +1 -1
  23. vellum/types/named_test_case_variable_value.py +12 -0
  24. vellum/types/named_test_case_variable_value_request.py +12 -0
  25. vellum/types/node_input_compiled_json_value.py +1 -1
  26. vellum/types/node_output_compiled_json_value.py +1 -1
  27. vellum/types/number_vellum_value_request.py +29 -0
  28. vellum/types/prompt_deployment_expand_meta_request_request.py +11 -11
  29. vellum/types/prompt_execution_meta.py +1 -1
  30. vellum/types/prompt_node_execution_meta.py +30 -0
  31. vellum/types/prompt_node_result_data.py +3 -0
  32. vellum/types/string_vellum_value_request.py +29 -0
  33. vellum/types/templating_node_json_result.py +1 -1
  34. vellum/types/terminal_node_json_result.py +1 -1
  35. vellum/types/test_case_array_variable_value.py +32 -0
  36. vellum/types/test_case_variable_value.py +12 -0
  37. vellum/types/test_suite_run_execution_array_output.py +32 -0
  38. vellum/types/test_suite_run_execution_json_output.py +1 -1
  39. vellum/types/test_suite_run_execution_output.py +12 -0
  40. vellum/types/test_suite_run_metric_number_output.py +1 -1
  41. vellum/types/test_suite_run_metric_string_output.py +1 -1
  42. vellum/types/test_suite_test_case_bulk_operation_request.py +12 -0
  43. vellum/types/test_suite_test_case_rejected_bulk_result.py +1 -1
  44. vellum/types/test_suite_test_case_upsert_bulk_operation_request.py +35 -0
  45. vellum/types/upsert_enum.py +5 -0
  46. vellum/types/upsert_test_suite_test_case_request.py +49 -0
  47. vellum/types/workflow_expand_meta_request.py +28 -0
  48. vellum/types/workflow_output_json.py +1 -1
  49. vellum/types/workflow_request_json_input_request.py +1 -1
  50. vellum/types/workflow_result_event_output_data_json.py +1 -1
  51. {vellum_ai-0.6.9.dist-info → vellum_ai-0.7.2.dist-info}/METADATA +1 -1
  52. {vellum_ai-0.6.9.dist-info → vellum_ai-0.7.2.dist-info}/RECORD +54 -37
  53. {vellum_ai-0.6.9.dist-info → vellum_ai-0.7.2.dist-info}/LICENSE +0 -0
  54. {vellum_ai-0.6.9.dist-info → vellum_ai-0.7.2.dist-info}/WHEEL +0 -0
vellum/client.py CHANGED
@@ -42,6 +42,7 @@ from .types.search_response import SearchResponse
42
42
  from .types.submit_completion_actual_request import SubmitCompletionActualRequest
43
43
  from .types.submit_workflow_execution_actual_request import SubmitWorkflowExecutionActualRequest
44
44
  from .types.workflow_execution_event_type import WorkflowExecutionEventType
45
+ from .types.workflow_expand_meta_request import WorkflowExpandMetaRequest
45
46
  from .types.workflow_request_input_request import WorkflowRequestInputRequest
46
47
  from .types.workflow_stream_event import WorkflowStreamEvent
47
48
 
@@ -121,23 +122,23 @@ class Vellum:
121
122
  Executes a deployed Prompt and returns the result.
122
123
 
123
124
  Parameters:
124
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
125
+ - inputs: typing.Sequence[PromptDeploymentInputRequest]. A list consisting of the Prompt Deployment's input variables and their values.
125
126
 
126
127
  - prompt_deployment_id: typing.Optional[str]. The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
127
128
 
128
- - prompt_deployment_name: typing.Optional[str]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
129
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
129
130
 
130
131
  - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
131
132
 
132
- - external_id: typing.Optional[str]. "Optionally include a unique identifier for tracking purposes. Must be unique for a given prompt deployment.
133
+ - external_id: typing.Optional[str]. Optionally include a unique identifier for tracking purposes. Must be unique within a given Prompt Deployment.
133
134
 
134
- - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
135
+ - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
135
136
 
136
- - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest].
137
+ - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest]. Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
137
138
 
138
- - expand_raw: typing.Optional[typing.Sequence[str]]. Returns the raw API response data sent from the model host. Combined with `raw_overrides`, it can be used to access new features from models.
139
+ - expand_raw: typing.Optional[typing.Sequence[str]]. A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
139
140
 
140
- - metadata: typing.Optional[typing.Dict[str, typing.Any]].
141
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]]. Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
141
142
 
142
143
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
143
144
  ---
@@ -164,11 +165,11 @@ class Vellum:
164
165
  external_id="string",
165
166
  expand_meta=PromptDeploymentExpandMetaRequestRequest(
166
167
  model_name=True,
168
+ usage=True,
169
+ finish_reason=True,
167
170
  latency=True,
168
171
  deployment_release_tag=True,
169
172
  prompt_version_id=True,
170
- finish_reason=True,
171
- usage=True,
172
173
  ),
173
174
  raw_overrides=RawPromptExecutionOverridesRequest(
174
175
  body={"string": {"key": "value"}},
@@ -256,23 +257,23 @@ class Vellum:
256
257
  Executes a deployed Prompt and streams back the results.
257
258
 
258
259
  Parameters:
259
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
260
+ - inputs: typing.Sequence[PromptDeploymentInputRequest]. A list consisting of the Prompt Deployment's input variables and their values.
260
261
 
261
262
  - prompt_deployment_id: typing.Optional[str]. The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
262
263
 
263
- - prompt_deployment_name: typing.Optional[str]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
264
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
264
265
 
265
266
  - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
266
267
 
267
- - external_id: typing.Optional[str]. "Optionally include a unique identifier for tracking purposes. Must be unique for a given prompt deployment.
268
+ - external_id: typing.Optional[str]. Optionally include a unique identifier for tracking purposes. Must be unique within a given Prompt Deployment.
268
269
 
269
- - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
270
+ - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
270
271
 
271
- - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest].
272
+ - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest]. Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
272
273
 
273
- - expand_raw: typing.Optional[typing.Sequence[str]]. Returns the raw API response data sent from the model host. Combined with `raw_overrides`, it can be used to access new features from models.
274
+ - expand_raw: typing.Optional[typing.Sequence[str]]. A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
274
275
 
275
- - metadata: typing.Optional[typing.Dict[str, typing.Any]].
276
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]]. Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
276
277
 
277
278
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
278
279
  ---
@@ -299,11 +300,11 @@ class Vellum:
299
300
  external_id="string",
300
301
  expand_meta=PromptDeploymentExpandMetaRequestRequest(
301
302
  model_name=True,
303
+ usage=True,
304
+ finish_reason=True,
302
305
  latency=True,
303
306
  deployment_release_tag=True,
304
307
  prompt_version_id=True,
305
- finish_reason=True,
306
- usage=True,
307
308
  ),
308
309
  raw_overrides=RawPromptExecutionOverridesRequest(
309
310
  body={"string": {"key": "value"}},
@@ -382,6 +383,7 @@ class Vellum:
382
383
  self,
383
384
  *,
384
385
  inputs: typing.Sequence[WorkflowRequestInputRequest],
386
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
385
387
  workflow_deployment_id: typing.Optional[str] = OMIT,
386
388
  workflow_deployment_name: typing.Optional[str] = OMIT,
387
389
  release_tag: typing.Optional[str] = OMIT,
@@ -394,6 +396,8 @@ class Vellum:
394
396
  Parameters:
395
397
  - inputs: typing.Sequence[WorkflowRequestInputRequest]. The list of inputs defined in the Workflow's Deployment with their corresponding values.
396
398
 
399
+ - expand_meta: typing.Optional[WorkflowExpandMetaRequest]. An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
400
+
397
401
  - workflow_deployment_id: typing.Optional[str]. The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
398
402
 
399
403
  - workflow_deployment_name: typing.Optional[str]. The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
@@ -404,7 +408,7 @@ class Vellum:
404
408
 
405
409
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
406
410
  ---
407
- from vellum import WorkflowRequestInputRequest_String
411
+ from vellum import WorkflowExpandMetaRequest, WorkflowRequestInputRequest_String
408
412
  from vellum.client import Vellum
409
413
 
410
414
  client = Vellum(
@@ -417,6 +421,9 @@ class Vellum:
417
421
  value="string",
418
422
  )
419
423
  ],
424
+ expand_meta=WorkflowExpandMetaRequest(
425
+ usage=True,
426
+ ),
420
427
  workflow_deployment_id="string",
421
428
  workflow_deployment_name="string",
422
429
  release_tag="string",
@@ -424,6 +431,8 @@ class Vellum:
424
431
  )
425
432
  """
426
433
  _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
434
+ if expand_meta is not OMIT:
435
+ _request["expand_meta"] = expand_meta
427
436
  if workflow_deployment_id is not OMIT:
428
437
  _request["workflow_deployment_id"] = workflow_deployment_id
429
438
  if workflow_deployment_name is not OMIT:
@@ -476,6 +485,7 @@ class Vellum:
476
485
  self,
477
486
  *,
478
487
  inputs: typing.Sequence[WorkflowRequestInputRequest],
488
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
479
489
  workflow_deployment_id: typing.Optional[str] = OMIT,
480
490
  workflow_deployment_name: typing.Optional[str] = OMIT,
481
491
  release_tag: typing.Optional[str] = OMIT,
@@ -489,6 +499,8 @@ class Vellum:
489
499
  Parameters:
490
500
  - inputs: typing.Sequence[WorkflowRequestInputRequest]. The list of inputs defined in the Workflow's Deployment with their corresponding values.
491
501
 
502
+ - expand_meta: typing.Optional[WorkflowExpandMetaRequest]. An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
503
+
492
504
  - workflow_deployment_id: typing.Optional[str]. The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
493
505
 
494
506
  - workflow_deployment_name: typing.Optional[str]. The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
@@ -501,7 +513,7 @@ class Vellum:
501
513
 
502
514
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
503
515
  ---
504
- from vellum import WorkflowRequestInputRequest_String
516
+ from vellum import WorkflowExpandMetaRequest, WorkflowRequestInputRequest_String
505
517
  from vellum.client import Vellum
506
518
 
507
519
  client = Vellum(
@@ -514,6 +526,9 @@ class Vellum:
514
526
  value="string",
515
527
  )
516
528
  ],
529
+ expand_meta=WorkflowExpandMetaRequest(
530
+ usage=True,
531
+ ),
517
532
  workflow_deployment_id="string",
518
533
  workflow_deployment_name="string",
519
534
  release_tag="string",
@@ -522,6 +537,8 @@ class Vellum:
522
537
  )
523
538
  """
524
539
  _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
540
+ if expand_meta is not OMIT:
541
+ _request["expand_meta"] = expand_meta
525
542
  if workflow_deployment_id is not OMIT:
526
543
  _request["workflow_deployment_id"] = workflow_deployment_id
527
544
  if workflow_deployment_name is not OMIT:
@@ -1082,23 +1099,23 @@ class AsyncVellum:
1082
1099
  Executes a deployed Prompt and returns the result.
1083
1100
 
1084
1101
  Parameters:
1085
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
1102
+ - inputs: typing.Sequence[PromptDeploymentInputRequest]. A list consisting of the Prompt Deployment's input variables and their values.
1086
1103
 
1087
1104
  - prompt_deployment_id: typing.Optional[str]. The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
1088
1105
 
1089
- - prompt_deployment_name: typing.Optional[str]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1106
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1090
1107
 
1091
1108
  - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
1092
1109
 
1093
- - external_id: typing.Optional[str]. "Optionally include a unique identifier for tracking purposes. Must be unique for a given prompt deployment.
1110
+ - external_id: typing.Optional[str]. Optionally include a unique identifier for tracking purposes. Must be unique within a given Prompt Deployment.
1094
1111
 
1095
- - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1112
+ - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
1096
1113
 
1097
- - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest].
1114
+ - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest]. Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
1098
1115
 
1099
- - expand_raw: typing.Optional[typing.Sequence[str]]. Returns the raw API response data sent from the model host. Combined with `raw_overrides`, it can be used to access new features from models.
1116
+ - expand_raw: typing.Optional[typing.Sequence[str]]. A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
1100
1117
 
1101
- - metadata: typing.Optional[typing.Dict[str, typing.Any]].
1118
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]]. Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
1102
1119
 
1103
1120
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
1104
1121
  ---
@@ -1125,11 +1142,11 @@ class AsyncVellum:
1125
1142
  external_id="string",
1126
1143
  expand_meta=PromptDeploymentExpandMetaRequestRequest(
1127
1144
  model_name=True,
1145
+ usage=True,
1146
+ finish_reason=True,
1128
1147
  latency=True,
1129
1148
  deployment_release_tag=True,
1130
1149
  prompt_version_id=True,
1131
- finish_reason=True,
1132
- usage=True,
1133
1150
  ),
1134
1151
  raw_overrides=RawPromptExecutionOverridesRequest(
1135
1152
  body={"string": {"key": "value"}},
@@ -1217,23 +1234,23 @@ class AsyncVellum:
1217
1234
  Executes a deployed Prompt and streams back the results.
1218
1235
 
1219
1236
  Parameters:
1220
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
1237
+ - inputs: typing.Sequence[PromptDeploymentInputRequest]. A list consisting of the Prompt Deployment's input variables and their values.
1221
1238
 
1222
1239
  - prompt_deployment_id: typing.Optional[str]. The ID of the Prompt Deployment. Must provide either this or prompt_deployment_name.
1223
1240
 
1224
- - prompt_deployment_name: typing.Optional[str]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1241
+ - prompt_deployment_name: typing.Optional[str]. The unique name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1225
1242
 
1226
1243
  - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Prompt Deployment
1227
1244
 
1228
- - external_id: typing.Optional[str]. "Optionally include a unique identifier for tracking purposes. Must be unique for a given prompt deployment.
1245
+ - external_id: typing.Optional[str]. Optionally include a unique identifier for tracking purposes. Must be unique within a given Prompt Deployment.
1229
1246
 
1230
- - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. The name of the Prompt Deployment. Must provide either this or prompt_deployment_id.
1247
+ - expand_meta: typing.Optional[PromptDeploymentExpandMetaRequestRequest]. An optionally specified configuration used to opt in to including additional metadata about this prompt execution in the API response. Corresponding values will be returned under the `meta` key of the API response.
1231
1248
 
1232
- - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest].
1249
+ - raw_overrides: typing.Optional[RawPromptExecutionOverridesRequest]. Overrides for the raw API request sent to the model host. Combined with `expand_raw`, it can be used to access new features from models.
1233
1250
 
1234
- - expand_raw: typing.Optional[typing.Sequence[str]]. Returns the raw API response data sent from the model host. Combined with `raw_overrides`, it can be used to access new features from models.
1251
+ - expand_raw: typing.Optional[typing.Sequence[str]]. A list of keys whose values you'd like to directly return from the JSON response of the model provider. Useful if you need lower-level info returned by model providers that Vellum would otherwise omit. Corresponding key/value pairs will be returned under the `raw` key of the API response.
1235
1252
 
1236
- - metadata: typing.Optional[typing.Dict[str, typing.Any]].
1253
+ - metadata: typing.Optional[typing.Dict[str, typing.Any]]. Arbitrary JSON metadata associated with this request. Can be used to capture additional monitoring data such as user id, session id, etc. for future analysis.
1237
1254
 
1238
1255
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
1239
1256
  ---
@@ -1260,11 +1277,11 @@ class AsyncVellum:
1260
1277
  external_id="string",
1261
1278
  expand_meta=PromptDeploymentExpandMetaRequestRequest(
1262
1279
  model_name=True,
1280
+ usage=True,
1281
+ finish_reason=True,
1263
1282
  latency=True,
1264
1283
  deployment_release_tag=True,
1265
1284
  prompt_version_id=True,
1266
- finish_reason=True,
1267
- usage=True,
1268
1285
  ),
1269
1286
  raw_overrides=RawPromptExecutionOverridesRequest(
1270
1287
  body={"string": {"key": "value"}},
@@ -1343,6 +1360,7 @@ class AsyncVellum:
1343
1360
  self,
1344
1361
  *,
1345
1362
  inputs: typing.Sequence[WorkflowRequestInputRequest],
1363
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
1346
1364
  workflow_deployment_id: typing.Optional[str] = OMIT,
1347
1365
  workflow_deployment_name: typing.Optional[str] = OMIT,
1348
1366
  release_tag: typing.Optional[str] = OMIT,
@@ -1355,6 +1373,8 @@ class AsyncVellum:
1355
1373
  Parameters:
1356
1374
  - inputs: typing.Sequence[WorkflowRequestInputRequest]. The list of inputs defined in the Workflow's Deployment with their corresponding values.
1357
1375
 
1376
+ - expand_meta: typing.Optional[WorkflowExpandMetaRequest]. An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
1377
+
1358
1378
  - workflow_deployment_id: typing.Optional[str]. The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
1359
1379
 
1360
1380
  - workflow_deployment_name: typing.Optional[str]. The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
@@ -1365,7 +1385,7 @@ class AsyncVellum:
1365
1385
 
1366
1386
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
1367
1387
  ---
1368
- from vellum import WorkflowRequestInputRequest_String
1388
+ from vellum import WorkflowExpandMetaRequest, WorkflowRequestInputRequest_String
1369
1389
  from vellum.client import AsyncVellum
1370
1390
 
1371
1391
  client = AsyncVellum(
@@ -1378,6 +1398,9 @@ class AsyncVellum:
1378
1398
  value="string",
1379
1399
  )
1380
1400
  ],
1401
+ expand_meta=WorkflowExpandMetaRequest(
1402
+ usage=True,
1403
+ ),
1381
1404
  workflow_deployment_id="string",
1382
1405
  workflow_deployment_name="string",
1383
1406
  release_tag="string",
@@ -1385,6 +1408,8 @@ class AsyncVellum:
1385
1408
  )
1386
1409
  """
1387
1410
  _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
1411
+ if expand_meta is not OMIT:
1412
+ _request["expand_meta"] = expand_meta
1388
1413
  if workflow_deployment_id is not OMIT:
1389
1414
  _request["workflow_deployment_id"] = workflow_deployment_id
1390
1415
  if workflow_deployment_name is not OMIT:
@@ -1437,6 +1462,7 @@ class AsyncVellum:
1437
1462
  self,
1438
1463
  *,
1439
1464
  inputs: typing.Sequence[WorkflowRequestInputRequest],
1465
+ expand_meta: typing.Optional[WorkflowExpandMetaRequest] = OMIT,
1440
1466
  workflow_deployment_id: typing.Optional[str] = OMIT,
1441
1467
  workflow_deployment_name: typing.Optional[str] = OMIT,
1442
1468
  release_tag: typing.Optional[str] = OMIT,
@@ -1450,6 +1476,8 @@ class AsyncVellum:
1450
1476
  Parameters:
1451
1477
  - inputs: typing.Sequence[WorkflowRequestInputRequest]. The list of inputs defined in the Workflow's Deployment with their corresponding values.
1452
1478
 
1479
+ - expand_meta: typing.Optional[WorkflowExpandMetaRequest]. An optionally specified configuration used to opt in to including additional metadata about this workflow execution in the API response. Corresponding values will be returned under the `execution_meta` key within NODE events in the response stream.
1480
+
1453
1481
  - workflow_deployment_id: typing.Optional[str]. The ID of the Workflow Deployment. Must provide either this or workflow_deployment_name.
1454
1482
 
1455
1483
  - workflow_deployment_name: typing.Optional[str]. The name of the Workflow Deployment. Must provide either this or workflow_deployment_id.
@@ -1462,7 +1490,7 @@ class AsyncVellum:
1462
1490
 
1463
1491
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
1464
1492
  ---
1465
- from vellum import WorkflowRequestInputRequest_String
1493
+ from vellum import WorkflowExpandMetaRequest, WorkflowRequestInputRequest_String
1466
1494
  from vellum.client import AsyncVellum
1467
1495
 
1468
1496
  client = AsyncVellum(
@@ -1475,6 +1503,9 @@ class AsyncVellum:
1475
1503
  value="string",
1476
1504
  )
1477
1505
  ],
1506
+ expand_meta=WorkflowExpandMetaRequest(
1507
+ usage=True,
1508
+ ),
1478
1509
  workflow_deployment_id="string",
1479
1510
  workflow_deployment_name="string",
1480
1511
  release_tag="string",
@@ -1483,6 +1514,8 @@ class AsyncVellum:
1483
1514
  )
1484
1515
  """
1485
1516
  _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
1517
+ if expand_meta is not OMIT:
1518
+ _request["expand_meta"] = expand_meta
1486
1519
  if workflow_deployment_id is not OMIT:
1487
1520
  _request["workflow_deployment_id"] = workflow_deployment_id
1488
1521
  if workflow_deployment_name is not OMIT:
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.6.9",
21
+ "X-Fern-SDK-Version": "0.7.2",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import logging
4
4
  import time
5
5
  from functools import cached_property
6
- from typing import Callable, Generator, List, Any
6
+ from typing import Callable, Generator, List, cast, Iterable
7
7
 
8
8
  from vellum import TestSuiteRunRead, TestSuiteRunMetricOutput_Number
9
9
  from vellum.client import Vellum
@@ -174,7 +174,7 @@ class VellumTestSuiteRunResults:
174
174
  self,
175
175
  metric_identifier: str | None = None,
176
176
  output_identifier: str | None = None,
177
- ) -> List[float]:
177
+ ) -> List[float | None]:
178
178
  """Returns the values of a numeric metric output that match the given criteria."""
179
179
 
180
180
  metric_outputs: list[TestSuiteRunMetricOutput_Number] = []
@@ -198,7 +198,7 @@ class VellumTestSuiteRunResults:
198
198
  output_values = self.get_numeric_metric_output_values(
199
199
  metric_identifier=metric_identifier, output_identifier=output_identifier
200
200
  )
201
- return sum(output_values) / len(output_values)
201
+ return sum(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))) / len(output_values)
202
202
 
203
203
  def get_min_metric_output(
204
204
  self, metric_identifier: str | None = None, output_identifier: str | None = None
@@ -207,7 +207,7 @@ class VellumTestSuiteRunResults:
207
207
  output_values = self.get_numeric_metric_output_values(
208
208
  metric_identifier=metric_identifier, output_identifier=output_identifier
209
209
  )
210
- return min(output_values)
210
+ return min(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values)))
211
211
 
212
212
  def get_max_metric_output(
213
213
  self, metric_identifier: str | None = None, output_identifier: str | None = None
@@ -216,7 +216,7 @@ class VellumTestSuiteRunResults:
216
216
  output_values = self.get_numeric_metric_output_values(
217
217
  metric_identifier=metric_identifier, output_identifier=output_identifier
218
218
  )
219
- return max(output_values)
219
+ return max(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values)))
220
220
 
221
221
  def wait_until_complete(self) -> None:
222
222
  """Wait until the Test Suite Run is no longer in a QUEUED or RUNNING state."""
@@ -458,6 +458,63 @@ class DocumentIndexesClient:
458
458
  raise ApiError(status_code=_response.status_code, body=_response.text)
459
459
  raise ApiError(status_code=_response.status_code, body=_response_json)
460
460
 
461
+ def add_document(
462
+ self, document_id: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
463
+ ) -> None:
464
+ """
465
+ Adds a previously uploaded Document to the specified Document Index.
466
+
467
+ Parameters:
468
+ - document_id: str. Either the Vellum-generated ID or the originally supplied external_id that uniquely identifies the Document you'd like to add.
469
+
470
+ - id: str. Either the Vellum-generated ID or the originally specified name that uniquely identifies the Document Index to which you'd like to add the Document.
471
+
472
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
473
+ ---
474
+ from vellum.client import Vellum
475
+
476
+ client = Vellum(
477
+ api_key="YOUR_API_KEY",
478
+ )
479
+ client.document_indexes.add_document(
480
+ document_id="document_id",
481
+ id="id",
482
+ )
483
+ """
484
+ _response = self._client_wrapper.httpx_client.request(
485
+ method="POST",
486
+ url=urllib.parse.urljoin(
487
+ f"{self._client_wrapper.get_environment().default}/",
488
+ f"v1/document-indexes/{jsonable_encoder(id)}/documents/{jsonable_encoder(document_id)}",
489
+ ),
490
+ params=jsonable_encoder(
491
+ request_options.get("additional_query_parameters") if request_options is not None else None
492
+ ),
493
+ json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
494
+ if request_options is not None
495
+ else None,
496
+ headers=jsonable_encoder(
497
+ remove_none_from_dict(
498
+ {
499
+ **self._client_wrapper.get_headers(),
500
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
501
+ }
502
+ )
503
+ ),
504
+ timeout=request_options.get("timeout_in_seconds")
505
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
506
+ else self._client_wrapper.get_timeout(),
507
+ retries=0,
508
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
509
+ )
510
+ if 200 <= _response.status_code < 300:
511
+ return
512
+ try:
513
+ _response_json = _response.json()
514
+ except JSONDecodeError:
515
+ raise ApiError(status_code=_response.status_code, body=_response.text)
516
+ raise ApiError(status_code=_response.status_code, body=_response_json)
517
+
461
518
  def remove_document(
462
519
  self, document_id: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
463
520
  ) -> None:
@@ -950,6 +1007,63 @@ class AsyncDocumentIndexesClient:
950
1007
  raise ApiError(status_code=_response.status_code, body=_response.text)
951
1008
  raise ApiError(status_code=_response.status_code, body=_response_json)
952
1009
 
1010
+ async def add_document(
1011
+ self, document_id: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
1012
+ ) -> None:
1013
+ """
1014
+ Adds a previously uploaded Document to the specified Document Index.
1015
+
1016
+ Parameters:
1017
+ - document_id: str. Either the Vellum-generated ID or the originally supplied external_id that uniquely identifies the Document you'd like to add.
1018
+
1019
+ - id: str. Either the Vellum-generated ID or the originally specified name that uniquely identifies the Document Index to which you'd like to add the Document.
1020
+
1021
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
1022
+ ---
1023
+ from vellum.client import AsyncVellum
1024
+
1025
+ client = AsyncVellum(
1026
+ api_key="YOUR_API_KEY",
1027
+ )
1028
+ await client.document_indexes.add_document(
1029
+ document_id="document_id",
1030
+ id="id",
1031
+ )
1032
+ """
1033
+ _response = await self._client_wrapper.httpx_client.request(
1034
+ method="POST",
1035
+ url=urllib.parse.urljoin(
1036
+ f"{self._client_wrapper.get_environment().default}/",
1037
+ f"v1/document-indexes/{jsonable_encoder(id)}/documents/{jsonable_encoder(document_id)}",
1038
+ ),
1039
+ params=jsonable_encoder(
1040
+ request_options.get("additional_query_parameters") if request_options is not None else None
1041
+ ),
1042
+ json=jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))
1043
+ if request_options is not None
1044
+ else None,
1045
+ headers=jsonable_encoder(
1046
+ remove_none_from_dict(
1047
+ {
1048
+ **self._client_wrapper.get_headers(),
1049
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
1050
+ }
1051
+ )
1052
+ ),
1053
+ timeout=request_options.get("timeout_in_seconds")
1054
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
1055
+ else self._client_wrapper.get_timeout(),
1056
+ retries=0,
1057
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
1058
+ )
1059
+ if 200 <= _response.status_code < 300:
1060
+ return
1061
+ try:
1062
+ _response_json = _response.json()
1063
+ except JSONDecodeError:
1064
+ raise ApiError(status_code=_response.status_code, body=_response.text)
1065
+ raise ApiError(status_code=_response.status_code, body=_response_json)
1066
+
953
1067
  async def remove_document(
954
1068
  self, document_id: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
955
1069
  ) -> None: