vellum-ai 0.3.19__py3-none-any.whl → 0.3.21__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- vellum/__init__.py +10 -0
- vellum/client.py +4 -0
- vellum/core/client_wrapper.py +1 -1
- vellum/resources/test_suites/client.py +141 -0
- vellum/types/__init__.py +10 -0
- vellum/types/fulfilled_prompt_execution_meta.py +2 -0
- vellum/types/ml_model_usage.py +33 -0
- vellum/types/paginated_test_suite_test_case_list.py +33 -0
- vellum/types/prompt_deployment_expand_meta_request_request.py +5 -0
- vellum/types/prompt_execution_meta.py +2 -0
- vellum/types/test_suite_run_metric_output.py +14 -1
- vellum/types/test_suite_run_metric_string_output.py +34 -0
- vellum/types/test_suite_run_metric_string_output_type_enum.py +5 -0
- {vellum_ai-0.3.19.dist-info → vellum_ai-0.3.21.dist-info}/METADATA +1 -1
- {vellum_ai-0.3.19.dist-info → vellum_ai-0.3.21.dist-info}/RECORD +17 -13
- {vellum_ai-0.3.19.dist-info → vellum_ai-0.3.21.dist-info}/LICENSE +0 -0
- {vellum_ai-0.3.19.dist-info → vellum_ai-0.3.21.dist-info}/WHEEL +0 -0
vellum/__init__.py
CHANGED
@@ -148,6 +148,7 @@ from .types import (
|
|
148
148
|
MetadataFilterConfigRequest,
|
149
149
|
MetadataFilterRuleCombinator,
|
150
150
|
MetadataFilterRuleRequest,
|
151
|
+
MlModelUsage,
|
151
152
|
ModelVersionBuildConfig,
|
152
153
|
ModelVersionExecConfig,
|
153
154
|
ModelVersionExecConfigParameters,
|
@@ -210,6 +211,7 @@ from .types import (
|
|
210
211
|
PaginatedSlimDocumentList,
|
211
212
|
PaginatedSlimWorkflowDeploymentList,
|
212
213
|
PaginatedTestSuiteRunExecutionList,
|
214
|
+
PaginatedTestSuiteTestCaseList,
|
213
215
|
ProcessingFailureReasonEnum,
|
214
216
|
ProcessingStateEnum,
|
215
217
|
PromptDeploymentExpandMetaRequestRequest,
|
@@ -372,6 +374,9 @@ from .types import (
|
|
372
374
|
TestSuiteRunMetricOutput,
|
373
375
|
TestSuiteRunMetricOutput_Error,
|
374
376
|
TestSuiteRunMetricOutput_Number,
|
377
|
+
TestSuiteRunMetricOutput_String,
|
378
|
+
TestSuiteRunMetricStringOutput,
|
379
|
+
TestSuiteRunMetricStringOutputTypeEnum,
|
375
380
|
TestSuiteRunRead,
|
376
381
|
TestSuiteRunState,
|
377
382
|
TestSuiteRunTestSuite,
|
@@ -637,6 +642,7 @@ __all__ = [
|
|
637
642
|
"MetadataFilterConfigRequest",
|
638
643
|
"MetadataFilterRuleCombinator",
|
639
644
|
"MetadataFilterRuleRequest",
|
645
|
+
"MlModelUsage",
|
640
646
|
"ModelVersionBuildConfig",
|
641
647
|
"ModelVersionExecConfig",
|
642
648
|
"ModelVersionExecConfigParameters",
|
@@ -700,6 +706,7 @@ __all__ = [
|
|
700
706
|
"PaginatedSlimDocumentList",
|
701
707
|
"PaginatedSlimWorkflowDeploymentList",
|
702
708
|
"PaginatedTestSuiteRunExecutionList",
|
709
|
+
"PaginatedTestSuiteTestCaseList",
|
703
710
|
"ProcessingFailureReasonEnum",
|
704
711
|
"ProcessingStateEnum",
|
705
712
|
"PromptDeploymentExpandMetaRequestRequest",
|
@@ -862,6 +869,9 @@ __all__ = [
|
|
862
869
|
"TestSuiteRunMetricOutput",
|
863
870
|
"TestSuiteRunMetricOutput_Error",
|
864
871
|
"TestSuiteRunMetricOutput_Number",
|
872
|
+
"TestSuiteRunMetricOutput_String",
|
873
|
+
"TestSuiteRunMetricStringOutput",
|
874
|
+
"TestSuiteRunMetricStringOutputTypeEnum",
|
865
875
|
"TestSuiteRunRead",
|
866
876
|
"TestSuiteRunState",
|
867
877
|
"TestSuiteRunTestSuite",
|
vellum/client.py
CHANGED
@@ -167,6 +167,7 @@ class Vellum:
|
|
167
167
|
deployment_release_tag=True,
|
168
168
|
prompt_version_id=True,
|
169
169
|
finish_reason=True,
|
170
|
+
usage=True,
|
170
171
|
),
|
171
172
|
raw_overrides=RawPromptExecutionOverridesRequest(
|
172
173
|
body={"string": {"key": "value"}},
|
@@ -301,6 +302,7 @@ class Vellum:
|
|
301
302
|
deployment_release_tag=True,
|
302
303
|
prompt_version_id=True,
|
303
304
|
finish_reason=True,
|
305
|
+
usage=True,
|
304
306
|
),
|
305
307
|
raw_overrides=RawPromptExecutionOverridesRequest(
|
306
308
|
body={"string": {"key": "value"}},
|
@@ -1123,6 +1125,7 @@ class AsyncVellum:
|
|
1123
1125
|
deployment_release_tag=True,
|
1124
1126
|
prompt_version_id=True,
|
1125
1127
|
finish_reason=True,
|
1128
|
+
usage=True,
|
1126
1129
|
),
|
1127
1130
|
raw_overrides=RawPromptExecutionOverridesRequest(
|
1128
1131
|
body={"string": {"key": "value"}},
|
@@ -1257,6 +1260,7 @@ class AsyncVellum:
|
|
1257
1260
|
deployment_release_tag=True,
|
1258
1261
|
prompt_version_id=True,
|
1259
1262
|
finish_reason=True,
|
1263
|
+
usage=True,
|
1260
1264
|
),
|
1261
1265
|
raw_overrides=RawPromptExecutionOverridesRequest(
|
1262
1266
|
body={"string": {"key": "value"}},
|
vellum/core/client_wrapper.py
CHANGED
@@ -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.3.
|
21
|
+
"X-Fern-SDK-Version": "0.3.21",
|
22
22
|
}
|
23
23
|
headers["X_API_KEY"] = self.api_key
|
24
24
|
return headers
|
@@ -10,6 +10,7 @@ from ...core.jsonable_encoder import jsonable_encoder
|
|
10
10
|
from ...core.remove_none_from_dict import remove_none_from_dict
|
11
11
|
from ...core.request_options import RequestOptions
|
12
12
|
from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
|
13
|
+
from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
|
13
14
|
from ...types.test_suite_test_case import TestSuiteTestCase
|
14
15
|
|
15
16
|
try:
|
@@ -25,6 +26,76 @@ class TestSuitesClient:
|
|
25
26
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
26
27
|
self._client_wrapper = client_wrapper
|
27
28
|
|
29
|
+
def list_test_suite_test_cases(
|
30
|
+
self,
|
31
|
+
id: str,
|
32
|
+
*,
|
33
|
+
limit: typing.Optional[int] = None,
|
34
|
+
offset: typing.Optional[int] = None,
|
35
|
+
request_options: typing.Optional[RequestOptions] = None,
|
36
|
+
) -> PaginatedTestSuiteTestCaseList:
|
37
|
+
"""
|
38
|
+
List the Test Cases associated with a Test Suite
|
39
|
+
|
40
|
+
Parameters:
|
41
|
+
- id: str. A UUID string identifying this test suite.
|
42
|
+
|
43
|
+
- limit: typing.Optional[int]. Number of results to return per page.
|
44
|
+
|
45
|
+
- offset: typing.Optional[int]. The initial index from which to return the results.
|
46
|
+
|
47
|
+
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
48
|
+
---
|
49
|
+
from vellum.client import Vellum
|
50
|
+
|
51
|
+
client = Vellum(
|
52
|
+
api_key="YOUR_API_KEY",
|
53
|
+
)
|
54
|
+
client.test_suites.list_test_suite_test_cases(
|
55
|
+
id="id",
|
56
|
+
)
|
57
|
+
"""
|
58
|
+
_response = self._client_wrapper.httpx_client.request(
|
59
|
+
"GET",
|
60
|
+
urllib.parse.urljoin(
|
61
|
+
f"{self._client_wrapper.get_environment().default}/",
|
62
|
+
f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
|
63
|
+
),
|
64
|
+
params=jsonable_encoder(
|
65
|
+
remove_none_from_dict(
|
66
|
+
{
|
67
|
+
"limit": limit,
|
68
|
+
"offset": offset,
|
69
|
+
**(
|
70
|
+
request_options.get("additional_query_parameters", {})
|
71
|
+
if request_options is not None
|
72
|
+
else {}
|
73
|
+
),
|
74
|
+
}
|
75
|
+
)
|
76
|
+
),
|
77
|
+
headers=jsonable_encoder(
|
78
|
+
remove_none_from_dict(
|
79
|
+
{
|
80
|
+
**self._client_wrapper.get_headers(),
|
81
|
+
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
|
82
|
+
}
|
83
|
+
)
|
84
|
+
),
|
85
|
+
timeout=request_options.get("timeout_in_seconds")
|
86
|
+
if request_options is not None and request_options.get("timeout_in_seconds") is not None
|
87
|
+
else self._client_wrapper.get_timeout(),
|
88
|
+
retries=0,
|
89
|
+
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
90
|
+
)
|
91
|
+
if 200 <= _response.status_code < 300:
|
92
|
+
return pydantic.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
|
93
|
+
try:
|
94
|
+
_response_json = _response.json()
|
95
|
+
except JSONDecodeError:
|
96
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
97
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
98
|
+
|
28
99
|
def upsert_test_suite_test_case(
|
29
100
|
self,
|
30
101
|
id: str,
|
@@ -169,6 +240,76 @@ class AsyncTestSuitesClient:
|
|
169
240
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
170
241
|
self._client_wrapper = client_wrapper
|
171
242
|
|
243
|
+
async def list_test_suite_test_cases(
|
244
|
+
self,
|
245
|
+
id: str,
|
246
|
+
*,
|
247
|
+
limit: typing.Optional[int] = None,
|
248
|
+
offset: typing.Optional[int] = None,
|
249
|
+
request_options: typing.Optional[RequestOptions] = None,
|
250
|
+
) -> PaginatedTestSuiteTestCaseList:
|
251
|
+
"""
|
252
|
+
List the Test Cases associated with a Test Suite
|
253
|
+
|
254
|
+
Parameters:
|
255
|
+
- id: str. A UUID string identifying this test suite.
|
256
|
+
|
257
|
+
- limit: typing.Optional[int]. Number of results to return per page.
|
258
|
+
|
259
|
+
- offset: typing.Optional[int]. The initial index from which to return the results.
|
260
|
+
|
261
|
+
- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
|
262
|
+
---
|
263
|
+
from vellum.client import AsyncVellum
|
264
|
+
|
265
|
+
client = AsyncVellum(
|
266
|
+
api_key="YOUR_API_KEY",
|
267
|
+
)
|
268
|
+
await client.test_suites.list_test_suite_test_cases(
|
269
|
+
id="id",
|
270
|
+
)
|
271
|
+
"""
|
272
|
+
_response = await self._client_wrapper.httpx_client.request(
|
273
|
+
"GET",
|
274
|
+
urllib.parse.urljoin(
|
275
|
+
f"{self._client_wrapper.get_environment().default}/",
|
276
|
+
f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
|
277
|
+
),
|
278
|
+
params=jsonable_encoder(
|
279
|
+
remove_none_from_dict(
|
280
|
+
{
|
281
|
+
"limit": limit,
|
282
|
+
"offset": offset,
|
283
|
+
**(
|
284
|
+
request_options.get("additional_query_parameters", {})
|
285
|
+
if request_options is not None
|
286
|
+
else {}
|
287
|
+
),
|
288
|
+
}
|
289
|
+
)
|
290
|
+
),
|
291
|
+
headers=jsonable_encoder(
|
292
|
+
remove_none_from_dict(
|
293
|
+
{
|
294
|
+
**self._client_wrapper.get_headers(),
|
295
|
+
**(request_options.get("additional_headers", {}) if request_options is not None else {}),
|
296
|
+
}
|
297
|
+
)
|
298
|
+
),
|
299
|
+
timeout=request_options.get("timeout_in_seconds")
|
300
|
+
if request_options is not None and request_options.get("timeout_in_seconds") is not None
|
301
|
+
else self._client_wrapper.get_timeout(),
|
302
|
+
retries=0,
|
303
|
+
max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
|
304
|
+
)
|
305
|
+
if 200 <= _response.status_code < 300:
|
306
|
+
return pydantic.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
|
307
|
+
try:
|
308
|
+
_response_json = _response.json()
|
309
|
+
except JSONDecodeError:
|
310
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
311
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
312
|
+
|
172
313
|
async def upsert_test_suite_test_case(
|
173
314
|
self,
|
174
315
|
id: str,
|
vellum/types/__init__.py
CHANGED
@@ -165,6 +165,7 @@ from .logprobs_enum import LogprobsEnum
|
|
165
165
|
from .metadata_filter_config_request import MetadataFilterConfigRequest
|
166
166
|
from .metadata_filter_rule_combinator import MetadataFilterRuleCombinator
|
167
167
|
from .metadata_filter_rule_request import MetadataFilterRuleRequest
|
168
|
+
from .ml_model_usage import MlModelUsage
|
168
169
|
from .model_version_build_config import ModelVersionBuildConfig
|
169
170
|
from .model_version_exec_config import ModelVersionExecConfig
|
170
171
|
from .model_version_exec_config_parameters import ModelVersionExecConfigParameters
|
@@ -233,6 +234,7 @@ from .paginated_slim_deployment_read_list import PaginatedSlimDeploymentReadList
|
|
233
234
|
from .paginated_slim_document_list import PaginatedSlimDocumentList
|
234
235
|
from .paginated_slim_workflow_deployment_list import PaginatedSlimWorkflowDeploymentList
|
235
236
|
from .paginated_test_suite_run_execution_list import PaginatedTestSuiteRunExecutionList
|
237
|
+
from .paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
|
236
238
|
from .processing_failure_reason_enum import ProcessingFailureReasonEnum
|
237
239
|
from .processing_state_enum import ProcessingStateEnum
|
238
240
|
from .prompt_deployment_expand_meta_request_request import PromptDeploymentExpandMetaRequestRequest
|
@@ -418,7 +420,10 @@ from .test_suite_run_metric_output import (
|
|
418
420
|
TestSuiteRunMetricOutput,
|
419
421
|
TestSuiteRunMetricOutput_Error,
|
420
422
|
TestSuiteRunMetricOutput_Number,
|
423
|
+
TestSuiteRunMetricOutput_String,
|
421
424
|
)
|
425
|
+
from .test_suite_run_metric_string_output import TestSuiteRunMetricStringOutput
|
426
|
+
from .test_suite_run_metric_string_output_type_enum import TestSuiteRunMetricStringOutputTypeEnum
|
422
427
|
from .test_suite_run_read import TestSuiteRunRead
|
423
428
|
from .test_suite_run_state import TestSuiteRunState
|
424
429
|
from .test_suite_run_test_suite import TestSuiteRunTestSuite
|
@@ -669,6 +674,7 @@ __all__ = [
|
|
669
674
|
"MetadataFilterConfigRequest",
|
670
675
|
"MetadataFilterRuleCombinator",
|
671
676
|
"MetadataFilterRuleRequest",
|
677
|
+
"MlModelUsage",
|
672
678
|
"ModelVersionBuildConfig",
|
673
679
|
"ModelVersionExecConfig",
|
674
680
|
"ModelVersionExecConfigParameters",
|
@@ -731,6 +737,7 @@ __all__ = [
|
|
731
737
|
"PaginatedSlimDocumentList",
|
732
738
|
"PaginatedSlimWorkflowDeploymentList",
|
733
739
|
"PaginatedTestSuiteRunExecutionList",
|
740
|
+
"PaginatedTestSuiteTestCaseList",
|
734
741
|
"ProcessingFailureReasonEnum",
|
735
742
|
"ProcessingStateEnum",
|
736
743
|
"PromptDeploymentExpandMetaRequestRequest",
|
@@ -893,6 +900,9 @@ __all__ = [
|
|
893
900
|
"TestSuiteRunMetricOutput",
|
894
901
|
"TestSuiteRunMetricOutput_Error",
|
895
902
|
"TestSuiteRunMetricOutput_Number",
|
903
|
+
"TestSuiteRunMetricOutput_String",
|
904
|
+
"TestSuiteRunMetricStringOutput",
|
905
|
+
"TestSuiteRunMetricStringOutputTypeEnum",
|
896
906
|
"TestSuiteRunRead",
|
897
907
|
"TestSuiteRunState",
|
898
908
|
"TestSuiteRunTestSuite",
|
@@ -5,6 +5,7 @@ import typing
|
|
5
5
|
|
6
6
|
from ..core.datetime_utils import serialize_datetime
|
7
7
|
from .finish_reason_enum import FinishReasonEnum
|
8
|
+
from .ml_model_usage import MlModelUsage
|
8
9
|
|
9
10
|
try:
|
10
11
|
import pydantic.v1 as pydantic # type: ignore
|
@@ -19,6 +20,7 @@ class FulfilledPromptExecutionMeta(pydantic.BaseModel):
|
|
19
20
|
|
20
21
|
latency: typing.Optional[int] = None
|
21
22
|
finish_reason: typing.Optional[FinishReasonEnum] = None
|
23
|
+
usage: typing.Optional[MlModelUsage] = None
|
22
24
|
|
23
25
|
def json(self, **kwargs: typing.Any) -> str:
|
24
26
|
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
@@ -0,0 +1,33 @@
|
|
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
|
+
|
8
|
+
try:
|
9
|
+
import pydantic.v1 as pydantic # type: ignore
|
10
|
+
except ImportError:
|
11
|
+
import pydantic # type: ignore
|
12
|
+
|
13
|
+
|
14
|
+
class MlModelUsage(pydantic.BaseModel):
|
15
|
+
output_token_count: typing.Optional[int] = None
|
16
|
+
input_token_count: typing.Optional[int] = None
|
17
|
+
input_char_count: typing.Optional[int] = None
|
18
|
+
output_char_count: typing.Optional[int] = None
|
19
|
+
compute_nanos: typing.Optional[int] = None
|
20
|
+
|
21
|
+
def json(self, **kwargs: typing.Any) -> str:
|
22
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
23
|
+
return super().json(**kwargs_with_defaults)
|
24
|
+
|
25
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
26
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
27
|
+
return super().dict(**kwargs_with_defaults)
|
28
|
+
|
29
|
+
class Config:
|
30
|
+
frozen = True
|
31
|
+
smart_union = True
|
32
|
+
extra = pydantic.Extra.allow
|
33
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
@@ -0,0 +1,33 @@
|
|
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 .test_suite_test_case import TestSuiteTestCase
|
8
|
+
|
9
|
+
try:
|
10
|
+
import pydantic.v1 as pydantic # type: ignore
|
11
|
+
except ImportError:
|
12
|
+
import pydantic # type: ignore
|
13
|
+
|
14
|
+
|
15
|
+
class PaginatedTestSuiteTestCaseList(pydantic.BaseModel):
|
16
|
+
count: int
|
17
|
+
next: typing.Optional[str] = None
|
18
|
+
previous: typing.Optional[str] = None
|
19
|
+
results: typing.List[TestSuiteTestCase]
|
20
|
+
|
21
|
+
def json(self, **kwargs: typing.Any) -> str:
|
22
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
23
|
+
return super().json(**kwargs_with_defaults)
|
24
|
+
|
25
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
26
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
27
|
+
return super().dict(**kwargs_with_defaults)
|
28
|
+
|
29
|
+
class Config:
|
30
|
+
frozen = True
|
31
|
+
smart_union = True
|
32
|
+
extra = pydantic.Extra.allow
|
33
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
@@ -37,6 +37,11 @@ class PromptDeploymentExpandMetaRequestRequest(pydantic.BaseModel):
|
|
37
37
|
If enabled, the response will include the reason provided by the model for why the execution finished.
|
38
38
|
"""
|
39
39
|
|
40
|
+
usage: typing.Optional[bool] = pydantic.Field(default=None)
|
41
|
+
"""
|
42
|
+
If enabled, the response will include model host usage tracking. This may increase latency for some model hosts.
|
43
|
+
"""
|
44
|
+
|
40
45
|
def json(self, **kwargs: typing.Any) -> str:
|
41
46
|
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
42
47
|
return super().json(**kwargs_with_defaults)
|
@@ -5,6 +5,7 @@ import typing
|
|
5
5
|
|
6
6
|
from ..core.datetime_utils import serialize_datetime
|
7
7
|
from .finish_reason_enum import FinishReasonEnum
|
8
|
+
from .ml_model_usage import MlModelUsage
|
8
9
|
|
9
10
|
try:
|
10
11
|
import pydantic.v1 as pydantic # type: ignore
|
@@ -17,6 +18,7 @@ class PromptExecutionMeta(pydantic.BaseModel):
|
|
17
18
|
The subset of the metadata tracked by Vellum during prompt execution that the request opted into with `expand_meta`.
|
18
19
|
"""
|
19
20
|
|
21
|
+
usage: typing.Optional[MlModelUsage] = None
|
20
22
|
model_name: typing.Optional[str] = None
|
21
23
|
latency: typing.Optional[int] = None
|
22
24
|
deployment_release_tag: typing.Optional[str] = None
|
@@ -6,6 +6,17 @@ import typing
|
|
6
6
|
|
7
7
|
from .test_suite_run_metric_error_output import TestSuiteRunMetricErrorOutput
|
8
8
|
from .test_suite_run_metric_number_output import TestSuiteRunMetricNumberOutput
|
9
|
+
from .test_suite_run_metric_string_output import TestSuiteRunMetricStringOutput
|
10
|
+
|
11
|
+
|
12
|
+
class TestSuiteRunMetricOutput_String(TestSuiteRunMetricStringOutput):
|
13
|
+
type: typing.Literal["STRING"] = "STRING"
|
14
|
+
|
15
|
+
class Config:
|
16
|
+
frozen = True
|
17
|
+
smart_union = True
|
18
|
+
allow_population_by_field_name = True
|
19
|
+
populate_by_name = True
|
9
20
|
|
10
21
|
|
11
22
|
class TestSuiteRunMetricOutput_Number(TestSuiteRunMetricNumberOutput):
|
@@ -28,4 +39,6 @@ class TestSuiteRunMetricOutput_Error(TestSuiteRunMetricErrorOutput):
|
|
28
39
|
populate_by_name = True
|
29
40
|
|
30
41
|
|
31
|
-
TestSuiteRunMetricOutput = typing.Union[
|
42
|
+
TestSuiteRunMetricOutput = typing.Union[
|
43
|
+
TestSuiteRunMetricOutput_String, TestSuiteRunMetricOutput_Number, TestSuiteRunMetricOutput_Error
|
44
|
+
]
|
@@ -0,0 +1,34 @@
|
|
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
|
+
|
8
|
+
try:
|
9
|
+
import pydantic.v1 as pydantic # type: ignore
|
10
|
+
except ImportError:
|
11
|
+
import pydantic # type: ignore
|
12
|
+
|
13
|
+
|
14
|
+
class TestSuiteRunMetricStringOutput(pydantic.BaseModel):
|
15
|
+
"""
|
16
|
+
Output for a test suite run metric that is of type STRING
|
17
|
+
"""
|
18
|
+
|
19
|
+
value: str
|
20
|
+
name: str
|
21
|
+
|
22
|
+
def json(self, **kwargs: typing.Any) -> str:
|
23
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
24
|
+
return super().json(**kwargs_with_defaults)
|
25
|
+
|
26
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
27
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
28
|
+
return super().dict(**kwargs_with_defaults)
|
29
|
+
|
30
|
+
class Config:
|
31
|
+
frozen = True
|
32
|
+
smart_union = True
|
33
|
+
extra = pydantic.Extra.allow
|
34
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
vellum/__init__.py,sha256=
|
2
|
-
vellum/client.py,sha256=
|
1
|
+
vellum/__init__.py,sha256=h2QBLHkAs9OTsNI_W0fYfaUrQUmLd37wNbkK63TQcGY,33979
|
2
|
+
vellum/client.py,sha256=ViOMnbiP_kKm3ayXW6DY1wC7Ge8tnI389qC8XVffyB8,96748
|
3
3
|
vellum/core/__init__.py,sha256=RWfyDqkzWsf8e3VGc3NV60MovfJbg5XWzNFGB2DZ0hA,790
|
4
4
|
vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
5
|
-
vellum/core/client_wrapper.py,sha256=
|
5
|
+
vellum/core/client_wrapper.py,sha256=zOXh9ZnRKMmvfCIpadlblmkfFSVgnNdLnEaRVillKps,1698
|
6
6
|
vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
7
7
|
vellum/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
|
8
8
|
vellum/core/http_client.py,sha256=5ok6hqgZDJhg57EHvMnr0BBaHdG50QxFPKaCZ9aVWTc,5059
|
@@ -39,12 +39,12 @@ vellum/resources/sandboxes/client.py,sha256=gW_DTrJ3w6BfaSATZxB0Z-bxVUXQ0JtPAjL6
|
|
39
39
|
vellum/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
40
40
|
vellum/resources/test_suite_runs/client.py,sha256=T5vF1S5jDfQLxKOg-2Q2XYCF9g5W-dos6Ff6Av21gr8,17120
|
41
41
|
vellum/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
42
|
-
vellum/resources/test_suites/client.py,sha256=
|
42
|
+
vellum/resources/test_suites/client.py,sha256=7PmEjJ_2TlvqJoP3C4XkdA8SyYMHVQwREB4T8LowZbM,18966
|
43
43
|
vellum/resources/workflow_deployments/__init__.py,sha256=-5BCA0kSmW6WUh4gqLuQtHv4zFdt9lccuDwMU5YvEu4,173
|
44
44
|
vellum/resources/workflow_deployments/client.py,sha256=DUY1h8mvXqwP-zilmwoek_XbLNTFeeVbxgd7M-k2IzA,11164
|
45
45
|
vellum/resources/workflow_deployments/types/__init__.py,sha256=rmS_4dtbgLHGNQJ_pOloygrjl4sNbKZjTEKBxbMyz6E,208
|
46
46
|
vellum/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=8-G1SalBR6-AfRnb6POOR9M3tvZa3CGwFIs1ArZb6uw,542
|
47
|
-
vellum/types/__init__.py,sha256=
|
47
|
+
vellum/types/__init__.py,sha256=aXYiDbcBGEypul3Ae4DcgwNT55UtGftQsVxTPRpVAZU,45312
|
48
48
|
vellum/types/api_node_result.py,sha256=aLOooryBCfglTeZwOuyyqRoHz5oPTja2mYYY7Gj8XxA,1040
|
49
49
|
vellum/types/api_node_result_data.py,sha256=cQcZiwI1hjRvQFlkVEGxyaD360vEklIfjBmhBAeI75U,1215
|
50
50
|
vellum/types/array_chat_message_content.py,sha256=Z7nKH8RNgot0i4-159w95OHywLjc-376gBPOovbw2hk,1087
|
@@ -108,7 +108,7 @@ vellum/types/fulfilled_execute_prompt_event.py,sha256=2_jNUOaSg12WKggFiczulVoHFM
|
|
108
108
|
vellum/types/fulfilled_execute_prompt_response.py,sha256=LyVpUlphfBrqSWzo1QyIzdTjAJ8cgW60U98VnMd83ws,1508
|
109
109
|
vellum/types/fulfilled_execute_workflow_workflow_result_event.py,sha256=ROLCpeU2FoqyisPDvgumUlYFDUbwOr93pEfII-ST3NI,1146
|
110
110
|
vellum/types/fulfilled_function_call.py,sha256=wIk8JVy9HyjSbY7rPOhrXPh3OuKy3mtpUvPSOx2FcUc,1056
|
111
|
-
vellum/types/fulfilled_prompt_execution_meta.py,sha256=
|
111
|
+
vellum/types/fulfilled_prompt_execution_meta.py,sha256=FHivWXQbtMMoud9vMC4rc_ik1JWPZG6HfJOkuevCnCs,1285
|
112
112
|
vellum/types/fulfilled_workflow_node_result_event.py,sha256=MGxts5L-VBaYP7xbL5ojjtKWEXUv45XSPqT7Y2RtvjI,1454
|
113
113
|
vellum/types/function_call.py,sha256=U1_fLhZ_VGnHYPX8rb7iqyyUhBzzbRAGR-ai4wLDrs4,813
|
114
114
|
vellum/types/function_call_chat_message_content.py,sha256=z9bTybrPXuhztOUw65PXGws-obJkCJWhc0Zfv1ZwA-k,1122
|
@@ -144,6 +144,7 @@ vellum/types/logprobs_enum.py,sha256=cw9yroKgrZzpPHniPV4hg7_21PM9_FSX1GArHHC_-_o
|
|
144
144
|
vellum/types/metadata_filter_config_request.py,sha256=JH5EBNES30DuRIhgad6IYwXZcuAW6bRajSnWUqs4hG4,1412
|
145
145
|
vellum/types/metadata_filter_rule_combinator.py,sha256=hmfQ3drGlGYqRA78iZr7ek8qZTFN-WENrwL3_OlexMM,528
|
146
146
|
vellum/types/metadata_filter_rule_request.py,sha256=JGPkjXzMS9I3dlEQUAJ0HllJ3F-Znp-0x-4hp06miPs,1428
|
147
|
+
vellum/types/ml_model_usage.py,sha256=2o6Yy9lMDTqRHQNpUzQSoQMfA5_my79LA1pBZDcGLV0,1143
|
147
148
|
vellum/types/model_version_build_config.py,sha256=0dOGfizN30eYJtjs-fJc32TUBGdpYuMFo57a_tEutSg,1400
|
148
149
|
vellum/types/model_version_exec_config.py,sha256=tJJ1Kb8rBdbkD4z9fVwP94bjR9gee4I9N-i9o9w8vVs,1677
|
149
150
|
vellum/types/model_version_exec_config_parameters.py,sha256=jF4wm_GIeITFavMNGSvBd-fa5v9fEjWxoHaZhVFx0CI,1326
|
@@ -184,11 +185,12 @@ vellum/types/paginated_slim_deployment_read_list.py,sha256=4pMZYAVl7pLI8d9-CE3NY
|
|
184
185
|
vellum/types/paginated_slim_document_list.py,sha256=Zvr_VzHcUEEiqAXEitoaM5YcPcaTKgEx8fziy3SH1CU,1127
|
185
186
|
vellum/types/paginated_slim_workflow_deployment_list.py,sha256=dCew3Xy72Mo5MHIBdCbcuDaH0v2yeCRNBDt4m-8tb0A,1168
|
186
187
|
vellum/types/paginated_test_suite_run_execution_list.py,sha256=pwT-FeIxOBnP_S3kpqlAUOtlXEYfFgfViRGxeFTebRI,1117
|
188
|
+
vellum/types/paginated_test_suite_test_case_list.py,sha256=0XlghGkiSubI41oR1UGSdYOKDUM4XLCgmcElKaYFdkA,1101
|
187
189
|
vellum/types/processing_failure_reason_enum.py,sha256=MDj2vNyO1Y-2WHuolkrGez8F1cZqS6ultfsqvGI4Fg8,752
|
188
190
|
vellum/types/processing_state_enum.py,sha256=rMhw5oLZNfhR4QkIgFfLMWRSLXgHt9qhiguEqWQNz5k,962
|
189
|
-
vellum/types/prompt_deployment_expand_meta_request_request.py,sha256=
|
191
|
+
vellum/types/prompt_deployment_expand_meta_request_request.py,sha256=bpA4eO3wIwg5fZK89eoC8B8QsRrKFddIN69o04YEBPk,2083
|
190
192
|
vellum/types/prompt_deployment_input_request.py,sha256=o8PCi7TsitddNxiAfDblxaXkJ1-WjuDTAW0LnKbMDY4,1233
|
191
|
-
vellum/types/prompt_execution_meta.py,sha256=
|
193
|
+
vellum/types/prompt_execution_meta.py,sha256=4RNkaZ2QjUtZwGUc9574Y4KuoZnzW2UCWj2RNiNiGKQ,1427
|
192
194
|
vellum/types/prompt_node_result.py,sha256=s6jusFXMD1calmDVdL0lWO0NIqILWpdLP8xFRqf-5-k,1054
|
193
195
|
vellum/types/prompt_node_result_data.py,sha256=q6y32EyaaAoIxM1od6-5RQAmPTitBQ-Hlkw5QNdeo6g,1045
|
194
196
|
vellum/types/prompt_output.py,sha256=Df5UnLyBRf79_oUnYiMl9vi_h41yKEDLw1KgkgiX1Uk,1442
|
@@ -301,7 +303,9 @@ vellum/types/test_suite_run_metric_error_output.py,sha256=N0ZRTO1QV4Bobrh9u1-k5q
|
|
301
303
|
vellum/types/test_suite_run_metric_error_output_type_enum.py,sha256=ZPKy0jkcgfuMhI2hG_3UUcw2sYH1BlV_ze8Axlq5nIU,144
|
302
304
|
vellum/types/test_suite_run_metric_number_output.py,sha256=vedeqnSpDl7Y23DdgAlcl16Gxd1WlNo4m4PQ2SGI8Tk,1020
|
303
305
|
vellum/types/test_suite_run_metric_number_output_type_enum.py,sha256=sXoES0zoliicpd66SwlF6xsVUjWSezGNkuxp6CthO2s,146
|
304
|
-
vellum/types/test_suite_run_metric_output.py,sha256=
|
306
|
+
vellum/types/test_suite_run_metric_output.py,sha256=QkHRKO1tnQWoeCq7xc7TfSiAjC927Ha2hdePBJeEn0A,1291
|
307
|
+
vellum/types/test_suite_run_metric_string_output.py,sha256=FxScPpKm8kj6pGTTQ9slJgkb1PQZn5LBa0ZFOnCUxJw,1018
|
308
|
+
vellum/types/test_suite_run_metric_string_output_type_enum.py,sha256=6OKwFyk0SUq4IKp6yg_FAc3ADM0jVCK-chq5JR9iwqo,146
|
305
309
|
vellum/types/test_suite_run_read.py,sha256=bb6kgQaMQpkshETe_dXiMNVCx3r05t12ajaiqTAnvHg,1551
|
306
310
|
vellum/types/test_suite_run_state.py,sha256=myD2yLYpEiTUK4AyRZwl3MrXOKYkDA8k4fpqnDnALAY,1111
|
307
311
|
vellum/types/test_suite_run_test_suite.py,sha256=jsSjV803xCQ4zQ29MCvCM06rH1PCviCZ7G8KzR-LiOA,953
|
@@ -359,7 +363,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=wYc76-DW
|
|
359
363
|
vellum/types/workflow_result_event_output_data_string.py,sha256=7SR46tKt-I_cGd_eVeKU8ymQ7R3vKkA_dFHCgAU1GcQ,1533
|
360
364
|
vellum/types/workflow_stream_event.py,sha256=KA6Bkk_XA6AIPWR-1vKnwF1A8l_Bm5y0arQCWWWRpsk,911
|
361
365
|
vellum/version.py,sha256=neLt8HBHHUtDF9M5fsyUzHT-pKooEPvceaLDqqIGb0s,77
|
362
|
-
vellum_ai-0.3.
|
363
|
-
vellum_ai-0.3.
|
364
|
-
vellum_ai-0.3.
|
365
|
-
vellum_ai-0.3.
|
366
|
+
vellum_ai-0.3.21.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
|
367
|
+
vellum_ai-0.3.21.dist-info/METADATA,sha256=BPMxESrgGDvdc1CRhBOdYCRugknRd_NwOR5D5NzmRI4,3550
|
368
|
+
vellum_ai-0.3.21.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
369
|
+
vellum_ai-0.3.21.dist-info/RECORD,,
|
File without changes
|
File without changes
|