vellum-ai 0.6.3__py3-none-any.whl → 0.6.5__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 (33) hide show
  1. vellum/__init__.py +56 -0
  2. vellum/client.py +8 -12
  3. vellum/core/client_wrapper.py +1 -1
  4. vellum/resources/test_suites/client.py +175 -6
  5. vellum/types/__init__.py +60 -0
  6. vellum/types/bulk_create_test_suite_test_case_data_request.py +39 -0
  7. vellum/types/bulk_replace_test_suite_test_case_data_request.py +44 -0
  8. vellum/types/create_enum.py +5 -0
  9. vellum/types/created_enum.py +5 -0
  10. vellum/types/delete_enum.py +5 -0
  11. vellum/types/deleted_enum.py +5 -0
  12. vellum/types/deployment_read.py +5 -0
  13. vellum/types/replace_enum.py +5 -0
  14. vellum/types/replaced_enum.py +5 -0
  15. vellum/types/test_suite_test_case_bulk_operation_request.py +46 -0
  16. vellum/types/test_suite_test_case_bulk_result.py +58 -0
  17. vellum/types/test_suite_test_case_create_bulk_operation_request.py +35 -0
  18. vellum/types/test_suite_test_case_created_bulk_result.py +31 -0
  19. vellum/types/test_suite_test_case_created_bulk_result_data.py +29 -0
  20. vellum/types/test_suite_test_case_delete_bulk_operation_data_request.py +25 -0
  21. vellum/types/test_suite_test_case_delete_bulk_operation_request.py +38 -0
  22. vellum/types/test_suite_test_case_deleted_bulk_result.py +35 -0
  23. vellum/types/test_suite_test_case_deleted_bulk_result_data.py +29 -0
  24. vellum/types/test_suite_test_case_rejected_bulk_result.py +37 -0
  25. vellum/types/test_suite_test_case_replace_bulk_operation_request.py +35 -0
  26. vellum/types/test_suite_test_case_replaced_bulk_result.py +35 -0
  27. vellum/types/test_suite_test_case_replaced_bulk_result_data.py +29 -0
  28. vellum/types/workflow_deployment_read.py +5 -0
  29. vellum_ai-0.6.5.dist-info/METADATA +126 -0
  30. {vellum_ai-0.6.3.dist-info → vellum_ai-0.6.5.dist-info}/RECORD +32 -11
  31. vellum_ai-0.6.3.dist-info/METADATA +0 -109
  32. {vellum_ai-0.6.3.dist-info → vellum_ai-0.6.5.dist-info}/LICENSE +0 -0
  33. {vellum_ai-0.6.3.dist-info → vellum_ai-0.6.5.dist-info}/WHEEL +0 -0
