ソースを参照

fix: 关系图谱端点解析不再把 nodecn 当节点 token

根因:银行卡/号码节点 nodecn 是持卡人/机主姓名,被错误登记进 token→节点映射;当卡片节点先于人员节点注册时,obj_card/obj_tel 边的 node1(人员姓名)会解析到卡片/号码节点,导致持卡人/机主连线错位。现在只用 node/bm/sfz/id/mc 作为端点标识,nodecn 仅用于显示;与对象关系分析页的 token 口径一致。
cc 2 日 前
親
コミット
9e42c9e4c9
1 ファイル変更、7 行追加、1 行削除
  1. 7 1
      ai-electron/frontend/src/ai/components/graph/graphData.ts

+ 7 - 1
ai-electron/frontend/src/ai/components/graph/graphData.ts

@@ -224,7 +224,13 @@ function registerNode(ctx: ParseContext, node: GraphModelNode) {
     });
   }
 
-  const tokens = [node.raw.node, node.raw.bm, node.raw.sfz, node.raw.id, node.raw.mc, node.raw.nodecn, node.id]
+  /**
+   * 只登记真正能作为边端点的标识(node/bm/sfz/id/mc)。
+   * ★ 不要把 nodecn 放进端点映射:银行卡/号码节点的 nodecn 是持卡人/机主姓名,
+   * 若登记成 token,会和人员节点的姓名 token 撞车,导致 obj_card/obj_tel 边
+   * 被解析到银行卡/号码节点上(界面表现为“持卡人/机主”连到电话号)。
+   */
+  const tokens = [node.raw.node, node.raw.bm, node.raw.sfz, node.raw.id, node.raw.mc, node.id]
     .map((item) => normalizeToken(item))
     .filter(Boolean);
   tokens.forEach((token) => {