fix: adding better validation
This commit is contained in:
parent
d6e261286f
commit
8dbd3adecd
2 changed files with 12 additions and 2 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
from langflow.graph.utils import extract_input_variables_from_prompt
|
||||||
from pydantic import BaseModel, validator
|
from pydantic import BaseModel, validator
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -25,3 +26,12 @@ class CodeValidationResponse(BaseModel):
|
||||||
|
|
||||||
class PromptValidationResponse(BaseModel):
|
class PromptValidationResponse(BaseModel):
|
||||||
input_variables: list
|
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)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ from langflow.api.base import (
|
||||||
CodeValidationResponse,
|
CodeValidationResponse,
|
||||||
Prompt,
|
Prompt,
|
||||||
PromptValidationResponse,
|
PromptValidationResponse,
|
||||||
|
validate_prompt,
|
||||||
)
|
)
|
||||||
from langflow.graph.utils import extract_input_variables_from_prompt
|
from langflow.graph.utils import extract_input_variables_from_prompt
|
||||||
from langflow.utils.logger import logger
|
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)
|
@router.post("/prompt", status_code=200, response_model=PromptValidationResponse)
|
||||||
def post_validate_prompt(prompt: Prompt):
|
def post_validate_prompt(prompt: Prompt):
|
||||||
try:
|
try:
|
||||||
input_variables = extract_input_variables_from_prompt(prompt.template)
|
return validate_prompt(prompt.template)
|
||||||
return PromptValidationResponse(input_variables=input_variables)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(e)
|
logger.exception(e)
|
||||||
return HTTPException(status_code=500, detail=str(e))
|
return HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue