一、这是什么工具
AI Knowledge Graph 是一个 AI 驱动的知识图谱生成器,由开发者 robert-mcdermott 创建,Apache-2.0 协议,GitHub 2,847 星。
它的核心思路很直接:把任意非结构化文本文档喂给它,自动提取实体和关系,生成一幅可交互的知识图谱。整个过程不需要写代码,只需要一个文本文件 + 一个配置文件。
项目地址
github.com/robert-mcdermott/ai-knowledge-graph · Apache-2.0 · Python 3.11+
二、核心能力
自动将大文档拆分为可管理的片段(可配置 chunk_size 和 overlap),避免单次请求过长导致 LLM 输出质量下降。
使用 LLM 识别文本中的实体及其关系,以 Subject-Predicate-Object(SPO)三元组 形式结构化存储。
可选开启 LLM 实体对齐,确保同一实体在不同文本片段中出现时命名一致(如"OpenAI"和"openai"合并)。
发现图中不相连部分之间的隐藏关系,支持传递推理和词法相似度推理,补全知识图谱的"隐形连接"。
支持 Ollama、LM Studio、OpenAI、vLLM、LiteLLM 等任意 OpenAI 兼容 API,可本地部署也可用云端模型。
三、处理流程四阶段
整个管道分为四个阶段,逐步将纯文本转化为交互式图谱:
| 阶段 | 功能 | 关键操作 |
|---|---|---|
| 一:三元组提取 | 文本分块 → LLM 提取 | 按 chunk_size 拆分,逐块请求 LLM 输出 SPO 三元组 JSON |
| 二:实体标准化 | 文本规范化 → LLM 对齐 | 可选步骤,合并同义实体,统一命名 |
| 三:关系推理 | 社区检测 → 推理 → 去重 | 识别不相连社区,跨社区推理新关系,传递闭包,词法相似度补全 |
| 四:可视化 | 中心性计算 → 社区着色 → 渲染 | NetworkX 计算度/介数/特征向量中心性,Louvain 社区检测,PyVis 生成交互式 HTML |
四、安装与使用
环境要求:Python 3.11+,推荐使用 uv 管理依赖。
方式一:直接运行(推荐)
# 1. 克隆仓库 git clone https://github.com/robert-mcdermott/ai-knowledge-graph cd ai-knowledge-graph # 2. 安装依赖 uv sync # 或: pip install -r requirements.txt # 3. 编辑 config.toml,配置 LLM 后端 # 4. 运行 uv run generate-graph.py --input your_document.txt --output knowledge_graph.html
方式二:作为模块安装
# 安装为系统模块 pip install --upgrade -e . # 之后可直接调用 generate-graph 命令 generate-graph --input your_document.txt --output knowledge_graph.html
命令行参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--input FILE | 输入文本文件路径(必需) | — |
--output FILE | 输出 HTML 文件路径 | knowledge_graph.html |
--config FILE | 配置文件路径 | config.toml |
--debug | 启用调试输出(显示原始 LLM 响应) | 关闭 |
--no-standardize | 跳过实体标准化步骤 | 启用 |
--no-inference | 跳过关系推理步骤 | 启用 |
--test | 使用测试数据生成示例可视化 | 关闭 |
快速测试
运行 uv run generate-graph.py --test 即可在不写任何配置的情况下看到示例图谱输出,适合验证环境是否正常工作。
五、配置详解
核心配置文件是根目录的 config.toml,以下是完整示例:
# LLM 配置 [llm] model = "gemma3" api_key = "sk-1234" base_url = "http://localhost:11434/v1/chat/completions" max_tokens = 8192 temperature = 0.2 # 文本分块 [chunking] chunk_size = 200 # 每块单词数 overlap = 20 # 块间重叠单词数 # 实体标准化 [standardization] enabled = true use_llm_for_entities = true # 关系推理 [inference] enabled = true use_llm_for_inference = true apply_transitive = true
建议:第一次使用先用 Ollama 本地模型(免费、隐私),确认效果后再切换到云端 API。
六、可视化特性
输出是一个自包含的 HTML 文件,在浏览器中直接打开即可交互:
- 社区着色:节点按 Louvain 社区检测结果着色,同色节点天然聚为一类。
- 节点大小:由度中心性、介数中心性、特征向量中心性综合决定,重要实体节点更大。
- 关系线型:原始提取的关系用实线,推理补全的关系用虚线,一眼区分知识来源。
- 交互操作:支持缩放、平移、悬停查看详情、过滤节点、控制物理模拟。
- 双主题:默认浅色主题,也支持深色模式切换。
输出的 HTML 是单文件、离线可用,适合存入个人知识库或分享给团队成员查看。
七、适用场景
| 场景 | 输入 | 输出价值 |
|---|---|---|
| 📚 个人知识管理 | 读书笔记、笔记文档 | 将碎片化笔记转化为结构化知识图谱,一目了然 |
| 🏢 企业知识库 | 产品文档、技术手册 | 快速梳理产品功能关系,辅助新人 onboarding |
| 🔬 学术研究 | 论文、文献综述 | 提取研究实体和关系,发现研究空白 |
| 🎮 游戏/世界观设定 | 小说、设定文档 | 角色、地点、事件关系可视化 |
| 🛠️ 代码项目分析 | README、API 文档 | 模块依赖关系图谱,理解项目架构 |
八、总结
AI Knowledge Graph 是一个把"读文档"变成"看图谱"的实用工具。它的价值不在于算法有多前沿,而在于把一整套流程(分块→提取→标准化→推理→可视化)封装成了几行命令,让普通人也能快速上手。
- 优点:Apache-2.0 开源、支持本地 Ollama(零 API 成本)、输出单文件 HTML 离线可用、流程四阶段完整可控。
- 注意点:依赖 LLM 调用,大文档可能较慢;实体标准化和关系推理需要开启才能发挥最大效果,建议先用
--test验证环境。
适合一人公司的知识管理需求——把散落的笔记、文档、研究资料一次性变成可浏览的知识网络。