综合介绍
Kotaemon 是一个开源的文档问答工具,旨在为终端用户和开发者提供基于检索增强生成(RAG)的问答功能。该项目由 Cinnamon 开发,支持多种 LLM API 提供商(如 OpenAI、AzureOpenAI、Cohere 等)以及本地 LLM。Kotaemon 提供了一个简洁且可定制的用户界面,适用于文档问答和构建 RAG 管道。
功能列表
- 支持多用户登录,组织文件在私有/公共集合中
- 支持本地 LLM 和流行的 API 提供商
- 提供混合 RAG 管道,确保最佳检索质量
- 支持多模态问答,处理包含图表和表格的文档
- 提供易于安装的脚本,无需环境设置
功能特点
- 托管自己的文档问答(RAG)网页用户界面。支持多用户登录,按私有/公共集合组织文件,与他人协作和分享您喜欢的聊天记录。
- 组织您的LLM和嵌入模型。支持本地LLM和流行的API提供商(OpenAI、Azure、Ollama、Groq)。
- 混合RAG管道。提供合理的默认RAG管道,结合混合(全文和向量)检索器 + 重新排序,以确保最佳检索质量。
- 多模态问答支持。对多个文档进行问答,支持图形和表格。支持多模态文档解析(在用户界面上可选择的选项)。
- 带文档预览的高级引用。系统默认提供详细引用,以确保LLM答案的正确性。可以直接在浏览器PDF查看器中查看引用(包括相关分数)并高亮显示。当检索管道返回低相关性文章时会发出警告。
- 支持复杂推理方法。使用问题分解来回答复杂的/多跳问题。支持基于代理的推理,使用ReAct、ReWOO和其他代理。
- 可配置的设置用户界面。您可以在用户界面上调整检索和生成过程中的大多数重要方面(包括提示)。
- 可扩展性。基于Gradio构建,您可以自由自定义/添加任何您喜欢的用户界面元素。此外,我们旨在支持多种文档索引和检索策略。
GraphRAG
索引管道作为示例提供。
使用帮助
普通用户安装流程
下载:从最新发布下载kotaemon-app.zip
文件。
安装:
- 解压下载的文件。
- 进入
scripts
文件夹,并启动与您的操作系统相匹配的安装程序:- Windows:
run_windows.bat
。只需双击该文件。 - macOS:
run_macos.sh
- 右击您的文件,选择“使用其他应用打开”。
- 启用“所有应用”,并选择“终端”。
- 注意:如果您希望始终使用终端打开该文件,请勾选“始终使用此应用打开”。
- 从现在开始,双击您的文件,它应该就能正常工作。
- Linux:
run_linux.sh
。请在终端中使用bash run_linux.sh
运行该脚本。
- Windows:
- 安装完成后,安装程序将询问是否启动ktem的用户界面,请回答以继续。
- 如果启动成功,应用程序将自动在您的浏览器中打开。
开发者安装流程
Docker部署(推荐)
docker run \ -e GRADIO_SERVER_NAME=0.0.0.0 \ -e GRADIO_SERVER_PORT=7860 \ -p 7860:7860 -it --rm \ taprosoft/kotaemon:v1.0
前往 http://localhost:7860/ 访问网页界面。
源码部署
在新的 Python 环境中克隆并安装所需的包。
# optional (setup env) conda create -n kotaemon python=3.10 conda activate kotaemon # clone this repo git clone https://github.com/Cinnamon/kotaemon cd kotaemon pip install -e "libs/kotaemon[all]" pip install -e "libs/ktem"
查看并编辑您的环境变量(API 密钥、端点)在 .env
中。
(可选)要启用浏览器中的 PDF_JS 查看器,下载 PDF_JS_DIST 并将其提取到 libs/ktem/ktem/assets/prebuilt
启动 Web 服务器
python app.py
默认用户名/密码是:admin / admin。您可以直接在 UI 上设置其他用户。
使用指南
- 登录和文件管理:
- 用户可以通过多用户登录系统访问平台,组织和管理自己的文档集合。
- 支持将文件分类为私有或公共集合,方便协作和分享。
- 问答功能:
- 用户可以上传文档并在界面中进行问答操作。
- 支持多模态问答,能够处理包含图表和表格的文档内容。
- RAG 管道定制:
- 开发者可以使用提供的 UI 自定义和查看 RAG 管道。
- 支持本地 LLM 和流行的 API 提供商,用户可以根据需求选择合适的模型。
- 混合检索:
- 系统提供混合检索管道,结合全文检索和向量检索,确保最佳的检索质量。
- 支持重新排序功能,提高检索结果的相关性。
- 多模态支持:
- 平台支持多模态问答,能够处理包含图表和表格的文档,提供更全面的问答体验。
高级功能
- 模型管理:
- 用户可以组织和管理自己的 LLM 和嵌入模型。
- 支持本地模型和流行的 API 提供商,用户可以根据需求选择合适的模型。
- 协作和分享:
- 用户可以与他人分享自己喜欢的聊天记录,方便协作和交流。
- 支持多用户登录,用户可以在平台上进行协作和分享。
- 反馈和贡献:
- 项目处于积极开发中,欢迎用户提供反馈、报告问题和提交 PR。