vellum-ai 0.0.1__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 (61) hide show
  1. vellum/__init__.py +98 -0
  2. vellum/client.py +203 -0
  3. vellum/core/__init__.py +8 -0
  4. vellum/core/api_error.py +15 -0
  5. vellum/core/datetime_utils.py +28 -0
  6. vellum/core/jsonable_encoder.py +94 -0
  7. vellum/core/remove_none_from_headers.py +11 -0
  8. vellum/environment.py +17 -0
  9. vellum/py.typed +0 -0
  10. vellum/resources/__init__.py +5 -0
  11. vellum/resources/documents/__init__.py +2 -0
  12. vellum/resources/documents/client.py +135 -0
  13. vellum/resources/model_versions/__init__.py +2 -0
  14. vellum/resources/model_versions/client.py +53 -0
  15. vellum/types/__init__.py +91 -0
  16. vellum/types/block_type_enum.py +29 -0
  17. vellum/types/chat_role_enum.py +25 -0
  18. vellum/types/document.py +30 -0
  19. vellum/types/document_document_to_document_index.py +31 -0
  20. vellum/types/enriched_normalized_completion.py +39 -0
  21. vellum/types/finish_reason_enum.py +25 -0
  22. vellum/types/generate_error_response.py +24 -0
  23. vellum/types/generate_options_request.py +27 -0
  24. vellum/types/generate_request_request.py +31 -0
  25. vellum/types/generate_response.py +39 -0
  26. vellum/types/generate_result.py +35 -0
  27. vellum/types/generate_result_data.py +27 -0
  28. vellum/types/generate_result_error.py +24 -0
  29. vellum/types/indexing_state_enum.py +33 -0
  30. vellum/types/logprobs_enum.py +17 -0
  31. vellum/types/model_type_enum.py +17 -0
  32. vellum/types/model_version_build_config.py +34 -0
  33. vellum/types/model_version_exec_config_parameters.py +31 -0
  34. vellum/types/model_version_exec_config_read.py +35 -0
  35. vellum/types/model_version_read.py +43 -0
  36. vellum/types/model_version_read_status_enum.py +29 -0
  37. vellum/types/model_version_sandbox_snapshot.py +25 -0
  38. vellum/types/normalized_log_probs.py +26 -0
  39. vellum/types/normalized_token_log_probs.py +27 -0
  40. vellum/types/paginated_slim_document_list.py +28 -0
  41. vellum/types/processing_state_enum.py +29 -0
  42. vellum/types/prompt_template_block.py +27 -0
  43. vellum/types/prompt_template_block_data.py +26 -0
  44. vellum/types/prompt_template_block_properties.py +28 -0
  45. vellum/types/provider_enum.py +37 -0
  46. vellum/types/search_error_response.py +24 -0
  47. vellum/types/search_filters_request.py +26 -0
  48. vellum/types/search_request_options_request.py +36 -0
  49. vellum/types/search_response.py +27 -0
  50. vellum/types/search_result.py +30 -0
  51. vellum/types/search_result_merging_request.py +24 -0
  52. vellum/types/search_weights_request.py +25 -0
  53. vellum/types/slim_document.py +44 -0
  54. vellum/types/slim_document_status_enum.py +14 -0
  55. vellum/types/submit_completion_actual_request.py +46 -0
  56. vellum/types/submit_completion_actuals_error_response.py +24 -0
  57. vellum/types/upload_document_error_response.py +24 -0
  58. vellum/types/upload_document_response.py +24 -0
  59. vellum_ai-0.0.1.dist-info/METADATA +15 -0
  60. vellum_ai-0.0.1.dist-info/RECORD +61 -0
  61. vellum_ai-0.0.1.dist-info/WHEEL +4 -0
