用途
GraphRAG-Ollama-UI 旨在成为面向本地大语言模型的 GraphRAG/知识图谱应用工具集。它是微软 GraphRAG 的改编版本,针对本地模型进行了适配,并提供一整套交互式用户界面生态,用于索引、提示调优、查询与可视化等操作。
主要能力
- 以 API 为核心的架构:提供基于 FastAPI 的服务器(api.py),作为 GraphRAG 操作的核心。
- 独立的索引与提示调优界面:独立的基于 Gradio 的界面(index_app.py),用于管理索引与提示调优流程。
- 本地模型支持:LLM 与嵌入可使用本地模型,兼容 Ollama 和 OpenAI 兼容 API。
- 成本效益:通过使用自己的本地模型,消除对昂贵云端模型的依赖。
- 交互式界面:用于管理数据、运行查询和可视化结果的用户友好界面(主应用)。
- 实时图谱可视化:使用 Plotly 以 2D 或 3D 方式可视化知识图谱(主应用)。
- 文件管理:可直接在界面中上传、查看、编辑和删除输入文件。
- 设置管理:可通过界面轻松更新和管理 GraphRAG 设置。
- 输出浏览:可浏览和查看索引输出与产物。
- 日志记录:提供实时日志,便于调试与监控。
- 灵活查询:支持全局、局部和直接聊天查询,并可自定义参数(主应用)。
- 可定制可视化:可调整图布局、节点大小、颜色等(主应用)。
使用方式
安装与启动大致流程如下:
- 创建并激活 conda 环境:
conda create -n graphrag-local -y,conda activate graphrag-local。 - 安装依赖:先安装本仓库中的 GraphRAG 目录(包含微软仓库中不存在的改动):
pip install -e ./graphrag,再安装其余依赖:pip install -r requirements.txt。 - 启动 API 服务器:
python api.py --host 0.0.0.0 --port 8012 --reload。 - 若使用 Ollama 进行嵌入,启动嵌入代理:
python embedding_proxy.py --port 11435 --host http://localhost:11434(详见 EMBEDDING_PROXY_README.md)。 - 启动索引与提示调优界面:
gradio index_app.py。 - 启动主交互界面(旧版应用):
gradio app.py或python app.py。 - 访问界面:索引与提示调优界面为 http://localhost:7861;主界面(旧版)为 http://localhost:7860。
入门步骤还包括:创建索引目录、添加示例数据(可选)、初始化索引文件夹、移动预配置的 settings.yaml 到索引目录,以及通过环境变量 ROOT_DIR、INPUT_DIR 进行自定义。
应用生态
GraphRAG-Ollama-UI 生态由三个主要组件构成:
- 核心 API(api.py):FastAPI 服务器,管理索引与提示调优流程,处理局部、全局和直接聊天等查询类型,集成本地 LLM 与嵌入模型,并提供文件管理与系统配置端点。若使用 Ollama 嵌入,需同时运行嵌入代理。
- 索引与提示调优界面(index_app.py):Gradio 界面,用于配置和运行索引任务、设置并执行提示调优、管理输入文件与浏览输出数据、调整 LLM 与嵌入设置,访问地址 http://localhost:7861。
- 主交互界面(旧版应用,app.py):提供知识图谱的 2D/3D 可视化、运行查询并查看结果、管理 GraphRAG 设置、浏览已索引数据等功能,访问地址 http://localhost:7860。该应用正在被逐步淘汰,但仍保留有用功能。
适用场景
适用于希望在本地环境中使用大语言模型构建和查询知识图谱的用户,尤其是关注隐私、成本控制或离线部署的场景。适合进行索引构建、提示调优、知识图谱可视化与查询聊天等任务。
限制与说明
- 项目正处于架构过渡期,主应用仍可用,但正在开发独立的索引/提示调优与查询/聊天应用;过渡期间可能出现变化与不稳定。
- 目前主要仅在 Mac Studio M2 上测试过。
- 更新速度较慢,但作者承诺会在有时间时处理错误与问题。
- Windows 上若遇到编码/UTF 错误,可在 YAML 设置菜单中改为正确格式。
- 若
gradio app.py无法运行,可尝试pip install --upgrade gradio后重开终端。 - 计划中的功能包括:专用查询/聊天界面、Dockerfile、作为外部应用使用的 GraphRAG API 服务器、用于索引/查询知识图谱的混合代理(实验性)、更多文件格式支持(CSV、PDF 等)、网络搜索/抓取能力、高级图谱分析工具、与知识管理工具集成、团队协作功能等。这些功能尚未在资料中确认已实现。
参考
原始 GraphRAG 实现可参阅 GraphRAG 论文与官方文档。该项目受 win4r 的 GraphRAG4OpenWebUI 仓库启发,并以其作为 API 实现的起点。