vellum-ai 0.0.21__py3-none-any.whl → 0.0.22__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 (73) hide show
  1. vellum/__init__.py +19 -19
  2. vellum/client.py +270 -101
  3. vellum/core/__init__.py +11 -2
  4. vellum/core/client_wrapper.py +27 -0
  5. vellum/core/remove_none_from_dict.py +11 -0
  6. vellum/resources/deployments/client.py +35 -15
  7. vellum/resources/document_indexes/client.py +64 -16
  8. vellum/resources/documents/client.py +110 -35
  9. vellum/resources/model_versions/client.py +67 -25
  10. vellum/resources/registered_prompts/client.py +80 -16
  11. vellum/resources/sandboxes/client.py +90 -25
  12. vellum/resources/test_suites/client.py +90 -25
  13. vellum/types/deployment_read.py +2 -6
  14. vellum/types/document.py +3 -7
  15. vellum/types/document_document_to_document_index.py +2 -2
  16. vellum/types/document_index_read.py +3 -7
  17. vellum/types/enriched_normalized_completion.py +5 -9
  18. vellum/types/evaluation_params.py +1 -3
  19. vellum/types/evaluation_params_request.py +1 -3
  20. vellum/types/generate_error_response.py +1 -1
  21. vellum/types/generate_request.py +3 -7
  22. vellum/types/generate_result.py +2 -6
  23. vellum/types/generate_result_data.py +1 -1
  24. vellum/types/generate_result_error.py +1 -1
  25. vellum/types/model_version_build_config.py +2 -6
  26. vellum/types/model_version_compile_prompt_response.py +1 -1
  27. vellum/types/model_version_compiled_prompt.py +2 -4
  28. vellum/types/model_version_exec_config.py +3 -3
  29. vellum/types/model_version_read.py +6 -10
  30. vellum/types/model_version_sandbox_snapshot.py +3 -5
  31. vellum/types/prompt_template_block_properties_request.py +2 -2
  32. vellum/types/prompt_template_block_request.py +1 -1
  33. vellum/types/prompt_template_input_variable.py +1 -1
  34. vellum/types/prompt_template_input_variable_request.py +1 -1
  35. vellum/types/register_prompt_error_response.py +1 -1
  36. vellum/types/register_prompt_prompt.py +2 -2
  37. vellum/types/register_prompt_prompt_info_request.py +1 -1
  38. vellum/types/register_prompt_response.py +5 -7
  39. vellum/types/registered_prompt_deployment.py +3 -3
  40. vellum/types/registered_prompt_model_version.py +2 -2
  41. vellum/types/registered_prompt_sandbox.py +2 -2
  42. vellum/types/registered_prompt_sandbox_snapshot.py +1 -1
  43. vellum/types/sandbox_scenario.py +2 -2
  44. vellum/types/scenario_input_request.py +1 -1
  45. vellum/types/search_error_response.py +1 -1
  46. vellum/types/search_filters_request.py +1 -1
  47. vellum/types/search_request_options_request.py +4 -6
  48. vellum/types/search_response.py +1 -1
  49. vellum/types/search_result.py +3 -3
  50. vellum/types/search_result_merging_request.py +1 -1
  51. vellum/types/search_weights_request.py +2 -2
  52. vellum/types/slim_document.py +5 -9
  53. vellum/types/submit_completion_actual_request.py +5 -15
  54. vellum/types/terminal_node_chat_history_result.py +1 -1
  55. vellum/types/terminal_node_json_result.py +1 -1
  56. vellum/types/terminal_node_result_output.py +2 -4
  57. vellum/types/terminal_node_string_result.py +1 -1
  58. vellum/types/test_suite_test_case.py +4 -8
  59. vellum/types/upload_document_response.py +1 -1
  60. vellum/types/workflow_node_result_data.py +7 -11
  61. vellum/types/workflow_request_chat_history_input_request.py +1 -3
  62. vellum/types/workflow_request_input_request.py +2 -6
  63. vellum/types/workflow_request_json_input_request.py +1 -3
  64. vellum/types/workflow_request_string_input_request.py +1 -3
  65. vellum/types/workflow_result_event_output_data.py +2 -8
  66. vellum/types/workflow_result_event_output_data_chat_history.py +3 -0
  67. vellum/types/workflow_result_event_output_data_json.py +3 -0
  68. vellum/types/workflow_result_event_output_data_string.py +6 -1
  69. vellum/types/workflow_stream_event.py +1 -4
  70. {vellum_ai-0.0.21.dist-info → vellum_ai-0.0.22.dist-info}/METADATA +1 -1
  71. {vellum_ai-0.0.21.dist-info → vellum_ai-0.0.22.dist-info}/RECORD +72 -71
  72. vellum/core/remove_none_from_headers.py +0 -11
  73. {vellum_ai-0.0.21.dist-info → vellum_ai-0.0.22.dist-info}/WHEEL +0 -0
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class GenerateErrorResponse(pydantic.BaseModel):
12
- detail: str = pydantic.Field(description=("Details about why the request failed.\n"))
12
+ detail: str = pydantic.Field(description="Details about why the request failed.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -11,17 +11,13 @@ from .chat_message_request import ChatMessageRequest
11
11
 
12
12
  class GenerateRequest(pydantic.BaseModel):
13
13
  input_values: typing.Dict[str, typing.Any] = pydantic.Field(
14
- description=("Key/value pairs for each template variable defined in the deployment's prompt.\n")
14
+ description="Key/value pairs for each template variable defined in the deployment's prompt."
15
15
  )
16
16
  chat_history: typing.Optional[typing.List[ChatMessageRequest]] = pydantic.Field(
17
- description=(
18
- "Optionally provide a list of chat messages that'll be used in place of the special {$chat_history} variable, if included in the prompt.\n"
19
- )
17
+ description="Optionally provide a list of chat messages that'll be used in place of the special {$chat_history} variable, if included in the prompt."
20
18
  )
21
19
  external_ids: typing.Optional[typing.List[str]] = pydantic.Field(
22
- description=(
23
- "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"
24
- )
20
+ description="Optionally include a unique identifier for each generation, as represented outside of Vellum. Note that this should generally be a list of length one."
25
21
  )
26
22
 
27
23
  def json(self, **kwargs: typing.Any) -> str:
@@ -12,14 +12,10 @@ from .generate_result_error import GenerateResultError
12
12
 
13
13
  class GenerateResult(pydantic.BaseModel):
14
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
- )
15
+ description="An object containing the resulting generation. This key will be absent if the LLM provider experienced an error."
18
16
  )
