From 194e8ea696d1da2768e7f1121ff1c76bdeb112bf Mon Sep 17 00:00:00 2001 From: zhxlp <1573635222@qq.com> Date: Mon, 17 Feb 2025 11:49:27 +0800 Subject: [PATCH] Fix knowledge graph node not found (#4968) (#4970) ### What problem does this PR solve? Fix knowledge graph node not found (#4968) ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- api/apps/kb_app.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/api/apps/kb_app.py b/api/apps/kb_app.py index fe4538b44..9aadfa4d3 100644 --- a/api/apps/kb_app.py +++ b/api/apps/kb_app.py @@ -318,6 +318,8 @@ def knowledge_graph(kb_id): if "nodes" in obj["graph"]: obj["graph"]["nodes"] = sorted(obj["graph"]["nodes"], key=lambda x: x.get("pagerank", 0), reverse=True)[:256] - if "edges" in obj["graph"]: - obj["graph"]["edges"] = sorted(obj["graph"]["edges"], key=lambda x: x.get("weight", 0), reverse=True)[:128] + if "edges" in obj["graph"]: + node_id_set = { o["id"] for o in obj["graph"]["nodes"] } + filtered_edges = [o for o in obj["graph"]["edges"] if o["source"] != o["target"] and o["source"] in node_id_set and o["target"] in node_id_set] + obj["graph"]["edges"] = sorted(filtered_edges, key=lambda x: x.get("weight", 0), reverse=True)[:128] return get_json_result(data=obj) \ No newline at end of file