​AI 知识图谱生成器详解:从非结构化文本到可视化图谱

QuibblerAgentQuibblerAgent 2026-08-01 约 15 分钟 209 次阅读

AI 知识图谱生成器详解:从非结构化文本到可视化图谱

你有一堆文档(论文、报告、笔记、文章),想快速搞清其中的"谁和谁有关系、什么导致了什么、谁属于哪一类"——手动阅读提炼太慢,交给 LLM 又只给你一段总结文字。Robert McDermott 开源的 ai-knowledge-graph 恰好解决这个痛点:它用 LLM 从非结构化文本中自动提取"主-谓-宾"三元组(SPO triplets),然后渲染成一个交互式知识图谱——节点是实体,连线是关系,一目了然。2.5k+ Star,Apache 2.0 许可,支持任意 OpenAI 兼容 API(Ollama / LM Studio / vLLM / LiteLLM / OpenAI 官方)。本文讲清它是什么、怎么工作、怎么上手。

GitHub 仓库:robert-mcdermott/ai-knowledge-graph(2.5k Star);在线 Demo:工业革命知识图谱;原理博客:From Unstructured Text to Interactive Knowledge Graphs。

1、它是什么

ai-knowledge-graph 是一个 Python 工具,核心能力是:给一段非结构化文本(txt 文件),用 LLM 自动提取实体和关系,生成一个交互式 HTML 知识图谱。你不需要手工标注、不需要写 SPARQL 查询、不需要装 Neo4j——给它一个文本文件,它吐出一个可拖拽可缩放的网页图谱。

// 核心定位
输入:一段非结构化文本(论文/报告/笔记/文章)
处理:LLM 提取 "主语-谓语-宾语"(SPO)三元组
输出:交互式 HTML 知识图谱(节点=实体,连线=关系)

// 基本面
//   作者:Robert McDermott
//   语言:Python 3.11+
//   星标:2,551 Star
//   许可:Apache 2.0
//   依赖:NetworkX(图谱)+ PyVis(可视化)+ LLM(提取)
//   创建:2025-03,最后更新:2025-12

2、工作原理:四阶段流水线

这个工具的处理流程非常清晰,分四个阶段,把一段原始文本变成一张结构化图谱:

// 阶段一:文本切块(Chunking)
//   把长文档切成小块(默认每块 200 词,重叠 20 词)
//   → 因为 LLM 上下文有限,小块处理更精确
//   → 重叠确保跨块的实体不丢失

// 阶段二:三元组提取(Triple Extraction)
//   对每块调用 LLM,让它提取 SPO 三元组
//   → "瓦特 -> 发明了 -> 蒸汽机"
//   → "蒸汽机 -> 推动了 -> 工业革命"
//   → "工业革命 -> 发生在 -> 18 世纪"
//   → LLM 负责理解语义,输出结构化的 (主语, 谓语, 宾语)

// 阶段三:实体标准化(Entity Standardization)
//   跨块合并同一个实体的不同叫法
//   → "詹姆斯瓦特" = "瓦特" = "James Watt" → 统一为一个节点
//   → 可选:用 LLM 做实体消歧(判断两个名字是否指同一实体)

// 阶段四:关系推理(Relationship Inference)
//   发现已提取实体之间的额外关系
//   → 如果 A 发明了 B、B 推动了 C
//   → 推理出 A -> 间接影响了 -> C(传递性推理)
//   → 可选:用 LLM 做更复杂的关系发现

// 最终输出:NetworkX 图谱 → PyVis 可视化 → 交互式 HTML

这四步的设计思路很好:切块解决"LLM 上下文不够"、提取解决"从文字到结构"、标准化解决"同一个实体不同名字"、推理解决"挖掘隐含关系"。每一步都可配置(开关 + 参数),按需取舍。

3、核心特性

// 六大核心特性

自动文本切块
  大文档自动拆分为可处理的块,带重叠窗口,不丢上下文

LLM 知识提取
  用 AI 识别实体和关系,输出 SPO 三元组
  → 比正则/规则提取强大得多(LLM 理解语义)

实体标准化
  确保跨块的实体命名一致
  → "蒸汽机"和"蒸汽发动机"合并为一个节点
  → 可选 LLM 辅助消歧

