diff --git a/src/backend/langflow/api/v1/validate.py b/src/backend/langflow/api/v1/validate.py index 1223029b8..b5b886816 100644 --- a/src/backend/langflow/api/v1/validate.py +++ b/src/backend/langflow/api/v1/validate.py @@ -61,6 +61,11 @@ def post_validate_prompt(prompt: ValidatePromptRequest): logger.exception(exc) raise HTTPException(status_code=500, detail=str(exc)) from exc + # Now we will set the field "input_variables" to the new list of variables + # if it exists + if "input_variables" in prompt.frontend_node.template: + prompt.frontend_node.template["input_variables"]["value"] = input_variables + return PromptValidationResponse( input_variables=input_variables, frontend_node=prompt.frontend_node, diff --git a/src/backend/langflow/interface/initialize/loading.py b/src/backend/langflow/interface/initialize/loading.py index 235eabaff..bbaa1f131 100644 --- a/src/backend/langflow/interface/initialize/loading.py +++ b/src/backend/langflow/interface/initialize/loading.py @@ -110,7 +110,21 @@ def instantiate_prompt(node_type, class_object, params): if node_type == "ChatPromptTemplate": return class_object.from_messages(**params) - return class_object(**params) + prompt = class_object(**params) + + # Now we go through input_variables + # Check if they are in params, if so + # get their values and set them + format_kwargs = {} + for input_variable in prompt.input_variables: + if input_variable in params: + input_value = params[input_variable] + format_kwargs[input_variable] = input_value + + if format_kwargs: + prompt = prompt.partial(**format_kwargs) + + return prompt def instantiate_tool(node_type, class_object, params):