kotaemon
开源 RAG 文档对话工具,支持 PDF/Word/Excel 等多格式解析,兼容 OpenAI/C
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源 RAG 文档对话工具,支持 PDF/Word/Excel 等多格式解析,兼容 OpenAI/C
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你在凌晨两点翻遍公司三年积累的 2000 多份 PDF 文档,找一条关键的合同条款,却怎么也想不起来存在哪个文件里。现在,只需要把文档扔进 kotaemon,用自然语言问一句"去年的供应商续约条款有哪些变更",AI 就能从海量文件中精准定位答案,并标注来源页码。这不是科幻,是 kotaemon 正在让无数知识工作者变成效率怪兽的开源工具。

图1:kotaemon 主界面,支持图形化知识图谱展示
通用大语言模型(LLM)虽然强大,但直接用它处理私有文档存在两个根本性障碍:一是数据安全问题,企业不愿意把内部文件上传到第三方 API;二是检索精度问题,通用模型缺乏针对特定文档集合的上下文理解能力,经常答非所问或凭空编造内容。
RAG(Retrieval-Augmented Generation,检索增强生成)技术正是解决这两个问题的关键。它的工作流程是:先将文档切分、向量化存入向量数据库,查询时从向量库中召回最相关的文本块,再交给 LLM 生成答案。这比直接让 LLM"裸读"文档要可靠得多。
kotaemon 正是基于这一技术路线,专门为文档对话场景打造的端到端开源解决方案。项目由 Cinnamon 团队开发维护(约 4 名核心贡献者),采用 Apache-2.0 许可证,完全开源可商用。截至目前已斩获超过 25,000 颗 GitHub 星标,Fork 数超过 2,100,属于 RAG 领域最受关注的明星项目之一。

图2:kotaemon 聊天界面,支持文件上传和实时对话
kotaemon 支持解析 PDF、Word(.docx)、Excel(.xlsx)、Markdown、HTML、纯文本等多种常见文档格式。底层文档解析依赖 PyMuPDF(fitz)和 python-docx 等库,能够提取文本内容、表格结构和基本布局信息。更重要的是,项目还集成了 GraphRAG(微软开源的知识图谱 RAG 方案),可以在索引阶段自动构建文档实体和关系图谱,查询时通过图遍历增强检索效果——这对于需要理解文档间关联关系的分析场景(如法律合同审查、学术文献综述)尤为有价值。
kotaemon 在模型接入层面展现了极高的开放性,支持同时配置多个 LLM 提供商:
Embedding 模型同样支持多种选择,包括 OpenAI Embeddings、Nomic Embed Text(本地运行)、FastEmbed 等。这种多模型架构让用户可以根据数据敏感度和成本需求灵活切换:涉密文件用本地 Ollama,普通场景用 OpenAI API,兼顾安全与体验。
检索环节支持向量相似度搜索、关键词 BM25 检索和知识图谱路径查询的混合策略。默认使用 ChromaDB 作为向量数据库,同时也支持 LanceDB 等替代方案。系统还内置了 Re-ranking(重排序) 机制,可以对初筛结果做二次排序,显著提升最终答案的准确率。
kotaemon 采用了清晰的双层架构设计:
libs/kotaemon/ — 核心 RAG 库(文档解析、检索、LLM 适配)
libs/ktem/ — Gradio 前端应用层(Web UI、对话管理、用户交互)
libs/kotaemon 是整个系统的技术底座,核心依赖包括:
| 依赖 | 用途 |
|---|---|
| LangChain (<2) | LLM 调用和 RAG 链编排 |
| LlamaIndex (0.10.x) | 文档索引和检索引擎 |
| ChromaDB (<=0.5.16) | 向量数据库 |
| Gradio (>=4.31) | Web 前端界面 |
| FastAPI (<=0.112) | 后端 HTTP 服务 |
| PyMuPDF | PDF 解析 |
| Tavily Python | 网络搜索增强(可选) |
| Plotly | 可视化图表 |
libs/ktem 则将 kotaemon 库封装为完整的 Gradio 应用,提供用户注册登录、文件管理、对话历史、多轮上下文等企业级功能。此外还集成了 MCP(Model Context Protocol) 协议支持,允许 AI 主动调用外部工具和数据源,扩展了对话系统的能力边界。
整体代码质量较高:采用 Python 3.10+ 类型提示规范,有完整的 pre-commit 配置(black 格式化、flake8 检查、commitlint),pyproject.toml 依赖管理规范,使用 uv 作为包管理工具。

图3:kotaemon 完整工作流预览,支持多种文件类型和检索策略
kotaemon 在部署方面提供了三档镜像,满足不同场景需求:
Dockerfile 采用多阶段构建(multi-stage),通过 --mount=type=cache 缓存 uv 依赖安装结果,build 效率较高。唯一需要注意的是完整版镜像体积较大,首次构建建议预留 10GB+ 磁盘空间和足够的内存。
无 GPU 环境下系统仍可运行,但需要依赖云端 LLM API(OpenAI/Claude 等)。有 GPU(RTX 3090 及以上,6GB+ 显存)则推荐配合 Ollama 本地运行,隐私保护更好、长期成本更低。
此外,项目还提供了 HuggingFace Spaces 在线体验,无需任何安装即可在浏览器中试用,降低了首次接触的门槛。
尽管 kotaemon 表现亮眼,但在实际使用中仍有一些需要正视的问题:
性能瓶颈:完整版镜像依赖 LibreOffice 做文档格式转换、tesseract 做 OCR,在处理大量扫描件或复杂 PDF 时速度较慢,大文档批量导入可能需要等待数分钟。
检索质量依赖文档质量: kotaemon 的问答效果高度依赖文档的排版规范性。对于扫描件(无文字图层)、表格结构复杂、或专业符号密集的技术文档,自动解析效果可能不理想,往往需要人工预处理。
缺少原生中文优化:项目主要面向英文场景,中文文档的分词和 Embedding 质量相比英文略逊一筹,使用中文语料建议手动评估检索召回率。
非完全生产级:作为开源项目,kotaemon 目前缺乏细粒度的权限管理、审计日志、多租户隔离等企业级特性,更适合团队内部工具化使用,而非作为多团队共用平台。
kotaemon 的出现填补了开源社区在"开箱即用的 RAG 前端应用"这一环节的空白。在它之前,搭建一套完整的文档问答系统需要分别集成 LangChain、ChromaDB、Gradio等多个组件,配置复杂且维护成本高。kotaemon 将这些能力整合为一个统一产品,让非 AI 工程师也能快速部署私有文档 AI 助手。
从 GitHub 增长曲线来看,项目 Star 数在 2024 年保持稳定增长,反映出企业文档智能化需求的持续扩大。随着 Claude GDC、OpenAI Enterprise 等大厂方案的价格下降和本地模型能力的提升,私有化 RAG 部署正在成为越来越多企业的选择——而 kotaemon 正好站在这个趋势的交汇点上。
一句话总结:kotaemon 是目前开源生态中最完整的 RAG 文档对话应用之一,25K+ stars 验证了社区认可度,适合需要快速搭建私有文档 AI 助手的团队使用。