OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  GraphRAG Local — 面向本地知识图谱检索增强生成的实践项目

GraphRAG Local — 面向本地知识图谱检索增强生成的实践项目

 
  factor ·  2026-03-20 11:00:26 · 2 次点击  · 0 条评论  

🕸️ GraphRAG 本地版

欢迎使用 GraphRAG 本地版(含索引/提示词调优与查询/聊天界面)!本项目是微软 GraphRAG 的适配版本,旨在支持本地模型,并提供一个全面的交互式用户界面生态系统。

📄 研究论文

有关原始 GraphRAG 实现的更多细节,请参阅 GraphRAG 论文

🌟 功能特性

  • 以 API 为中心的架构: 一个基于 FastAPI 的健壮服务器 (api.py),作为 GraphRAG 操作的核心。
  • 专用的索引与提示词调优界面: 一个独立的基于 Gradio 的界面 (index_app.py),用于管理索引和提示词调优过程。
  • 本地模型支持: 利用本地模型进行 LLM 和嵌入,包括与 Ollama 和 OpenAI 兼容 API 的兼容性。
  • 成本效益高: 通过使用您自己的本地模型,消除对昂贵的云端模型的依赖。
  • 交互式界面: 用户友好的界面,用于管理数据、运行查询和可视化结果(主应用)。
  • 实时图可视化: 使用 Plotly 以 2D 或 3D 方式可视化您的知识图谱(主应用)。
  • 文件管理: 直接从界面上传、查看、编辑和删除输入文件。
  • 设置管理: 通过界面轻松更新和管理您的 GraphRAG 设置。
  • 输出探索: 浏览和查看索引输出及中间产物。
  • 日志记录: 实时日志记录,便于调试和监控。
  • 灵活查询: 支持全局、局部和直接聊天查询,参数可自定义(主应用)。
  • 可定制可视化: 调整图谱布局、节点大小、颜色等以满足您的偏好(主应用)。

GraphRAG UI

🗺️ 开发路线图

重要提示: 由于日常工作繁忙且缺乏即时时间,更新速度较慢,但我保证会在可能的情况下在后台处理错误/问题。如果您想提供帮助并为提出的问题找到出色的解决方案,请随时贡献/创建 PR。

GraphRAG 本地版 UI 生态系统目前正在经历重大转型。虽然主应用仍然可用,但我正在积极开发用于索引/提示词调优和查询/聊天的独立应用,它们都围绕一个健壮的核心 API 构建。在此过渡期间,用户应预期会有一些变化和潜在的不稳定性。

虽然它目前功能正常,但主要仅在 Mac Studio M2 上进行过测试。

我对 GraphRAG 本地版 UI 生态系统的愿景是成为使用 GraphRAG 和本地 LLM 的终极工具集,尽可能整合许多酷炫的功能和知识图谱工具。我正在持续改进和添加新功能。

近期更新

  • [x] 新的以 API 为中心的架构 (api.py)
  • [x] 专用的索引与提示词调优界面 (index_app.py)
  • [x] 改进的文件管理和输出探索
  • [x] 针对长时间运行操作的背景任务处理
  • [x] 通过环境变量和 YAML 文件增强配置选项

即将推出的功能

  • [ ] 与 API 交互的专用查询/聊天界面
  • [ ] 便于部署的 Dockerfile
  • [ ] 启动您自己的 GraphRAG API 服务器以供外部应用程序使用
  • [ ] 实验性:用于知识图谱索引/查询的智能体混合
  • [ ] 支持更多文件格式(CSV、PDF 等)
  • [ ] 网络搜索/抓取能力
  • [ ] 高级图谱分析工具
  • [ ] 与流行的知识管理工具集成
  • [ ] 面向团队知识图谱构建的协作功能

我致力于使 GraphRAG 本地版 UI 生态系统成为处理知识图谱和 LLM 最全面、最用户友好的工具集。您的反馈和建议对于塑造本项目的未来至关重要。

如果您遇到错误,请随时提交 Issue,我将尽快处理,以尽量减少您可能遇到的停机时间。


📦 安装与设置

按照以下步骤设置并运行 GraphRAG 本地版 UI 生态系统:

  1. 创建并激活一个新的 conda 环境:
    bash conda create -n graphrag-local -y conda activate graphrag-local

  2. 安装所需的包:

    首先从此仓库安装 GraphRAG 目录(包含微软仓库中尚未存在的更改):

    bash pip install -e ./graphrag

    然后安装其余依赖项:

    bash pip install -r requirements.txt

  3. 启动 API 服务器:
    bash python api.py --host 0.0.0.0 --port 8012 --reload

  4. 如果使用 Ollama 进行嵌入,请启动嵌入代理:
    bash python embedding_proxy.py --port 11435 --host http://localhost:11434
    注意:有关将 Ollama 嵌入与 GraphRAG 结合使用的详细说明,请参阅 EMBEDDING_PROXY_README.md 文件。

  5. 启动索引与提示词调优界面:
    bash gradio index_app.py

  6. 启动主交互式界面(旧版应用):
    bash gradio app.py

    bash python app.py

  7. 访问界面:

    • 索引与提示词调优界面:打开您的网络浏览器并导航至 http://localhost:7861
    • 主界面(旧版):打开您的网络浏览器并导航至 http://localhost:7860