19
17
  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
- )
18
+ description="An object containing details about the error that occurred. This key will be absent if the LLM provider did not experience an error."
23
19
  )
24
20
 
25
21
  def json(self, **kwargs: typing.Any) -> str:
@@ -11,7 +11,7 @@ from .enriched_normalized_completion import EnrichedNormalizedCompletion
11
11
 
12
12
  class GenerateResultData(pydantic.BaseModel):
13
13
  completions: typing.List[EnrichedNormalizedCompletion] = pydantic.Field(
14
- description=("The generated completions. This will generally be a list of length one.\n")
14
+ description="The generated completions. This will generally be a list of length one."
15
15
  )
16
16
 
17
17
  def json(self, **kwargs: typing.Any) -> str:
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class GenerateResultError(pydantic.BaseModel):
12
- message: str = pydantic.Field(description=("The error message returned by the LLM provider.\n"))
12
+ message: str = pydantic.Field(description="The error message returned by the LLM provider.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -11,14 +11,10 @@ from .model_version_sandbox_snapshot import ModelVersionSandboxSnapshot
11
11
 
12
12
  class ModelVersionBuildConfig(pydantic.BaseModel):
13
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
- )
14
+ description="The name of the base model used to create this model version, as identified by the LLM provider."
17
15
  )
18
16
  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
- )
17
+ description="Information about the sandbox snapshot that was used to create this model version, if applicable."
22
18
  )
23
19
 
24
20
  def json(self, **kwargs: typing.Any) -> str:
