vellum-ai 0.12.14__py3-none-any.whl → 0.12.15__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. vellum/__init__.py +6 -0
  2. vellum/client/__init__.py +2 -6
  3. vellum/client/core/client_wrapper.py +1 -1
  4. vellum/client/environment.py +3 -3
  5. vellum/client/resources/ad_hoc/client.py +2 -6
  6. vellum/client/resources/container_images/client.py +0 -8
  7. vellum/client/resources/metric_definitions/client.py +2 -6
  8. vellum/client/resources/workflows/client.py +8 -8
  9. vellum/client/types/__init__.py +6 -0
  10. vellum/client/types/audio_prompt_block.py +29 -0
  11. vellum/client/types/function_call_prompt_block.py +30 -0
  12. vellum/client/types/image_prompt_block.py +29 -0
  13. vellum/client/types/prompt_block.py +12 -1
  14. vellum/client/types/workflow_push_response.py +1 -0
  15. vellum/types/audio_prompt_block.py +3 -0
  16. vellum/types/function_call_prompt_block.py +3 -0
  17. vellum/types/image_prompt_block.py +3 -0
  18. {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/METADATA +2 -2
  19. {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/RECORD +36 -28
  20. vellum_cli/config.py +4 -0
  21. vellum_cli/pull.py +20 -5
  22. vellum_cli/push.py +7 -0
  23. vellum_cli/tests/test_pull.py +19 -1
  24. vellum_ee/workflows/display/nodes/vellum/__init__.py +2 -0
  25. vellum_ee/workflows/display/nodes/vellum/base_node.py +18 -0
  26. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +10 -41
  27. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +4 -14
  28. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +174 -0
  29. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +2 -10
  30. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +2 -10
  31. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +5 -19
  32. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +2 -8
  33. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +14 -25
  34. {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/LICENSE +0 -0
  35. {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/WHEEL +0 -0
  36. {vellum_ai-0.12.14.dist-info → vellum_ai-0.12.15.dist-info}/entry_points.txt +0 -0
vellum/__init__.py CHANGED
@@ -24,6 +24,7 @@ from .types import (
24
24
  ArrayVellumValueRequest,
25
25
  AudioChatMessageContent,
26
26
  AudioChatMessageContentRequest,
27
+ AudioPromptBlock,
27
28
  AudioVariableValue,
28
29
  AudioVellumValue,
29
30
  AudioVellumValueRequest,
@@ -134,6 +135,7 @@ from .types import (
134
135
  FunctionCallChatMessageContentValue,
135
136
  FunctionCallChatMessageContentValueRequest,
136
137
  FunctionCallInput,
138
+ FunctionCallPromptBlock,
137
139
  FunctionCallRequest,
138
140
  FunctionCallVariableValue,
139
141
  FunctionCallVellumValue,
@@ -158,6 +160,7 @@ from .types import (
158
160
  HkunlpInstructorXlVectorizerRequest,
159
161
  ImageChatMessageContent,
160
162
  ImageChatMessageContentRequest,
163
+ ImagePromptBlock,
161
164
  ImageVariableValue,
162
165
  ImageVellumValue,
163
166
  ImageVellumValueRequest,
@@ -548,6 +551,7 @@ __all__ = [
548
551
  "AsyncVellum",
549
552
  "AudioChatMessageContent",
550
553
  "AudioChatMessageContentRequest",
554
+ "AudioPromptBlock",
551
555
  "AudioVariableValue",
552
556
  "AudioVellumValue",
553
557
  "AudioVellumValueRequest",
@@ -663,6 +667,7 @@ __all__ = [
663
667
  "FunctionCallChatMessageContentValue",
664
668
  "FunctionCallChatMessageContentValueRequest",
665
669
  "FunctionCallInput",
670
+ "FunctionCallPromptBlock",
666
671
  "FunctionCallRequest",
667
672
  "FunctionCallVariableValue",
668
673
  "FunctionCallVellumValue",
@@ -687,6 +692,7 @@ __all__ = [
687
692
  "HkunlpInstructorXlVectorizerRequest",
688
693
  "ImageChatMessageContent",
689
694
  "ImageChatMessageContentRequest",
695
+ "ImagePromptBlock",
690
696
  "ImageVariableValue",
691
697
  "ImageVellumValue",
692
698
  "ImageVellumValueRequest",
vellum/client/__init__.py CHANGED
@@ -154,8 +154,6 @@ class Vellum:
154
154
  request_options: typing.Optional[RequestOptions] = None,
155
155
  ) -> CodeExecutorResponse:
156
156
  """
157
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
158
-
159
157
  Parameters
160
158
  ----------
161
159
  code : str
@@ -203,7 +201,7 @@ class Vellum:
203
201
  """
204
202
  _response = self._client_wrapper.httpx_client.request(
205
203
  "v1/execute-code",
206
- base_url=self._client_wrapper.get_environment().default,
204
+ base_url=self._client_wrapper.get_environment().predict,
207
205
  method="POST",
208
206
  json={
209
207
  "code": code,
@@ -1419,8 +1417,6 @@ class AsyncVellum:
1419
1417
  request_options: typing.Optional[RequestOptions] = None,
1420
1418
  ) -> CodeExecutorResponse:
1421
1419
  """
1422
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
1423
-
1424
1420
  Parameters
1425
1421
  ----------
1426
1422
  code : str
@@ -1476,7 +1472,7 @@ class AsyncVellum:
1476
1472
  """
1477
1473
  _response = await self._client_wrapper.httpx_client.request(
1478
1474
  "v1/execute-code",
1479
- base_url=self._client_wrapper.get_environment().default,
1475
+ base_url=self._client_wrapper.get_environment().predict,
1480
1476
  method="POST",
1481
1477
  json={
1482
1478
  "code": code,
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.12.14",
21
+ "X-Fern-SDK-Version": "0.12.15",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -6,12 +6,12 @@ from __future__ import annotations
6
6
  class VellumEnvironment:
7
7
  PRODUCTION: VellumEnvironment
8
8
 
9
- def __init__(self, *, default: str, documents: str, predict: str):
9
+ def __init__(self, *, default: str, predict: str, documents: str):
10
10
  self.default = default
11
- self.documents = documents
12
11
  self.predict = predict
12
+ self.documents = documents
13
13
 
14
14
 
15
15
  VellumEnvironment.PRODUCTION = VellumEnvironment(
16
- default="https://api.vellum.ai", documents="https://documents.vellum.ai", predict="https://predict.vellum.ai"
16
+ default="https://api.vellum.ai", predict="https://predict.vellum.ai", documents="https://documents.vellum.ai"
17
17
  )
@@ -43,8 +43,6 @@ class AdHocClient:
43
43
  request_options: typing.Optional[RequestOptions] = None,
44
44
  ) -> typing.Iterator[AdHocExecutePromptEvent]:
45
45
  """
46
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
47
-
48
46
  Parameters
49
47
  ----------
50
48
  ml_model : str
@@ -111,7 +109,7 @@ class AdHocClient:
111
109
  """
112
110
  with self._client_wrapper.httpx_client.stream(
113
111
  "v1/ad-hoc/execute-prompt-stream",
114
- base_url=self._client_wrapper.get_environment().default,
112
+ base_url=self._client_wrapper.get_environment().predict,
115
113
  method="POST",
116
114
  json={
117
115
  "ml_model": ml_model,
@@ -211,8 +209,6 @@ class AsyncAdHocClient:
211
209
  request_options: typing.Optional[RequestOptions] = None,
212
210
  ) -> typing.AsyncIterator[AdHocExecutePromptEvent]:
213
211
  """
214
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
215
-
216
212
  Parameters
217
213
  ----------
218
214
  ml_model : str
@@ -287,7 +283,7 @@ class AsyncAdHocClient:
287
283
  """
288
284
  async with self._client_wrapper.httpx_client.stream(
289
285
  "v1/ad-hoc/execute-prompt-stream",
290
- base_url=self._client_wrapper.get_environment().default,
286
+ base_url=self._client_wrapper.get_environment().predict,
291
287
  method="POST",
292
288
  json={
293
289
  "ml_model": ml_model,
@@ -134,8 +134,6 @@ class ContainerImagesClient:
134
134
 
135
135
  def docker_service_token(self, *, request_options: typing.Optional[RequestOptions] = None) -> DockerServiceToken:
136
136
  """
137
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
138
-
139
137
  Parameters
140
138
  ----------
141
139
  request_options : typing.Optional[RequestOptions]
@@ -184,8 +182,6 @@ class ContainerImagesClient:
184
182
  request_options: typing.Optional[RequestOptions] = None,
185
183
  ) -> ContainerImageRead:
186
184
  """
187
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
188
-
189
185
  Parameters
190
186
  ----------
191
187
  name : str
@@ -378,8 +374,6 @@ class AsyncContainerImagesClient:
378
374
  self, *, request_options: typing.Optional[RequestOptions] = None
379
375
  ) -> DockerServiceToken:
380
376
  """
381
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
382
-
383
377
  Parameters
384
378
  ----------
385
379
  request_options : typing.Optional[RequestOptions]
@@ -436,8 +430,6 @@ class AsyncContainerImagesClient:
436
430
  request_options: typing.Optional[RequestOptions] = None,
437
431
  ) -> ContainerImageRead:
438
432
  """
439
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
440
-
441
433
  Parameters
442
434
  ----------
443
435
  name : str
@@ -30,8 +30,6 @@ class MetricDefinitionsClient:
30
30
  request_options: typing.Optional[RequestOptions] = None,
31
31
  ) -> MetricDefinitionExecution:
32
32
  """
33
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
34
-
35
33
  Parameters
36
34
  ----------
37
35
  id : str
@@ -68,7 +66,7 @@ class MetricDefinitionsClient:
68
66
  """
69
67
  _response = self._client_wrapper.httpx_client.request(
70
68
  f"v1/metric-definitions/{jsonable_encoder(id)}/execute",
71
- base_url=self._client_wrapper.get_environment().default,
69
+ base_url=self._client_wrapper.get_environment().predict,
72
70
  method="POST",
73
71
  json={
74
72
  "inputs": convert_and_respect_annotation_metadata(
@@ -159,8 +157,6 @@ class AsyncMetricDefinitionsClient:
159
157
  request_options: typing.Optional[RequestOptions] = None,
160
158
  ) -> MetricDefinitionExecution:
161
159
  """
162
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
163
-
164
160
  Parameters
165
161
  ----------
166
162
  id : str
@@ -205,7 +201,7 @@ class AsyncMetricDefinitionsClient:
205
201
  """
206
202
  _response = await self._client_wrapper.httpx_client.request(
207
203
  f"v1/metric-definitions/{jsonable_encoder(id)}/execute",
208
- base_url=self._client_wrapper.get_environment().default,
204
+ base_url=self._client_wrapper.get_environment().predict,
209
205
  method="POST",
210
206
  json={
211
207
  "inputs": convert_and_respect_annotation_metadata(
@@ -35,8 +35,6 @@ class WorkflowsClient:
35
35
  request_options: typing.Optional[RequestOptions] = None,
36
36
  ) -> typing.Iterator[bytes]:
37
37
  """
38
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
39
-
40
38
  Parameters
41
39
  ----------
42
40
  id : str
@@ -102,11 +100,10 @@ class WorkflowsClient:
102
100
  workflow_sandbox_id: typing.Optional[str] = OMIT,
103
101
  deployment_config: typing.Optional[WorkflowPushDeploymentConfigRequest] = OMIT,
104
102
  artifact: typing.Optional[core.File] = OMIT,
103
+ dry_run: typing.Optional[bool] = OMIT,
105
104
  request_options: typing.Optional[RequestOptions] = None,
106
105
  ) -> WorkflowPushResponse:
107
106
  """
108
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
109
-
110
107
  Parameters
111
108
  ----------
112
109
  exec_config : WorkflowPushExecConfig
@@ -121,6 +118,8 @@ class WorkflowsClient:
121
118
  artifact : typing.Optional[core.File]
122
119
  See core.File for more documentation
123
120
 
121
+ dry_run : typing.Optional[bool]
122
+
124
123
  request_options : typing.Optional[RequestOptions]
125
124
  Request-specific configuration.
126
125
 
@@ -150,6 +149,7 @@ class WorkflowsClient:
150
149
  "label": label,
151
150
  "workflow_sandbox_id": workflow_sandbox_id,
152
151
  "deployment_config": deployment_config,
152
+ "dry_run": dry_run,
153
153
  },
154
154
  files={
155
155
  "artifact": artifact,
@@ -188,8 +188,6 @@ class AsyncWorkflowsClient:
188
188
  request_options: typing.Optional[RequestOptions] = None,
189
189
  ) -> typing.AsyncIterator[bytes]:
190
190
  """
191
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
192
-
193
191
  Parameters
194
192
  ----------
195
193
  id : str
@@ -255,11 +253,10 @@ class AsyncWorkflowsClient:
255
253
  workflow_sandbox_id: typing.Optional[str] = OMIT,
256
254
  deployment_config: typing.Optional[WorkflowPushDeploymentConfigRequest] = OMIT,
257
255
  artifact: typing.Optional[core.File] = OMIT,
256
+ dry_run: typing.Optional[bool] = OMIT,
258
257
  request_options: typing.Optional[RequestOptions] = None,
259
258
  ) -> WorkflowPushResponse:
260
259
  """
261
- An internal-only endpoint that's subject to breaking changes without notice. Not intended for public use.
262
-
263
260
  Parameters
264
261
  ----------
265
262
  exec_config : WorkflowPushExecConfig
@@ -274,6 +271,8 @@ class AsyncWorkflowsClient:
274
271
  artifact : typing.Optional[core.File]
275
272
  See core.File for more documentation
276
273
 
274
+ dry_run : typing.Optional[bool]
275
+
277
276
  request_options : typing.Optional[RequestOptions]
278
277
  Request-specific configuration.
279
278
 
@@ -311,6 +310,7 @@ class AsyncWorkflowsClient:
311
310
  "label": label,
312
311
  "workflow_sandbox_id": workflow_sandbox_id,
313
312
  "deployment_config": deployment_config,
313
+ "dry_run": dry_run,
314
314
  },
315
315
  files={
316
316
  "artifact": artifact,
@@ -20,6 +20,7 @@ from .array_vellum_value import ArrayVellumValue
20
20
  from .array_vellum_value_request import ArrayVellumValueRequest
21
21
  from .audio_chat_message_content import AudioChatMessageContent
22
22
  from .audio_chat_message_content_request import AudioChatMessageContentRequest
23
+ from .audio_prompt_block import AudioPromptBlock
23
24
  from .audio_variable_value import AudioVariableValue
24
25
  from .audio_vellum_value import AudioVellumValue
25
26
  from .audio_vellum_value_request import AudioVellumValueRequest
@@ -138,6 +139,7 @@ from .function_call_chat_message_content_request import FunctionCallChatMessageC
138
139
  from .function_call_chat_message_content_value import FunctionCallChatMessageContentValue
139
140
  from .function_call_chat_message_content_value_request import FunctionCallChatMessageContentValueRequest
140
141
  from .function_call_input import FunctionCallInput
142
+ from .function_call_prompt_block import FunctionCallPromptBlock
141
143
  from .function_call_request import FunctionCallRequest
142
144
  from .function_call_variable_value import FunctionCallVariableValue
143
145
  from .function_call_vellum_value import FunctionCallVellumValue
@@ -166,6 +168,7 @@ from .hkunlp_instructor_xl_vectorizer import HkunlpInstructorXlVectorizer
166
168
  from .hkunlp_instructor_xl_vectorizer_request import HkunlpInstructorXlVectorizerRequest
167
169
  from .image_chat_message_content import ImageChatMessageContent
168
170
  from .image_chat_message_content_request import ImageChatMessageContentRequest
171
+ from .image_prompt_block import ImagePromptBlock
169
172
  from .image_variable_value import ImageVariableValue
170
173
  from .image_vellum_value import ImageVellumValue
171
174
  from .image_vellum_value_request import ImageVellumValueRequest
@@ -542,6 +545,7 @@ __all__ = [
542
545
  "ArrayVellumValueRequest",
543
546
  "AudioChatMessageContent",
544
547
  "AudioChatMessageContentRequest",
548
+ "AudioPromptBlock",
545
549
  "AudioVariableValue",
546
550
  "AudioVellumValue",
547
551
  "AudioVellumValueRequest",
@@ -652,6 +656,7 @@ __all__ = [
652
656
  "FunctionCallChatMessageContentValue",
653
657
  "FunctionCallChatMessageContentValueRequest",
654
658
  "FunctionCallInput",
659
+ "FunctionCallPromptBlock",
655
660
  "FunctionCallRequest",
656
661
  "FunctionCallVariableValue",
657
662
  "FunctionCallVellumValue",
@@ -676,6 +681,7 @@ __all__ = [
676
681
  "HkunlpInstructorXlVectorizerRequest",
677
682
  "ImageChatMessageContent",
678
683
  "ImageChatMessageContentRequest",
684
+ "ImagePromptBlock",
679
685
  "ImageVariableValue",
680
686
  "ImageVellumValue",
681
687
  "ImageVellumValueRequest",
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .prompt_block_state import PromptBlockState
6
+ from .ephemeral_prompt_cache_config import EphemeralPromptCacheConfig
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class AudioPromptBlock(UniversalBaseModel):
12
+ """
13
+ A block that represents an audio file in a prompt template.
14
+ """
15
+
16
+ block_type: typing.Literal["AUDIO"] = "AUDIO"
17
+ state: typing.Optional[PromptBlockState] = None
18
+ cache_config: typing.Optional[EphemeralPromptCacheConfig] = None
19
+ src: str
20
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
21
+
22
+ if IS_PYDANTIC_V2:
23
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
24
+ else:
25
+
26
+ class Config:
27
+ frozen = True
28
+ smart_union = True
29
+ extra = pydantic.Extra.allow
@@ -0,0 +1,30 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .prompt_block_state import PromptBlockState
6
+ from .ephemeral_prompt_cache_config import EphemeralPromptCacheConfig
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class FunctionCallPromptBlock(UniversalBaseModel):
12
+ """
13
+ A block that represents a function call in a prompt template.
14
+ """
15
+
16
+ block_type: typing.Literal["FUNCTION_CALL"] = "FUNCTION_CALL"
17
+ state: typing.Optional[PromptBlockState] = None
18
+ cache_config: typing.Optional[EphemeralPromptCacheConfig] = None
19
+ id: typing.Optional[str] = None
20
+ name: str
21
+ arguments: typing.Dict[str, typing.Optional[typing.Any]]
22
+
23
+ if IS_PYDANTIC_V2:
24
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
25
+ else:
26
+
27
+ class Config:
28
+ frozen = True
29
+ smart_union = True
30
+ extra = pydantic.Extra.allow
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .prompt_block_state import PromptBlockState
6
+ from .ephemeral_prompt_cache_config import EphemeralPromptCacheConfig
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class ImagePromptBlock(UniversalBaseModel):
12
+ """
13
+ A block that represents an image in a prompt template.
14
+ """
15
+
16
+ block_type: typing.Literal["IMAGE"] = "IMAGE"
17
+ state: typing.Optional[PromptBlockState] = None
18
+ cache_config: typing.Optional[EphemeralPromptCacheConfig] = None
19
+ src: str
20
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
21
+
22
+ if IS_PYDANTIC_V2:
23
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
24
+ else:
25
+
26
+ class Config:
27
+ frozen = True
28
+ smart_union = True
29
+ extra = pydantic.Extra.allow
@@ -5,8 +5,19 @@ import typing
5
5
  from .jinja_prompt_block import JinjaPromptBlock
6
6
  from .variable_prompt_block import VariablePromptBlock
7
7
  from .rich_text_prompt_block import RichTextPromptBlock
8
+ from .audio_prompt_block import AudioPromptBlock
9
+ from .function_call_prompt_block import FunctionCallPromptBlock
10
+ from .image_prompt_block import ImagePromptBlock
8
11
  import typing
9
12
 
10
13
  if typing.TYPE_CHECKING:
11
14
  from .chat_message_prompt_block import ChatMessagePromptBlock
12
- PromptBlock = typing.Union[JinjaPromptBlock, "ChatMessagePromptBlock", VariablePromptBlock, RichTextPromptBlock]
15
+ PromptBlock = typing.Union[
16
+ JinjaPromptBlock,
17
+ "ChatMessagePromptBlock",
18
+ VariablePromptBlock,
19
+ RichTextPromptBlock,
20
+ AudioPromptBlock,
21
+ FunctionCallPromptBlock,
22
+ ImagePromptBlock,
23
+ ]
@@ -9,6 +9,7 @@ import pydantic
9
9
  class WorkflowPushResponse(UniversalBaseModel):
10
10
  workflow_sandbox_id: str
11
11
  workflow_deployment_id: typing.Optional[str] = None
12
+ proposed_diffs: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
12
13
 
13
14
  if IS_PYDANTIC_V2:
14
15
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.audio_prompt_block import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.function_call_prompt_block import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.image_prompt_block import *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.12.14
3
+ Version: 0.12.15
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -95,7 +95,7 @@ more below](#workflows-sdk).
95
95
 
96
96
  ## Client SDK
97
97
 
98
- The Vellum Client SDK, found within `src/client` is a low-level client used to interact directly with the Vellum API.
98
+ The Vellum Client SDK, found within `src/vellum/client` is a low-level client used to interact directly with the Vellum API.
99
99
  Learn more and get started by visiting the [Vellum Client SDK README](/src/vellum/client/README.md).
100
100
 
101
101
  ## Workflows SDK