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在文檔智能問答領域提供了一個全面而專業的解決方案。