Files
DataMate/docs/knowledge-graph/analysis/gemini.md
Jerry Yan afcb8783aa feat(kg): 实现 Phase 3.1 前端图谱浏览器
核心功能:
- G6 v5 力导向图,支持交互式缩放、平移、拖拽
- 5 种布局模式:force, circular, grid, radial, concentric
- 双击展开节点邻居到图中(增量探索)
- 全文搜索,类型过滤,结果高亮(变暗/高亮状态)
- 节点详情抽屉:实体属性、别名、置信度、关系列表(可导航)
- 关系详情抽屉:类型、源/目标、权重、置信度、属性
- 查询构建器:最短路径/全路径查询,可配置 maxDepth/maxPaths
- 基于 UUID 的图加载(输入或 URL 参数 ?graphId=...)
- 大图性能优化(200 节点阈值,超过时禁用动画)

新增文件(13 个):
- knowledge-graph.model.ts - TypeScript 接口,匹配 Java DTOs
- knowledge-graph.api.ts - API 服务,包含所有 KG REST 端点
- knowledge-graph.const.ts - 实体类型颜色、关系类型标签、中文显示名称
- graphTransform.ts - 后端数据 → G6 节点/边格式转换 + 合并工具
- graphConfig.ts - G6 v5 图配置(节点/边样式、行为、布局)
- hooks/useGraphData.ts - 数据钩子:加载子图、展开节点、搜索、合并
- hooks/useGraphLayout.ts - 布局钩子:5 种布局类型
- components/GraphCanvas.tsx - G6 v5 画布,力导向布局,缩放/平移/拖拽
- components/SearchPanel.tsx - 全文实体搜索,类型过滤
- components/NodeDetail.tsx - 实体详情抽屉
- components/RelationDetail.tsx - 关系详情抽屉
- components/QueryBuilder.tsx - 路径查询构建器
- Home/KnowledgeGraphPage.tsx - 主页面,整合所有组件

修改文件(5 个):
- package.json - 添加 @antv/g6 v5 依赖
- vite.config.ts - 添加 /knowledge-graph 代理规则
- auth/permissions.ts - 添加 knowledgeGraphRead/knowledgeGraphWrite
- pages/Layout/menu.tsx - 添加知识图谱菜单项(Network 图标)
- routes/routes.ts - 添加 /data/knowledge-graph 路由

新增文档(10 个):
- docs/knowledge-graph/ - 完整的知识图谱设计文档

Bug 修复(Codex 审查后修复):
- P1: 详情抽屉状态与选中状态不一致(显示旧数据)
- P1: 查询构建器未实现(最短路径/多路径查询)
- P2: 实体类型映射 Organization → Org(匹配后端)
- P2: getSubgraph depth 参数无效(改用正确端点)
- P2: AllPathsVO 字段名不一致(totalPaths → pathCount)
- P2: 搜索取消逻辑无效(传递 AbortController.signal)
- P2: 大图性能优化(动画降级)
- P3: 移除未使用的类型导入

构建验证:
- tsc --noEmit  clean
- eslint  0 errors/warnings
- vite build  successful
2026-02-20 19:13:46 +08:00

4.3 KiB

Gemini 知识图谱分析结果

分析时间

2026-02-17

核心建议

1. GraphRAG 融合方案(独特贡献)

创新点:将知识图谱与现有 RAG 系统深度融合

实现方案

  • rag-query-service 中增加"混合检索"模式
  • 查询时同时检索 Milvus(向量)+ Neo4j(图结构)
  • 将 2-hop 子图的三元组文本化后作为 Context 喂给 LLM

优势

  • 充分利用现有的 Milvus 向量检索能力
  • 结合向量相似度和图结构关系
  • 提供更丰富的上下文信息

2. LangChain 集成方案

技术路径

  • 利用 LangChain 的 LLMGraphTransformer 实现自动抽取
  • runtime/datamate-python 中实现
  • API: POST /graph/extract,输入文本,输出节点和边

实现细节

from langchain_experimental.graph_transformers import LLMGraphTransformer

transformer = LLMGraphTransformer(
    llm=llm,
    allowed_nodes=["Dataset", "Field", "Workflow"],
    allowed_relationships=["HAS_FIELD", "USES"]
)

graph_documents = transformer.convert_to_graph_documents([document])

3. 数据建模增强

核心元模型

  • Entity:增加 embedding 字段(节点的向量表示)
  • Document:新增节点类型,用于溯源
  • 关系(Entity)-[MENTIONED_IN]->(Document)

优势

  • 支持向量检索与图检索的混合
  • 方便溯源,追踪实体来源
  • 提升检索准确性

4. 实施路线图(3 阶段)

第一阶段:基础设施与基础抽取 (MVP)

  1. 环境搭建:在 deployment/docker/ 下新建 neo4j 目录
  2. Python 抽取器:利用 LangChain 的 LLMGraphTransformer
  3. 简单存储:直接存入 Neo4j

第二阶段:图谱服务与 RAG 融合

  1. Java 服务:创建 knowledge-graph-service
  2. GraphRAG:在 rag-query-service 中增加"混合检索"模式
    • 查询时同时检索 Milvus 和 Neo4j(2-hop 子图)
    • 将三元组文本化后作为 Context 喂给 LLM

第三阶段:可视化与高级功能

  1. 前端可视化:知识图谱浏览器
  2. 图谱编辑:Human-in-the-loop 修正

5. 潜在挑战与应对

实体歧义

问题:同名实体可能指代不同对象

解决方案

  • 实体对齐步骤
  • 利用 LLM 或向量相似度合并
  • 人工审核机制

信息过载(Super Nodes)

问题:某些节点连接过多,查询性能下降

解决方案

  • 限制跳数(最大 3 跳)
  • 限制最大边数(最大 1000 条)
  • 分页返回结果

幻觉与错误抽取

问题:LLM 可能产生不存在的实体或关系

解决方案

  • 置信度评分
  • 人工审核
  • 对比多个模型的结果

6. 首要行动

基础设施搭建

  1. deployment/docker/ 下创建 neo4j 目录
  2. 编写 docker-compose.yml
  3. 更新 Makefile 支持 Neo4j 的启动

示例配置

version: '3.8'
services:
  neo4j:
    image: neo4j:latest
    ports:
      - "7474:7474"
      - "7687:7687"
    environment:
      - NEO4J_AUTH=neo4j/datamate123
    volumes:
      - neo4j_data:/data
volumes:
  neo4j_data:

与其他工具的对比

维度 Gemini Codex Claude
技术选型 Neo4j Neo4j/JanusGraph Neo4j
架构重点 GraphRAG 融合 3个新模块 复用现有基础设施
数据建模 灵活Schema+embedding 10类实体+6类关系 Schema先行+版本管理
实现路径 3阶段(MVP优先) 4阶段(0-3) 4阶段
独特优势 LangChain+RAG融合 详细的领域模型 深度集成现有系统

关键洞察

  1. GraphRAG 是核心创新:Gemini 提出的混合检索方案特别适合 DataMate 现有的 RAG 架构
  2. LangChain 简化开发:利用现成的 LLMGraphTransformer 可以快速实现抽取功能
  3. 向量 + 图结构:embedding 字段的引入使得向量检索和图检索可以无缝结合
  4. MVP 优先:强调先做基础设施,再逐步扩展功能

建议采纳度

强烈推荐

  • GraphRAG 融合方案
  • LangChain 集成
  • embedding 字段
  • Document 节点

可选

  • ⚠️ 3 阶段实施路线(可与其他工具的 4 阶段结合)

相关文档