From dfd60574d0d252e171921efbc367d069cb5d54a6 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Mon, 22 Sep 2025 13:15:04 -0300 Subject: [PATCH] changed regex to replace everything related to the old edges and nodes, changed update_provider_components to get updated flow from langflow --- src/services/flows_service.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/services/flows_service.py b/src/services/flows_service.py index 8ecfa3b1..13a1e931 100644 --- a/src/services/flows_service.py +++ b/src/services/flows_service.py @@ -313,10 +313,10 @@ class FlowsService: # Replace embedding ID references flow_json_str = re.sub( - r"\b" + re.escape(old_embedding_id) + r"\b", new_embedding_id, flow_json_str + re.escape(old_embedding_id), new_embedding_id, flow_json_str ) flow_json_str = re.sub( - r"\b" + re.escape(old_embedding_id.split("-")[0]) + r"\b", + re.escape(old_embedding_id.split("-")[0]), new_embedding_id.split("-")[0], flow_json_str, ) @@ -324,10 +324,10 @@ class FlowsService: # Replace LLM ID references (if applicable) if old_llm_id: flow_json_str = re.sub( - r"\b" + re.escape(old_llm_id) + r"\b", new_llm_id, flow_json_str + re.escape(old_llm_id), new_llm_id, flow_json_str ) flow_json_str = re.sub( - r"\b" + re.escape(old_llm_id.split("-")[0]) + r"\b", + re.escape(old_llm_id.split("-")[0]), new_llm_id.split("-")[0], flow_json_str, ) @@ -492,21 +492,19 @@ class FlowsService: ): """Update provider components and their dropdown values in a flow""" flow_name = config["name"] - flow_file = config["file"] flow_id = config["flow_id"] - # Get the project root directory - current_file_dir = os.path.dirname(os.path.abspath(__file__)) - src_dir = os.path.dirname(current_file_dir) - project_root = os.path.dirname(src_dir) - flow_path = os.path.join(project_root, flow_file) - - if not os.path.exists(flow_path): - raise FileNotFoundError(f"Flow file not found at: {flow_path}") - - # Load flow JSON - with open(flow_path, "r") as f: - flow_data = json.load(f) + # Get flow data from Langflow API instead of file + response = await clients.langflow_request( + "GET", f"/api/v1/flows/{flow_id}" + ) + + if response.status_code != 200: + raise Exception( + f"Failed to get flow from Langflow: HTTP {response.status_code} - {response.text}" + ) + + flow_data = response.json() updates_made = []