agenta 0.24.1a0__py3-none-any.whl → 0.24.2a1__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.

Potentially problematic release.


This version of agenta might be problematic. Click here for more details.

Files changed (132) hide show
  1. agenta/cli/variant_commands.py +15 -10
  2. agenta/client/Readme.md +72 -64
  3. agenta/client/api.py +1 -1
  4. agenta/client/backend/__init__.py +14 -9
  5. agenta/client/backend/apps/client.py +1669 -0
  6. agenta/client/backend/bases/client.py +190 -0
  7. agenta/client/backend/client.py +2102 -868
  8. agenta/client/backend/configs/client.py +598 -0
  9. agenta/client/backend/containers/client.py +638 -0
  10. agenta/client/backend/{resources/containers → containers}/types/container_templates_response.py +1 -2
  11. agenta/client/backend/core/__init__.py +29 -0
  12. agenta/client/backend/core/client_wrapper.py +42 -9
  13. agenta/client/backend/core/datetime_utils.py +1 -1
  14. agenta/client/backend/core/file.py +43 -0
  15. agenta/client/backend/core/http_client.py +553 -0
  16. agenta/client/backend/core/jsonable_encoder.py +33 -39
  17. agenta/client/backend/core/pydantic_utilities.py +212 -0
  18. agenta/client/backend/core/query_encoder.py +60 -0
  19. agenta/client/backend/core/remove_none_from_dict.py +2 -2
  20. agenta/client/backend/core/request_options.py +32 -0
  21. agenta/client/backend/core/serialization.py +179 -0
  22. agenta/client/backend/environments/client.py +190 -0
  23. agenta/client/backend/evaluations/client.py +1462 -0
  24. agenta/client/backend/evaluators/client.py +911 -0
  25. agenta/client/backend/observability/client.py +1271 -0
  26. agenta/client/backend/testsets/client.py +1132 -0
  27. agenta/client/backend/types/__init__.py +8 -6
  28. agenta/client/backend/types/aggregated_result.py +14 -29
  29. agenta/client/backend/types/aggregated_result_evaluator_config.py +1 -2
  30. agenta/client/backend/types/app.py +13 -28
  31. agenta/client/backend/types/app_variant_response.py +21 -37
  32. agenta/client/backend/types/app_variant_revision.py +17 -32
  33. agenta/client/backend/types/base_output.py +13 -28
  34. agenta/client/backend/types/body_import_testset.py +16 -31
  35. agenta/client/backend/types/config_db.py +16 -31
  36. agenta/client/backend/types/correct_answer.py +22 -0
  37. agenta/client/backend/types/create_app_output.py +13 -28
  38. agenta/client/backend/types/create_span.py +33 -50
  39. agenta/client/backend/types/create_trace_response.py +16 -31
  40. agenta/client/backend/types/docker_env_vars.py +13 -28
  41. agenta/client/backend/types/environment_output.py +21 -36
  42. agenta/client/backend/types/environment_output_extended.py +21 -36
  43. agenta/client/backend/types/environment_revision.py +18 -33
  44. agenta/client/backend/types/error.py +16 -31
  45. agenta/client/backend/types/evaluation.py +20 -34
  46. agenta/client/backend/types/evaluation_scenario.py +18 -33
  47. agenta/client/backend/types/evaluation_scenario_input.py +16 -31
  48. agenta/client/backend/types/evaluation_scenario_output.py +18 -33
  49. agenta/client/backend/types/evaluation_scenario_result.py +14 -29
  50. agenta/client/backend/types/evaluation_scenario_score_update.py +13 -28
  51. agenta/client/backend/types/evaluation_status_enum.py +11 -33
  52. agenta/client/backend/types/evaluation_type.py +3 -21
  53. agenta/client/backend/types/evaluator.py +18 -32
  54. agenta/client/backend/types/evaluator_config.py +20 -33
  55. agenta/client/backend/types/get_config_response.py +16 -31
  56. agenta/client/backend/types/http_validation_error.py +14 -29
  57. agenta/client/backend/types/human_evaluation.py +17 -32
  58. agenta/client/backend/types/human_evaluation_scenario.py +21 -37
  59. agenta/client/backend/types/human_evaluation_scenario_input.py +13 -28
  60. agenta/client/backend/types/human_evaluation_scenario_output.py +13 -28
  61. agenta/client/backend/types/human_evaluation_scenario_update.py +26 -41
  62. agenta/client/backend/types/human_evaluation_update.py +14 -29
  63. agenta/client/backend/types/image.py +18 -33
  64. agenta/client/backend/types/invite_request.py +13 -28
  65. agenta/client/backend/types/list_api_keys_response.py +18 -33
  66. agenta/client/backend/types/llm_run_rate_limit.py +13 -28
  67. agenta/client/backend/types/llm_tokens.py +16 -31
  68. agenta/client/backend/types/lm_providers_enum.py +21 -0
  69. agenta/client/backend/types/new_human_evaluation.py +13 -28
  70. agenta/client/backend/types/new_testset.py +16 -31
  71. agenta/client/backend/types/organization.py +22 -36
  72. agenta/client/backend/types/organization_output.py +13 -28
  73. agenta/client/backend/types/outputs.py +5 -0
  74. agenta/client/backend/types/permission.py +36 -137
  75. agenta/client/backend/types/result.py +17 -32
  76. agenta/client/backend/types/simple_evaluation_output.py +13 -28
  77. agenta/client/backend/types/span.py +23 -38
  78. agenta/client/backend/types/span_detail.py +26 -40
  79. agenta/client/backend/types/span_status_code.py +1 -25
  80. agenta/client/backend/types/span_variant.py +16 -31
  81. agenta/client/backend/types/template.py +14 -29
  82. agenta/client/backend/types/template_image_info.py +21 -35
  83. agenta/client/backend/types/test_set_output_response.py +16 -32
  84. agenta/client/backend/types/test_set_simple_response.py +13 -28
  85. agenta/client/backend/types/trace_detail.py +26 -40
  86. agenta/client/backend/types/update_app_output.py +22 -0
  87. agenta/client/backend/types/uri.py +13 -28
  88. agenta/client/backend/types/validation_error.py +13 -28
  89. agenta/client/backend/types/variant_action.py +14 -29
  90. agenta/client/backend/types/variant_action_enum.py +1 -19
  91. agenta/client/backend/types/with_pagination.py +14 -30
  92. agenta/client/backend/types/workspace_member_response.py +14 -29
  93. agenta/client/backend/types/workspace_permission.py +18 -33
  94. agenta/client/backend/types/workspace_response.py +20 -35
  95. agenta/client/backend/types/workspace_role.py +11 -37
  96. agenta/client/backend/types/workspace_role_response.py +17 -32
  97. agenta/client/backend/variants/client.py +1447 -0
  98. agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +8 -0
  99. agenta/sdk/decorators/llm_entrypoint.py +8 -13
  100. agenta/sdk/tracing/llm_tracing.py +1 -1
  101. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/METADATA +1 -1
  102. agenta-0.24.2a1.dist-info/RECORD +175 -0
  103. agenta/client/backend/resources/__init__.py +0 -31
  104. agenta/client/backend/resources/apps/client.py +0 -977
  105. agenta/client/backend/resources/bases/client.py +0 -127
  106. agenta/client/backend/resources/configs/client.py +0 -377
  107. agenta/client/backend/resources/containers/client.py +0 -383
  108. agenta/client/backend/resources/environments/client.py +0 -131
  109. agenta/client/backend/resources/evaluations/client.py +0 -1008
  110. agenta/client/backend/resources/evaluators/client.py +0 -594
  111. agenta/client/backend/resources/observability/client.py +0 -1187
  112. agenta/client/backend/resources/testsets/client.py +0 -689
  113. agenta/client/backend/resources/variants/client.py +0 -796
  114. agenta/client/backend/resources/variants/types/add_variant_from_base_and_config_response.py +0 -7
  115. agenta/client/backend/types/evaluation_webhook.py +0 -36
  116. agenta/client/backend/types/feedback.py +0 -40
  117. agenta/client/backend/types/span_kind.py +0 -49
  118. agenta-0.24.1a0.dist-info/RECORD +0 -169
  119. /agenta/client/backend/{resources/apps → apps}/__init__.py +0 -0
  120. /agenta/client/backend/{resources/bases → bases}/__init__.py +0 -0
  121. /agenta/client/backend/{resources/configs → configs}/__init__.py +0 -0
  122. /agenta/client/backend/{resources/containers → containers}/__init__.py +0 -0
  123. /agenta/client/backend/{resources/containers → containers}/types/__init__.py +0 -0
  124. /agenta/client/backend/{resources/environments → environments}/__init__.py +0 -0
  125. /agenta/client/backend/{resources/evaluations → evaluations}/__init__.py +0 -0
  126. /agenta/client/backend/{resources/evaluators → evaluators}/__init__.py +0 -0
  127. /agenta/client/backend/{resources/observability → observability}/__init__.py +0 -0
  128. /agenta/client/backend/{resources/testsets → testsets}/__init__.py +0 -0
  129. /agenta/client/backend/{resources/variants → variants}/__init__.py +0 -0
  130. /agenta/client/backend/{resources/variants → variants}/types/__init__.py +0 -0
  131. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/WHEEL +0 -0
  132. {agenta-0.24.1a0.dist-info → agenta-0.24.2a1.dist-info}/entry_points.txt +0 -0
