Phase 94 — 企业知识图谱设计
版本: v4.5.0 创建日期: 2026-03-10 状态: ✅ 已实现
一、模块概述
Phase 94 构建企业级知识图谱系统,支持实体与关系的结构化管理、类型索引高效查询、多跳图遍历推理以及GraphRAG融合搜索,将非结构化知识转化为可推理的图谱网络。
1.1 核心目标
- 实体关系管理: 支持多类型实体创建、关系定义和属性标注
- 类型索引查询: 按实体类型建立索引,实现毫秒级类型过滤查询
- 图遍历推理: 多跳关系路径发现,支持推理链生成和因果分析
- 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.js | IPC Handler注册(8个通道) |
四、IPC Handlers
| Channel | 说明 |
|---|---|
kg:add-entity | 添加实体(含类型、属性、标签) |
kg:query | 查询实体和关系(类型过滤、属性匹配) |
kg:visualize | 生成图谱可视化数据(Force-directed布局) |
kg:reason | 多跳图遍历推理(路径发现、因果分析) |
kg:graphrag-search | GraphRAG融合搜索(图谱+向量+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.js | 27 | ✅ 通过 |
| 合计 | 27 | ✅ 全部通过 |
测试要点
- 实体CRUD和类型索引构建验证
- 关系创建、方向性和权重处理
- 类型过滤查询和属性匹配查询性能
- 多跳BFS/DFS遍历和路径发现正确性
- GraphRAG融合搜索(子图提取+向量检索)
- 批量导入/导出数据完整性
- 图谱统计信息准确性(密度、度分布)
