From 3d768ea041fcb94c1b77c5ebaf9024df9616b847 Mon Sep 17 00:00:00 2001 From: Edwin Jose Date: Mon, 18 Nov 2024 16:18:33 -0500 Subject: [PATCH] fix: make provider switching work by setting attributes on SecretStrInput for Agent Component Inputs (#4643) * Refactor `process_inputs` function to handle `SecretStrInput` - Reset `value` and disable `load_from_db` for `SecretStrInput` instances. * [autofix.ci] apply automated fixes * Update model_input_constants.py Optimize input processing for speed improvements --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../base/models/model_input_constants.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/backend/base/langflow/base/models/model_input_constants.py b/src/backend/base/langflow/base/models/model_input_constants.py index 1753c4a4d..00e98095e 100644 --- a/src/backend/base/langflow/base/models/model_input_constants.py +++ b/src/backend/base/langflow/base/models/model_input_constants.py @@ -5,15 +5,23 @@ from langflow.components.models.azure_openai import AzureChatOpenAIComponent from langflow.components.models.groq import GroqModel from langflow.components.models.nvidia import NVIDIAModelComponent from langflow.components.models.openai import OpenAIModelComponent +from langflow.inputs.inputs import SecretStrInput def get_filtered_inputs(component_class): base_input_names = {field.name for field in LCModelComponent._base_inputs} - return [ - set_advanced_true(input_) if input_.name == "temperature" else input_ - for input_ in component_class().inputs - if input_.name not in base_input_names - ] + component_instance = component_class() + + return [process_inputs(input_) for input_ in component_instance.inputs if input_.name not in base_input_names] + + +def process_inputs(component_data): + if isinstance(component_data, SecretStrInput): + component_data.value = "" + component_data.load_from_db = False + elif component_data.name == "temperature": + component_data = set_advanced_true(component_data) + return component_data def set_advanced_true(component_input):