@@ -10,7 +10,7 @@ from .model_version_compiled_prompt import ModelVersionCompiledPrompt
10
10
 
11
11
 
12
12
  class ModelVersionCompilePromptResponse(pydantic.BaseModel):
13
- prompt: ModelVersionCompiledPrompt = pydantic.Field(description=("Information about the compiled prompt.\n"))
13
+ prompt: ModelVersionCompiledPrompt = pydantic.Field(description="Information about the compiled prompt.")
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
16
16
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -10,11 +10,9 @@ from ..core.datetime_utils import serialize_datetime
10
10
 
11
11
  class ModelVersionCompiledPrompt(pydantic.BaseModel):
12
12
  text: str = pydantic.Field(
13
- description=(
14
- "The fully compiled prompt in normalized ChatML syntax after all variable substitutions and templating functions are applied.\n"
15
- )
13
+ description="The fully compiled prompt in normalized ChatML syntax after all variable substitutions and templating functions are applied."
16
14
  )
17
- num_tokens: int = pydantic.Field(description=("The approximate number of tokens used by the compiled prompt.\n"))
15
+ num_tokens: int = pydantic.Field(description="The approximate number of tokens used by the compiled prompt.")
18
16
 
19
17
  def json(self, **kwargs: typing.Any) -> str:
20
18
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -13,13 +13,13 @@ from .prompt_template_input_variable import PromptTemplateInputVariable
13
13
 
14
14
  class ModelVersionExecConfig(pydantic.BaseModel):
15
15
  parameters: ModelVersionExecConfigParameters = pydantic.Field(
16
- description=("The generation parameters that are passed to the LLM provider at runtime.\n")
16
+ description="The generation parameters that are passed to the LLM provider at runtime."
17
17
  )
18
18
  input_variables: typing.List[PromptTemplateInputVariable] = pydantic.Field(
19
- description=("Names of the input variables specified in the prompt template.\n")
19
+ description="Names of the input variables specified in the prompt template."
20
20
  )
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(
22
- description=("The template used to generate prompts for this model version.\n")
22
+ description="The template used to generate prompts for this model version."
23
23
  )
24
24
  prompt_block_data: typing.Optional[PromptTemplateBlockData]
25
25
  prompt_syntax_version: typing.Optional[int]
@@ -14,12 +14,10 @@ from .provider_enum import ProviderEnum
14
14
 
15
15
 
16
16
  class ModelVersionRead(pydantic.BaseModel):
17
- id: str = pydantic.Field(description=("Vellum-generated ID that uniquely identifies this model version.\n"))
18
- created: str = pydantic.Field(description=("Timestamp of when this model version was created.\n"))
17
+ id: str = pydantic.Field(description="Vellum-generated ID that uniquely identifies this model version.")
18
+ created: str = pydantic.Field(description="Timestamp of when this model version was created.")
19
19
  label: str = pydantic.Field(
20
- description=(
21
- 'Human-friendly name for this model version. <span style="white-space: nowrap">`<= 150 characters`</span> \n'
22
- )
20
+ description='Human-friendly name for this model version. <span style="white-space: nowrap">`<= 150 characters`</span> '
23
21
  )
24
22
  model_type: ModelTypeEnum = pydantic.Field(
25
23
  description=(
@@ -41,15 +39,13 @@ class ModelVersionRead(pydantic.BaseModel):
41
39
  )
42
40
  )
43
41
  external_id: str = pydantic.Field(
44
- description=(
45
- 'The unique id of this model version as it exists in the above provider\'s system. <span style="white-space: nowrap">`<= 250 characters`</span> \n'
46
- )
42
+ description='The unique id of this model version as it exists in the above provider\'s system. <span style="white-space: nowrap">`<= 250 characters`</span> '
47
43
  )
48
44
  build_config: ModelVersionBuildConfig = pydantic.Field(
49
- description=("Configuration used to build this model version.\n")
45
+ description="Configuration used to build this model version."
50
46
  )
51
47
  exec_config: ModelVersionExecConfig = pydantic.Field(
52
- description=("Configuration used to execute this model version.\n")
48
+ description="Configuration used to execute this model version."
53
49
  )
