Skip to content

Phase 94 — 企业知识图谱设计

版本: v4.5.0 创建日期: 2026-03-10 状态: ✅ 已实现


一、模块概述

Phase 94 构建企业级知识图谱系统,支持实体与关系的结构化管理、类型索引高效查询、多跳图遍历推理以及GraphRAG融合搜索,将非结构化知识转化为可推理的图谱网络。

1.1 核心目标

  1. 实体关系管理: 支持多类型实体创建、关系定义和属性标注
  2. 类型索引查询: 按实体类型建立索引,实现毫秒级类型过滤查询
  3. 图遍历推理: 多跳关系路径发现,支持推理链生成和因果分析
  4. GraphRAG搜索: 将知识图谱与RAG检索融合,提升语义搜索质量

1.2 技术架构

┌───────────────────────────────────────────────────────┐
│            Enterprise Knowledge Graph                  │
│                                                        │
│  ┌──────────────────┐  ┌───────────────────────────┐  │
│  │  Entity Manager   │  │  Relationship Manager      │  │
│  │  实体CRUD+属性    │  │  关系定义+权重+方向        │  │
│  │  类型索引构建     │  │  双向索引+邻接表           │  │
│  └──────────────────┘  └───────────────────────────┘  │
│  ┌──────────────────┐  ┌───────────────────────────┐  │
│  │  Graph Traversal  │  │  GraphRAG Engine           │  │
│  │  BFS/DFS遍历     │  │  图谱+向量混合检索         │  │
│  │  多跳推理+路径    │  │  子图提取+上下文增强       │  │
│  └──────────────────┘  └───────────────────────────┘  │
│  ┌────────────────────────────────────────────────────┐│
│  │              Visualization Engine                    ││
│  │  Force-directed布局 → 节点聚类 → 交互式探索        ││
│  └────────────────────────────────────────────────────┘│
└───────────────────────────────────────────────────────┘

二、核心模块设计

2.1 EnterpriseKG (ai-engine/knowledge/enterprise-kg.js)

企业知识图谱核心引擎,管理实体、关系和推理。

核心方法:

  • addEntity(entity) — 添加实体(含类型、属性、标签),自动建立类型索引
  • query(queryParams) — 查询实体和关系(支持类型过滤、属性匹配、模糊搜索)
  • visualize(options) — 生成图谱可视化数据(节点+边+布局坐标)
  • reason(startEntityId, options) — 从指定实体出发进行多跳推理(返回路径和推理链)
  • graphragSearch(query, options) — GraphRAG融合搜索(图谱子图+向量检索+LLM增强)
  • importData(data, format) — 批量导入实体和关系(支持JSON/CSV/RDF格式)
  • exportData(format) — 导出完整图谱数据
  • getStats() — 获取图谱统计(实体数、关系数、类型分布、密度)

2.2 实体类型体系

类型说明示例
Person人员员工、客户、合作伙伴
Organization组织部门、公司、团队
Project项目产品、工程、研究课题
Technology技术编程语言、框架、工具
Document文档设计稿、报告、规范
Concept概念领域知识、术语、理论
Event事件会议、里程碑、发布

三、核心文件

文件说明
src/main/ai-engine/knowledge/enterprise-kg.js企业知识图谱引擎(实体/关系/推理/GraphRAG)
src/main/ai-engine/knowledge/kg-ipc.jsIPC Handler注册(8个通道)

四、IPC Handlers

Channel说明
kg:add-entity添加实体(含类型、属性、标签)
kg:query查询实体和关系(类型过滤、属性匹配)
kg:visualize生成图谱可视化数据(Force-directed布局)
kg:reason多跳图遍历推理(路径发现、因果分析)
kg:graphrag-searchGraphRAG融合搜索(图谱+向量+LLM)
kg:import批量导入实体和关系(JSON/CSV/RDF)
kg:export导出完整图谱数据
kg:get-stats获取图谱统计信息

五、数据库表

5.1 kg_entities — 知识图谱实体表

sql
CREATE TABLE IF NOT EXISTS kg_entities (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  type TEXT NOT NULL,         -- Person | Organization | Project | Technology | ...
  properties TEXT,            -- JSON: 实体属性键值对
  tags TEXT,                  -- JSON: 标签数组
  embedding TEXT,             -- 向量嵌入(用于GraphRAG)
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_kg_entities_type ON kg_entities(type);
CREATE INDEX IF NOT EXISTS idx_kg_entities_name ON kg_entities(name);

5.2 kg_relationships — 知识图谱关系表

sql
CREATE TABLE IF NOT EXISTS kg_relationships (
  id TEXT PRIMARY KEY,
  source_id TEXT NOT NULL,
  target_id TEXT NOT NULL,
  relation_type TEXT NOT NULL, -- belongs_to | works_on | depends_on | ...
  weight REAL DEFAULT 1.0,
  properties TEXT,             -- JSON: 关系属性
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (source_id) REFERENCES kg_entities(id),
  FOREIGN KEY (target_id) REFERENCES kg_entities(id)
);
CREATE INDEX IF NOT EXISTS idx_kg_rel_source ON kg_relationships(source_id);
CREATE INDEX IF NOT EXISTS idx_kg_rel_target ON kg_relationships(target_id);
CREATE INDEX IF NOT EXISTS idx_kg_rel_type ON kg_relationships(relation_type);

六、测试覆盖

测试文件测试数量状态
src/main/ai-engine/knowledge/__tests__/enterprise-kg.test.js27✅ 通过
合计27✅ 全部通过

测试要点

  • 实体CRUD和类型索引构建验证
  • 关系创建、方向性和权重处理
  • 类型过滤查询和属性匹配查询性能
  • 多跳BFS/DFS遍历和路径发现正确性
  • GraphRAG融合搜索(子图提取+向量检索)
  • 批量导入/导出数据完整性
  • 图谱统计信息准确性(密度、度分布)

基于 MIT 许可发布