kotaemon
kotaemon 是一款开源的 RAG(检索增强生成)工具,旨在让用户能够轻松地与自己的文档进行智能对话。它有效解决了大模型无法直接访问私有数据或本地文件的痛点,通过构建高效的检索管道,让 AI 能基于用户提供的特定文档内容回答疑问,而非仅依赖通用训练数据。
这款工具兼顾了普通用户与开发者的需求。对于希望快速上手体验的非技术用户,kotaemon 提供了简洁美观的交互界面,支持一键部署,并能灵活对接 OpenAI、Azure 等云端模型或通过 Ollama 运行本地大模型,充分保护数据隐私。对于开发者和研究人员,它不仅仅是一个现成的应用,更是一个可定制的 RAG 流水线框架。基于 Gradio 构建的前端允许开发者直观地调试和展示自建的检索逻辑,同时提供丰富的主题定制能力。无论是想搭建个人知识库助手,还是希望研发专属文档问答系统的团队,kotaemon 都能提供从原型验证到实际应用的一站式支持,让私有数据与大模型的结合变得更加简单高效。
使用场景
某法律科技团队需要为内部律师构建一个能快速检索并问答数百份历史案件卷宗的智能系统。
没有 kotaemon 时
- 开发门槛高:工程师需从零搭建 RAG 流水线,手动处理文档切片、向量存储及检索逻辑,耗时数周且容易出错。
- 调试黑盒化:当回答不准确时,难以直观查看模型引用了哪段原文,缺乏中间过程可视化,排查问题如同“盲人摸象”。
- 交互体验差:临时拼凑的演示界面简陋,不支持多轮对话或来源高亮,律师无法信任系统生成的结论。
- 模型切换繁琐:想要对比本地部署的 Llama 3 与云端 OpenAI 的效果差异,需要修改大量底层代码并重启服务。
使用 kotaemon 后
- 开箱即用:直接利用 kotaemon 内置的模块化 RAG 框架,通过简单配置即可连接本地 Ollama 或云端 API,半天内完成系统原型。
- 全链路可观测:借助其干净的 UI 界面,律师在提问时可实时看到引用的具体文档段落及置信度,推理过程透明可信。
- 专业交互体验:基于 Gradio 构建的现代化界面支持流式输出、多轮追问及参考文献跳转,大幅降低律师的使用学习成本。
- 灵活实验对比:无需重写代码,仅在配置文件中切换模型参数,即可在同一界面下即时对比不同大模型在法律文书理解上的表现。
kotaemon 将复杂的 RAG 技术封装为可视化的生产力工具,让团队从繁琐的基础设施搭建中解放,专注于提升法律问答的准确性与业务价值。
运行环境要求
- Linux
- macOS
- 未说明 (支持本地 LLM 如 Ollama/llama-cpp-python,具体显存需求取决于所选模型
- Docker 镜像支持 linux/amd64 和 linux/arm64)
未说明

快速开始
kotaemon
一款开源、简洁且可定制的 RAG 用户界面,用于与您的文档进行对话。专为最终用户和开发者设计。

实时演示 #1 | 实时演示 #2 | 在线安装 | Colab 笔记本(本地 RAG)
简介
该项目既为希望对其文档进行问答的最终用户提供了一个功能齐全的 RAG 用户界面,也为希望构建自有 RAG 流程的开发者提供了支持。
+----------------------------------------------------------------------------+
| 终端用户:使用基于 `kotaemon` 构建的应用程序的人。 |
| (您使用的是类似上述演示中的应用程序) |
| +----------------------------------------------------------------+ |
| | 开发者:使用 `kotaemon` 进行开发的人。 | |
| | (您的项目中某处有 `import kotaemon`) | |
| | +----------------------------------------------------+ | |
| | | 贡献者:致力于让 `kotaemon` 更完善的人员。 | | |
| | | (您向此仓库提交 PR) | | |
| | +----------------------------------------------------+ | |
| +----------------------------------------------------------------+ |
+----------------------------------------------------------------------------+
针对终端用户
- 简洁极简的界面:面向 RAG 式问答的友好用户界面。
- 支持多种 LLM:兼容 LLM API 提供商(OpenAI、Azure OpenAI、Cohere 等)以及本地 LLM(通过
ollama和llama-cpp-python)。 - 轻松安装:只需简单脚本即可快速上手。
针对开发者
- RAG 流程框架:帮助您构建自己的基于 RAG 的文档问答流程。
- 可定制界面:借助提供的 UI,亲眼见证您的 RAG 流程运行效果,该界面基于 Gradio
打造。
- Gradio 主题:如果您在开发中使用 Gradio,不妨试试我们的主题:kotaemon-gradio-theme。
核心特性
托管您自己的文档问答(RAG)Web 界面:支持多用户登录,将文件组织成私有/公有集合,协作并与他人分享您喜爱的对话。
管理您的 LLM 和嵌入模型:同时支持本地 LLM 和主流 API 提供商(OpenAI、Azure、Ollama、Groq 等)。
混合 RAG 流程:提供合理的默认 RAG 流程,结合全文检索与向量检索,并加入重排序机制,以确保最佳的检索质量。
多模态问答支持:可在包含图表和表格的多份文档上执行问答任务。支持多模态文档解析(UI 上可选择相应选项)。
高级引用与文档预览:系统默认会提供详细的引用信息,以确保 LLM 回答的准确性。您可以在带有高亮显示的 浏览器内 PDF 查看器 中直接查看引用内容(包括相关得分)。当检索流程返回相关性较低的文章时,系统会发出警告。
支持复杂推理方法:利用问题分解来解答复杂的多跳问题。支持基于代理的推理方式,如
ReAct、ReWOO等代理。可配置的设置界面:您可以在界面上调整检索和生成过程中的大部分重要参数(包括提示词)。
可扩展性:由于基于 Gradio 构建,您可以自由地自定义或添加任何所需的 UI 元素。此外,我们还计划支持多种文档索引与检索策略。作为示例,我们提供了
GraphRAG索引流程。

