一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama) 原创

发布于 2024-11-25 10:06
浏览
0收藏

这周boss提了一个需求,希望能够直观感受一下GraphRAG的问答效果,希望我让团队的前端同事做一些基础的前端工作,包括PDF文件上传、流式输出、配置Global或Local查询方式等基本功能。

作为团队负责人,并非boss提的所有需求都不假思索直接安排人开发, 要分析本质需求是什么?这个需求的本质是只希望有一个UI界面能够试用一下GraphRAG。如果我让组里的前端开发这样的功能,大约需要两到三天的时间,而这些代码很可能在以后会被废弃。考虑到目前LLM的蓬勃发展,我首先想到的是寻找是否有类似的开源UI项目可以对接GraphRAG这样的底层RAG引擎。

通过在GitHub上的搜索,我发现了一个名为kotaemon的项目,在此,我将这个项目分享给大家。

简介

kotaemon是一个开源的干净且可定制的RAG UI,用于构建和定制自己的文档问答系统。既考虑了最终用户的需求,也考虑了开发者的需求。kotaemon为想要在他们的文档上进行问答(QA)的最终用户,以及想要构建自己的RAG流程的开发者提供了一个功能性的RAG UI。

特点

这款RAG UI提供了多种功能,满足了终端用户和开发人员的需求。你可以使用这个简洁的UI来帮助你完成多种任务,它也可以用于问答、互动式流水线定制等多种用途。现在让我们来看看Kotaemon的功能。

  1. 自托管文档问答(RAG)Web UI:允许用户自己托管文档问答界面。
  2. 支持多用户登录:可以组织私人或公共文件集合,支持协作和分享。
  3. 组织LLM和嵌入模型:支持本地LLM和流行的API提供商,如OpenAI、Azure、Ollama、Groq等。
  4. 混合RAG管道:提供混合(全文和向量)检索器和重新排名,以确保最佳的检索质量。
  5. 多模态问答支持:支持在包含图表和表格的多个文档上进行问答,并支持多模态文档解析。
  6. 高级引用与文档预览:系统默认提供详细的引用以确保LLM答案的正确性,可以在浏览器内的PDF查看器中查看引用(包括相关分数)并高亮显示。
  7. 支持复杂推理方法:使用问题分解来回答复杂或多跳问题,支持基于Agent的推理,如ReAct、ReWOO和其他代理。
  8. 可配置的设置UI:可以在UI上调整检索和生成过程中的大多数重要方面(包括提示)。
  9. 可扩展性:基于Gradio构建,用户可以自由定制或添加任何UI元素。同时,旨在支持多种文档索引和检索策略,提供了GraphRAG索引管道作为示例。

安装

目前,有两种方式可以访问Kotaemon,首先是通过Hugging Face Spaces,这使你能够利用这个演示来开始使用这个新的RAG UI。。另一种是在本地服务器安装,下面介绍本地服务器安装的两种方式:

With Docker (推荐)

docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-p 7860:7860 -it --rm \
ghcr.io/cinnamon/kotaemon:latest

使用 ​​http://localhost:7860/​​ 就可以访问UI界面,默认的账号和密码都是admin。我们部署使用的就是这种方式,当然,在部署的时候你可以将容器的.env映射出来,这样就方便修改openai key等配置了。 

Without Docker

  • clone项目并安装依赖

# optional (setup env)
conda create -n kotaemon python=3.10
conda activate kotaemon

# clone this repo
git clone https://github.com/Cinnamon/kotaemon
cd kotaemon

pip install -e "libs/kotaemon[all]"
pip install -e "libs/ktem"
  • 在.env中查看和编辑环境变量(API key等)。
  • (可选)要启用浏览器内PDF_JS查看器,请下载PDF_JS_DIST并将其解压到libs/ktem/ktem/assets/prebuilt

UI操作

Resources

Resources主要包含index(索引)、llm(大模型)、embedding(向量)、User等四个部分,简单使用的话只需要在Resources菜单栏的LLMs和Embeddings配置你使用的LLM,我使用的是openai, 修改对应的api_key和代理即可:

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区

Settings

"Settings"部分主要包含用户的配置选项,专注于两个方面:检索(retrieval)和推理(reasoning)。在这里,你可以根据需求设定自己的检索策略和推理框架。默认情况下,系统已启用混合检索并开启了rerank功能。至于推理配置,系统默认设定的是"simple"模式,但如果需要,您也可将其更改为"React"模式。

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区

Files

"Files"部分是用于上传文件的地方,可以被视为我们的知识库。在这里,“File Collection”用于上传服务于传统RAG模式的文件,而“GraphRAG Collection”则用于上传适用于GraphRAG模式的文件。

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区


Chat

在我们的聊天系统中,可以选择两种模式:传统的RAG和GraphRAG。首先,你需要配置好LLM和embedding。然后,在知识库中上传完文件后,你可以选择想要使用的模式以及希望进行聊天的文件。

一旦设置完成,就可以开始聊天了。在界面的最右边有一个名为“Information Panel”的区域,它会展示与你的对话相关的chunk信息或图谱信息。这样,你不仅可以享受到与系统的互动,还能同时获得相关的信息反馈。

注意目前kotaemon的GraphRAG只能选择单个文件进行聊天,选择多个文件会报错

一个开源、清晰的本地 Graph RAG UI,支持Graph RAG 和 Hybrid RAG(支持Ollama)-AI.x社区

总结

基本上,这就是Kotaemon,它是一个非常棒的开源RAG UI,允许你在其UI组件中实现传统RAG和Graph RAG。并且它还对GraphRAG支持了更多拓展,比如微软的GraphRAG只支持txt和csv的文件格式,但是Kotaemon支持的文件格式更丰富。并且对于传统RAG模式来说,使用了hybrid检索和rerank等常规的RAG优化策略,其问答效果还是不错的。



本文转载自公众号AI 博物院 作者:longyunfeigu

原文链接:​​https://mp.weixin.qq.com/s/iudzhmUyaxWH-XqorU5bDA​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