@@ -0,0 +1,53 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import urllib.parse
4
+ from json.decoder import JSONDecodeError
5
+
6
+ import httpx
7
+ import pydantic
8
+
9
+ from ...core.api_error import ApiError
10
+ from ...core.remove_none_from_headers import remove_none_from_headers
11
+ from ...environment import VellumEnvironment
12
+ from ...types.model_version_read import ModelVersionRead
13
+
14
+
15
+ class ModelVersionsClient:
16
+ def __init__(self, *, environment: VellumEnvironment = VellumEnvironment.PRODUCTION, api_key: str):
17
+ self._environment = environment
18
+ self.api_key = api_key
19
+
20
+ def retrieve(self, id: str) -> ModelVersionRead:
21
+ _response = httpx.request(
22
+ "GET",
23
+ urllib.parse.urljoin(f"{self._environment.default}/", f"v1/model-versions/{id}"),
24
+ headers=remove_none_from_headers({"X_API_KEY": self.api_key}),
25
+ )
26
+ if 200 <= _response.status_code < 300:
27
+ return pydantic.parse_obj_as(ModelVersionRead, _response.json()) # type: ignore
28
+ try:
29
+ _response_json = _response.json()
30
+ except JSONDecodeError:
31
+ raise ApiError(status_code=_response.status_code, body=_response.text)
32
+ raise ApiError(status_code=_response.status_code, body=_response_json)
33
+
34
+
35
+ class AsyncModelVersionsClient:
36
+ def __init__(self, *, environment: VellumEnvironment = VellumEnvironment.PRODUCTION, api_key: str):
37
+ self._environment = environment
38
+ self.api_key = api_key
39
+
40
+ async def retrieve(self, id: str) -> ModelVersionRead:
41
+ async with httpx.AsyncClient() as _client:
42
+ _response = await _client.request(
43
+ "GET",
44
+ urllib.parse.urljoin(f"{self._environment.default}/", f"v1/model-versions/{id}"),
45
+ headers=remove_none_from_headers({"X_API_KEY": self.api_key}),
46
+ )
47
+ if 200 <= _response.status_code < 300:
48
+ return pydantic.parse_obj_as(ModelVersionRead, _response.json()) # type: ignore
49
+ try:
50
+ _response_json = _response.json()
51
+ except JSONDecodeError:
52
+ raise ApiError(status_code=_response.status_code, body=_response.text)
53
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,91 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .block_type_enum import BlockTypeEnum
4
+ from .chat_role_enum import ChatRoleEnum
5
+ from .document import Document
6
+ from .document_document_to_document_index import DocumentDocumentToDocumentIndex
7
+ from .enriched_normalized_completion import EnrichedNormalizedCompletion
8
+ from .finish_reason_enum import FinishReasonEnum
9
+ from .generate_error_response import GenerateErrorResponse
10
+ from .generate_options_request import GenerateOptionsRequest
11
+ from .generate_request_request import GenerateRequestRequest
12
+ from .generate_response import GenerateResponse
13
+ from .generate_result import GenerateResult
14
+ from .generate_result_data import GenerateResultData
15
+ from .generate_result_error import GenerateResultError
16
+ from .indexing_state_enum import IndexingStateEnum
17
+ from .logprobs_enum import LogprobsEnum
18
+ from .model_type_enum import ModelTypeEnum
19
+ from .model_version_build_config import ModelVersionBuildConfig
20
+ from .model_version_exec_config_parameters import ModelVersionExecConfigParameters
21
+ from .model_version_exec_config_read import ModelVersionExecConfigRead
22
+ from .model_version_read import ModelVersionRead
23
+ from .model_version_read_status_enum import ModelVersionReadStatusEnum
24
+ from .model_version_sandbox_snapshot import ModelVersionSandboxSnapshot
25
+ from .normalized_log_probs import NormalizedLogProbs
26
+ from .normalized_token_log_probs import NormalizedTokenLogProbs
27
+ from .paginated_slim_document_list import PaginatedSlimDocumentList
28
+ from .processing_state_enum import ProcessingStateEnum
29
+ from .prompt_template_block import PromptTemplateBlock
30
+ from .prompt_template_block_data import PromptTemplateBlockData
31
+ from .prompt_template_block_properties import PromptTemplateBlockProperties
32
+ from .provider_enum import ProviderEnum
33
+ from .search_error_response import SearchErrorResponse
34
+ from .search_filters_request import SearchFiltersRequest
35
+ from .search_request_options_request import SearchRequestOptionsRequest
36
+ from .search_response import SearchResponse
37
+ from .search_result import SearchResult
38
+ from .search_result_merging_request import SearchResultMergingRequest
39
+ from .search_weights_request import SearchWeightsRequest
40
+ from .slim_document import SlimDocument
41
+ from .slim_document_status_enum import SlimDocumentStatusEnum
42
+ from .submit_completion_actual_request import SubmitCompletionActualRequest
43
+ from .submit_completion_actuals_error_response import SubmitCompletionActualsErrorResponse
44
+ from .upload_document_error_response import UploadDocumentErrorResponse
45
+ from .upload_document_response import UploadDocumentResponse
46
+
47
+ __all__ = [
48
+ "BlockTypeEnum",
49
+ "ChatRoleEnum",
50
+ "Document",
51
+ "DocumentDocumentToDocumentIndex",
52
+ "EnrichedNormalizedCompletion",
53
+ "FinishReasonEnum",
54
+ "GenerateErrorResponse",
55
+ "GenerateOptionsRequest",
56
+ "GenerateRequestRequest",
57
+ "GenerateResponse",
58
+ "GenerateResult",
59
+ "GenerateResultData",
60
+ "GenerateResultError",
61
+ "IndexingStateEnum",
62
+ "LogprobsEnum",
63
+ "ModelTypeEnum",
64
+ "ModelVersionBuildConfig",
65
+ "ModelVersionExecConfigParameters",
66
+ "ModelVersionExecConfigRead",
67
+ "ModelVersionRead",
68
+ "ModelVersionReadStatusEnum",
69
+ "ModelVersionSandboxSnapshot",
70
+ "NormalizedLogProbs",
71
+ "NormalizedTokenLogProbs",
72
+ "PaginatedSlimDocumentList",
73
+ "ProcessingStateEnum",
74
+ "PromptTemplateBlock",
75
+ "PromptTemplateBlockData",
76
+ "PromptTemplateBlockProperties",
77
+ "ProviderEnum",
78
+ "SearchErrorResponse",
79
+ "SearchFiltersRequest",
80
+ "SearchRequestOptionsRequest",
81
+ "SearchResponse",
82
+ "SearchResult",
83
+ "SearchResultMergingRequest",
84
+ "SearchWeightsRequest",
85
+ "SlimDocument",
86
+ "SlimDocumentStatusEnum",
87
+ "SubmitCompletionActualRequest",
88
+ "SubmitCompletionActualsErrorResponse",
89
+ "UploadDocumentErrorResponse",
90
+ "UploadDocumentResponse",
91
+ ]
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class BlockTypeEnum(str, enum.Enum):
10
+ CHAT_MESSAGE = "CHAT_MESSAGE"
11
+ CHAT_HISTORY = "CHAT_HISTORY"
12
+ TEXT = "TEXT"
13
+ VARIABLE = "VARIABLE"
14
+
15
+ def visit(
16
+ self,
17
+ chat_message: typing.Callable[[], T_Result],
18
+ chat_history: typing.Callable[[], T_Result],
19
+ text: typing.Callable[[], T_Result],
20
+ variable: typing.Callable[[], T_Result],
21
+ ) -> T_Result:
22
+ if self is BlockTypeEnum.CHAT_MESSAGE:
23
+ return chat_message()
24
+ if self is BlockTypeEnum.CHAT_HISTORY:
25
+ return chat_history()
26
+ if self is BlockTypeEnum.TEXT:
27
+ return text()
28
+ if self is BlockTypeEnum.VARIABLE:
29
+ return variable()
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class ChatRoleEnum(str, enum.Enum):
10
+ SYSTEM = "SYSTEM"
11
+ ASSISTANT = "ASSISTANT"
12
+ USER = "USER"
13
+
14
+ def visit(
15
+ self,
16
+ system: typing.Callable[[], T_Result],
17
+ assistant: typing.Callable[[], T_Result],
18
+ user: typing.Callable[[], T_Result],
19
+ ) -> T_Result:
20
+ if self is ChatRoleEnum.SYSTEM:
21
+ return system()
22
+ if self is ChatRoleEnum.ASSISTANT:
23
+ return assistant()
24
+ if self is ChatRoleEnum.USER:
25
+ return user()
@@ -0,0 +1,30 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+
10
+
11
+ class Document(pydantic.BaseModel):
12
+ id: str = pydantic.Field(description=("The ID of the document.\n"))
13
+ label: str = pydantic.Field(description=("The human-readable name for the document.\n"))
14
+ external_id: typing.Optional[str] = pydantic.Field(
15
+ description=(
16
+ "The unique ID of the document as represented in an external system and specified when it was originally uploaded.\n"
17
+ )
18
+ )
19
+
20
+ def json(self, **kwargs: typing.Any) -> str:
21
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
22
+ return super().json(**kwargs_with_defaults)
23
+
24
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
25
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
26
+ return super().dict(**kwargs_with_defaults)
27
+
28
+ class Config:
29
+ frozen = True
30
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,31 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .indexing_state_enum import IndexingStateEnum
10
+
11
+
12
+ class DocumentDocumentToDocumentIndex(pydantic.BaseModel):
13
+ id: str = pydantic.Field(description=("Vellum-generated ID that uniquely identifies this link.\n"))
14
+ document_index_id: str = pydantic.Field(
15
+ description=("Vellum-generated ID that uniquely identifies the index this document is included in.\n")
16
+ )
17
+ indexing_state: typing.Optional[IndexingStateEnum] = pydantic.Field(
18
+ description=("An enum value representing where this document is along its indexing lifecycle for this index.\n")
19
+ )
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
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -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
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .finish_reason_enum import FinishReasonEnum
10
+ from .normalized_log_probs import NormalizedLogProbs
11
+
12
+
13
+ class EnrichedNormalizedCompletion(pydantic.BaseModel):
14
+ id: str = pydantic.Field(description=("The Vellum-generated ID of the completion.\n"))
15
+ external_id: typing.Optional[str] = pydantic.Field(
16
+ description=(
17
+ "The external ID that was originally provided along with the generation request, which uniquely identifies this generation in an external system.\n"
18
+ )
19
+ )
20
+ text: str = pydantic.Field(description=("The text generated by the LLM.\n"))
21
+ finish_reason: FinishReasonEnum = pydantic.Field(description=("The reason the generation finished.\n"))
22
+ logprobs: typing.Optional[NormalizedLogProbs] = pydantic.Field(
23
+ description=("The logprobs of the completion. Only present if specified in the original request options.\n")
24
+ )
25
+ model_version_id: str = pydantic.Field(
26
+ description=("The ID of the model version used to generate this completion.\n")
27
+ )
28
+
29
+ def json(self, **kwargs: typing.Any) -> str:
30
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
31
+ return super().json(**kwargs_with_defaults)
32
+
33
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
34
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
35
+ return super().dict(**kwargs_with_defaults)
36
+
37
+ class Config:
38
+ frozen = True
39
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class FinishReasonEnum(str, enum.Enum):
10
+ LENGTH = "LENGTH"
11
+ STOP = "STOP"
12
+ UNKNOWN = "UNKNOWN"
13
+
14
+ def visit(
15
+ self,
16
+ length: typing.Callable[[], T_Result],
17
+ stop: typing.Callable[[], T_Result],
18
+ unknown: typing.Callable[[], T_Result],
19
+ ) -> T_Result:
20
+ if self is FinishReasonEnum.LENGTH:
21
+ return length()
22
+ if self is FinishReasonEnum.STOP:
23
+ return stop()
24
+ if self is FinishReasonEnum.UNKNOWN:
25
+ return unknown()
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+
10
+
11
+ class GenerateErrorResponse(pydantic.BaseModel):
12
+ detail: str = pydantic.Field(description=("Details about why the request failed.\n"))
13
+
14
+ def json(self, **kwargs: typing.Any) -> str:
15
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
16
+ return super().json(**kwargs_with_defaults)
17
+
18
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
19
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
+ return super().dict(**kwargs_with_defaults)
21
+
22
+ class Config:
23
+ frozen = True
24
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .logprobs_enum import LogprobsEnum
10
+
11
+
12
+ class GenerateOptionsRequest(pydantic.BaseModel):
13
+ logprobs: typing.Optional[LogprobsEnum] = pydantic.Field(
14
+ description=("Which logprobs to include, if any. Defaults to NONE.\n")
15
+ )
16
+
17
+ def json(self, **kwargs: typing.Any) -> str:
18
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
+ return super().json(**kwargs_with_defaults)
20
+
21
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().dict(**kwargs_with_defaults)
24
+
25
+ class Config:
26
+ frozen = True
27
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,31 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+
10
+
11
+ class GenerateRequestRequest(pydantic.BaseModel):
12
+ input_values: typing.Dict[str, typing.Any] = pydantic.Field(
13
+ description=("Key/value pairs for each template variable defined in the deployment's prompt.\n")
14
+ )
15
+ external_ids: typing.Optional[typing.List[str]] = pydantic.Field(
16
+ description=(
17
+ "Optionally include a unique identifier for each generation, as represented outside of Vellum. Note that this should generally be a list of length one.\n"
18
+ )
19
+ )
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
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -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
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .generate_result import GenerateResult
10
+
11
+
12
+ class GenerateResponse(pydantic.BaseModel):
13
+ results: typing.List[GenerateResult]
14
+
15
+ def json(self, **kwargs: typing.Any) -> str:
16
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
17
+ return super().json(**kwargs_with_defaults)
18
+
19
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
20
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
21
+ return super().dict(**kwargs_with_defaults)
22
+
23
+ @property
24
+ def texts(self) -> typing.List[str]:
25
+ return [
26
+ completion.text
27
+ for result in self.results
28
+ for completion in (result.data.completions if result.data else [])
29
+ ]
30
+
31
+ @property
32
+ def text(self) -> str:
33
+ if len(self.texts) != 1:
34
+ raise ValueError(f"Expected exactly one completion, but got {len(self.texts)}")
35
+ return self.texts[0]
36
+
37
+ class Config:
38
+ frozen = True
39
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,35 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .generate_result_data import GenerateResultData
10
+ from .generate_result_error import GenerateResultError
11
+
12
+
13
+ class GenerateResult(pydantic.BaseModel):
14
+ data: typing.Optional[GenerateResultData] = pydantic.Field(
15
+ description=(
16
+ "An object containing the resulting generation. This key will be absent if the LLM provider experienced an error.\n"
17
+ )
18
+ )
19
+ error: typing.Optional[GenerateResultError] = pydantic.Field(
20
+ description=(
21
+ "An object containing details about the error that occurred. This key will be absent if the LLM provider did not experience an error.\n"
22
+ )
23
+ )
24
+
25
+ def json(self, **kwargs: typing.Any) -> str:
26
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
27
+ return super().json(**kwargs_with_defaults)
28
+
29
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
30
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
31
+ return super().dict(**kwargs_with_defaults)
32
+
33
+ class Config:
34
+ frozen = True
35
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .enriched_normalized_completion import EnrichedNormalizedCompletion
10
+
11
+
12
+ class GenerateResultData(pydantic.BaseModel):
13
+ completions: typing.List[EnrichedNormalizedCompletion] = pydantic.Field(
14
+ description=("The generated completions. This will generally be a list of length one.\n")
15
+ )
16
+
17
+ def json(self, **kwargs: typing.Any) -> str:
18
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
+ return super().json(**kwargs_with_defaults)
20
+
21
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().dict(**kwargs_with_defaults)
24
+
25
+ class Config:
26
+ frozen = True
27
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+
10
+
11
+ class GenerateResultError(pydantic.BaseModel):
12
+ message: str = pydantic.Field(description=("The error message returned by the LLM provider.\n"))
13
+
14
+ def json(self, **kwargs: typing.Any) -> str:
15
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
16
+ return super().json(**kwargs_with_defaults)
17
+
18
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
19
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
+ return super().dict(**kwargs_with_defaults)
21
+
22
+ class Config:
23
+ frozen = True
24
+ 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 enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class IndexingStateEnum(str, enum.Enum):
10
+ AWAITING_PROCESSING = "AWAITING_PROCESSING"
11
+ QUEUED = "QUEUED"
12
+ INDEXING = "INDEXING"
13
+ INDEXED = "INDEXED"
14
+ FAILED = "FAILED"
15
+
16
+ def visit(
17
+ self,
18
+ awaiting_processing: typing.Callable[[], T_Result],
19
+ queued: typing.Callable[[], T_Result],
20
+ indexing: typing.Callable[[], T_Result],
21
+ indexed: typing.Callable[[], T_Result],
22
+ failed: typing.Callable[[], T_Result],
23
+ ) -> T_Result:
24
+ if self is IndexingStateEnum.AWAITING_PROCESSING:
25
+ return awaiting_processing()
26
+ if self is IndexingStateEnum.QUEUED:
27
+ return queued()
28
+ if self is IndexingStateEnum.INDEXING:
29
+ return indexing()
30
+ if self is IndexingStateEnum.INDEXED:
31
+ return indexed()
32
+ if self is IndexingStateEnum.FAILED:
33
+ return failed()
@@ -0,0 +1,17 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class LogprobsEnum(str, enum.Enum):
10
+ ALL = "ALL"
11
+ NONE = "NONE"
12
+
13
+ def visit(self, all: typing.Callable[[], T_Result], none: typing.Callable[[], T_Result]) -> T_Result:
14
+ if self is LogprobsEnum.ALL:
15
+ return all()
16
+ if self is LogprobsEnum.NONE:
17
+ return none()
@@ -0,0 +1,17 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import enum
4
+ import typing
5
+
6
+ T_Result = typing.TypeVar("T_Result")
7
+
8
+
9
+ class ModelTypeEnum(str, enum.Enum):
10
+ GENERATE = "GENERATE"
11
+ CLASSIFY = "CLASSIFY"
12
+
13
+ def visit(self, generate: typing.Callable[[], T_Result], classify: typing.Callable[[], T_Result]) -> T_Result:
14
+ if self is ModelTypeEnum.GENERATE:
15
+ return generate()
16
+ if self is ModelTypeEnum.CLASSIFY:
17
+ return classify()
@@ -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
+ import pydantic
7
+
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from .model_version_sandbox_snapshot import ModelVersionSandboxSnapshot
10
+
11
+
12
+ class ModelVersionBuildConfig(pydantic.BaseModel):
13
+ base_model: str = pydantic.Field(
14
+ description=(
15
+ "The name of the base model used to create this model version, as identified by the LLM provider.\n"
16
+ )
17
+ )
18
+ sandbox_snapshot: typing.Optional[ModelVersionSandboxSnapshot] = pydantic.Field(
19
+ description=(
20
+ "Information about the sandbox snapshot that was used to create this model version, if applicable.\n"
21
+ )
22
+ )
23
+
24
+ def json(self, **kwargs: typing.Any) -> str:
25
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
26
+ return super().json(**kwargs_with_defaults)
27
+
28
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
29
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
30
+ return super().dict(**kwargs_with_defaults)
31
+
32
+ class Config:
33
+ frozen = True
34
+ json_encoders = {dt.datetime: serialize_datetime}