vellum-ai 0.12.3__py3-none-any.whl → 0.12.4__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- vellum/client/core/client_wrapper.py +1 -1
- vellum/plugins/vellum_mypy.py +20 -23
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +21 -8
- vellum/workflows/nodes/displayable/inline_prompt_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py +64 -0
- vellum/workflows/types/core.py +2 -52
- {vellum_ai-0.12.3.dist-info → vellum_ai-0.12.4.dist-info}/METADATA +1 -1
- {vellum_ai-0.12.3.dist-info → vellum_ai-0.12.4.dist-info}/RECORD +12 -10
- vellum_ee/workflows/display/utils/vellum.py +1 -2
- {vellum_ai-0.12.3.dist-info → vellum_ai-0.12.4.dist-info}/LICENSE +0 -0
- {vellum_ai-0.12.3.dist-info → vellum_ai-0.12.4.dist-info}/WHEEL +0 -0
- {vellum_ai-0.12.3.dist-info → vellum_ai-0.12.4.dist-info}/entry_points.txt +0 -0
@@ -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.
|
21
|
+
"X-Fern-SDK-Version": "0.12.4",
|
22
22
|
}
|
23
23
|
headers["X_API_KEY"] = self.api_key
|
24
24
|
return headers
|
vellum/plugins/vellum_mypy.py
CHANGED
@@ -172,41 +172,39 @@ class VellumMypyPlugin(Plugin):
|
|
172
172
|
|
173
173
|
def _dynamic_output_node_class_hook(self, ctx: ClassDefContext, attribute_name: str) -> None:
|
174
174
|
"""
|
175
|
-
We use this hook to properly annotate the Outputs class for Templating Node
|
176
|
-
|
175
|
+
We use this hook to properly annotate the Outputs class for Templating Node and
|
176
|
+
Code Execution Node using the resolved type
|
177
|
+
of the TemplatingNode's and CodeExecutionNode's class _OutputType generic.
|
177
178
|
"""
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
if not templating_node_bases:
|
179
|
+
node_info = ctx.cls.info
|
180
|
+
node_bases = ctx.cls.info.bases
|
181
|
+
if not node_bases:
|
182
182
|
return
|
183
|
-
if not isinstance(
|
183
|
+
if not isinstance(node_bases[0], Instance):
|
184
184
|
return
|
185
185
|
|
186
|
-
|
187
|
-
|
188
|
-
if not _is_subclass(base_templating_node, "vellum.workflows.nodes.core.templating_node.node.TemplatingNode"):
|
189
|
-
return
|
186
|
+
base_args = node_bases[0].args
|
187
|
+
base_node = node_bases[0].type
|
190
188
|
|
191
|
-
if len(
|
189
|
+
if len(base_args) != 2:
|
192
190
|
return
|
193
191
|
|
194
|
-
|
195
|
-
if isinstance(
|
196
|
-
|
192
|
+
base_node_resolved_type = base_args[1]
|
193
|
+
if isinstance(base_node_resolved_type, AnyType):
|
194
|
+
base_node_resolved_type = ctx.api.named_type("builtins.str")
|
197
195
|
|
198
|
-
|
199
|
-
if not
|
196
|
+
base_node_outputs = base_node.names.get("Outputs")
|
197
|
+
if not base_node_outputs:
|
200
198
|
return
|
201
199
|
|
202
|
-
|
203
|
-
if not
|
204
|
-
|
205
|
-
new_outputs_sym =
|
200
|
+
current_node_outputs = node_info.names.get("Outputs")
|
201
|
+
if not current_node_outputs:
|
202
|
+
node_info.names["Outputs"] = base_node_outputs.copy()
|
203
|
+
new_outputs_sym = node_info.names["Outputs"].node
|
206
204
|
if isinstance(new_outputs_sym, TypeInfo):
|
207
205
|
result_sym = new_outputs_sym.names[attribute_name].node
|
208
206
|
if isinstance(result_sym, Var):
|
209
|
-
result_sym.type =
|
207
|
+
result_sym.type = base_node_resolved_type
|
210
208
|
|
211
209
|
def _base_node_class_hook(self, ctx: ClassDefContext) -> None:
|
212
210
|
"""
|
@@ -233,7 +231,6 @@ class VellumMypyPlugin(Plugin):
|
|
233
231
|
type_ = sym.node.type
|
234
232
|
if not type_:
|
235
233
|
continue
|
236
|
-
|
237
234
|
sym.node.type = self._get_resolvable_type(
|
238
235
|
lambda fullname, types: ctx.api.named_type(fullname, types), type_
|
239
236
|
)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import json
|
1
2
|
from uuid import uuid4
|
2
3
|
from typing import ClassVar, Generic, Iterator, List, Optional, Tuple, cast
|
3
4
|
|
@@ -18,6 +19,7 @@ from vellum.client import RequestOptions
|
|
18
19
|
from vellum.workflows.constants import OMIT
|
19
20
|
from vellum.workflows.context import get_parent_context
|
20
21
|
from vellum.workflows.errors import WorkflowErrorCode
|
22
|
+
from vellum.workflows.events.types import default_serializer
|
21
23
|
from vellum.workflows.exceptions import NodeException
|
22
24
|
from vellum.workflows.nodes.displayable.bases.base_prompt_node import BasePromptNode
|
23
25
|
from vellum.workflows.nodes.displayable.bases.inline_prompt_node.constants import DEFAULT_PROMPT_PARAMETERS
|
@@ -108,19 +110,30 @@ class BaseInlinePromptNode(BasePromptNode, Generic[StateType]):
|
|
108
110
|
value=cast(List[ChatMessage], input_value),
|
109
111
|
)
|
110
112
|
)
|
111
|
-
|
112
|
-
|
113
|
-
|
113
|
+
else:
|
114
|
+
try:
|
115
|
+
input_value = default_serializer(input_value)
|
116
|
+
except json.JSONDecodeError as e:
|
117
|
+
raise NodeException(
|
118
|
+
message=f"Failed to serialize input '{input_name}' of type '{input_value.__class__}': {e}",
|
119
|
+
code=WorkflowErrorCode.INVALID_INPUTS,
|
120
|
+
)
|
121
|
+
|
122
|
+
input_variables.append(
|
123
|
+
VellumVariable(
|
124
|
+
# TODO: Determine whether or not we actually need an id here and if we do,
|
125
|
+
# figure out how to maintain stable id references.
|
126
|
+
# https://app.shortcut.com/vellum/story/4080
|
127
|
+
id=str(uuid4()),
|
128
|
+
key=input_name,
|
129
|
+
type="JSON",
|
130
|
+
)
|
131
|
+
)
|
114
132
|
input_values.append(
|
115
133
|
PromptRequestJsonInput(
|
116
134
|
key=input_name,
|
117
135
|
value=input_value,
|
118
136
|
)
|
119
137
|
)
|
120
|
-
else:
|
121
|
-
raise NodeException(
|
122
|
-
message=f"Unrecognized input type for input '{input_name}': {input_value.__class__}",
|
123
|
-
code=WorkflowErrorCode.INVALID_INPUTS,
|
124
|
-
)
|
125
138
|
|
126
139
|
return input_variables, input_values
|
File without changes
|
@@ -0,0 +1,64 @@
|
|
1
|
+
from dataclasses import dataclass
|
2
|
+
from uuid import uuid4
|
3
|
+
from typing import Any, Iterator, List
|
4
|
+
|
5
|
+
from vellum.client.core.pydantic_utilities import UniversalBaseModel
|
6
|
+
from vellum.client.types.execute_prompt_event import ExecutePromptEvent
|
7
|
+
from vellum.client.types.fulfilled_execute_prompt_event import FulfilledExecutePromptEvent
|
8
|
+
from vellum.client.types.initiated_execute_prompt_event import InitiatedExecutePromptEvent
|
9
|
+
from vellum.client.types.prompt_output import PromptOutput
|
10
|
+
from vellum.client.types.prompt_request_json_input import PromptRequestJsonInput
|
11
|
+
from vellum.client.types.string_vellum_value import StringVellumValue
|
12
|
+
from vellum.workflows.nodes.displayable.inline_prompt_node.node import InlinePromptNode
|
13
|
+
|
14
|
+
|
15
|
+
def test_inline_prompt_node__json_inputs(vellum_adhoc_prompt_client):
|
16
|
+
# GIVEN a prompt node with various inputs
|
17
|
+
@dataclass
|
18
|
+
class MyDataClass:
|
19
|
+
hello: str
|
20
|
+
|
21
|
+
class MyPydantic(UniversalBaseModel):
|
22
|
+
example: str
|
23
|
+
|
24
|
+
class MyNode(InlinePromptNode):
|
25
|
+
ml_model = "gpt-4o"
|
26
|
+
blocks = []
|
27
|
+
prompt_inputs = {
|
28
|
+
"a_dict": {"foo": "bar"},
|
29
|
+
"a_list": [1, 2, 3],
|
30
|
+
"a_dataclass": MyDataClass(hello="world"),
|
31
|
+
"a_pydantic": MyPydantic(example="example"),
|
32
|
+
}
|
33
|
+
|
34
|
+
# AND a known response from invoking an inline prompt
|
35
|
+
expected_outputs: List[PromptOutput] = [
|
36
|
+
StringVellumValue(value="Test"),
|
37
|
+
]
|
38
|
+
|
39
|
+
def generate_prompt_events(*args: Any, **kwargs: Any) -> Iterator[ExecutePromptEvent]:
|
40
|
+
execution_id = str(uuid4())
|
41
|
+
events: List[ExecutePromptEvent] = [
|
42
|
+
InitiatedExecutePromptEvent(execution_id=execution_id),
|
43
|
+
FulfilledExecutePromptEvent(
|
44
|
+
execution_id=execution_id,
|
45
|
+
outputs=expected_outputs,
|
46
|
+
),
|
47
|
+
]
|
48
|
+
yield from events
|
49
|
+
|
50
|
+
vellum_adhoc_prompt_client.adhoc_execute_prompt_stream.side_effect = generate_prompt_events
|
51
|
+
|
52
|
+
# WHEN the node is run
|
53
|
+
list(MyNode().run())
|
54
|
+
|
55
|
+
# THEN the prompt is executed with the correct inputs
|
56
|
+
mock_api = vellum_adhoc_prompt_client.adhoc_execute_prompt_stream
|
57
|
+
assert mock_api.call_count == 1
|
58
|
+
assert mock_api.call_args.kwargs["input_values"] == [
|
59
|
+
PromptRequestJsonInput(key="a_dict", type="JSON", value={"foo": "bar"}),
|
60
|
+
PromptRequestJsonInput(key="a_list", type="JSON", value=[1, 2, 3]),
|
61
|
+
PromptRequestJsonInput(key="a_dataclass", type="JSON", value={"hello": "world"}),
|
62
|
+
PromptRequestJsonInput(key="a_pydantic", type="JSON", value={"example": "example"}),
|
63
|
+
]
|
64
|
+
assert len(mock_api.call_args.kwargs["input_variables"]) == 4
|
vellum/workflows/types/core.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
from enum import Enum
|
2
2
|
from typing import ( # type: ignore[attr-defined]
|
3
|
+
Any,
|
3
4
|
Dict,
|
4
5
|
List,
|
5
6
|
Union,
|
@@ -8,22 +9,6 @@ from typing import ( # type: ignore[attr-defined]
|
|
8
9
|
_UnionGenericAlias,
|
9
10
|
)
|
10
11
|
|
11
|
-
from vellum import (
|
12
|
-
ChatMessage,
|
13
|
-
FunctionCall,
|
14
|
-
FunctionCallRequest,
|
15
|
-
SearchResult,
|
16
|
-
SearchResultRequest,
|
17
|
-
VellumAudio,
|
18
|
-
VellumAudioRequest,
|
19
|
-
VellumError,
|
20
|
-
VellumErrorRequest,
|
21
|
-
VellumImage,
|
22
|
-
VellumImageRequest,
|
23
|
-
VellumValue,
|
24
|
-
VellumValueRequest,
|
25
|
-
)
|
26
|
-
|
27
12
|
JsonArray = List["Json"]
|
28
13
|
JsonObject = Dict[str, "Json"]
|
29
14
|
Json = Union[None, bool, int, float, str, JsonArray, JsonObject]
|
@@ -42,42 +27,7 @@ class VellumSecret:
|
|
42
27
|
self.name = name
|
43
28
|
|
44
29
|
|
45
|
-
|
46
|
-
# String inputs
|
47
|
-
str,
|
48
|
-
# Chat history inputs
|
49
|
-
List[ChatMessage],
|
50
|
-
List[ChatMessage],
|
51
|
-
# Search results inputs
|
52
|
-
List[SearchResultRequest],
|
53
|
-
List[SearchResult],
|
54
|
-
# JSON inputs
|
55
|
-
Json,
|
56
|
-
# Number inputs
|
57
|
-
float,
|
58
|
-
# Function Call Inputs
|
59
|
-
FunctionCall,
|
60
|
-
FunctionCallRequest,
|
61
|
-
# Error Inputs
|
62
|
-
VellumError,
|
63
|
-
VellumErrorRequest,
|
64
|
-
# Array Inputs
|
65
|
-
List[VellumValueRequest],
|
66
|
-
List[VellumValue],
|
67
|
-
# Image Inputs
|
68
|
-
VellumImage,
|
69
|
-
VellumImageRequest,
|
70
|
-
# Audio Inputs
|
71
|
-
VellumAudio,
|
72
|
-
VellumAudioRequest,
|
73
|
-
# Vellum Secrets
|
74
|
-
VellumSecret,
|
75
|
-
]
|
76
|
-
|
77
|
-
EntityInputsInterface = Dict[
|
78
|
-
str,
|
79
|
-
VellumValuePrimitive,
|
80
|
-
]
|
30
|
+
EntityInputsInterface = Dict[str, Any]
|
81
31
|
|
82
32
|
|
83
33
|
class MergeBehavior(Enum):
|
@@ -65,7 +65,7 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_ser
|
|
65
65
|
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=BGCgJ3WWiYK5fWJp_Yz-aWQPli5sIKOhLTVYfG9Tpq8,9177
|
66
66
|
vellum_ee/workflows/display/types.py,sha256=FSPg3TO8iNE2gnl1vn-nsMfit2V6yeBXW0Igh089A9w,2011
|
67
67
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
-
vellum_ee/workflows/display/utils/vellum.py,sha256
|
68
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=-cz3xB-_-r1O9TBdLQPBvlpptg9CrZVNQ50QimmJFnA,5032
|
69
69
|
vellum_ee/workflows/display/vellum.py,sha256=OSv0ZS50h1zJbunJ9TH7VEWFw-exXdK_ZsdzPxP9ROs,8814
|
70
70
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
71
71
|
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=ydAbFMzcY2LURINZbXYm9BAXZdIa3-7rQ86Kupo7qcA,12804
|
@@ -76,7 +76,7 @@ vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
|
76
76
|
vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
|
77
77
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
78
78
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
79
|
-
vellum/client/core/client_wrapper.py,sha256=
|
79
|
+
vellum/client/core/client_wrapper.py,sha256=Txk5jgvpOyeOcWKUtrs-1p5HZ-zPxTysTZVwMYsX3-A,1868
|
80
80
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
81
81
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
82
82
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -659,7 +659,7 @@ vellum/evaluations/utils/uuid.py,sha256=Ch6wWRgwICxLxJCTl5iE3EdRlZj2zADR-zUMUtjc
|
|
659
659
|
vellum/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
660
660
|
vellum/plugins/pydantic.py,sha256=EbI0pJMhUS9rLPSkzmAELfnCHrWCJzOrU06T8ommwdw,2334
|
661
661
|
vellum/plugins/utils.py,sha256=U9ZY9KdE3RRvbcG01hXxu9CvfJD6Fo7nJDgcHjQn0FI,606
|
662
|
-
vellum/plugins/vellum_mypy.py,sha256=
|
662
|
+
vellum/plugins/vellum_mypy.py,sha256=VC15EzjTsXOb9uF1bky4rcxePP-0epMVmCsLB2z4Dh8,24816
|
663
663
|
vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
664
664
|
vellum/resources/__init__.py,sha256=sQWK7g_Z4EM7pa7fy6vy3d_DMdTJ4wVcozBn3Lx4Qpo,141
|
665
665
|
vellum/resources/ad_hoc/__init__.py,sha256=UD01D9nS_M7sRKmMbEg4Tv9SlfFj3cWahVxwUEaSLAY,148
|
@@ -1297,7 +1297,7 @@ vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org
|
|
1297
1297
|
vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=EvylK1rGKpd4iiooEW9O5A9Q8DMTtBwETe_GtQT8M-E,2139
|
1298
1298
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
|
1299
1299
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
|
1300
|
-
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=
|
1300
|
+
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=H1AVDnitwIkwya12oV68Qj2tyb786pfRHHz5qxtubD4,5935
|
1301
1301
|
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=zdpNJoawB5PedsCCfgOGDDoWuif0jNtlV-K9sFL6cNQ,4968
|
1302
1302
|
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=pqiui8G6l_9FLE1HH4rCdFC73Bl7_AIBAmQQMjqe190,3570
|
1303
1303
|
vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
|
@@ -1315,6 +1315,8 @@ vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhy
|
|
1315
1315
|
vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=7Ep7Ff7FtFry3Jwxhg_npF_-jT2P6TGKp5MRNnCZ8Tc,3923
|
1316
1316
|
vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
|
1317
1317
|
vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=dTnP1yH1P0NqMw3noxt9XwaDCpX8ZOhuvVYNAn_DdCQ,2119
|
1318
|
+
vellum/workflows/nodes/displayable/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1319
|
+
vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=189Oo66QDYJS8vCcyLe9ErJBGpWZVmPePFHta8wzdeM,2615
|
1318
1320
|
vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
|
1319
1321
|
vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
|
1320
1322
|
vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
|
@@ -1359,7 +1361,7 @@ vellum/workflows/state/store.py,sha256=VYGBQgN1bpd1as5eGiouV_7scg8QsRs4_1aqZAGIs
|
|
1359
1361
|
vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1360
1362
|
vellum/workflows/state/tests/test_state.py,sha256=BQjcdREIK1MPuGhivRUgpynVJLftjEpH9RG3cRKxQEY,3310
|
1361
1363
|
vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
|
1362
|
-
vellum/workflows/types/core.py,sha256=
|
1364
|
+
vellum/workflows/types/core.py,sha256=D2NcSBwGgWj_mtXZqe3KnEQcb5qd5HzqAwnxwmlCfCw,899
|
1363
1365
|
vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
|
1364
1366
|
vellum/workflows/types/stack.py,sha256=RDSGLkcV612ge8UuAH9TZiEGXxJt0Av2-H5rfzrTVVI,1014
|
1365
1367
|
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1379,8 +1381,8 @@ vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528
|
|
1379
1381
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1380
1382
|
vellum/workflows/workflows/base.py,sha256=zpspOEdO5Ye_0ZvN-Wkzv9iQSiF1sD201ba8lhbnPbs,17086
|
1381
1383
|
vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
|
1382
|
-
vellum_ai-0.12.
|
1383
|
-
vellum_ai-0.12.
|
1384
|
-
vellum_ai-0.12.
|
1385
|
-
vellum_ai-0.12.
|
1386
|
-
vellum_ai-0.12.
|
1384
|
+
vellum_ai-0.12.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1385
|
+
vellum_ai-0.12.4.dist-info/METADATA,sha256=NGdP3b6at6hPyXJWKWlyXKb0dSLEnYSUy3yIy1pVJIc,5128
|
1386
|
+
vellum_ai-0.12.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1387
|
+
vellum_ai-0.12.4.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1388
|
+
vellum_ai-0.12.4.dist-info/RECORD,,
|
@@ -9,7 +9,6 @@ from vellum.workflows.references import OutputReference, WorkflowInputReference
|
|
9
9
|
from vellum.workflows.references.execution_count import ExecutionCountReference
|
10
10
|
from vellum.workflows.references.node import NodeReference
|
11
11
|
from vellum.workflows.references.vellum_secret import VellumSecretReference
|
12
|
-
from vellum.workflows.types.core import VellumValuePrimitive
|
13
12
|
from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
|
14
13
|
from vellum.workflows.vellum_client import create_vellum_client
|
15
14
|
from vellum_ee.workflows.display.types import WorkflowDisplayContext
|
@@ -93,7 +92,7 @@ def create_node_input_value_pointer_rule(
|
|
93
92
|
raise ValueError(f"Unsupported descriptor type: {value.__class__.__name__}")
|
94
93
|
|
95
94
|
|
96
|
-
def primitive_to_vellum_value(value:
|
95
|
+
def primitive_to_vellum_value(value: Any) -> VellumValue:
|
97
96
|
"""Converts a python primitive to a VellumVariableValue"""
|
98
97
|
|
99
98
|
if isinstance(value, str):
|
File without changes
|
File without changes
|
File without changes
|