Use vertex instead of outgoing edges
This commit is contained in:
parent
7dbffe6331
commit
e4ffe4b9d4
1 changed files with 12 additions and 25 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import inspect
|
import inspect
|
||||||
import json
|
import json
|
||||||
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Sequence, Type
|
from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Sequence, Type
|
||||||
|
|
||||||
import orjson
|
import orjson
|
||||||
from langchain.agents import agent as agent_module
|
from langchain.agents import agent as agent_module
|
||||||
|
|
@ -35,25 +35,15 @@ from langflow.utils import validate
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow import CustomComponent
|
from langflow import CustomComponent
|
||||||
from langflow.graph.edge.base import ContractEdge
|
from langflow.graph.edge.base import ContractEdge
|
||||||
|
|
||||||
|
|
||||||
def build_vertex_in_params(params: Dict) -> Dict:
|
|
||||||
from langflow.graph.vertex.base import Vertex
|
from langflow.graph.vertex.base import Vertex
|
||||||
|
|
||||||
# If any of the values in params is a Vertex, we will build it
|
|
||||||
return {
|
|
||||||
key: value.build() if isinstance(value, Vertex) else value
|
|
||||||
for key, value in params.items()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async def instantiate_class(
|
async def instantiate_class(
|
||||||
node_type: str,
|
node_type: str,
|
||||||
base_type: str,
|
base_type: str,
|
||||||
params: Dict,
|
params: Dict,
|
||||||
user_id=None,
|
user_id=None,
|
||||||
outgoing_edges: Optional[List["ContractEdge"]] = None,
|
vertex: Optional["Vertex"] = None,
|
||||||
selected_output_type: Optional[str] = None,
|
|
||||||
) -> Any:
|
) -> Any:
|
||||||
"""Instantiate class from module type and key, and params"""
|
"""Instantiate class from module type and key, and params"""
|
||||||
params = convert_params_to_sets(params)
|
params = convert_params_to_sets(params)
|
||||||
|
|
@ -67,13 +57,12 @@ async def instantiate_class(
|
||||||
logger.debug(f"Instantiating {node_type} of type {base_type}")
|
logger.debug(f"Instantiating {node_type} of type {base_type}")
|
||||||
class_object = import_by_type(_type=base_type, name=node_type)
|
class_object = import_by_type(_type=base_type, name=node_type)
|
||||||
return await instantiate_based_on_type(
|
return await instantiate_based_on_type(
|
||||||
class_object,
|
class_object=class_object,
|
||||||
base_type,
|
base_type=base_type,
|
||||||
node_type,
|
node_type=node_type,
|
||||||
params,
|
params=params,
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
outgoing_edges=outgoing_edges,
|
vertex=vertex,
|
||||||
selected_output_type=selected_output_type,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -107,8 +96,7 @@ async def instantiate_based_on_type(
|
||||||
node_type,
|
node_type,
|
||||||
params,
|
params,
|
||||||
user_id,
|
user_id,
|
||||||
outgoing_edges,
|
vertex,
|
||||||
selected_output_type,
|
|
||||||
):
|
):
|
||||||
if base_type == "agents":
|
if base_type == "agents":
|
||||||
return instantiate_agent(node_type, class_object, params)
|
return instantiate_agent(node_type, class_object, params)
|
||||||
|
|
@ -148,8 +136,7 @@ async def instantiate_based_on_type(
|
||||||
class_object,
|
class_object,
|
||||||
params,
|
params,
|
||||||
user_id,
|
user_id,
|
||||||
outgoing_edges,
|
vertex,
|
||||||
selected_output_type,
|
|
||||||
)
|
)
|
||||||
elif base_type == "wrappers":
|
elif base_type == "wrappers":
|
||||||
return instantiate_wrapper(node_type, class_object, params)
|
return instantiate_wrapper(node_type, class_object, params)
|
||||||
|
|
@ -158,7 +145,7 @@ async def instantiate_based_on_type(
|
||||||
|
|
||||||
|
|
||||||
async def instantiate_custom_component(
|
async def instantiate_custom_component(
|
||||||
node_type, class_object, params, user_id, outgoing_edges, selected_output_type
|
node_type, class_object, params, user_id, vertex
|
||||||
):
|
):
|
||||||
params_copy = params.copy()
|
params_copy = params.copy()
|
||||||
class_object: Type["CustomComponent"] = eval_custom_component_code(
|
class_object: Type["CustomComponent"] = eval_custom_component_code(
|
||||||
|
|
@ -167,8 +154,8 @@ async def instantiate_custom_component(
|
||||||
custom_component: "CustomComponent" = class_object(
|
custom_component: "CustomComponent" = class_object(
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
parameters=params_copy,
|
parameters=params_copy,
|
||||||
outgoing_edges=outgoing_edges,
|
vertex=vertex,
|
||||||
selected_output_type=selected_output_type,
|
selected_output_type=vertex.selected_output_type,
|
||||||
)
|
)
|
||||||
|
|
||||||
if "retriever" in params_copy and hasattr(params_copy["retriever"], "as_retriever"):
|
if "retriever" in params_copy and hasattr(params_copy["retriever"], "as_retriever"):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue