refactor(validate.py): extract build_graph function to langflow.interface.run module

feat(validate.py): add post_validate_node endpoint to validate a single node in the graph by its id
This commit is contained in:
Gabriel Almeida 2023-04-24 10:32:15 -03:00
commit 09320824a9
2 changed files with 25 additions and 7 deletions

View file

@ -7,6 +7,7 @@ from langflow.api.base import (
PromptValidationResponse,
validate_prompt,
)
from langflow.interface.run import build_graph
from langflow.utils.logger import logger
from langflow.utils.validate import validate_code
@ -33,3 +34,20 @@ def post_validate_prompt(prompt: Prompt):
except Exception as e:
logger.exception(e)
raise HTTPException(status_code=500, detail=str(e)) from e
# validate node
@router.post("/node/{node_id}", status_code=200)
def post_validate_node(node_id: str, data: dict):
try:
# build graph
graph = build_graph(data)
# validate node
node = graph.get_node(node_id)
if node is not None:
_ = node.build()
return node.params
raise
except Exception as e:
logger.exception(e)
raise HTTPException(status_code=500, detail=str(e)) from e

View file

@ -39,16 +39,16 @@ def build_langchain_object_with_caching(data_graph):
"""
logger.debug("Building langchain object")
nodes = data_graph["nodes"]
# Add input variables
# nodes = payload.extract_input_variables(nodes)
# Nodes, edges and root node
edges = data_graph["edges"]
graph = Graph(nodes, edges)
graph = build_graph(data_graph)
return graph.build()
def build_graph(data_graph):
nodes = data_graph["nodes"]
edges = data_graph["edges"]
return Graph(nodes, edges)
def build_langchain_object(data_graph):
"""
Build langchain object from data_graph.