kotaemon – 一个可与本地文档互动的 RAG 开源聊天工具

一个开源的干净且可定制的RAG UI 聊天工具,用于与您的文档聊天。构建时充分考虑了最终用户和开发人员的需求。

file

特性

  • 自托管的文档问答(RAG)Web 界面:
    支持多用户登录,管理文件至私人/公开集合,协作并与他人分享您最喜爱的聊天内容。

  • 管理您的 LLM & 嵌入模型:
    支持本地 LLM 和流行的 API 提供商(如 OpenAI、Azure、Ollama、Groq)。

  • 混合 RAG 流程:
    提供默认的混合 RAG 流程,包括全文检索和向量检索,并结合重排序功能,确保最佳检索质量。

  • 多模态问答支持:
    支持对包含图表和表格的多个文档进行问答。界面上提供多模态文档解析选项。

  • 高级引用与文档预览:
    系统默认提供详细的引用,确保 LLM 回答的准确性。
    在浏览器内置的 PDF 查看器中直接查看引用(包括相关性分数),并带有高亮显示功能。
    当检索流程返回低相关性文章时会发出警告。

  • 支持复杂推理方法:
    使用问题分解方法回答复杂/多跳问题。支持基于代理的推理方法,如 ReAct、ReWOO 和其他代理。

  • 可配置的设置界面:
    您可以在界面上调整检索和生成过程中的重要参数(包括提示词)。

  • 高度可扩展:
    基于 Gradio 构建,您可以自由定制或添加任何界面元素。
    我们还致力于支持多种文档索引和检索策略,GraphRAG 索引流程即为一个示例。

file

安装

系统要求

  • Python:>= 3.10
  • Docker:可选,如果您选择使用 Docker 安装
  • Unstructured:如果您需要处理 .pdf.html.mhtml.xlsx 以外的文件类型(如 .doc.docx 等),需要安装额外的包。不同操作系统的安装步骤可能有所不同,请访问相关链接并按照说明操作。

通过 Docker 安装(推荐)

我们支持 Docker 镜像的精简版(lite)和完整版(full)。

  • 精简版:适合大多数用户,体积较小。
  • 完整版:包含 Unstructured 的额外包,支持更多文件类型(如 .doc.docx),但镜像文件较大。

使用精简版

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

使用完整版

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

我们目前支持并测试了两个平台:linux/amd64linux/arm64(适用于新版 Mac)。您可以通过在 docker run 命令中添加 --platform 参数指定平台。例如:

运行 linux/arm64 平台的 Docker

docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-p 7860:7860 -it --rm \
--platform linux/arm64 \
ghcr.io/cinnamon/kotaemon:main-lite

设置完成后,访问 http://localhost:7860/ 即可使用 Web 界面。

我们使用 GHCR 存储 Docker 镜像,所有镜像均可在这里找到。

无需 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 文件,可参考 .env.example 模板。

.env 文件用于预先配置模型,例如在启动应用程序之前将其部署到 Hugging Face Hub。文件仅在首次运行时用于填充数据库,后续运行将不再使用。

(可选)启用 PDF_JS 内置浏览器查看器
下载 PDF_JS_DIST,并解压至 libs/ktem/ktem/assets/prebuilt 目录。

启动 Web 服务

python app.py

应用程序会自动在浏览器中启动。
默认用户名和密码均为 admin,您可以通过 UI 界面设置其他用户。

检查 Chat 选项卡
打开“资源”选项卡,确保您的 api_key 值已从 .env 文件中正确设置。如果未设置,可以直接在界面中设置。

参考链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注