diff --git a/src/backend/langflow/api/base.py b/src/backend/langflow/api/base.py index 9096aff1b..f8bd25913 100644 --- a/src/backend/langflow/api/base.py +++ b/src/backend/langflow/api/base.py @@ -1,3 +1,4 @@ +from langflow.graph.utils import extract_input_variables_from_prompt from pydantic import BaseModel, validator @@ -25,3 +26,12 @@ class CodeValidationResponse(BaseModel): class PromptValidationResponse(BaseModel): input_variables: list + + +def validate_prompt(template: str): + input_variables = extract_input_variables_from_prompt(template) + if invalid := [variable for variable in input_variables if " " in variable]: + raise ValueError( + f"Invalid input variables: {invalid}. Please remove spaces from input variables" + ) + return PromptValidationResponse(input_variables=input_variables) diff --git a/src/backend/langflow/api/validate.py b/src/backend/langflow/api/validate.py index 6dea45df0..8b11042d3 100644 --- a/src/backend/langflow/api/validate.py +++ b/src/backend/langflow/api/validate.py @@ -5,6 +5,7 @@ from langflow.api.base import ( CodeValidationResponse, Prompt, PromptValidationResponse, + validate_prompt, ) from langflow.graph.utils import extract_input_variables_from_prompt from langflow.utils.logger import logger @@ -29,8 +30,7 @@ def post_validate_code(code: Code): @router.post("/prompt", status_code=200, response_model=PromptValidationResponse) def post_validate_prompt(prompt: Prompt): try: - input_variables = extract_input_variables_from_prompt(prompt.template) - return PromptValidationResponse(input_variables=input_variables) + return validate_prompt(prompt.template) except Exception as e: logger.exception(e) return HTTPException(status_code=500, detail=str(e))