vellum/__init__.py CHANGED
@@ -35,6 +35,8 @@ from .types import (
35
35
  BasicVectorizerSentenceTransformersMultiQaMpnetBaseCosV1Request,
36
36
  BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1,
37
37
  BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1Request,
38
+ BulkCreateTestSuiteTestCaseDataRequest,
39
+ BulkReplaceTestSuiteTestCaseDataRequest,
38
40
  ChatHistoryEnum,
39
41
  ChatHistoryInputRequest,
40
42
  ChatMessage,
@@ -71,6 +73,10 @@ from .types import (
71
73
  CodeExecutionNodeStringResult,
72
74
  ConditionalNodeResult,
73
75
  ConditionalNodeResultData,
76
+ CreateEnum,
77
+ CreatedEnum,
78
+ DeleteEnum,
79
+ DeletedEnum,
74
80
  DeploymentProviderPayloadResponse,
75
81
  DeploymentRead,
76
82
  DeploymentReleaseTagDeploymentHistoryItem,
@@ -317,6 +323,8 @@ from .types import (
317
323
  RejectedPromptExecutionMeta,
318
324
  RejectedWorkflowNodeResultEvent,
319
325
  ReleaseTagSource,
326
+ ReplaceEnum,
327
+ ReplacedEnum,
320
328
  SandboxScenario,
321
329
  ScenarioInput,
322
330
  ScenarioInputChatHistoryVariableValue,
@@ -473,6 +481,26 @@ from .types import (
473
481
  TestSuiteRunWorkflowReleaseTagExecConfigRequest,
474
482
  TestSuiteRunWorkflowReleaseTagExecConfigTypeEnum,
475
483
  TestSuiteTestCase,
484
+ TestSuiteTestCaseBulkOperationRequest,
485
+ TestSuiteTestCaseBulkOperationRequest_Create,
486
+ TestSuiteTestCaseBulkOperationRequest_Delete,
487
+ TestSuiteTestCaseBulkOperationRequest_Replace,
488
+ TestSuiteTestCaseBulkResult,
489
+ TestSuiteTestCaseBulkResult_Created,
490
+ TestSuiteTestCaseBulkResult_Deleted,
491
+ TestSuiteTestCaseBulkResult_Rejected,
492
+ TestSuiteTestCaseBulkResult_Replaced,
493
+ TestSuiteTestCaseCreateBulkOperationRequest,
494
+ TestSuiteTestCaseCreatedBulkResult,
495
+ TestSuiteTestCaseCreatedBulkResultData,
496
+ TestSuiteTestCaseDeleteBulkOperationDataRequest,
497
+ TestSuiteTestCaseDeleteBulkOperationRequest,
498
+ TestSuiteTestCaseDeletedBulkResult,
499
+ TestSuiteTestCaseDeletedBulkResultData,
500
+ TestSuiteTestCaseRejectedBulkResult,
501
+ TestSuiteTestCaseReplaceBulkOperationRequest,
502
+ TestSuiteTestCaseReplacedBulkResult,
503
+ TestSuiteTestCaseReplacedBulkResultData,
476
504
  TextEmbedding3LargeEnum,
477
505
  TextEmbedding3SmallEnum,
478
506
  TextEmbeddingAda002Enum,
@@ -622,6 +650,8 @@ __all__ = [
622
650
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseCosV1Request",
623
651
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1",
624
652
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1Request",
653
+ "BulkCreateTestSuiteTestCaseDataRequest",
654
+ "BulkReplaceTestSuiteTestCaseDataRequest",
625
655
  "ChatHistoryEnum",
626
656
  "ChatHistoryInputRequest",
627
657
  "ChatMessage",
@@ -658,6 +688,10 @@ __all__ = [
658
688
  "CodeExecutionNodeStringResult",
659
689
  "ConditionalNodeResult",
660
690
  "ConditionalNodeResultData",
691
+ "CreateEnum",
692
+ "CreatedEnum",
693
+ "DeleteEnum",
694
+ "DeletedEnum",
661
695
  "DeploymentProviderPayloadResponse",
662
696
  "DeploymentRead",
663
697
  "DeploymentReleaseTagDeploymentHistoryItem",
@@ -909,6 +943,8 @@ __all__ = [
909
943
  "RejectedPromptExecutionMeta",
910
944
  "RejectedWorkflowNodeResultEvent",
911
945
  "ReleaseTagSource",
946
+ "ReplaceEnum",
947
+ "ReplacedEnum",
912
948
  "SandboxScenario",
913
949
  "ScenarioInput",
914
950
  "ScenarioInputChatHistoryVariableValue",
@@ -1065,6 +1101,26 @@ __all__ = [
1065
1101
  "TestSuiteRunWorkflowReleaseTagExecConfigRequest",
1066
1102
  "TestSuiteRunWorkflowReleaseTagExecConfigTypeEnum",
1067
1103
  "TestSuiteTestCase",
1104
+ "TestSuiteTestCaseBulkOperationRequest",
1105
+ "TestSuiteTestCaseBulkOperationRequest_Create",
1106
+ "TestSuiteTestCaseBulkOperationRequest_Delete",
1107
+ "TestSuiteTestCaseBulkOperationRequest_Replace",
1108
+ "TestSuiteTestCaseBulkResult",
1109
+ "TestSuiteTestCaseBulkResult_Created",
1110
+ "TestSuiteTestCaseBulkResult_Deleted",
1111
+ "TestSuiteTestCaseBulkResult_Rejected",
1112
+ "TestSuiteTestCaseBulkResult_Replaced",
1113
+ "TestSuiteTestCaseCreateBulkOperationRequest",
1114
+ "TestSuiteTestCaseCreatedBulkResult",
1115
+ "TestSuiteTestCaseCreatedBulkResultData",
1116
+ "TestSuiteTestCaseDeleteBulkOperationDataRequest",
1117
+ "TestSuiteTestCaseDeleteBulkOperationRequest",
1118
+ "TestSuiteTestCaseDeletedBulkResult",
1119
+ "TestSuiteTestCaseDeletedBulkResultData",
1120
+ "TestSuiteTestCaseRejectedBulkResult",
1121
+ "TestSuiteTestCaseReplaceBulkOperationRequest",
1122
+ "TestSuiteTestCaseReplacedBulkResult",
1123
+ "TestSuiteTestCaseReplacedBulkResultData",
1068
1124
  "TextEmbedding3LargeEnum",
1069
1125
  "TextEmbedding3SmallEnum",
1070
1126
  "TextEmbeddingAda002Enum",
vellum/client.py CHANGED
@@ -591,7 +591,8 @@ class Vellum:
591
591
  """
592
592
  Generate a completion using a previously defined deployment.
593
593
 
594
- **Note:** Uses a base url of `https://predict.vellum.ai`.
594
+ Important: This endpoint is DEPRECATED and has been superseded by
595
+ [execute-prompt](/api-reference/api-reference/execute-prompt).
595
596
 
596
597
  Parameters:
597
598
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
@@ -679,7 +680,8 @@ class Vellum:
679
680
  """
680
681
  Generate a stream of completions using a previously defined deployment.
681
682
 
682
- **Note:** Uses a base url of `https://predict.vellum.ai`.
683
+ Important: This endpoint is DEPRECATED and has been superseded by
684
+ [execute-prompt-stream](/api-reference/api-reference/execute-prompt-stream).
683
685
 
684
686
  Parameters:
685
687
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
@@ -791,8 +793,6 @@ class Vellum:
791
793
  """
792
794
  Perform a search against a document index.
793
795
 
794
- **Note:** Uses a base url of `https://predict.vellum.ai`.
795
-
796
796
  Parameters:
797
797
  - index_id: typing.Optional[str]. The ID of the index to search against. Must provide either this or index_name.
798
798
 
@@ -871,8 +871,6 @@ class Vellum:
871
871
  """
872
872
  Used to submit feedback regarding the quality of previously generated completions.
873
873
 
874
- **Note:** Uses a base url of `https://predict.vellum.ai`.
875
-
876
874
  Parameters:
877
875
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
878
876
 
@@ -1554,7 +1552,8 @@ class AsyncVellum:
1554
1552
  """
1555
1553
  Generate a completion using a previously defined deployment.
1556
1554
 
1557
- **Note:** Uses a base url of `https://predict.vellum.ai`.
1555
+ Important: This endpoint is DEPRECATED and has been superseded by
1556
+ [execute-prompt](/api-reference/api-reference/execute-prompt).
1558
1557
 
1559
1558
  Parameters:
1560
1559
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
@@ -1642,7 +1641,8 @@ class AsyncVellum:
1642
1641
  """
1643
1642
  Generate a stream of completions using a previously defined deployment.
1644
1643
 
1645
- **Note:** Uses a base url of `https://predict.vellum.ai`.
1644
+ Important: This endpoint is DEPRECATED and has been superseded by
1645
+ [execute-prompt-stream](/api-reference/api-reference/execute-prompt-stream).
1646
1646
 
1647
1647
  Parameters:
1648
1648
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
@@ -1754,8 +1754,6 @@ class AsyncVellum:
1754
1754
  """
1755
1755
  Perform a search against a document index.
1756
1756
 
1757
- **Note:** Uses a base url of `https://predict.vellum.ai`.
1758
-
1759
1757
  Parameters:
1760
1758
  - index_id: typing.Optional[str]. The ID of the index to search against. Must provide either this or index_name.
1761
1759
 
@@ -1834,8 +1832,6 @@ class AsyncVellum:
1834
1832
  """
1835
1833
  Used to submit feedback regarding the quality of previously generated completions.
1836
1834
 
1837
- **Note:** Uses a base url of `https://predict.vellum.ai`.
1838
-
1839
1835
  Parameters:
1840
1836
  - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
1841
1837
 
@@ -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.3",
21
+ "X-Fern-SDK-Version": "0.6.5",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -1,5 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import json
3
4
  import typing
4
5
  import urllib.parse
5
6
  from json.decoder import JSONDecodeError
@@ -13,6 +14,8 @@ from ...core.request_options import RequestOptions
13
14
  from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
14
15
  from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
15
16
  from ...types.test_suite_test_case import TestSuiteTestCase
17
+ from ...types.test_suite_test_case_bulk_operation_request import TestSuiteTestCaseBulkOperationRequest
18
+ from ...types.test_suite_test_case_bulk_result import TestSuiteTestCaseBulkResult
16
19
 
17
20
  # this is used as the default value for optional parameters
18
21
  OMIT = typing.cast(typing.Any, ...)
@@ -114,13 +117,13 @@ class TestSuitesClient:
114
117
  Parameters:
115
118
  - id: str. A UUID string identifying this test suite.
116
119
 
117
- - upsert_test_suite_test_case_request_id: typing.Optional[str].
120
+ - upsert_test_suite_test_case_request_id: typing.Optional[str]. The ID of the Test Case to upsert. If specified and a match is found, the existing Test Case will be updated. If specified and no match is found, a Test Case will be created with the provided ID. If not provided, a new Test Case will be created with an auto-generated ID.
118
121
 
119
122
  - label: typing.Optional[str].
120
123
 
121
- - input_values: typing.Sequence[NamedTestCaseVariableValueRequest].
124
+ - input_values: typing.Sequence[NamedTestCaseVariableValueRequest]. Values for each of the Test Case's input variables
122
125
 
123
- - evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest].
126
+ - evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest]. Values for each of the Test Case's evaluation variables
124
127
 
125
128
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
126
129
  ---
@@ -177,6 +180,89 @@ class TestSuitesClient:
177
180
  raise ApiError(status_code=_response.status_code, body=_response.text)
178
181
  raise ApiError(status_code=_response.status_code, body=_response_json)
179
182
 
183
+ def test_suite_test_cases_bulk(
184
+ self,
185
+ id: str,
186
+ *,
187
+ request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest],
188
+ request_options: typing.Optional[RequestOptions] = None,
189
+ ) -> typing.Iterator[typing.List[TestSuiteTestCaseBulkResult]]:
190
+ """
191
+ Created, replace, and delete Test Cases within the specified Test Suite in bulk
192
+
193
+ Parameters:
194
+ - id: str. A UUID string identifying this test suite.
195
+
196
+ - request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest].
197
+
198
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
199
+ ---
200
+ from vellum import (
201
+ BulkCreateTestSuiteTestCaseDataRequest,
202
+ NamedTestCaseVariableValueRequest_String,
203
+ TestSuiteTestCaseBulkOperationRequest_Create,
204
+ )
205
+ from vellum.client import Vellum
206
+
207
+ client = Vellum(
208
+ api_key="YOUR_API_KEY",
209
+ )
210
+ client.test_suites.test_suite_test_cases_bulk(
211
+ id="string",
212
+ request=[
213
+ TestSuiteTestCaseBulkOperationRequest_Create(
214
+ id="string",
215
+ data=BulkCreateTestSuiteTestCaseDataRequest(
216
+ label="string",
217
+ input_values=[NamedTestCaseVariableValueRequest_String()],
218
+ evaluation_values=[NamedTestCaseVariableValueRequest_String()],
219
+ ),
220
+ )
221
+ ],
222
+ )
223
+ """
224
+ with self._client_wrapper.httpx_client.stream(
225
+ method="POST",
226
+ url=urllib.parse.urljoin(
227
+ f"{self._client_wrapper.get_environment().default}/",
228
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
229
+ ),
230
+ params=jsonable_encoder(
231
+ request_options.get("additional_query_parameters") if request_options is not None else None
232
+ ),
233
+ json=jsonable_encoder(request)
234
+ if request_options is None or request_options.get("additional_body_parameters") is None
235
+ else {
236
+ **jsonable_encoder(request),
237
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
238
+ },
239
+ headers=jsonable_encoder(
240
+ remove_none_from_dict(
241
+ {
242
+ **self._client_wrapper.get_headers(),
243
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
244
+ }
245
+ )
246
+ ),
247
+ timeout=request_options.get("timeout_in_seconds")
248
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
249
+ else self._client_wrapper.get_timeout(),
250
+ retries=0,
251
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
252
+ ) as _response:
253
+ if 200 <= _response.status_code < 300:
254
+ for _text in _response.iter_lines():
255
+ if len(_text) == 0:
256
+ continue
257
+ yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
258
+ return
259
+ _response.read()
260
+ try:
261
+ _response_json = _response.json()
262
+ except JSONDecodeError:
263
+ raise ApiError(status_code=_response.status_code, body=_response.text)
264
+ raise ApiError(status_code=_response.status_code, body=_response_json)
265
+
180
266
  def delete_test_suite_test_case(
181
267
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
182
268
  ) -> None:
@@ -328,13 +414,13 @@ class AsyncTestSuitesClient:
328
414
  Parameters:
329
415
  - id: str. A UUID string identifying this test suite.
330
416
 
331
- - upsert_test_suite_test_case_request_id: typing.Optional[str].
417
+ - upsert_test_suite_test_case_request_id: typing.Optional[str]. The ID of the Test Case to upsert. If specified and a match is found, the existing Test Case will be updated. If specified and no match is found, a Test Case will be created with the provided ID. If not provided, a new Test Case will be created with an auto-generated ID.
332
418
 
333
419
  - label: typing.Optional[str].
334
420
 
335
- - input_values: typing.Sequence[NamedTestCaseVariableValueRequest].
421
+ - input_values: typing.Sequence[NamedTestCaseVariableValueRequest]. Values for each of the Test Case's input variables
336
422
 
337
- - evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest].
423
+ - evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest]. Values for each of the Test Case's evaluation variables
338
424
 
339
425
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
340
426
  ---
@@ -391,6 +477,89 @@ class AsyncTestSuitesClient:
391
477
  raise ApiError(status_code=_response.status_code, body=_response.text)
392
478
  raise ApiError(status_code=_response.status_code, body=_response_json)
393
479
 
480
+ async def test_suite_test_cases_bulk(
481
+ self,
482
+ id: str,
483
+ *,
484
+ request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest],
485
+ request_options: typing.Optional[RequestOptions] = None,
486
+ ) -> typing.AsyncIterator[typing.List[TestSuiteTestCaseBulkResult]]:
487
+ """
488
+ Created, replace, and delete Test Cases within the specified Test Suite in bulk
489
+
490
+ Parameters:
491
+ - id: str. A UUID string identifying this test suite.
492
+
493
+ - request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest].
494
+
495
+ - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
496
+ ---
497
+ from vellum import (
498
+ BulkCreateTestSuiteTestCaseDataRequest,
499
+ NamedTestCaseVariableValueRequest_String,
500
+ TestSuiteTestCaseBulkOperationRequest_Create,
501
+ )
502
+ from vellum.client import AsyncVellum
503
+
504
+ client = AsyncVellum(
505
+ api_key="YOUR_API_KEY",
506
+ )
507
+ await client.test_suites.test_suite_test_cases_bulk(
508
+ id="string",
509
+ request=[
510
+ TestSuiteTestCaseBulkOperationRequest_Create(
511
+ id="string",
512
+ data=BulkCreateTestSuiteTestCaseDataRequest(
513
+ label="string",
514
+ input_values=[NamedTestCaseVariableValueRequest_String()],
515
+ evaluation_values=[NamedTestCaseVariableValueRequest_String()],
516
+ ),
517
+ )
518
+ ],
519
+ )
520
+ """
521
+ async with self._client_wrapper.httpx_client.stream(
522
+ method="POST",
523
+ url=urllib.parse.urljoin(
524
+ f"{self._client_wrapper.get_environment().default}/",
525
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
526
+ ),
527
+ params=jsonable_encoder(
528
+ request_options.get("additional_query_parameters") if request_options is not None else None
529
+ ),
530
+ json=jsonable_encoder(request)
531
+ if request_options is None or request_options.get("additional_body_parameters") is None
532
+ else {
533
+ **jsonable_encoder(request),
534
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
535
+ },
536
+ headers=jsonable_encoder(
537
+ remove_none_from_dict(
538
+ {
539
+ **self._client_wrapper.get_headers(),
540
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
541
+ }
542
+ )
543
+ ),
544
+ timeout=request_options.get("timeout_in_seconds")
545
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
546
+ else self._client_wrapper.get_timeout(),
547
+ retries=0,
548
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
549
+ ) as _response:
550
+ if 200 <= _response.status_code < 300:
551
+ async for _text in _response.aiter_lines():
552
+ if len(_text) == 0:
553
+ continue
554
+ yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
555
+ return
556
+ await _response.aread()
557
+ try:
558
+ _response_json = _response.json()
559
+ except JSONDecodeError:
560
+ raise ApiError(status_code=_response.status_code, body=_response.text)
561
+ raise ApiError(status_code=_response.status_code, body=_response_json)
562
+
394
563
  async def delete_test_suite_test_case(
395
564
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
396
565
  ) -> None:
vellum/types/__init__.py CHANGED
@@ -50,6 +50,8 @@ from .basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1 import
50
50
  from .basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request import (
51
51
  BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1Request,
52
52
  )
53
+ from .bulk_create_test_suite_test_case_data_request import BulkCreateTestSuiteTestCaseDataRequest
54
+ from .bulk_replace_test_suite_test_case_data_request import BulkReplaceTestSuiteTestCaseDataRequest
53
55
  from .chat_history_enum import ChatHistoryEnum
54
56
  from .chat_history_input_request import ChatHistoryInputRequest
55
57
  from .chat_message import ChatMessage
@@ -92,6 +94,10 @@ from .code_execution_node_search_results_result import CodeExecutionNodeSearchRe
92
94
  from .code_execution_node_string_result import CodeExecutionNodeStringResult
93
95
  from .conditional_node_result import ConditionalNodeResult
94
96
  from .conditional_node_result_data import ConditionalNodeResultData
97
+ from .create_enum import CreateEnum
98
+ from .created_enum import CreatedEnum
99
+ from .delete_enum import DeleteEnum
100
+ from .deleted_enum import DeletedEnum
95
101
  from .deployment_provider_payload_response import DeploymentProviderPayloadResponse
96
102
  from .deployment_read import DeploymentRead
97
103
  from .deployment_release_tag_deployment_history_item import DeploymentReleaseTagDeploymentHistoryItem
@@ -368,6 +374,8 @@ from .rejected_execute_workflow_workflow_result_event import RejectedExecuteWork
368
374
  from .rejected_prompt_execution_meta import RejectedPromptExecutionMeta
369
375
  from .rejected_workflow_node_result_event import RejectedWorkflowNodeResultEvent
370
376
  from .release_tag_source import ReleaseTagSource
377
+ from .replace_enum import ReplaceEnum
378
+ from .replaced_enum import ReplacedEnum
371
379
  from .sandbox_scenario import SandboxScenario
372
380
  from .scenario_input import ScenarioInput, ScenarioInput_ChatHistory, ScenarioInput_String
373
381
  from .scenario_input_chat_history_variable_value import ScenarioInputChatHistoryVariableValue
@@ -544,6 +552,30 @@ from .test_suite_run_workflow_release_tag_exec_config_data_request import (
544
552
  from .test_suite_run_workflow_release_tag_exec_config_request import TestSuiteRunWorkflowReleaseTagExecConfigRequest
545
553
  from .test_suite_run_workflow_release_tag_exec_config_type_enum import TestSuiteRunWorkflowReleaseTagExecConfigTypeEnum
546
554
  from .test_suite_test_case import TestSuiteTestCase
555
+ from .test_suite_test_case_bulk_operation_request import (
556
+ TestSuiteTestCaseBulkOperationRequest,
557
+ TestSuiteTestCaseBulkOperationRequest_Create,
558
+ TestSuiteTestCaseBulkOperationRequest_Delete,
559
+ TestSuiteTestCaseBulkOperationRequest_Replace,
560
+ )
561
+ from .test_suite_test_case_bulk_result import (
562
+ TestSuiteTestCaseBulkResult,
563
+ TestSuiteTestCaseBulkResult_Created,
564
+ TestSuiteTestCaseBulkResult_Deleted,
565
+ TestSuiteTestCaseBulkResult_Rejected,
566
+ TestSuiteTestCaseBulkResult_Replaced,
567
+ )
568
+ from .test_suite_test_case_create_bulk_operation_request import TestSuiteTestCaseCreateBulkOperationRequest
569
+ from .test_suite_test_case_created_bulk_result import TestSuiteTestCaseCreatedBulkResult
570
+ from .test_suite_test_case_created_bulk_result_data import TestSuiteTestCaseCreatedBulkResultData
571
+ from .test_suite_test_case_delete_bulk_operation_data_request import TestSuiteTestCaseDeleteBulkOperationDataRequest
572
+ from .test_suite_test_case_delete_bulk_operation_request import TestSuiteTestCaseDeleteBulkOperationRequest
573
+ from .test_suite_test_case_deleted_bulk_result import TestSuiteTestCaseDeletedBulkResult
574
+ from .test_suite_test_case_deleted_bulk_result_data import TestSuiteTestCaseDeletedBulkResultData
575
+ from .test_suite_test_case_rejected_bulk_result import TestSuiteTestCaseRejectedBulkResult
576
+ from .test_suite_test_case_replace_bulk_operation_request import TestSuiteTestCaseReplaceBulkOperationRequest
577
+ from .test_suite_test_case_replaced_bulk_result import TestSuiteTestCaseReplacedBulkResult
578
+ from .test_suite_test_case_replaced_bulk_result_data import TestSuiteTestCaseReplacedBulkResultData
547
579
  from .text_embedding_3_large_enum import TextEmbedding3LargeEnum
548
580
  from .text_embedding_3_small_enum import TextEmbedding3SmallEnum
549
581
  from .text_embedding_ada_002_enum import TextEmbeddingAda002Enum
@@ -682,6 +714,8 @@ __all__ = [
682
714
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseCosV1Request",
683
715
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1",
684
716
  "BasicVectorizerSentenceTransformersMultiQaMpnetBaseDotV1Request",
717
+ "BulkCreateTestSuiteTestCaseDataRequest",
718
+ "BulkReplaceTestSuiteTestCaseDataRequest",
685
719
  "ChatHistoryEnum",
686
720
  "ChatHistoryInputRequest",
687
721
  "ChatMessage",
@@ -718,6 +752,10 @@ __all__ = [
718
752
  "CodeExecutionNodeStringResult",
719
753
  "ConditionalNodeResult",
720
754
  "ConditionalNodeResultData",
755
+ "CreateEnum",
756
+ "CreatedEnum",
757
+ "DeleteEnum",
758
+ "DeletedEnum",
721
759
  "DeploymentProviderPayloadResponse",
722
760
  "DeploymentRead",
723
761
  "DeploymentReleaseTagDeploymentHistoryItem",
@@ -964,6 +1002,8 @@ __all__ = [
964
1002
  "RejectedPromptExecutionMeta",
965
1003
  "RejectedWorkflowNodeResultEvent",
966
1004
  "ReleaseTagSource",
1005
+ "ReplaceEnum",
1006
+ "ReplacedEnum",
967
1007
  "SandboxScenario",
968
1008
  "ScenarioInput",
969
1009
  "ScenarioInputChatHistoryVariableValue",
@@ -1120,6 +1160,26 @@ __all__ = [
1120
1160
  "TestSuiteRunWorkflowReleaseTagExecConfigRequest",
1121
1161
  "TestSuiteRunWorkflowReleaseTagExecConfigTypeEnum",
1122
1162
  "TestSuiteTestCase",
1163
+ "TestSuiteTestCaseBulkOperationRequest",
1164
+ "TestSuiteTestCaseBulkOperationRequest_Create",
1165
+ "TestSuiteTestCaseBulkOperationRequest_Delete",
1166
+ "TestSuiteTestCaseBulkOperationRequest_Replace",
1167
+ "TestSuiteTestCaseBulkResult",
1168
+ "TestSuiteTestCaseBulkResult_Created",
1169
+ "TestSuiteTestCaseBulkResult_Deleted",
1170
+ "TestSuiteTestCaseBulkResult_Rejected",
1171
+ "TestSuiteTestCaseBulkResult_Replaced",
1172
+ "TestSuiteTestCaseCreateBulkOperationRequest",
1173
+ "TestSuiteTestCaseCreatedBulkResult",
1174
+ "TestSuiteTestCaseCreatedBulkResultData",
1175
+ "TestSuiteTestCaseDeleteBulkOperationDataRequest",
1176
+ "TestSuiteTestCaseDeleteBulkOperationRequest",
1177
+ "TestSuiteTestCaseDeletedBulkResult",
1178
+ "TestSuiteTestCaseDeletedBulkResultData",
1179
+ "TestSuiteTestCaseRejectedBulkResult",
1180
+ "TestSuiteTestCaseReplaceBulkOperationRequest",
1181
+ "TestSuiteTestCaseReplacedBulkResult",
1182
+ "TestSuiteTestCaseReplacedBulkResultData",
1123
1183
  "TextEmbedding3LargeEnum",
1124
1184
  "TextEmbedding3SmallEnum",
1125
1185
  "TextEmbeddingAda002Enum",
@@ -0,0 +1,39 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+ from .named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
9
+
10
+
11
+ class BulkCreateTestSuiteTestCaseDataRequest(pydantic_v1.BaseModel):
12
+ """
13
+ Information about the Test Case to create
14
+ """
15
+
16
+ label: typing.Optional[str] = None
17
+ input_values: typing.List[NamedTestCaseVariableValueRequest] = pydantic_v1.Field()
18
+ """
19
+ Values for each of the Test Case's input variables
20
+ """
21
+
22
+ evaluation_values: typing.List[NamedTestCaseVariableValueRequest] = pydantic_v1.Field()
23
+ """
24
+ Values for each of the Test Case's evaluation variables
25
+ """
26
+
27
+ def json(self, **kwargs: typing.Any) -> str:
28
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
29
+ return super().json(**kwargs_with_defaults)
30
+
31
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
32
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
33
+ return super().dict(**kwargs_with_defaults)
34
+
35
+ class Config:
36
+ frozen = True
37
+ smart_union = True
38
+ extra = pydantic_v1.Extra.allow
39
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,44 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+ from .named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
9
+
10
+
11
+ class BulkReplaceTestSuiteTestCaseDataRequest(pydantic_v1.BaseModel):
12
+ """
13
+ Information about the Test Case to replace
14
+ """
15
+
16
+ id: str = pydantic_v1.Field()
17
+ """
18
+ The ID of the Test Case to replace.
19
+ """
20
+
21
+ label: typing.Optional[str] = None
22
+ input_values: typing.List[NamedTestCaseVariableValueRequest] = pydantic_v1.Field()
23
+ """
24
+ Values for each of the Test Case's input variables
25
+ """
26
+
27
+ evaluation_values: typing.List[NamedTestCaseVariableValueRequest] = pydantic_v1.Field()
28
+ """
29
+ Values for each of the Test Case's evaluation variables
30
+ """
31
+
32
+ def json(self, **kwargs: typing.Any) -> str:
33
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
34
+ return super().json(**kwargs_with_defaults)
35
+
36
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
37
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
38
+ return super().dict(**kwargs_with_defaults)
39
+
40
+ class Config:
41
+ frozen = True
42
+ smart_union = True
43
+ extra = pydantic_v1.Extra.allow
44
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CreateEnum = typing.Literal["CREATE"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CreatedEnum = typing.Literal["CREATED"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ DeleteEnum = typing.Literal["DELETE"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ DeletedEnum = typing.Literal["DELETED"]
@@ -47,6 +47,11 @@ class DeploymentRead(pydantic_v1.BaseModel):
47
47
  Deprecated. The Prompt execution endpoints return a `prompt_version_id` that could be used instead.
48
48
  """
49
49
 
50
+ last_deployed_history_item_id: str = pydantic_v1.Field()
51
+ """
52
+ The ID of the history item associated with this Deployment's LATEST Release Tag
53
+ """
54
+
50
55
  def json(self, **kwargs: typing.Any) -> str:
51
56
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
52
57
  return super().json(**kwargs_with_defaults)
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ReplaceEnum = typing.Literal["REPLACE"]