Kotaemon :一个开源的、干净且可定制的RAG用户界面,用于与您的文档进行聊天。为终端用户和开发人员设计。
简介
本项目为希望在文档上进行问答的终端用户和希望构建自己RAG流程的开发者提供了一个功能性的RAG用户界面。
对于终端用户:
•提供一个干净简约的RAG问答用户界面。
•支持LLM API提供商(如OpenAI、AzureOpenAI、Cohere等)和本地LLM(通过ollama
和llama-cpp-python
)。
•提供简单的安装脚本。
对于开发者:
•一个用于构建RAG文档问答流程的框架。 •使用提供的UI(基于Gradio构建)进行定制并查看您的RAG流程。
+----------------------------------------------------------------------------+
| 终端用户:使用 `kotaemon` 构建的应用程序的用户。|
| (您使用的应用程序类似于上面的演示) |
| +----------------------------------------------------------------+ |
| | 开发者:使用 `kotaemon` 构建应用程序的人员。| |
| | (您在项目中有 `import kotaemon`) | |
| | +----------------------------------------------------+ | |
| | | 贡献者:改进 `kotaemon` 的人员。 | | |
| | | (您向此仓库提交PR) | | |
| | +----------------------------------------------------+ | |
| +----------------------------------------------------------------+ |
+----------------------------------------------------------------------------+
此存储库正在积极开发中。我们非常欢迎反馈、问题和PR。
主要功能
1.自主托管您的文档问答(RAG)Web界面 。支持多用户登录,组织文件到私有/公共集合,协作并与他人分享您的聊天记录。
2.管理您的LLM和嵌入模型 。支持本地LLM和流行的API提供商(OpenAI、Azure、Ollama、Groq)。
3.混合RAG流程 。提供混合(全文和向量)检索器加重排序以确保最佳检索质量。
4.支持多模态问答 。支持对包含图表和表格的多文档进行问答。支持多模态文档解析(UI上可选择选项)。
5.提供高级引用和文档预览 。系统默认提供详细的引用以确保LLM答案的正确性。在浏览器内置PDF查看器中查看您的引用(包括相关得分)并高亮显示。当检索流程返回低相关文章时发出警告。
6.支持复杂推理方法 。使用问题分解来回答复杂的/多跳的问题。支持基于代理的推理,如ReAct、ReWOO等代理。
7.可配置的设置界面 。您可以在UI上调整检索和生成过程中的大部分重要方面(包括提示)。
8.可扩展 。基于Gradio构建,您可以随意定制/添加任何UI元素。此外,我们还旨在支持多种文档索引和检索策略。提供GraphRAG
索引流程作为示例。
安装
对于终端用户
此文档适用于开发者。如果您只想按原样安装和使用该应用程序,请参阅非技术用户指南[1](正在编写中)。
对于开发者
使用Docker(推荐)
•使用以下命令启动服务器:
docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-p 7860:7860 -it --rm \
taprosoft/kotaemon:v1.0
导航到 http://localhost:7860/ 访问Web界面。
不使用Docker
•克隆并在新的Python环境中安装所需的包:
# 可选(设置环境)
conda create -n kotaemon python=3.10
conda activate kotaemon
# 克隆此仓库
git clone https://github.com/Cinnamon/kotaemon
cd kotaemon
pip install -e "libs/kotaemon[all]"
pip install -e "libs/ktem"
•在.env
中查看和编辑您的环境变量(API密钥,端点)。
•(可选)要启用浏览器内PDF_JS查看器,请下载PDF_JS_DIST并将其解压到 libs/ktem/ktem/assets/prebuilt
。
•启动Web服务器:
python app.py
应用程序将自动在您的浏览器中启动。
默认用户名/密码为:admin
/admin
。您可以直接在UI上设置其他用户。
设置本地模型(用于本地/私有RAG)
请参阅本地模型设置[2]。
添加您自己的RAG流程
自定义推理流程
首先,查看这里[3]的默认流程实现。您可以快速调整默认的QA流程的工作方式。
接下来,如果您对添加新流程感到熟悉,可以在 libs/ktem/ktem/reasoning/
中添加新的.py
实现,并在 flowssettings
中将其包含进来,以便在UI中启用它。
自定义索引流程
查看 libs/ktem/ktem/index/file/graph
中的示例实现。
(更多说明正在编写中)。
更多信息
本文由笔者翻译整理自:
https://github.com/Cinnamon/kotaemon?tab=readme-ov-file,如对您有帮助,请帮忙点赞、转发、关注,谢谢。
References
[1]
非技术用户指南: https://cinnamon.github.io/kotaemon/
[2]
本地模型设置: https://github.com/Cinnamon/kotaemon/blob/main/docs/local\_model.md
[3]
这里: https://github.com/Cinnamon/kotaemon/blob/main/libs/ktem/ktem/reasoning/simple.py