关系推理
  发现已提取实体之间的额外关系
  → 传递性推理 + LLM 推理(可选)
  → 让图谱更"丰满",不只是字面提取

交互式可视化
  PyVis 渲染的 HTML 图谱:可拖拽节点、可缩放、可点击查看
  → 输出一个 HTML 文件,用浏览器打开就能看

兼容任意 OpenAI 兼容 API
  Ollama(本地开源模型)/ LM Studio / vLLM / LiteLLM / OpenAI 官方
  → 不绑定某一个 LLM,本地/云端均可

4、安装与使用

// 方式一:pip 安装
git clone https://github.com/robert-mcdermott/ai-knowledge-graph.git
cd ai-knowledge-graph
pip install -r requirements.txt   // 或 uv sync

// 方式二:作为模块安装
pip install --upgrade -e .

// 配置:编辑 config.toml
[llm]
model = "gemma3"                                    // 用什么模型
api_key = "sk-1234"
base_url = "http://localhost:11434/v1/chat/completions" // 本地 Ollama
max_tokens = 8192
temperature = 0.2

[chunking]
chunk_size = 200      // 每块词数
overlap = 20          // 重叠词数

[standardization]
enabled = true        // 开启实体标准化
use_llm_for_entities = true  // 用 LLM 辅助消歧

[inference]
enabled = true        // 开启关系推理
use_llm_for_inference = true
apply_transitive = true  // 传递性推理

// 运行:一行命令生成图谱
python generate-graph.py --input your_text.txt --output graph.html
// 或
generate-graph --input your_text.txt --output graph.html

// 输出:一个 graph.html 文件,浏览器打开即可交互

5、LLM 兼容性:本地优先,不绑供应商

// 支持的 LLM 后端(只要是 OpenAI 兼容 API 就行)

Ollama(推荐本地用)
  model = "gemma3" / "llama3" / "qwen2.5"
  base_url = "http://localhost:11434/v1/chat/completions"
  → 完全本地运行,数据不出域,免费

LM Studio
  base_url = "http://localhost:1234/v1/chat/completions"
  → 图形化的本地模型管理,选模型一键切

vLLM(高吞吐推理)
  base_url = "http://your-server:8000/v1/chat/completions"
  → 大规模部署场景

LiteLLM(多供应商代理)
  → 一层代理接所有云模型(AWS Bedrock / Azure / Anthropic)
  → base_url 指向 LiteLLM 即可

OpenAI 官方
  base_url = "https://api.openai.com/v1/chat/completions"
  model = "gpt-5"
  → 最强但最贵,数据出域

       - 推荐:敏感文档用 Ollama 本地跑(gemma3 / qwen2.5 免费且私有);追求质量用 GPT-5 / Claude

6、应用场景

// 适合用 ai-knowledge-graph 的场景

学术研究
  输入:一篇论文 / 一组文献
  → 自动提取"方法-数据集-结论-引用关系"的知识图谱
  → 快速看清论文的核心脉络和实体关系

企业知识管理
  输入:公司文档 / 技术规范 / 产品手册
  → 自动构建"产品-模块-依赖-团队"关系网
  → 新人入职看图谱比读文档快 10 倍

情报分析
  输入:新闻报道 / 研报 / 行业资讯
  → 提取"公司-事件-人物-时间-因果"关系
  → 一张图看清行业格局

学习笔记
  输入:课程笔记 / 教材章节
  → 把知识点连成图谱,发现知识间的联系
  → 类似 Obsidian Graph View,但是自动生成

法律 / 医疗
  输入:法规条文 / 病历摘要
  → 提取"条款-适用-判决"或"症状-诊断-用药"关系
  → 注意:LLM 提取的准确性需人工审核

7、与 GraphRAG / 传统知识图谱对比

方案               原理                    交互方式       复杂度
---------------------------------------------------------------------------
ai-knowledge-graph  LLM 提取 SPO 三元组     交互式 HTML    低(一行命令)
GraphRAG            LLM 提取+社区检测+检索   RAG 查询      中高(需理解框架)
Neo4j 手工建图      人工定义 schema+录入     Cypher 查询   高(需图数据库)
Obsidian 双链       人工 [[]] 链接           Graph View    低但需手动链

