GraphRAG-Local-UI - 基于 GraphRAG 支持本地的聊天UI

文章目录


一、关于 GraphRAG-Local-UI 🕸️

GraphRAG-Local-UI,是带有索引/提示-调整和查询/聊天UI!该项目是微软GraphRAG的改编,专为支持本地模型而定制,并具有全面的交互式用户交互界面生态系统。


特点🌟

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

🗺️路线图


重要提示:由于日常工作和缺乏即时时间,更新一直很慢,但我保证我会尽可能在后台处理错误/问题。如果您想提供帮助并找到解决问题的好方法,请随时贡献/创建公关。

GraphRAG本地用户界面生态系统目前正在经历重大转变。虽然主要应用程序仍然有效,但我正在积极开发用于索引/提示调整和查询/聊天的单独应用程序,所有这些都是围绕强大的中央应用程序接口构建的。用户应该预料到在此过渡期间会有一些变化和潜在的不稳定性。

虽然它目前可以使用,但它仅在Mac Studio M2上进行了主要测试。

我对GraphRAG本地UI生态系统的愿景是成为使用GraphRAG和本地LLM的终极工具集,尽可能多地结合很酷的功能和知识图谱工具。我一直致力于改进和新功能。


最近更新

  • 新的以API为中心的架构(api.py)
  • 专用索引和提示调整UI(index_app.py)
  • 改进的文件管理和输出探索
  • 长时间运行操作的后台任务处理
  • 通过环境变量和YAML文件增强配置选项

即将推出的功能

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

我致力于使GraphRAG本地用户界面生态系统成为使用知识图和LLM的最全面和用户友好的工具集。在塑造这个项目的未来时,非常需要您的反馈和建议。

如果您遇到错误,请随时打开问题,我会尽快解决它,以尽量减少您可能遇到的任何停机时间。


二、📦安装和设置

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

1、创建并激活一个新的conda环境:

python 复制代码
conda create -n graphrag-local -y
conda activate graphrag-local

2、安装所需的包:

首先从此存储库安装GraphRAG目录(Microsoft存储库中不存在更改):

shell 复制代码
pip install -e ./graphrag

然后安装其余的依赖项:

shell 复制代码
pip install -r requirements.txt

3、启动API服务器:

shell 复制代码
python api.py --host 0.0.0.0 --port 8012 --reload

4、如果使用Ollama进行嵌入,请启动嵌入代理:

shell 复制代码
python embedding_proxy.py --port 11435 --host http://localhost:11434

注意:有关将Ollama嵌入与GraphRAG一起使用的详细说明,请参阅EMBEDDING_PROXY_README.md文件。


5、启动索引和提示调整UI:

python 复制代码
gradio index_app.py

6、启动主交互式UI(旧版应用程序):

python 复制代码
gradio app.py

或者

shell 复制代码
python app.py

7、访问UI:

  • 索引和提示调整UI:打开Web浏览器并导航到http://localhost:7861
  • 主UI(旧版):打开Web浏览器并导航到http://localhost:7860


三、使用入门🚀

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


1、创建索引目录

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

python 复制代码
mkdir -p ./indexing/input

该目录将存储:

  • 输入.txt文件进行索引
  • 输出结果
  • 提示及时调整

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

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

python 复制代码
cp input/* ./indexing/input

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


3、初始化索引文件夹

运行以下命令以使用所需文件初始化./index 文件夹:

python 复制代码
python -m graphrag.index --init --root ./indexing

4、配置设置

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

python 复制代码
mv settings.yaml ./indexing

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


5、定制

您可以通过修改以下环境变量来自定义设置:

  • ROOT_DIR:指向您的主索引目录
  • INPUT_DIR:指定输入文件的位置

四、GraphRAG应用生态系统 🖥️

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


1、核心API(api.py

api.py文件作为GraphRAG系统的主干,提供了一个强大的基于FastAPI的服务器来处理所有核心操作。

主要特点:

  • 管理索引和提示调整过程
  • 处理各种查询类型(本地、全局和直接聊天)
  • 与本地LLM和嵌入模型集成
  • 为文件管理和系统配置提供端点

用法:

python 复制代码
python api.py --host 0.0.0.0 --port 8012 --reload

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


2、索引和提示调整UI(index_app.py


工作流集成

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

这种模块化方法为GraphRAG系统提供了更大的灵活性和更容易的维护。随着开发的继续,app.py的功能将逐渐集成到与核心应用编程接**互的新的专用接口中。


2、索引和提示调整UI(index_app.py

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

主要特点:

  • 配置和运行索引任务
  • 设置并执行提示调整
  • 管理输入文件并探索输出数据
  • 调整LLM和嵌入设置

用法:

python 复制代码
python index_app.py

访问UI:http://localhost:7861


3、Main Interactive UI (Legacy App) (app.py)

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

主要特点:

  • 以2D或3D形式可视化知识图
  • 运行查询并查看结果
  • 管理GraphRAG设置
  • 探索索引数据

用法:

python 复制代码
python app.py

或者

python 复制代码
gradio app.py

http://localhost:7860


工作流集成

  1. 启动Core API(api.py)以启用后端功能。
  2. 使用索引和提示调整UI(index_app.py)准备数据并微调系统。
  3. (可选)使用主交互式UI(app.py)进行可视化和遗留功能。

这种模块化方法为GraphRAG系统提供了更大的灵活性和更容易的维护。随着开发的继续,app.py的功能将逐渐集成到与核心应用编程接**互的新的专用接口中。


五、其它


📚引用


故障排除

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

对于任何问题或功能请求,请在GitHub存储库上打开一个问题。快乐的知识图表!


2024-09-04 -- 09-24(二)

相关推荐
大霞上仙2 小时前
element ui table 每行不同状态
vue.js·ui·elementui
不爱说话郭德纲3 小时前
探索LLM前沿,共话科技未来
人工智能·算法·llm
AI_小站5 小时前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag
我爱学Python!9 小时前
解决复杂查询难题:如何通过 Self-querying Prompting 提高 RAG 系统效率?
人工智能·程序人生·自然语言处理·大模型·llm·大语言模型·rag
栈老师不回家10 小时前
Element UI 组件库详解【Vue】
前端·vue.js·ui
郭梧悠13 小时前
HarmonyOS(57) UI性能优化
ui·性能优化·harmonyos
wyh要好好学习1 天前
WPF数据加载时添加进度条
ui·wpf
code_shenbing1 天前
跨平台WPF框架Avalonia教程 三
前端·microsoft·ui·c#·wpf·跨平台·界面设计
任某某01161 天前
第四期书生大模型实战营 - 基础岛闯关作业3 - 浦语提示词工程实践
llm
vvw&1 天前
如何使用 Docker Compose 安装 WireGuard UI
linux·服务器·ui·docker·容器·wireguard·异地组网