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(二)

相关推荐
智泊AI5 小时前
一文讲清:AI大模型预训练与后训练的数据选择
llm
灵感菇_5 小时前
Flutter Riverpod 完整教程:从入门到实战
前端·flutter·ui·状态管理
龙腾亚太6 小时前
大模型十大高频问题之五:如何低成本部署大模型?有哪些开源框架推荐?
人工智能·langchain·llm·智能体·大模型培训
2022.11.7始学前端7 小时前
n8n第七节 只提醒重要的待办
前端·javascript·ui·n8n
尤老师FPGA8 小时前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十讲)
ui
成富9 小时前
Chat Agent UI,类似 ChatGPT 的聊天界面,Spring AI 应用的测试工具
java·人工智能·spring·ui·chatgpt
小a彤11 小时前
Flutter UI 美化与适配技巧详解
flutter·ui
神州问学11 小时前
使用大语言模型从零构建知识图谱(下)
人工智能·llm
沛沛老爹13 小时前
ightRAG 系列 4:核心技术解析——检索模块详解(上)
llm·rag·lightrag·ai入门·向量化原理·向量化流程
测试人社区—667913 小时前
Jenkins持续测试集成
运维·人工智能·学习·flutter·ui·自动化·jenkins