这份详细的部署教程将指引您安装和使用 AI Knowledge Graph Generator一个能将非结构化文本文档自动转化为交互式知识图谱的 AI 工具。

该工具的核心价值在于自动化:它利用大语言模型从文本中提取实体(如人物、概念)及其关系(以“主体-谓词-客体”三元组形式),然后通过标准化和关系推理,最终生成一个可交互的 HTML 可视化图谱,帮助您直观理解复杂主题的内在联系。

整个部署流程非常直接。主要步骤包括:配置环境、设置 LLM 接口、运行处理脚本。

📥 安装与配置

1. 环境要求

  • Python 3.11 或更高版本
  • 建议使用 uv (快速的 Python 包管理器) 或 pip 来管理依赖。

2. 克隆与安装

1
2
3
4
5
6
7
8
9
# 克隆仓库
git clone https://github.com/robert-mcdermott/ai-knowledge-graph.git
cd ai-knowledge-graph

# 使用 pip 安装依赖
pip install -r requirements.txt

# 或者,如果你有 uv,可以运行 (推荐,速度更快)
uv sync

安装完成后,你也可以将项目作为模块安装,方便在任何地方运行命令:

1
pip install --upgrade -e .

3. 核心配置:config.toml

这是最重要的步骤。你需要编辑项目根目录下的 config.toml 文件,告诉工具如何连接到你选择的 LLM 服务。

  • 关键配置项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [llm]
    # 替换为你要用的模型名称
    model = "qwen2.5:7b"

    # 你的 API 密钥 (如果本地 Ollama/LM Studio 不需要,可留空或填 "sk-1234")
    api_key = "sk-1234"

    # 重要的:指向你的 LLM 服务端地址
    # 例如 Ollama 本地服务:
    base_url = "http://localhost:11434/v1/chat/completions"
    # 如果你是 OpenAI:
    # base_url = "https://api.openai.com/v1/chat/completions"

    max_tokens = 8192
    temperature = 0.2
  • 其他配置

    • [chunking]: 控制文本分块大小 (chunk_size) 和重叠字数 (overlap),以适配 LLM 上下文窗口。
    • [standardization][inference]: 控制是否启用实体标准化和关系推理。这两步会消耗额外 Token,但能显著提升图谱质量,建议保持启用 (enabled = true)。

🚀 运行知识图谱生成

配置完成后,使用命令行工具处理你的文本文件。

基本命令

1
2
3
4
5
6
7
8
# 直接运行脚本
python generate-graph.py --input 你的文本文件.txt --output 输出图谱.html

# 或者使用 uv
uv run generate-graph.py --input 你的文本文件.txt --output 输出图谱.html

# 如果已安装为模块,可以更简洁
generate-graph --input 你的文本文件.txt --output 输出图谱.html

常用选项

  • --input FILE:指定输入文本文件 (必需)。
  • --output FILE:指定输出的 HTML 文件名 (默认 knowledge_graph.html)。
  • --config FILE:指定配置文件路径 (默认 config.toml)。
  • --debug:输出详细的 LLM 响应和中间 JSON,用于调试。
  • --no-standardize:跳过实体标准化步骤。
  • --no-inference:跳过关系推理步骤。
  • --test:使用内置示例数据生成图谱,用于测试环境。

示例

1
generate-graph --input data/my_document.txt --output my_knowledge_graph.html

🧠 工作原理(简要)

  1. 文本分块:将长文档切分成有重叠的短块,适应 LLM 的上下文限制。
  2. 三元组提取:对每一块文本,调用 LLM 提取其中所有的 (主体, 关系, 客体) 三元组。
  3. 实体标准化 (可选):识别并统一指代同一实体的不同名称(如 “AI”, “人工智能”)。
  4. 关系推理 (可选):分析现有图谱,利用规则和 LLM 补充实体间可能存在的隐含关系。
  5. 可视化:使用 PyVis 库生成交互式 HTML 文件。节点大小和颜色分别代表重要性和所属社区(聚类)。

📊 解读可视化图谱

生成后,在浏览器中打开 HTML 文件,你可以:

  • 拖拽/缩放:自由探索图谱。
  • 悬停查看:查看实体名称和关系详情。
  • 筛选与搜索:高亮特定节点或关系。
  • 颜色区分:不同颜色代表算法检测出的不同主题社区。

⚠️ 注意事项

  • API 成本:处理大型文档时,LLM 调用会消耗较多 Token,请留意你的 API 用量。使用本地模型(如 Ollama)可避免此问题。
  • 质量依赖:最终图谱的质量高度依赖于所选 LLM 的文本理解能力和文档本身的清晰度。