diff --git a/src/backend/langflow/interface/run.py b/src/backend/langflow/interface/run.py index a3efe2b0c..3ce5da615 100644 --- a/src/backend/langflow/interface/run.py +++ b/src/backend/langflow/interface/run.py @@ -14,6 +14,23 @@ def build_langchain_object_with_caching(data_graph): return graph.build() +@memoize_dict(maxsize=10) +def build_sorted_vertices_with_caching(data_graph): + """ + Build langchain object from data_graph. + """ + + logger.debug("Building langchain object") + graph = Graph.from_payload(data_graph) + sorted_vertices = graph.topological_sort() + artifacts = {} + for vertex in sorted_vertices: + vertex.build() + if vertex.artifacts: + artifacts.update(vertex.artifacts) + return graph.build(), artifacts + + def build_langchain_object(data_graph): """ Build langchain object from data_graph.