🚀 GraphRAG 本地版快速入门

GraphRAG 设计灵活,允许您快速创建和初始化自己的索引目录。请按照以下步骤设置您的环境:

1. 创建索引目录

此仓库附带一个预制的索引文件夹,但您可能想创建自己的,步骤如下。首先,为您的输入数据和索引结果创建所需的目录结构:

mkdir -p ./indexing/input

此目录将存储:
- 用于索引的输入 .txt 文件
- 输出结果
- 用于提示词调优的提示词

2. 添加示例数据(可选)

如果想从示例数据开始,请将其复制到新的输入目录:

cp input/* ./indexing/input

您也可以将自己的 .txt 文件添加到此目录中进行索引。

3. 初始化索引文件夹

运行以下命令,使用必需的文件初始化 ./indexing 文件夹:

python -m graphrag.index --init --root ./indexing

4. 配置设置

将预配置的 settings.yaml 文件移动到您的索引目录:

mv settings.yaml ./indexing

此文件包含主要配置,已预设为使用本地模型。

5. 自定义

您可以通过修改以下环境变量来自定义设置:
- ROOT_DIR:指向您的主索引目录
- INPUT_DIR:指定输入文件的位置

📚 其他资源

有关更详细的信息和高级用法,请参阅 GraphRAG 官方文档


🖥️ GraphRAG 应用生态系统

GraphRAG 本地版 UI 生态系统由三个主要组件组成,每个组件在知识图谱创建和查询过程中都有特定用途:

1. 核心 API (api.py)

api.py 文件是 GraphRAG 系统的支柱,它提供了一个基于 FastAPI 的健壮服务器,处理所有核心操作。

主要功能:
- 管理索引和提示词调优过程
- 处理各种查询类型(局部、全局和直接聊天)
- 与本地 LLM 和嵌入模型集成
- 提供用于文件管理和系统配置的端点

用法:

python api.py --host 0.0.0.0 --port 8012 --reload

注意:如果使用 Ollama 进行嵌入,请确保同时运行嵌入代理 (embedding_proxy.py)。详细说明请参阅 EMBEDDING_PROXY_README.md。

2. 索引与提示词调优界面 (index_app.py)

工作流集成

  1. 启动核心 API (api.py) 以启用后端功能。
  2. 如果使用 Ollama 进行嵌入,请启动嵌入代理 (embedding_proxy.py)。
  3. 使用索引与提示词调优界面 (index_app.py) 准备数据并微调系统。
  4. (可选)使用主交互式界面 (app.py) 进行可视化和使用旧版功能。

这种模块化方法为 GraphRAG 系统提供了更大的灵活性和更易于维护的特性。随着开发的继续,app.py 的功能将逐步集成到与核心 API 交互的新的专用界面中。

2. 索引与提示词调优界面 (index_app.py)

index_app.py 文件提供了一个用户友好的 Gradio 界面,用于管理索引和提示词调优过程。

主要功能:
- 配置和运行索引任务
- 设置和执行提示词调优
- 管理输入文件和探索输出数据
- 调整 LLM 和嵌入设置

用法:

python index_app.py

http://localhost:7861 访问该界面

3. 主交互式界面(旧版应用)(app.py)

app.py 文件是现有的主应用程序,目前正在逐步淘汰,但仍提供有用的功能。

主要功能:
- 以 2D 或 3D 方式可视化知识图谱
- 运行查询并查看结果
- 管理 GraphRAG 设置
- 探索已索引的数据

用法:

python app.py

gradio app.py

http://localhost:7860 访问该界面

工作流集成

  1. 启动核心 API (api.py) 以启用后端功能。
  2. 使用索引与提示词调优界面 (index_app.py) 准备数据并微调系统。
  3. (可选)使用主交互式界面 (app.py) 进行可视化和使用旧版功能。

这种模块化方法为 GraphRAG 系统提供了更大的灵活性和更易于维护的特性。随着开发的继续,app.py 的功能将逐步集成到与核心 API 交互的新的专用界面中。


📚 引用

  • 微软的原始 GraphRAG 仓库:GraphRAG
  • 本项目借鉴并使用了 win4r 的 GraphRAG4OpenWebUI 仓库 (https://github.com/win4r/GraphRAG4OpenWebUI) 作为 API 实现的起点。

故障排除

  • 如果您在使用新的 API 或索引界面时遇到任何问题,请检查控制台日志以获取详细的错误信息。
  • 对于主应用,如果无法运行 gradio app.py,请尝试运行 pip install --upgrade gradio,然后退出并启动一个新的终端。之后它应该能正常加载并作为 Gradio 应用启动。
  • 在 Windows 上,如果遇到编码/UTF 错误,可以在 YAML 设置菜单中将其更改为正确的格式。

如有任何问题或功能请求,请在 GitHub 仓库中提交 Issue。祝您知识图谱构建愉快!

2 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 39 ms
Developed with Cursor