@@ -1,61 +1,44 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
5
+ from .outputs import Outputs
6
+ import datetime as dt
7
7
  from .llm_tokens import LlmTokens
8
- from .span_kind import SpanKind
9
- from .span_status_code import SpanStatusCode
10
-
11
- try:
12
- import pydantic.v1 as pydantic # type: ignore
13
- except ImportError:
14
- import pydantic # type: ignore
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
+ import pydantic
15
10
 
16
11
 
17
- class CreateSpan(pydantic.BaseModel):
12
+ class CreateSpan(UniversalBaseModel):
18
13
  id: str
19
- app_id: typing.Optional[str]
20
- variant_id: typing.Optional[str]
21
- variant_name: typing.Optional[str]
22
- inputs: typing.Optional[typing.Dict[str, typing.Any]]
23
- internals: typing.Optional[typing.Dict[str, typing.Any]]
24
- outputs: typing.Optional[
25
- typing.Union[typing.Dict[str, typing.Any], typing.List[str]]
26
- ]
27
- config: typing.Optional[typing.Dict[str, typing.Any]]
28
- environment: typing.Optional[str]
29
- tags: typing.Optional[typing.List[str]]
30
- token_consumption: typing.Optional[int]
14
+ app_id: str
15
+ variant_id: typing.Optional[str] = None
16
+ variant_name: typing.Optional[str] = None
17
+ inputs: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
18
+ internals: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
19
+ outputs: typing.Optional[Outputs] = None
20
+ config: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
21
+ environment: typing.Optional[str] = None
22
+ tags: typing.Optional[typing.List[str]] = None
23
+ token_consumption: typing.Optional[int] = None
31
24
  name: str
