一个开源的、简洁且可定制的 RAG UI,用于与您的文档进行对话。专为终端用户和开发者设计。

本项目是一个功能性的 RAG UI,既服务于想要对文档进行问答的终端用户,也服务于想要构建自己 RAG 管道的开发者。
+----------------------------------------------------------------------------+
| 终端用户:使用基于 `kotaemon` 构建的应用的用户。 |
| (您使用类似上面演示中的应用) |
| +----------------------------------------------------------------+ |
| | 开发者:使用 `kotaemon` 进行构建的人员。 | |
| | (您的项目中有 `import kotaemon`) | |
| | +----------------------------------------------------+ | |
| | | 贡献者:让 `kotaemon` 变得更好的人。 | | |
| | | (您向此仓库提交 PR) | | |
| | +----------------------------------------------------+ | |
| +----------------------------------------------------------------+ |
+----------------------------------------------------------------------------+
ollama 和 llama-cpp-python)。托管您自己的文档问答 (RAG) Web-UI:支持多用户登录,在私有/公共集合中组织文件,与他人协作并分享您喜欢的对话。
组织您的 LLM 和嵌入模型:支持本地 LLM 和流行的 API 提供商(OpenAI、Azure、Ollama、Groq)。
混合 RAG 管道:合理的默认 RAG 管道,包含混合(全文和向量)检索器和重排序,以确保最佳检索质量。
多模态问答支持:对包含图表和表格的多个文档执行问答。支持多模态文档解析(UI 上可选)。
带有文档预览的高级引用:默认情况下,系统将提供详细的引用来确保 LLM 答案的正确性。直接在浏览器内 PDF 查看器中查看您的引用(包括相关度分数),并高亮显示。当检索管道返回低相关性文章时会发出警告。
支持复杂推理方法:使用问题分解来回答您的复杂/多跳问题。支持基于代理的推理,如 ReAct、ReWOO 和其他代理。
可配置的设置 UI:您可以在 UI 上调整检索和生成过程的大多数重要方面(包括提示词)。
可扩展性:基于 Gradio 构建,您可以自由定制或添加任何 UI 元素。同时,我们旨在支持多种文档索引和检索策略。GraphRAG 索引管道作为一个示例提供。

如果您不是开发者,只是想使用该应用,请查阅我们易于遵循的用户指南。从最新发布版本下载
.zip文件以获取所有新功能和错误修复。
.pdf、.html、.mhtml 和 .xlsx 之外的其他文档。安装步骤因操作系统而异,请访问链接并按照提供的具体说明操作。lite 和 full 两种版本的 Docker 镜像。full 版本会安装 unstructured 的额外包,可以支持更多文件类型(.doc、.docx、...),但代价是 Docker 镜像体积更大。对于大多数用户,lite 镜像在大多数情况下应该可以正常工作。使用 full 版本。
bash
docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-v ./ktem_app_data:/app/ktem_app_data \
-p 7860:7860 -it --rm \
ghcr.io/cinnamon/kotaemon:main-full
使用捆绑了 Ollama 的 full 版本,用于本地/私有 RAG。
bash
# 将镜像名称改为
docker run <...> ghcr.io/cinnamon/kotaemon:main-ollama
使用 lite 版本。
bash
# 将镜像名称改为
docker run <...> ghcr.io/cinnamon/kotaemon:main-lite
linux/amd64 和 linux/arm64(适用于较新的 Mac)。您可以通过在 docker run 命令中传递 --platform 来指定平台。例如:bash
# 以 linux/arm64 平台运行 docker
docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-v ./ktem_app_data:/app/ktem_app_data \
-p 7860:7860 -it --rm \
--platform linux/arm64 \
ghcr.io/cinnamon/kotaemon:main-lite
```shell
# 克隆此仓库
git clone https://github.com/Cinnamon/kotaemon
cd kotaemon
# 运行 uv 安装脚本(如果未安装 uv 会自动安装)
bash scripts/run_uv.sh
```
此脚本将:
```shell
# 可选(设置环境)
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 文件用于满足用户希望在启动应用前预配置模型的需求(例如,在 HF hub 上部署应用)。该文件仅在首次运行时用于填充数据库,后续运行将不再使用。
PDF_JS 查看器,请下载 PDF_JS_DIST,然后将其解压到 libs/ktem/ktem/assets/prebuilt
shell
python app.py
admin。您可以直接通过 UI 设置其他用户。
Resources 标签页和 LLMs and Embeddings,确保您的 api_key 值已从 .env 文件中正确设置。如果未设置,您可以在那里设置。[!NOTE]
官方的 MS GraphRAG 索引仅适用于 OpenAI 或 Ollama API。
我们建议大多数用户使用 NanoGraphRAG 实现,以便与 Kotaemon 直接集成。
请参阅本地模型设置。
提供以下选项:
pip install docling在 Settings -> Retrieval Settings -> File loader 中选择相应的加载器。
默认情况下,所有应用数据都存储在 ./ktem_app_data 文件夹中。您可以备份或复制此文件夹以将您的安装迁移到新机器。
对于高级用户或特定用例,您可以自定义这些文件:
flowsettings.py
.envflowsettings.py此文件包含您的应用配置。您可以使用此处的示例作为起点。
# 设置您偏好的文档存储(具有全文搜索功能)
KH_DOCSTORE=(Elasticsearch | LanceDB | SimpleFileDocumentStore)
# 设置您偏好的向量存储(用于基于向量的搜索)
KH_VECTORSTORE=(ChromaDB | LanceDB | InMemory | Milvus | Qdrant)
# 启用/禁用多模态问答
KH_REASONINGS_USE_MULTIMODAL=True
# 设置您的新推理管道或修改现有管道。
KH_REASONINGS = [
"ktem.reasoning.simple.FullQAPipeline",
"ktem.reasoning.simple.FullDecomposeQAPipeline",
"ktem.reasoning.react.ReactAgentPipeline",
"ktem.reasoning.rewoo.RewooAgentPipeline",
]
.env此文件提供了另一种配置模型和凭据的方式。