欢迎使用 GraphRAG 本地版(含索引/提示词调优与查询/聊天界面)!本项目是微软 GraphRAG 的适配版本,旨在支持本地模型,并提供一个全面的交互式用户界面生态系统。
有关原始 GraphRAG 实现的更多细节,请参阅 GraphRAG 论文。
api.py),作为 GraphRAG 操作的核心。index_app.py),用于管理索引和提示词调优过程。
GraphRAG 本地版 UI 生态系统目前正在经历重大转型。虽然主应用仍然可用,但我正在积极开发用于索引/提示词调优和查询/聊天的独立应用,它们都围绕一个健壮的核心 API 构建。在此过渡期间,用户应预期会有一些变化和潜在的不稳定性。
虽然它目前功能正常,但主要仅在 Mac Studio M2 上进行过测试。
我对 GraphRAG 本地版 UI 生态系统的愿景是成为使用 GraphRAG 和本地 LLM 的终极工具集,尽可能整合许多酷炫的功能和知识图谱工具。我正在持续改进和添加新功能。
api.py)index_app.py)我致力于使 GraphRAG 本地版 UI 生态系统成为处理知识图谱和 LLM 最全面、最用户友好的工具集。您的反馈和建议对于塑造本项目的未来至关重要。
如果您遇到错误,请随时提交 Issue,我将尽快处理,以尽量减少您可能遇到的停机时间。
按照以下步骤设置并运行 GraphRAG 本地版 UI 生态系统:
创建并激活一个新的 conda 环境:
bash
conda create -n graphrag-local -y
conda activate graphrag-local
安装所需的包:
首先从此仓库安装 GraphRAG 目录(包含微软仓库中尚未存在的更改):
bash
pip install -e ./graphrag
然后安装其余依赖项:
bash
pip install -r requirements.txt
启动 API 服务器:
bash
python api.py --host 0.0.0.0 --port 8012 --reload
如果使用 Ollama 进行嵌入,请启动嵌入代理:
bash
python embedding_proxy.py --port 11435 --host http://localhost:11434
注意:有关将 Ollama 嵌入与 GraphRAG 结合使用的详细说明,请参阅 EMBEDDING_PROXY_README.md 文件。
启动索引与提示词调优界面:
bash
gradio index_app.py
启动主交互式界面(旧版应用):
bash
gradio app.py
或
bash
python app.py
访问界面:
http://localhost:7861http://localhost:7860GraphRAG 设计灵活,允许您快速创建和初始化自己的索引目录。请按照以下步骤设置您的环境:
此仓库附带一个预制的索引文件夹,但您可能想创建自己的,步骤如下。首先,为您的输入数据和索引结果创建所需的目录结构:
mkdir -p ./indexing/input
此目录将存储:
- 用于索引的输入 .txt 文件
- 输出结果
- 用于提示词调优的提示词
如果想从示例数据开始,请将其复制到新的输入目录:
cp input/* ./indexing/input
您也可以将自己的 .txt 文件添加到此目录中进行索引。
运行以下命令,使用必需的文件初始化 ./indexing 文件夹:
python -m graphrag.index --init --root ./indexing
将预配置的 settings.yaml 文件移动到您的索引目录:
mv settings.yaml ./indexing
此文件包含主要配置,已预设为使用本地模型。
您可以通过修改以下环境变量来自定义设置:
- ROOT_DIR:指向您的主索引目录
- INPUT_DIR:指定输入文件的位置
有关更详细的信息和高级用法,请参阅 GraphRAG 官方文档。
GraphRAG 本地版 UI 生态系统由三个主要组件组成,每个组件在知识图谱创建和查询过程中都有特定用途:
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。
index_app.py)api.py) 以启用后端功能。embedding_proxy.py)。index_app.py) 准备数据并微调系统。app.py) 进行可视化和使用旧版功能。这种模块化方法为 GraphRAG 系统提供了更大的灵活性和更易于维护的特性。随着开发的继续,app.py 的功能将逐步集成到与核心 API 交互的新的专用界面中。
index_app.py)index_app.py 文件提供了一个用户友好的 Gradio 界面,用于管理索引和提示词调优过程。
主要功能:
- 配置和运行索引任务
- 设置和执行提示词调优
- 管理输入文件和探索输出数据
- 调整 LLM 和嵌入设置
用法:
python index_app.py
在 http://localhost:7861 访问该界面
app.py)app.py 文件是现有的主应用程序,目前正在逐步淘汰,但仍提供有用的功能。
主要功能:
- 以 2D 或 3D 方式可视化知识图谱
- 运行查询并查看结果
- 管理 GraphRAG 设置
- 探索已索引的数据
用法:
python app.py
或
gradio app.py
在 http://localhost:7860 访问该界面
api.py) 以启用后端功能。index_app.py) 准备数据并微调系统。app.py) 进行可视化和使用旧版功能。这种模块化方法为 GraphRAG 系统提供了更大的灵活性和更易于维护的特性。随着开发的继续,app.py 的功能将逐步集成到与核心 API 交互的新的专用界面中。
gradio app.py,请尝试运行 pip install --upgrade gradio,然后退出并启动一个新的终端。之后它应该能正常加载并作为 Gradio 应用启动。如有任何问题或功能请求,请在 GitHub 仓库中提交 Issue。祝您知识图谱构建愉快!