安装
如果您不是开发者,只是想使用这款应用,请参阅我们易于操作的用户指南。从最新发布下载
.zip文件,即可获得所有最新功能和错误修复。
系统要求
- Python ≥ 3.10
- Docker:可选,如果您希望通过Docker 安装的话。
- Unstructured:如果您需要处理除
.pdf、.html、.mhtml和.xlsx之外的其他格式文件,则需安装此工具。具体安装步骤因操作系统而异,请访问链接并按照其中提供的说明进行操作。
使用 Docker(推荐)
我们支持
lite和full两种版本的 Docker 镜像。使用full版本时,会安装unstructured的额外包,从而支持更多文件类型(如.doc、.docx等),但镜像体积也会更大。对于大多数用户来说,lite镜像通常已经足够。使用
full版本: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 场景:# 将镜像名称更改为 docker run <...> ghcr.io/cinnamon/kotaemon:main-ollama使用
lite版本:# 将镜像名称更改为 docker run <...> ghcr.io/cinnamon/kotaemon:main-lite
目前我们支持并测试两个平台:
linux/amd64和linux/arm64(适用于较新的 Mac)。您可以通过在docker run命令中添加--platform参数来指定平台。例如:# 在 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一切设置正确后,您可以访问
http://localhost:7860/来使用 Web UI。
不使用 Docker
选项 1:使用 uv(推荐,安装速度更快)
克隆仓库并运行 uv 安装脚本:
# 克隆此仓库 git clone https://github.com/Cinnamon/kotaemon cd kotaemon # 运行 uv 安装脚本(如果未安装 uv,则会自动安装) bash scripts/run_uv.sh该脚本将执行以下操作:
- 如果未安装 uv 包管理器,则会自动安装。
- 创建一个基于 Python 3.10 的虚拟环境。
- 使用 uv 安装所有依赖项(比 conda 或 pip 快得多)。
- 设置 PDF.js 查看器。
- 启动应用程序。
选项 2:使用 conda(传统方法)
在一个新的 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文件用于在启动应用之前预先配置模型的场景(例如在 HF Hub 上部署应用)。该文件仅会在首次运行时用于填充数据库,后续运行将不再使用。(可选)要启用浏览器中的
PDF_JS查看器,下载 PDF_JS_DIST,然后将其解压到libs/ktem/ktem/assets/prebuilt目录中。
启动 Web 服务器:
python app.py- 应用程序将自动在您的浏览器中打开。
- 默认用户名和密码均为
admin。您可以通过 UI 直接添加其他用户。

检查“资源”选项卡中的“LLMs 和 Embeddings”,确保从
.env文件中正确设置了api_key值。如果未设置,可以在该页面进行配置。
设置 GraphRAG
[!注意] 官方 MS GraphRAG 索引功能仅支持 OpenAI 或 Ollama API。 对于大多数用户,我们建议使用 NanoGraphRAG 实现,以便与 Kotaemon 更加便捷地集成。
设置 Nano GRAPHRAG
- 安装 nano-GraphRAG:
pip install nano-graphrag nano-graphrag的安装可能会引入版本冲突,请参阅 此问题。- 快速解决方法:
pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib
- 快速解决方法:
- 使用
USE_NANO_GRAPHRAG=true环境变量启动 Kotaemon。 - 在“资源”设置中配置默认的 LLM 和嵌入模型,NanoGraphRAG 会自动识别这些设置。
设置 LIGHTRAG
- 安装 LightRAG:
pip install git+https://github.com/HKUDS/LightRAG.git LightRAG的安装可能会引发版本冲突,请参阅 此问题。- 快速解决方法:
pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib
- 快速解决方法:
- 使用
USE_LIGHTRAG=true环境变量启动 Kotaemon。 - 在“资源”设置中配置默认的 LLM 和嵌入模型,LightRAG 会自动识别这些设置。
设置 MS GRAPHRAG
非 Docker 安装:如果您不使用 Docker,请使用以下命令安装 GraphRAG:
pip install "graphrag<=0.3.6" future设置 API 密钥:要使用 GraphRAG 的检索功能,务必设置
GRAPHRAG_API_KEY环境变量。您可以在当前环境中直接设置,也可以将其添加到.env文件中。使用本地模型和自定义设置:如果您希望使用本地模型(如
Ollama)或自定义默认 LLM 及其他配置,请将USE_CUSTOMIZED_GRAPHRAG_SETTING环境变量设置为true。然后,在settings.yaml.example文件中调整相关设置。
设置本地模型(用于本地/私有 RAG)
请参阅 本地模型设置。
设置多模态文档解析(OCR、表格解析、图表提取)
可用的选项包括:
- Azure Document Intelligence(API)
- Adobe PDF Extract(API)
- Docling(本地开源)
- 使用 Docling 时,需先安装其依赖项:
pip install docling
- 使用 Docling 时,需先安装其依赖项:
请在“设置 -> 检索设置 -> 文件加载器”中选择相应的加载器。
自定义您的应用
默认情况下,所有应用数据都存储在
./ktem_app_data文件夹中。您可以备份或复制此文件夹,以将您的安装迁移到新机器上。对于高级用户或特定用例,您可以自定义以下文件:
flowsettings.py.env
flowsettings.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
此文件提供了另一种配置模型和凭据的方式。
通过 .env 文件配置模型
您也可以通过
.env文件配置模型,提供连接到 LLM 所需的信息。该文件位于应用程序的文件夹中。如果未找到,您可以创建一个。目前支持以下提供商:
OpenAI
在
.env文件中,设置OPENAI_API_KEY变量为您的 OpenAI API 密钥,以启用对 OpenAI 模型的访问。还有其他可修改的变量,请根据您的需求进行调整。否则,默认参数通常适用于大多数人。OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=<您的 OpenAI API 密钥> OPENAI_CHAT_MODEL=gpt-3.5-turbo OPENAI_EMBEDDINGS_MODEL=text-embedding-ada-002Azure OpenAI
对于通过 Azure 平台使用的 OpenAI 模型,您需要提供 Azure 终端节点和 API 密钥。根据您的 Azure 开发设置,可能还需要指定聊天模型和嵌入模型的名称。
AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= OPENAI_API_VERSION=2024-02-15-preview AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-ada-002本地模型
使用
ollamaOpenAI 兼容服务器:安装 ollama,并启动应用程序。
拉取您的模型,例如:
ollama pull llama3.1:8b ollama pull nomic-embed-text在 Web 界面上设置模型名称,并将其设为默认:

使用
GGUF和llama-cpp-python您可以从 Hugging Face Hub 搜索并下载可在本地运行的 LLM。目前支持以下模型格式:
GGUF
您应选择模型大小不超过设备内存容量且留有约 2 GB 空间的模型。例如,如果您总共有 16 GB 内存,其中可用 12 GB,则应选择占用不超过 10 GB 内存的模型。较大的模型通常生成效果更好,但处理时间也更长。
以下是一些推荐及其内存占用情况:
Qwen1.5-1.8B-Chat-GGUF:约 2 GB
在 Web 界面中添加一个新的 LlamaCpp 模型,并使用提供的模型名称。
添加您自己的 RAG 流程
自定义推理流程
- 查看默认流程的实现,位于这里。您可以对默认 QA 流程的工作方式进行快速调整。
- 在
libs/ktem/ktem/reasoning/中添加新的.py实现文件,然后将其纳入flowssettings,以便在 UI 上启用。
自定义索引流程
- 查看
libs/ktem/ktem/index/file/graph中的示例实现。
(更多说明正在编写中)。
引用
请按以下方式引用本项目:
@misc{kotaemon2024,
title = {Kotaemon - 一款开源的基于 RAG 的工具,可用于与任何内容对话。},
author = {Kotaemon 团队},
year = {2024},
howpublished = {\url{https://github.com/Cinnamon/kotaemon}},
}
星标历史
贡献
由于我们的项目仍在积极开发中,我们非常重视您的反馈和贡献。请参阅我们的贡献指南以开始参与。感谢所有贡献者!
版本历史
v0.11.32026/03/28v0.11.22026/03/04v0.11.12026/02/27v0.9.82024/12/17v0.9.62024/12/15v0.9.52024/12/07v0.9.42024/12/05v0.9.32024/12/04v0.9.22024/11/28v0.9.12024/11/26v0.11.02025/07/04v0.10.62025/04/01v0.10.42025/03/31v0.10.32025/02/14v0.10.22025/02/05v0.10.12025/02/03v0.10.02025/02/02v0.9.112024/12/24v0.9.102024/12/23v0.9.92024/12/18常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
n8n
n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