54
50
  status: typing.Optional[ModelVersionReadStatusEnum]
55
51
 
@@ -9,11 +9,9 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class ModelVersionSandboxSnapshot(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the sandbox snapshot.\n"))
13
- prompt_index: typing.Optional[int] = pydantic.Field(
14
- description=("The index of the prompt in the sandbox snapshot.\n")
15
- )
16
- prompt_id: typing.Optional[str] = pydantic.Field(description=("The id of the prompt in the sandbox snapshot.\n"))
12
+ id: str = pydantic.Field(description="The ID of the sandbox snapshot.")
13
+ prompt_index: typing.Optional[int] = pydantic.Field(description="The index of the prompt in the sandbox snapshot.")
14
+ prompt_id: typing.Optional[str] = pydantic.Field(description="The id of the prompt in the sandbox snapshot.")
17
15
  sandbox_id: typing.Optional[str]
18
16
 
19
17
  def json(self, **kwargs: typing.Any) -> str:
@@ -18,10 +18,10 @@ class PromptTemplateBlockPropertiesRequest(pydantic.BaseModel):
18
18
  template: typing.Optional[str]
19
19
  template_type: typing.Optional[ContentType]
20
20
  function_name: typing.Optional[str] = pydantic.Field(
21
- description=('<span style="white-space: nowrap">`non-empty`</span>\n')
21
+ description='<span style="white-space: nowrap">`non-empty`</span>'
22
22
  )
23
23
  function_description: typing.Optional[str] = pydantic.Field(
24
- description=('<span style="white-space: nowrap">`non-empty`</span>\n')
24
+ description='<span style="white-space: nowrap">`non-empty`</span>'
25
25
  )
26
26
  function_parameters: typing.Optional[typing.Dict[str, typing.Any]]
27
27
  blocks: typing.Optional[typing.List[PromptTemplateBlockRequest]]
@@ -12,7 +12,7 @@ from .block_type_enum import BlockTypeEnum
12
12
 
13
13
 
14
14
  class PromptTemplateBlockRequest(pydantic.BaseModel):
15
- id: str = pydantic.Field(description=('<span style="white-space: nowrap">`non-empty`</span>\n'))
15
+ id: str = pydantic.Field(description='<span style="white-space: nowrap">`non-empty`</span>')
16
16
  block_type: BlockTypeEnum
17
17
  properties: PromptTemplateBlockPropertiesRequest
18
18
 
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class PromptTemplateInputVariable(pydantic.BaseModel):
12
- key: str = pydantic.Field(description=("The name of the input variable.\n"))
12
+ key: str = pydantic.Field(description="The name of the input variable.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -10,7 +10,7 @@ from ..core.datetime_utils import serialize_datetime
10
10
 
11
11
  class PromptTemplateInputVariableRequest(pydantic.BaseModel):
12
12
  key: str = pydantic.Field(
13
- description=('The name of the input variable. <span style="white-space: nowrap">`non-empty`</span> \n')
13
+ description='The name of the input variable. <span style="white-space: nowrap">`non-empty`</span> '
14
14
  )
15
15
 
16
16
  def json(self, **kwargs: typing.Any) -> str:
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisterPromptErrorResponse(pydantic.BaseModel):
12
- detail: str = pydantic.Field(description=("Details about why the request failed.\n"))
12
+ detail: str = pydantic.Field(description="Details about why the request failed.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,8 +9,8 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisterPromptPrompt(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the generated prompt.\n"))
13
- label: str = pydantic.Field(description=("A human-friendly label for the generated prompt.\n"))
12
+ id: str = pydantic.Field(description="The ID of the generated prompt.")
13
+ label: str = pydantic.Field(description="A human-friendly label for the generated prompt.")
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
16
16
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -14,7 +14,7 @@ class RegisterPromptPromptInfoRequest(pydantic.BaseModel):
14
14
  prompt_syntax_version: typing.Optional[int]
15
15
  prompt_block_data: PromptTemplateBlockDataRequest
16
16
  input_variables: typing.List[PromptTemplateInputVariableRequest] = pydantic.Field(
17
- description=("Names of the input variables specified in the prompt template.\n")
17
+ description="Names of the input variables specified in the prompt template."
18
18
  )
19
19
 
20
20
  def json(self, **kwargs: typing.Any) -> str:
@@ -14,17 +14,15 @@ from .registered_prompt_sandbox_snapshot import RegisteredPromptSandboxSnapshot
14
14
 
15
15
 
16
16
  class RegisterPromptResponse(pydantic.BaseModel):
17
- prompt: RegisterPromptPrompt = pydantic.Field(description=("Information about the generated prompt\n"))
17
+ prompt: RegisterPromptPrompt = pydantic.Field(description="Information about the generated prompt")
18
18
  sandbox_snapshot: RegisteredPromptSandboxSnapshot = pydantic.Field(
19
- description=("Information about the generated sandbox snapshot\n")
19
+ description="Information about the generated sandbox snapshot"
20
20
  )
21
- sandbox: RegisteredPromptSandbox = pydantic.Field(description=("Information about the generated sandbox\n"))
21
+ sandbox: RegisteredPromptSandbox = pydantic.Field(description="Information about the generated sandbox")
22
22
  model_version: RegisteredPromptModelVersion = pydantic.Field(
23
- description=("Information about the generated model version\n")
24
- )
25
- deployment: RegisteredPromptDeployment = pydantic.Field(
26
- description=("Information about the generated deployment\n")
23
+ description="Information about the generated model version"
27
24
  )
25
+ deployment: RegisteredPromptDeployment = pydantic.Field(description="Information about the generated deployment")
28
26
 
29
27
  def json(self, **kwargs: typing.Any) -> str:
30
28
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,9 +9,9 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisteredPromptDeployment(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the generated deployment.\n"))
13
- name: str = pydantic.Field(description=("A uniquely-identifying name for generated deployment.\n"))
14
- label: str = pydantic.Field(description=("A human-friendly label for the generated deployment.\n"))
12
+ id: str = pydantic.Field(description="The ID of the generated deployment.")
13
+ name: str = pydantic.Field(description="A uniquely-identifying name for generated deployment.")
14
+ label: str = pydantic.Field(description="A human-friendly label for the generated deployment.")
15
15
 
16
16
  def json(self, **kwargs: typing.Any) -> str:
17
17
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,8 +9,8 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisteredPromptModelVersion(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the generated model version.\n"))
13
- label: str = pydantic.Field(description=("A human-friendly label for the generated model version.\n"))
12
+ id: str = pydantic.Field(description="The ID of the generated model version.")
13
+ label: str = pydantic.Field(description="A human-friendly label for the generated model version.")
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
16
16
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,8 +9,8 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisteredPromptSandbox(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the generated sandbox.\n"))
13
- label: str = pydantic.Field(description=("A human-friendly label for the generated sandbox.\n"))
12
+ id: str = pydantic.Field(description="The ID of the generated sandbox.")
13
+ label: str = pydantic.Field(description="A human-friendly label for the generated sandbox.")
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
16
16
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class RegisteredPromptSandboxSnapshot(pydantic.BaseModel):
12
- id: str = pydantic.Field(description=("The ID of the generated sandbox snapshot.\n"))
12
+ id: str = pydantic.Field(description="The ID of the generated sandbox snapshot.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -12,8 +12,8 @@ from .scenario_input import ScenarioInput
12
12
 
13
13
  class SandboxScenario(pydantic.BaseModel):
14
14
  label: typing.Optional[str]
15
- inputs: typing.List[ScenarioInput] = pydantic.Field(description=("The inputs for the scenario\n"))
16
- id: str = pydantic.Field(description=("The id of the scenario\n"))
15
+ inputs: typing.List[ScenarioInput] = pydantic.Field(description="The inputs for the scenario")
16
+ id: str = pydantic.Field(description="The id of the scenario")
17
17
  metric_input_params: SandboxMetricInputParams
18
18
 
19
19
  def json(self, **kwargs: typing.Any) -> str:
@@ -11,7 +11,7 @@ from .scenario_input_type_enum import ScenarioInputTypeEnum
11
11
 
12
12
 
13
13
  class ScenarioInputRequest(pydantic.BaseModel):
14
- key: str = pydantic.Field(description=('<span style="white-space: nowrap">`non-empty`</span>\n'))
14
+ key: str = pydantic.Field(description='<span style="white-space: nowrap">`non-empty`</span>')
15
15
  type: typing.Optional[ScenarioInputTypeEnum]
16
16
  value: typing.Optional[str]
17
17
  chat_history: typing.Optional[typing.List[ChatMessageRequest]]
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class SearchErrorResponse(pydantic.BaseModel):
12
- detail: str = pydantic.Field(description=("Details about why the request failed.\n"))
12
+ detail: str = pydantic.Field(description="Details about why the request failed.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -10,7 +10,7 @@ from ..core.datetime_utils import serialize_datetime
10
10
 
11
11
  class SearchFiltersRequest(pydantic.BaseModel):
12
12
  external_ids: typing.Optional[typing.List[str]] = pydantic.Field(
13
- description=("The document external IDs to filter by\n")
13
+ description="The document external IDs to filter by"
14
14
  )
15
15
 
16
16
  def json(self, **kwargs: typing.Any) -> str:
@@ -12,16 +12,14 @@ from .search_weights_request import SearchWeightsRequest
12
12
 
13
13
 
14
14
  class SearchRequestOptionsRequest(pydantic.BaseModel):
15
- limit: typing.Optional[int] = pydantic.Field(description=("The maximum number of results to return.\n"))
15
+ limit: typing.Optional[int] = pydantic.Field(description="The maximum number of results to return.")
16
16
  weights: typing.Optional[SearchWeightsRequest] = pydantic.Field(
17
- description=("The weights to use for the search. Must add up to 1.0.\n")
17
+ description="The weights to use for the search. Must add up to 1.0."
18
18
  )
19
19
  result_merging: typing.Optional[SearchResultMergingRequest] = pydantic.Field(
20
- description=("The configuration for merging results.\n")
21
- )
22
- filters: typing.Optional[SearchFiltersRequest] = pydantic.Field(
23
- description=("The filters to apply to the search.\n")
20
+ description="The configuration for merging results."
24
21
  )
22
+ filters: typing.Optional[SearchFiltersRequest] = pydantic.Field(description="The filters to apply to the search.")
25
23
 
26
24
  def json(self, **kwargs: typing.Any) -> str:
27
25
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -11,7 +11,7 @@ from .search_result import SearchResult
11
11
 
12
12
  class SearchResponse(pydantic.BaseModel):
13
13
  results: typing.List[SearchResult] = pydantic.Field(
14
- description=("The results of the search. Each result represents a chunk that matches the search query.\n")
14
+ description="The results of the search. Each result represents a chunk that matches the search query."
15
15
  )
16
16
 
17
17
  def json(self, **kwargs: typing.Any) -> str:
@@ -11,11 +11,11 @@ from .document import Document
11
11
 
12
12
  class SearchResult(pydantic.BaseModel):
13
13
  document: Document = pydantic.Field(
14
- description=("The document that contains the chunk that matched the search query.\n")
14
+ description="The document that contains the chunk that matched the search query."
15
15
  )
16
- text: str = pydantic.Field(description=("The text of the chunk that matched the search query.\n"))
16
+ text: str = pydantic.Field(description="The text of the chunk that matched the search query.")
17
17
  keywords: typing.List[str]
18
- score: float = pydantic.Field(description=("A score representing how well the chunk matches the search query.\n"))
18
+ score: float = pydantic.Field(description="A score representing how well the chunk matches the search query.")
19
19
 
20
20
  def json(self, **kwargs: typing.Any) -> str:
21
21
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class SearchResultMergingRequest(pydantic.BaseModel):
12
- enabled: bool = pydantic.Field(description=("Whether to enable merging results\n"))
12
+ enabled: bool = pydantic.Field(description="Whether to enable merging results")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -9,8 +9,8 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class SearchWeightsRequest(pydantic.BaseModel):
12
- semantic_similarity: float = pydantic.Field(description=("The relative weight to give to semantic similarity\n"))
13
- keywords: float = pydantic.Field(description=("The relative weight to give to keyword matches\n"))
12
+ semantic_similarity: float = pydantic.Field(description="The relative weight to give to semantic similarity")
13
+ keywords: float = pydantic.Field(description="The relative weight to give to keyword matches")
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
16
16
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -13,17 +13,15 @@ from .slim_document_status_enum import SlimDocumentStatusEnum
13
13
 
14
14
 
15
15
  class SlimDocument(pydantic.BaseModel):
16
- id: str = pydantic.Field(description=("Vellum-generated ID that uniquely identifies this document.\n"))
16
+ id: str = pydantic.Field(description="Vellum-generated ID that uniquely identifies this document.")
17
17
  external_id: typing.Optional[str] = pydantic.Field(
18
- description=("The external ID that was originally provided when uploading the document.\n")
18
+ description="The external ID that was originally provided when uploading the document."
19
19
  )
20
20
  last_uploaded_at: str = pydantic.Field(
21
- description=("A timestamp representing when this document was most recently uploaded.\n")
21
+ description="A timestamp representing when this document was most recently uploaded."
22
22
  )
23
23
  label: str = pydantic.Field(
24
- description=(
25
- 'Human-friendly name for this document. <span style="white-space: nowrap">`<= 1000 characters`</span> \n'
26
- )
24
+ description='Human-friendly name for this document. <span style="white-space: nowrap">`<= 1000 characters`</span> '
27
25
  )
28
26
  processing_state: typing.Optional[ProcessingStateEnum] = pydantic.Field(
29
27
  description=(
@@ -46,9 +44,7 @@ class SlimDocument(pydantic.BaseModel):
46
44
  description=("The document's current status.\n" "\n" "* `ACTIVE` - Active\n")
47
45
  )
48
46
  keywords: typing.Optional[typing.List[str]] = pydantic.Field(
49
- description=(
50
- "A list of keywords associated with this document. Originally provided when uploading the document.\n"
51
- )
47
+ description="A list of keywords associated with this document. Originally provided when uploading the document."
52
48
  )
53
49
  document_to_document_indexes: typing.List[DocumentDocumentToDocumentIndex]
54
50
 
@@ -10,27 +10,17 @@ from ..core.datetime_utils import serialize_datetime
10
10
 
11
11
  class SubmitCompletionActualRequest(pydantic.BaseModel):
12
12
  id: typing.Optional[str] = pydantic.Field(
13
- description=(
14
- "The Vellum-generated ID of a previously generated completion. Must provide either this or external_id.\n"
15
- )
13
+ description="The Vellum-generated ID of a previously generated completion. Must provide either this or external_id."
16
14
  )
17
15
  external_id: typing.Optional[str] = pydantic.Field(
18
- description=(
19
- "The external ID that was originally provided when generating the completion that you'd now like to submit actuals for. Must provide either this or id.\n"
20
- )
21
- )
22
- text: typing.Optional[str] = pydantic.Field(
23
- description=("Text representing what the completion _should_ have been.\n")
16
+ description="The external ID that was originally provided when generating the completion that you'd now like to submit actuals for. Must provide either this or id."
24
17
  )
18
+ text: typing.Optional[str] = pydantic.Field(description="Text representing what the completion _should_ have been.")
25
19
  quality: typing.Optional[float] = pydantic.Field(
26
- description=(
27
- "A number between 0 and 1 representing the quality of the completion. 0 is the worst, 1 is the best.\n"
28
- )
20
+ description="A number between 0 and 1 representing the quality of the completion. 0 is the worst, 1 is the best."
29
21
  )
30
22
  timestamp: typing.Optional[str] = pydantic.Field(
31
- description=(
32
- "Optionally provide the timestamp representing when this feedback was collected. Used for reporting purposes.\n"
33
- )
23
+ description="Optionally provide the timestamp representing when this feedback was collected. Used for reporting purposes."
34
24
  )
35
25
 
36
26
  def json(self, **kwargs: typing.Any) -> str:
@@ -10,7 +10,7 @@ from .chat_message import ChatMessage
10
10
 
11
11
 
12
12
  class TerminalNodeChatHistoryResult(pydantic.BaseModel):
13
- name: str = pydantic.Field(description=("The unique name given to the terminal node that produced this output.\n"))
13
+ name: str = pydantic.Field(description="The unique name given to the terminal node that produced this output.")
14
14
  value: typing.List[ChatMessage]
15
15
 
16
16
  def json(self, **kwargs: typing.Any) -> str:
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class TerminalNodeJsonResult(pydantic.BaseModel):
12
- name: str = pydantic.Field(description=("The unique name given to the terminal node that produced this output.\n"))
12
+ name: str = pydantic.Field(description="The unique name given to the terminal node that produced this output.")
13
13
  value: typing.Dict[str, typing.Any]
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
@@ -4,7 +4,6 @@ from __future__ import annotations
4
4
 
5
5
  import typing
6
6
 
7
- import pydantic
8
7
  import typing_extensions
9
8
 
10
9
  from .terminal_node_chat_history_result import TerminalNodeChatHistoryResult
@@ -36,7 +35,6 @@ class TerminalNodeResultOutput_ChatHistory(TerminalNodeChatHistoryResult):
36
35
  allow_population_by_field_name = True
37
36
 
38
37
 
39
- TerminalNodeResultOutput = typing_extensions.Annotated[
40
- typing.Union[TerminalNodeResultOutput_String, TerminalNodeResultOutput_Json, TerminalNodeResultOutput_ChatHistory],
41
- pydantic.Field(discriminator="type"),
38
+ TerminalNodeResultOutput = typing.Union[
39
+ TerminalNodeResultOutput_String, TerminalNodeResultOutput_Json, TerminalNodeResultOutput_ChatHistory
42
40
  ]
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class TerminalNodeStringResult(pydantic.BaseModel):
12
- name: str = pydantic.Field(description=("The unique name given to the terminal node that produced this output.\n"))
12
+ name: str = pydantic.Field(description="The unique name given to the terminal node that produced this output.")
13
13
  value: str
14
14
 
15
15
  def json(self, **kwargs: typing.Any) -> str:
@@ -11,18 +11,14 @@ from .evaluation_params import EvaluationParams
11
11
 
12
12
  class TestSuiteTestCase(pydantic.BaseModel):
13
13
  test_case_id: typing.Optional[str] = pydantic.Field(
14
- description=(
15
- "The id of the test case to update. If none is provided, an id will be generated and a new test case will be appended.\n"
16
- )
14
+ description="The id of the test case to update. If none is provided, an id will be generated and a new test case will be appended."
17
15
  )
18
- label: typing.Optional[str] = pydantic.Field(description=("A human-friendly label for the test case.\n"))
16
+ label: typing.Optional[str] = pydantic.Field(description="A human-friendly label for the test case.")
19
17
  input_values: typing.Dict[str, typing.Any] = pydantic.Field(
20
- description=("Key/value pairs for each input variable that the Test Suite expects.\n")
18
+ description="Key/value pairs for each input variable that the Test Suite expects."
21
19
  )
22
20
  evaluation_params: EvaluationParams = pydantic.Field(
23
- description=(
24
- "Parameters to use when evaluating the test case, specific to the test suite's evaluation metric.\n"
25
- )
21
+ description="Parameters to use when evaluating the test case, specific to the test suite's evaluation metric."
26
22
  )
27
23
 
28
24
  def json(self, **kwargs: typing.Any) -> str:
@@ -9,7 +9,7 @@ from ..core.datetime_utils import serialize_datetime
9
9
 
10
10
 
11
11
  class UploadDocumentResponse(pydantic.BaseModel):
12
- document_id: str = pydantic.Field(description=("The ID of the newly created document.\n"))
12
+ document_id: str = pydantic.Field(description="The ID of the newly created document.")
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}