32
- parent_span_id: typing.Optional[str]
33
- attributes: typing.Optional[typing.Dict[str, typing.Any]]
25
+ parent_span_id: typing.Optional[str] = None
26
+ attributes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
34
27
  spankind: str
35
28
  status: str
36
- user: typing.Optional[str]
29
+ user: typing.Optional[str] = None
37
30
  start_time: dt.datetime
38
- end_time: typing.Optional[dt.datetime]
39
- tokens: typing.Optional[LlmTokens]
40
- cost: typing.Optional[float]
41
-
42
- def json(self, **kwargs: typing.Any) -> str:
43
- kwargs_with_defaults: typing.Any = {
44
- "by_alias": True,
45
- "exclude_unset": True,
46
- **kwargs,
47
- }
48
- return super().json(**kwargs_with_defaults)
49
-
50
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
51
- kwargs_with_defaults: typing.Any = {
52
- "by_alias": True,
53
- "exclude_unset": True,
54
- **kwargs,
55
- }
56
- return super().dict(**kwargs_with_defaults)
57
-
58
- class Config:
59
- frozen = False
60
- smart_union = True
61
- json_encoders = {dt.datetime: serialize_datetime}
31
+ end_time: dt.datetime
32
+ tokens: typing.Optional[LlmTokens] = None
33
+ cost: typing.Optional[float] = None
34
+
35
+ if IS_PYDANTIC_V2:
36
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
37
+ extra="allow", frozen=True
38
+ ) # type: ignore # Pydantic v2
39
+ else:
40
+
41
+ class Config:
42
+ frozen = True
43
+ smart_union = True
44
+ extra = pydantic.Extra.allow
@@ -1,37 +1,22 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class CreateTraceResponse(pydantic.BaseModel):
9
+ class CreateTraceResponse(UniversalBaseModel):
15
10
  message: str
16
- data: typing.Dict[str, typing.Any]
17
-
18
- def json(self, **kwargs: typing.Any) -> str:
19
- kwargs_with_defaults: typing.Any = {
20
- "by_alias": True,
21
- "exclude_unset": True,
22
- **kwargs,
23
- }
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 = {
28
- "by_alias": True,
29
- "exclude_unset": True,
30
- **kwargs,
31
- }
32
- return super().dict(**kwargs_with_defaults)
33
-
34
- class Config:
35
- frozen = True
36
- smart_union = True
37
- json_encoders = {dt.datetime: serialize_datetime}
11
+ data: typing.Dict[str, typing.Optional[typing.Any]]
12
+
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -1,36 +1,21 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class DockerEnvVars(pydantic.BaseModel):
9
+ class DockerEnvVars(UniversalBaseModel):
15
10
  env_vars: typing.Dict[str, str]
16
11
 
17
- def json(self, **kwargs: typing.Any) -> str:
18
- kwargs_with_defaults: typing.Any = {
19
- "by_alias": True,
20
- "exclude_unset": True,
21
- **kwargs,
22
- }
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 = {
27
- "by_alias": True,
28
- "exclude_unset": True,
29
- **kwargs,
30
- }
31
- return super().dict(**kwargs_with_defaults)
12
+ if IS_PYDANTIC_V2:
13
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
14
+ extra="allow", frozen=True
15
+ ) # type: ignore # Pydantic v2
16
+ else:
32
17
 
33
- class Config:
34
- frozen = True
35
- smart_union = True
36
- json_encoders = {dt.datetime: serialize_datetime}
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -1,43 +1,28 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class EnvironmentOutput(pydantic.BaseModel):
9
+ class EnvironmentOutput(UniversalBaseModel):
15
10
  name: str
16
11
  app_id: str
17
- deployed_app_variant_id: typing.Optional[str]
18
- deployed_variant_name: typing.Optional[str]
19
- deployed_app_variant_revision_id: typing.Optional[str]
20
- revision: typing.Optional[int]
21
- organization_id: typing.Optional[str]
22
- workspace_id: typing.Optional[str]
23
-
24
- def json(self, **kwargs: typing.Any) -> str:
25
- kwargs_with_defaults: typing.Any = {
26
- "by_alias": True,
27
- "exclude_unset": True,
28
- **kwargs,
29
- }
30
- return super().json(**kwargs_with_defaults)
31
-
32
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
33
- kwargs_with_defaults: typing.Any = {
34
- "by_alias": True,
35
- "exclude_unset": True,
36
- **kwargs,
37
- }
38
- return super().dict(**kwargs_with_defaults)
39
-
40
- class Config:
41
- frozen = True
42
- smart_union = True
43
- json_encoders = {dt.datetime: serialize_datetime}
12
+ deployed_app_variant_id: typing.Optional[str] = None
13
+ deployed_variant_name: typing.Optional[str] = None
14
+ deployed_app_variant_revision_id: typing.Optional[str] = None
15
+ revision: typing.Optional[int] = None
16
+ organization_id: typing.Optional[str] = None
17
+ workspace_id: typing.Optional[str] = None
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
21
+ extra="allow", frozen=True
22
+ ) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
@@ -1,45 +1,30 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
5
  from .environment_revision import EnvironmentRevision
8
-
9
- try:
10
- import pydantic.v1 as pydantic # type: ignore
11
- except ImportError:
12
- import pydantic # type: ignore
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
13
8
 
14
9
 
15
- class EnvironmentOutputExtended(pydantic.BaseModel):
10
+ class EnvironmentOutputExtended(UniversalBaseModel):
16
11
  name: str
17
12
  app_id: str
18
- deployed_app_variant_id: typing.Optional[str]
19
- deployed_variant_name: typing.Optional[str]
20
- deployed_app_variant_revision_id: typing.Optional[str]
21
- revision: typing.Optional[int]
13
+ deployed_app_variant_id: typing.Optional[str] = None
14
+ deployed_variant_name: typing.Optional[str] = None
15
+ deployed_app_variant_revision_id: typing.Optional[str] = None
16
+ revision: typing.Optional[int] = None
22
17
  revisions: typing.List[EnvironmentRevision]
