一个开源、简洁且可定制的RAG UI,用于与您的文档对话。兼顾终端用户和开发人员的需求。
在线演示 #1 | 在线演示 #2 | 在线安装 | Colab 笔记本(本地 RAG)
用户指南 | 开发指南 | 反馈 | 联系我们
本项目是一个功能完善的RAG UI,既适用于希望对文档进行问答的终端用户,也适用于希望构建自己RAG pipeline的开发人员。
+----------------------------------------------------------------------------+
| 终端用户:使用基于 `kotaemon` 构建的应用的用户。 |
| (您使用的应用类似于上面演示中的应用) |
| +----------------------------------------------------------------+ |
| | 开发人员:基于 `kotaemon` 进行构建的用户。 | |
| | (您的项目中某处有 `import kotaemon`) | |
| | +----------------------------------------------------+ | |
| | | 贡献者:致力于改进 `kotaemon` 的用户。 | | |
| | | (您向此仓库提交PR) | | |
| | +----------------------------------------------------+ | |
| +----------------------------------------------------------------+ |
+----------------------------------------------------------------------------+
ollama和llama-cpp-python)。托管您自己的文档问答(RAG)Web UI:支持多用户登录,将文件组织为私有/公开集合,协作并与他人分享您喜爱的对话。
托管您自己的文档问答(RAG)Web UI:支持多用户登录,将文件组织为私有/公开集合,协作并与他人分享您喜爱的对话。
管理您的LLM和嵌入模型:支持本地LLM和主流API提供商(OpenAI、Azure、Ollama、Groq)。
管理您的LLM和嵌入模型:支持本地LLM和主流API提供商(OpenAI、Azure、Ollama、Groq)。
混合RAG pipeline:合理的默认RAG pipeline,采用混合(全文和向量)检索器和重排序,确保最佳检索质量。
混合RAG pipeline:合理的默认RAG pipeline,采用混合(全文和向量)检索器和重排序,确保最佳检索质量。
多模态问答支持:对包含图表和表格的多个文档执行问答。支持多模态文档解析(UI上可选)。
多模态问答支持:对包含图表和表格的多个文档执行问答。支持多模态文档解析(UI上可选)。
带文档预览的高级引用:系统默认提供详细引用,确保LLM答案的正确性。直接在浏览器内PDF查看器中查看引用(包括相关分数)并高亮显示。当检索pipeline返回低相关文章时发出警告。
带文档预览的高级引用:系统默认提供详细引用,确保LLM答案的正确性。直接在浏览器内PDF查看器中查看引用(包括相关分数)并高亮显示。当检索pipeline返回低相关文章时发出警告。
支持复杂推理方法:使用问题分解来回答复杂/多跳问题。支持基于智能体的推理,如ReAct、ReWOO等智能体。
支持复杂推理方法:使用问题分解来回答复杂/多跳问题。支持基于智能体的推理,如ReAct、ReWOO等智能体。
可配置的设置UI:您可以在UI上调整检索和生成过程的大多数重要方面(包括提示词)。
可配置的设置UI:您可以在UI上调整检索和生成过程的大多数重要方面(包括提示词)。
可扩展性:基于Gradio构建,您可以自由定制或添加任何UI元素。此外,我们旨在支持多种文档索引和检索策略。GraphRAG索引pipeline作为示例提供。
可扩展性:基于Gradio构建,您可以自由定制或添加任何UI元素。此外,我们旨在支持多种文档索引和检索策略。GraphRAG索引pipeline作为示例提供。
# clone this repo
git clone https://github.com/Cinnamon/kotaemon
cd kotaemon
# run the uv installation script (installs uv automatically if not present)
bash scripts/run_uv.sh
此脚本将:
# 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"
.env文件。使用.env.example作为模板.env文件用于用户在启动应用前预配置模型的场景(例如在HF Hub上部署应用)。该文件仅在首次运行时用于填充数据库,后续运行将不再使用。
(可选)要启用浏览器内PDF_JS查看器,请下载PDF_JS_DIST并将其解压到libs/ktem/ktem/assets/prebuilt
启动Web服务器:
python app.py
应用将自动在浏览器中启动。
默认用户名和密码均为admin。您可以通过UI直接设置其他用户。
检查Resources选项卡以及LLMs and Embeddings,确保api_key值已从.env文件正确设置。如果未设置,您可以在那里进行设置。
Settings -> Retrieval Settings -> File loader## 自定义您的应用
./ktem_app_data 文件夹中。您可以备份或复制此文件夹,以便将安装迁移到新机器。./ktem_app_data- 对于高级用户或特定用例,您可以自定义以下文件:
flowsettings.py.env## flowsettings.pyflowsettings.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文件中,设置OPENAI_API_KEY变量并填入您的OpenAI API密钥,以启用对OpenAI模型的访问。还有其他可修改的变量,您可以根据需要编辑,否则默认参数适用于大多数用户。
OPENAI_API_BASE=https://api.openai.com/v1
OPENAI_API_KEY=
OPENAI_CHAT_MODEL=gpt-3.5-turbo
OPENAI_EMBEDDINGS_MODEL=text-embedding-ada-002
对于通过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
Local Models
Using ollama OpenAI compatible server:
ollama
ollama pull llama3.1:8b ollama pull nomic-embed-textUsing GGUF with llama-cpp-python
您可以从Hugging Face Hub搜索并下载本地运行的LLM。目前支持以下模型格式:GGUF
您应选择大小小于设备内存的模型,并预留约2 GB空间。例如,如果您总共有16 GB RAM,其中12 GB可用,则应选择占用最多10 GB RAM的模型。更大的模型通常生成效果更好,但处理时间也更长。
以下是一些推荐模型及其内存占用:Qwen1.5-1.8B-Chat-GGUF:约2 GB
在Web UI上添加新的LlamaCpp模型并提供模型名称。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务