当前位置: 首页 > news >正文

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

文章目录

    • 一、关于 GraphRAG-Local-UI 🕸️
      • 特点🌟
      • 🗺️路线图
      • 最近更新
      • 即将推出的功能
    • 二、📦安装和设置
    • 三、使用入门🚀
      • 1、创建索引目录
      • 2、添加示例数据(可选)
      • 3、初始化索引文件夹
      • 4、配置设置
      • 5、定制
    • 四、GraphRAG应用生态系统 🖥️
      • 1、核心API(`api.py`)
      • 2、索引和提示调整UI(`index_app.py`)
      • 2、索引和提示调整UI(`index_app.py`)
      • 3、Main Interactive UI (Legacy App) (`app.py`)
    • 五、其它
      • 📚引用
      • 故障排除


一、关于 GraphRAG-Local-UI 🕸️

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

  • github : https://github.com/severian42/GraphRAG-Local-UI (2410 1.6k star )
  • paper : https://arxiv.org/pdf/2404.16130
  • 官方文档:https://microsoft.github.io/graphrag/posts/get_started/。

特点🌟

  • 以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环境:

conda create -n graphrag-local -y
conda activate graphrag-local

2、安装所需的包:

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

pip install -e ./graphrag

然后安装其余的依赖项:

pip install -r requirements.txt

3、启动API服务器:

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

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

python embedding_proxy.py --port 11435 --host http://localhost:11434

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


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

gradio index_app.py

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

gradio app.py

或者

python app.py

7、访问UI:

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


三、使用入门🚀

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


1、创建索引目录

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

mkdir -p ./indexing/input

该目录将存储:

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

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

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

cp input/* ./indexing/input

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


3、初始化索引文件夹

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

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

4、配置设置

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

mv settings.yaml ./indexing

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


5、定制

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

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

四、GraphRAG应用生态系统 🖥️

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


1、核心API(api.py

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

主要特点:

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

用法:

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 index_app.py

访问UI:http://localhost:7861


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

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

主要特点:

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

用法:

python app.py

或者

gradio app.py

在 http://localhost:7860


工作流集成

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

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


五、其它


📚引用

  • 微软的原始GraphRAG存储库:GraphRAG
  • 这个项目获得了灵感,并使用win4r(https://github.com/win4r/GraphRAG4OpenWebUI)的GraphRAG4OpenWebUI存储库作为API实现的起点。

故障排除

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

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


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

http://www.lryc.cn/news/455432.html

相关文章:

  • Java 根据字符生成背景透明的图片
  • 树莓派3b安装ubuntu18.04服务器系统server配置网线连接
  • 【AIGC】2022-NIPS-视频扩散模型
  • 从零开始构建:Python自定义脚本自动化你的日常任务
  • 【python实操】python小程序之对象的属性操作
  • HCIP——网络类型及数据链路层协议
  • 数据结构——栈与队列的实现(全码)
  • MacOS编译和安装Poco库的方法
  • 医院管理新境界:Spring Boot技术突破
  • Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控
  • 渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解
  • stc8最小系统使用usb下载程序,关于断电的避坑
  • API 数据接口:使用操作流程与安全指南
  • elasticsearch 8.2 版本如何设置config/elasticsearch.yml
  • 华为 HCIP-Datacom H12-821 题库 (33)
  • 【网络篇】计算机网络——运输层详述(笔记)
  • 用java编写飞机大战
  • java Map中get方法爆错NullPointerException
  • ElasticSearch备考 -- Multi field
  • 刷题 图论
  • 基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜花商城信息管理、鲜花商城系统开发与应用、鲜花在线商城管理系统
  • 深圳大学-Java程序设计-选实验1 基础知识练习
  • 第 33 章 Ajax
  • LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码
  • C# 入坑JAVA 潜规则 注解 列表 listMch,该列表存储了一个映射(Map)的集合 等 入门系列3
  • 2024年9月个人工作生活总结
  • JVM有哪些参数以及如何使用
  • STM32编码器接口解析及抗噪声措施探讨
  • 微软发布Windows 11 2024更新,新型Copilot+ AI PC功能亮相
  • 鹏哥C语言68-70---位操作符+单目操作符+关系操作符