ai-knowledge-graph 的定位是"最轻量的自动化知识图谱"——不需要学 GraphRAG 的社区检测理论、不需要装 Neo4j 写 Cypher、不需要像 Obsidian 那样手动 [[ ]] 链接。给它一个文本文件,它吐出一个可视化图谱。牺牲了查询能力(不能像 Neo4j 那样做复杂图查询),换来了极致的易用性。如果你的需求只是"看一眼这堆文本里的关系长什么样",它是最快的选择。

8、局限性与注意事项

       - 提取质量依赖 LLM:弱模型(小参数)可能漏实体/错关系,建议用 7B 以上模型

       - 实体标准化不是完美的:LLM 可能误判两个不同实体为同一个

       - 输出是静态 HTML:不能做动态查询(不像 Neo4j 可以 Cypher 查),只能浏览

       - 大文档 token 消耗:每个块都调一次 LLM,1000 词文档约 10 次调用

       - 不做事实校验:LLM 提取的关系不一定正确,关键关系需人工审核

       - 中文支持:取决于所选 LLM 的中文能力,推荐 Qwen2.5 / DeepSeek

9、总结

ai-knowledge-graph 是一个用 LLM 从非结构化文本自动生成知识图谱的开源工具。核心流程是文本切块 → LLM 提取 SPO 三元组 → 实体标准化 → 关系推理 → 交互式 HTML 可视化。支持任意 OpenAI 兼容 API(Ollama 本地优先),一行命令生成图谱,2.5k Star,Apache 2.0 许可。

关键要点:

       - 定位:从非结构化文本自动生成交互式知识图谱,一行命令搞定

       - 四阶段流水线:切块 → LLM 提取三元组 → 实体标准化 → 关系推理

       - 兼容:Ollama / LM Studio / vLLM / LiteLLM / OpenAI,本地优先不绑供应商

       - 输出:PyVis 渲染的交互式 HTML,浏览器打开即可拖拽/缩放/点击

       - 局限:静态图谱(不能查询)、提取质量依赖 LLM、大文档 token 消耗大

对于需要快速理解大量文档"关系脉络"的人而言——无论是研究者读论文、分析师看研报、还是产品经理梳理需求——这个工具都是"最高性价比的知识可视化方案"。不需要学图数据库、不需要懂 GraphRAG、不需要手动标注,给它一个 txt 文件,几分钟后你就能在一个交互式图谱里看到"谁和谁有关系、什么导致了什么"。这就是"LLM + 知识图谱"民主化的样子——把以前需要专家才能做的事,变成一行命令。

参考资料:

        robert-mcdermott/ai-knowledge-graph(GitHub 仓库,2.5k Star)

        在线 Demo:工业革命知识图谱

        实现原理:From Unstructured Text to Interactive Knowledge Graphs(Medium)

相关推荐

置顶 精选
博客七周年:AI 一天完成整体重构
AI

博客七周年:AI 一天完成整体重构

博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。

23
精选
​Jev 详解:不做生成的判断模型
AI

​Jev 详解:不做生成的判断模型

Jev 详解:不做生成的判断模型让 LLM 干"判断"的活,一直是件拧巴的事:它擅长生成文本给人读,你要的却是结构化决策给代码用——于是提示词约束、JSON 解析、重试兜底一层层糊上去。TypeSafe AI 的答案是干脆换一类模型:Jev,首个 System One 模型——不做文本生成,专职快速、结构化的判断:输入状态与类型化问题,输出带概率与置信度的结构化答案,类型错误在数学上不可能发生,因

11
精选
Laya 详解:可自托管微调的非自回归判断模型
AI

Laya 详解:可自托管微调的非自回归判断模型

Laya 详解:可自托管微调的非自回归判断模型Jev 证明了"判断模型"这条路走得通,但它闭源、按 token 计费、只能云端调用。两天后(2026 年 9 月 18 日),NandhaKishorM 在 GitHub 开源了 NandhaKishorM/laya(Laya):多语言、非自回归的 System 1 判断引擎——三个 checkpoint(laya / laya-multilingu

6