From 75493bbdea5601856dc3402ccbafd496d4f26c63 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 22 Dec 2023 10:46:35 -0300 Subject: [PATCH] Refactor process_inputs function to handle both dict and list inputs --- src/backend/langflow/processing/process.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/backend/langflow/processing/process.py b/src/backend/langflow/processing/process.py index 659141446..647e8cd4b 100644 --- a/src/backend/langflow/processing/process.py +++ b/src/backend/langflow/processing/process.py @@ -7,12 +7,11 @@ from langchain.schema import AgentAction, Document from langchain.vectorstores.base import VectorStore from langchain_core.messages import AIMessage from langchain_core.runnables.base import Runnable -from loguru import logger -from pydantic import BaseModel - from langflow.interface.custom.custom_component import CustomComponent from langflow.interface.run import build_sorted_vertices, get_memory_key, update_memory_keys from langflow.services.deps import get_session_service +from loguru import logger +from pydantic import BaseModel def fix_memory_inputs(langchain_object): @@ -107,10 +106,19 @@ def get_build_result(data_graph, session_id): return build_sorted_vertices(data_graph) -def process_inputs(inputs: Optional[dict], artifacts: Dict[str, Any]) -> dict: +def process_inputs(inputs: Union[dict, List[dict]], artifacts: Dict[str, Any]) -> dict: if inputs is None: inputs = {} + if isinstance(inputs, dict): + inputs = update_inputs_dict(inputs, artifacts) + elif isinstance(inputs, List): + inputs = [update_inputs_dict(inp, artifacts) for inp in inputs] + + return inputs + + +def update_inputs_dict(inputs: dict, artifacts: Dict[str, Any]) -> dict: for key, value in artifacts.items(): if key == "repr": continue