From b3a621d1b2d483aa3ca53e0096d633b27f8472bf Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 27 Mar 2024 17:59:19 -0300 Subject: [PATCH] Refactor RunnableExecutor.py to handle input keys and provide status information --- .../components/experimental/RunnableExecutor.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/backend/base/langflow/components/experimental/RunnableExecutor.py b/src/backend/base/langflow/components/experimental/RunnableExecutor.py index 3c6072af9..e54267d0b 100644 --- a/src/backend/base/langflow/components/experimental/RunnableExecutor.py +++ b/src/backend/base/langflow/components/experimental/RunnableExecutor.py @@ -89,8 +89,19 @@ class RunnableExecComponent(CustomComponent): input_key: str = "input", output_key: str = "output", ) -> Text: + input_dict = {} + status = "" + if hasattr(runnable, "input_keys"): + # Check if input_key is in the runnable's input_keys + if input_key in runnable.input_keys: + input_dict[input_key] = input_value + else: + input_dict = {k: input_value for k in runnable.input_keys} + status = f"Warning: The input key is not '{input_key}'. The input key is '{runnable.input_keys}'." + result = runnable.invoke({input_key: input_value}) - result_value, status = self.get_output(result, input_key, output_key) + result_value, _status = self.get_output(result, input_key, output_key) + status += _status status += f"\nOutput: {result_value}\n\nRaw Output: {result}" self.status = status return result_value