23
- organization_id: typing.Optional[str]
24
- workspace_id: typing.Optional[str]
25
-
26
- def json(self, **kwargs: typing.Any) -> str:
27
- kwargs_with_defaults: typing.Any = {
28
- "by_alias": True,
29
- "exclude_unset": True,
30
- **kwargs,
31
- }
32
- return super().json(**kwargs_with_defaults)
33
-
34
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
35
- kwargs_with_defaults: typing.Any = {
36
- "by_alias": True,
37
- "exclude_unset": True,
38
- **kwargs,
39
- }
40
- return super().dict(**kwargs_with_defaults)
41
-
42
- class Config:
43
- frozen = True
44
- smart_union = True
45
- json_encoders = {dt.datetime: serialize_datetime}
18
+ organization_id: typing.Optional[str] = None
19
+ workspace_id: typing.Optional[str] = None
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
23
+ extra="allow", frozen=True
24
+ ) # type: ignore # Pydantic v2
25
+ else:
26
+
27
+ class Config:
28
+ frozen = True
29
+ smart_union = True
30
+ extra = pydantic.Extra.allow
@@ -1,41 +1,26 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class EnvironmentRevision(pydantic.BaseModel):
9
+ class EnvironmentRevision(UniversalBaseModel):
15
10
  id: str
16
11
  revision: int
17
12
  modified_by: str
18
- deployed_app_variant_revision: typing.Optional[str]
19
- deployment: typing.Optional[str]
20
- created_at: dt.datetime
21
-
22
- def json(self, **kwargs: typing.Any) -> str:
23
- kwargs_with_defaults: typing.Any = {
24
- "by_alias": True,
25
- "exclude_unset": True,
26
- **kwargs,
27
- }
28
- return super().json(**kwargs_with_defaults)
29
-
30
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
31
- kwargs_with_defaults: typing.Any = {
32
- "by_alias": True,
33
- "exclude_unset": True,
34
- **kwargs,
35
- }
36
- return super().dict(**kwargs_with_defaults)
37
-
38
- class Config:
39
- frozen = True
40
- smart_union = True
41
- json_encoders = {dt.datetime: serialize_datetime}
13
+ deployed_app_variant_revision: typing.Optional[str] = None
14
+ deployment: typing.Optional[str] = None
15
+ created_at: str
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -1,37 +1,22 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class Error(pydantic.BaseModel):
9
+ class Error(UniversalBaseModel):
15
10
  message: str
16
- stacktrace: typing.Optional[str]
17
-
18
- def json(self, **kwargs: typing.Any) -> str:
19
- kwargs_with_defaults: typing.Any = {
20
- "by_alias": True,
21
- "exclude_unset": True,
22
- **kwargs,
23
- }
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 = {
28
- "by_alias": True,
29
- "exclude_unset": True,
30
- **kwargs,
31
- }
32
- return super().dict(**kwargs_with_defaults)
33
-
34
- class Config:
35
- frozen = True
36
- smart_union = True
37
- json_encoders = {dt.datetime: serialize_datetime}
11
+ stacktrace: typing.Optional[str] = None
12
+
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
15
+ extra="allow", frozen=True
16
+ ) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -1,19 +1,15 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
- from .aggregated_result import AggregatedResult
8
5
  from .result import Result
9
-
10
- try:
11
- import pydantic.v1 as pydantic # type: ignore
12
- except ImportError:
13
- import pydantic # type: ignore
6
+ from .aggregated_result import AggregatedResult
7
+ import datetime as dt
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
+ import pydantic
14
10
 
15
11
 
16
- class Evaluation(pydantic.BaseModel):
12
+ class Evaluation(UniversalBaseModel):
17
13
  id: str
18
14
  app_id: str
19
15
  user_id: str
@@ -22,33 +18,23 @@ class Evaluation(pydantic.BaseModel):
22
18
  variant_names: typing.List[str]
23
19
  variant_revision_ids: typing.List[str]
24
20
  revisions: typing.List[str]
25
- testset_id: typing.Optional[str]
26
- testset_name: typing.Optional[str]
21
+ testset_id: typing.Optional[str] = None
22
+ testset_name: typing.Optional[str] = None
27
23
  status: Result
28
24
  aggregated_results: typing.List[AggregatedResult]
29
- average_cost: typing.Optional[Result]
30
- total_cost: typing.Optional[Result]
31
- average_latency: typing.Optional[Result]
25
+ average_cost: typing.Optional[Result] = None
26
+ total_cost: typing.Optional[Result] = None
27
+ average_latency: typing.Optional[Result] = None
32
28
  created_at: dt.datetime
33
29
  updated_at: dt.datetime
34
30
 
35
- def json(self, **kwargs: typing.Any) -> str:
36
- kwargs_with_defaults: typing.Any = {
37
- "by_alias": True,
38
- "exclude_unset": True,
39
- **kwargs,
40
- }
41
- return super().json(**kwargs_with_defaults)
42
-
43
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
44
- kwargs_with_defaults: typing.Any = {
45
- "by_alias": True,
46
- "exclude_unset": True,
47
- **kwargs,
48
- }
49
- return super().dict(**kwargs_with_defaults)
31
+ if IS_PYDANTIC_V2:
32
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
33
+ extra="allow", frozen=True
34
+ ) # type: ignore # Pydantic v2
35
+ else:
50
36
 
51
- class Config:
52
- frozen = True
53
- smart_union = True
54
- json_encoders = {dt.datetime: serialize_datetime}
37
+ class Config:
38
+ frozen = True
39
+ smart_union = True
40
+ extra = pydantic.Extra.allow
@@ -1,47 +1,32 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
-
6
- from ..core.datetime_utils import serialize_datetime
7
5
  from .evaluation_scenario_input import EvaluationScenarioInput
8
6
  from .evaluation_scenario_output import EvaluationScenarioOutput
7
+ from .correct_answer import CorrectAnswer
9
8
  from .evaluation_scenario_result import EvaluationScenarioResult
10
-
11
- try:
12
- import pydantic.v1 as pydantic # type: ignore
13
- except ImportError:
14
- import pydantic # type: ignore
9
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
10
+ import pydantic
15
11
 
16
12
 
17
- class EvaluationScenario(pydantic.BaseModel):
18
- id: typing.Optional[str]
13
+ class EvaluationScenario(UniversalBaseModel):
14
+ id: typing.Optional[str] = None
19
15
  evaluation_id: str
20
16
  inputs: typing.List[EvaluationScenarioInput]
21
17
  outputs: typing.List[EvaluationScenarioOutput]
22
- evaluation: typing.Optional[str]
23
- correct_answer: typing.Optional[str]
24
- is_pinned: typing.Optional[bool]
25
- note: typing.Optional[str]
18
+ correct_answers: typing.Optional[typing.List[CorrectAnswer]] = None
19
+ is_pinned: typing.Optional[bool] = None
20
+ note: typing.Optional[str] = None
26
21
  results: typing.List[EvaluationScenarioResult]
27
22
 
28
- def json(self, **kwargs: typing.Any) -> str:
29
- kwargs_with_defaults: typing.Any = {
30
- "by_alias": True,
31
- "exclude_unset": True,
32
- **kwargs,
33
- }
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 = {
38
- "by_alias": True,
39
- "exclude_unset": True,
40
- **kwargs,
41
- }
42
- return super().dict(**kwargs_with_defaults)
23
+ if IS_PYDANTIC_V2:
24
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
25
+ extra="allow", frozen=True
26
+ ) # type: ignore # Pydantic v2
27
+ else:
43
28
 
44
- class Config:
45
- frozen = True
46
- smart_union = True
47
- json_encoders = {dt.datetime: serialize_datetime}
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -1,38 +1,23 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ..core.datetime_utils import serialize_datetime
7
8
 
8
- try:
9
- import pydantic.v1 as pydantic # type: ignore
10
- except ImportError:
11
- import pydantic # type: ignore
12
-
13
-
14
- class EvaluationScenarioInput(pydantic.BaseModel):
9
+ class EvaluationScenarioInput(UniversalBaseModel):
15
10
  name: str
16
11
  type: str
17
- value: typing.Optional[typing.Any]
18
-
19
- def json(self, **kwargs: typing.Any) -> str:
20
- kwargs_with_defaults: typing.Any = {
21
- "by_alias": True,
22
- "exclude_unset": True,
23
- **kwargs,
24
- }
25
- return super().json(**kwargs_with_defaults)
26
-
27
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
28
- kwargs_with_defaults: typing.Any = {
29
- "by_alias": True,
30
- "exclude_unset": True,
31
- **kwargs,
32
- }
33
- return super().dict(**kwargs_with_defaults)
34
-
35
- class Config:
36
- frozen = True
37
- smart_union = True
38
- json_encoders = {dt.datetime: serialize_datetime}
12
+ value: typing.Optional[typing.Any] = None
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow