Home
Login

基于RAG技术的开源文档智能问答工具,支持与您的文档进行对话式交互

Apache-2.0Python 22.5kCinnamon Last Updated: 2025-06-11

Kotaemon - 开源RAG文档智能问答工具

项目概述

Kotaemon是一个开源的RAG(检索增强生成)工具,专门用于与文档进行对话式交互。该项目旨在为终端用户和开发者提供一个功能完整的RAG用户界面,既可以满足用户对文档进行问答的需求,也能帮助开发者构建自己的RAG流水线。

核心特性

终端用户功能

  • 简洁美观的UI界面:提供用户友好的RAG问答界面
  • 多种LLM支持:兼容多种LLM API提供商(OpenAI、AzureOpenAI、Cohere等)和本地LLM(通过ollama和llama-cpp-python)
  • 简易安装:提供简单的脚本快速启动
  • 多用户支持:支持多用户登录,可以创建私有/公共文档集合,支持协作和分享

开发者功能

  • RAG流水线框架:提供构建RAG文档问答流水线的工具
  • 可定制UI:基于Gradio构建,可以看到RAG流水线的实际效果
  • 混合RAG流水线:采用混合(全文和向量)检索器和重新排序,确保最佳检索质量
  • 可扩展性:支持自定义UI元素和多种文档索引及检索策略

高级功能

  • 多模态问答支持:支持包含图表和表格的多文档问答,支持多模态文档解析
  • 高级引用功能:提供详细的引用信息确保LLM答案的正确性,可在浏览器PDF查看器中直接查看带高亮的引用内容
  • 复杂推理方法:支持问题分解来回答复杂/多跳问题,支持基于Agent的推理,如ReAct、ReWOO等
  • 可配置设置界面:可在UI上调整检索和生成过程的重要方面(包括提示词)

技术架构

支持的文档格式

  • PDF、HTML、MHTML、XLSX
  • 通过Unstructured库支持更多格式(.doc、.docx等)

数据存储选项

  • 文档存储:Elasticsearch、LanceDB、SimpleFileDocumentStore
  • 向量存储:ChromaDB、LanceDB、InMemory、Milvus、Qdrant

LLM模型支持

  • API提供商:OpenAI、Azure OpenAI、Cohere、Groq等
  • 本地模型:通过Ollama和llama-cpp-python支持GGUF格式模型

GraphRAG集成

项目支持两种GraphRAG实现:

NanoGraphRAG(推荐)

  • 更直接的Kotaemon集成
  • 自动识别默认LLM和嵌入模型

MS GraphRAG

  • 官方Microsoft GraphRAG实现
  • 仅支持OpenAI或Ollama API
  • 支持本地模型和自定义设置

安装和部署

Docker部署(推荐)

提供精简版和完整版Docker镜像:

  • 精简版:支持基本文件类型,镜像较小
  • 完整版:包含unstructured包,支持更多文件类型

本地安装

  1. 下载最新版本的release文件
  2. 配置.env文件
  3. 运行python app.py启动服务
  4. 默认用户名和密码均为admin

自定义和扩展

自定义推理流水线

  • 可在libs/ktem/ktem/reasoning/中添加新的.py实现
  • 通过flowsettings启用新的推理流水线

自定义索引流水线

  • 参考libs/ktem/ktem/index/file/graph中的示例实现
  • 支持GraphRAG索引流水线

配置文件

  • flowsettings.py:应用程序配置
  • .env:模型和凭证配置

应用场景

  1. 企业知识管理:构建内部文档问答系统
  2. 学术研究:对研究文献进行智能问答
  3. 法律文档分析:快速检索和分析法律文件
  4. 技术文档支持:为用户提供技术文档智能查询
  5. 个人知识库:管理和查询个人文档集合

项目优势

  • 开源免费:完全开源,可自由使用和修改
  • 功能完整:从简单问答到复杂推理,功能覆盖全面
  • 易于使用:直观的Web界面,无需技术背景即可使用
  • 高度可定制:支持多种配置和扩展选项
  • 活跃社区:持续更新和社区支持

技术特点

  • 基于Python开发
  • 使用Gradio构建Web界面
  • 支持Docker容器化部署
  • 模块化架构设计
  • 支持GPU加速(本地模型)

总结

Kotaemon是一个功能强大的RAG UI工具,让用户能够通过对话方式与文档交互。它不仅为终端用户提供了简单易用的文档问答界面,也为开发者提供了构建自定义RAG系统的完整框架。通过混合检索、多模态支持、高级引用等特性,Kotaemon在文档智能问答领域提供了一个全面而专业的解决方案。