kotaemon 在线部署指南:通过 HuggingFace Space 十分钟搭建专属 RAG 文档问答应用
【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon
kotaemon 是一个开源的、基于 RAG(检索增强生成)的文档问答工具,用于与你的文档进行对话。本文聚焦于其最简单、无需本地环境的部署路径——在线安装(Online HuggingFace Space):借助 HuggingFace 上官方维护的 Space 模板,通过"复制 Space(Duplicate)"功能即可在约 10 分钟内获得一个完全私有的文档问答 Web 应用。读完本文,你将掌握从复制 Space、调整运行参数、等待构建到完成首次模型配置与 API Key 注册的全流程,并能理解该在线部署背后(构建脚本、启动入口、首次设置页面)的实现原理,方便后续进行个性化调整与维护。
一、在线安装(Online HuggingFace Space)总览
官方文档 docs/online_install.md 将在线部署描述为easy(10 mins)级别,整个流程只有 5 个步骤:
- 访问官方 kotaemon Space 模板;
- 使用 Duplicate 功能创建属于自己的 Space(或用直达链接一键复制);
- 等待构建完成并启动(约 10 分钟);
- 按照首次设置引导完成初始化(如需 Cohere API Key 则先注册);
- 完成设置后即可使用自己的私有 Space。
与 Docker 部署(推荐给开发者) 和 离线安装脚本 相比,在线安装不需要本地 Python 3.10+ 环境、不需要安装 Docker、不需要处理uv sync等依赖解析,所有计算资源与存储都托管在 HuggingFace 云端,适合希望快速体验或没有本地 GPU/大内存机器的终端用户。
二、第一步:访问官方 Space 模板并复制
打开 kotaemon_template Space,页面右上角即可看到Duplicate按钮。
更快捷的方式是直接使用官方提供的"复制直达链接"(在 URL 后追加?duplicate=true),它会跳过模板主页直接进入创建 Space 的配置界面。
说明:公开的 kotaemon Space(如官方 Demo)是共享资源,任何人上传的文件都可能被其他访问者看到,因此官方文档强调要通过 Duplicate 创建自己专属的 Space来使用。这也与仓库中 libs/ktem/ktem/pages/setup.py 中定义的
DEMO_MESSAGE一致——公共 Space 会在界面上提示"请使用右上角的 Duplicate Space 功能创建你自己的 Space"。
三、第二步:调整 Space 参数
点击复制后,HuggingFace 会跳转到Duplicate this Space配置页,需要确认/修改以下关键参数:
- Owner:选择 Space 归属账户(个人账号或组织);
- Space name:给你的私有实例命名;
- Visibility(可见性):推荐选择Private,保证只有你能访问(如果你希望与团队协作,可选择 Public 但注意隐私风险);
- Hardware(硬件配置):kotaemon 的 RAG 应用在 CPU 上即可运行,默认硬件通常足够;若选择带 GPU 的配置会显著增加计费,一般不需要;
- Secrets(密钥):可在此处预先填入环境变量(如
OPENAI_API_KEY),Space 启动时会被读取。这部分与仓库中.env的用途一致——官方说明指出.env用于在应用首次启动前预配置模型,仅首次运行时会写入数据库。
确认参数后点击Create Space,HuggingFace 会立即开始基于仓库中的 Dockerfile 构建镜像并部署。
四、第三步:等待构建与启动(约 10 分钟)
创建完成后进入 Space 页面,页面会显示构建日志。首次构建需要完成以下工作(可从 Dockerfile 的源码确认):
- 安装系统依赖:
poppler-utils(PDF 解析)、git、gcc/g++、cargo等(Lite 版本基础层); - 执行 scripts/download_pdfjs.sh 下载 PDF.js 前端查看器资源;
- 使用
uv sync --frozen安装所有 Python 依赖; - 安装
graphrag(仅 amd64 架构,用于可选的 GraphRAG 检索)。
构建完成后,launch.sh 作为容器入口脚本被调用:默认以GRADIO_SERVER_NAME=0.0.0.0、GRADIO_SERVER_PORT=7860启动(若未显式设置),随后执行.venv/bin/python app.py拉起 Gradio 应用;app.py 中通过ktem.main.App构建 demo 并调用demo.queue().launch(...),应用就绪后会监听 7860 端口,由 HuggingFace Space 网关对外提供 HTTPS 访问。
期间页面可能出现以下状态:
- 构建/启动进行中(Build logs / Runtime logs);
- 构建完成后应用正在加载模型与资源。
构建完成、应用成功启动后,可以将构建日志面板收起,此时页面顶部会显示应用界面。
提示:约 10 分钟是基于官方模板在默认硬件配置下的经验值,实际耗时取决于所选硬件与网络状况。若超过较长时间仍未就绪,可回到 Space 的Settings检查硬件配置,或在Logs页查看详细错误。
五、第四步:完成首次设置并注册 API Key
应用首次启动时会自动进入Welcome to kotaemon first setup!引导页。这个页面的实现位于 libs/ktem/ktem/pages/setup.py,其核心是一个模型供应商单选组件,支持四种接入方式:
| 选项 | 用途 | 对应源码配置(setup.py 中的 spec) |
|---|---|---|
| Cohere API(推荐,免费注册) | 云端 API,适合大多数用户 | Chat:LCCohereChat/command-r-plus-08-2024;Embedding:LCCohereEmbeddings/embed-multilingual-v3.0;Rerank:CohereReranking/rerank-v4.0-fast |
| Google API(免费注册) | 云端 API | Chat:LCGeminiChat/gemini-1.5-flash;Embedding:LCGoogleEmbeddings/text-embedding-004 |
| OpenAI API(GPT 系列模型) | 云端 API | Chat:ChatOpenAI/gpt-4o;Embedding:OpenAIEmbeddings/text-embedding-3-large |
| Local LLM(Ollama) | 完全私有 RAG | Chat:ChatOpenAI(base_url 指向 Ollama)/ 默认qwen2.5:7b;Embedding:默认nomic-embed-text |
如果你没有其他云端服务商账号,官方推荐选择Cohere——注册完全免费,且一个 Key 同时覆盖了 LLM 对话、Embedding 向量化和 Rerank 重排序三类模型,这正是 kotaemon 混合 RAG 检索管线所需的完整模型组合。
选择 Cohere 后,在输入框粘贴你的 Cohere API Key 并点击Proceed。此时setup.py中的update_model事件会依次执行:
- 将 LLM / Embedding / Rerank 三个模型写入应用数据库并设为默认;
- 连接测试:向 LLM 发送
Hi验证对话可用性,再向 Embedding 模型发送Hi验证向量化可用性,日志区域会实时显示Connection success或Connection failed及具体错误; - 更新默认检索设置:
update_default_settings会把重排序 LLM 指向所选供应商(选择 Ollama 时会自动关闭基于 LLM 的重排序,因为本地小模型重排序质量有限)。
如果你已经对模型配置非常熟悉,也可以点击页面底部的"I am an advance user. Skip this."跳过引导,之后再到应用内的Resources选项卡手动添加模型(详见 docs/usage.md 的"Add your AI models"章节)。
六、第五步:完成设置,使用你的私有 Space
设置完成后应用进入主界面,即文档中展示的初始启动画面。
至此,你的私有 RAG 应用已经可以正常使用,接下来可参考 docs/usage.md 完成核心操作闭环:
- 添加模型:进入
Resources选项卡,在LLMs与Embedding Models子页签中添加/切换更多模型(在线安装中 Cohere 配置已就绪,可跳过此步); - 上传文档:进入
File Index选项卡,拖拽或选择文件后点击Upload and Index,等待索引完成; - 与文档对话:回到
Chat选项卡,在会话设置面板中选择检索文件范围(Disabled / Search All / Select),即可开始带引用的文档问答;右侧信息面板会展示证据、引用高亮与各类相关性分数。
七、在线安装的进阶理解与注意事项
7.1 在线 Space 与本地部署的差异
从源码结构看,HuggingFace Space 部署复用的是与本地完全相同的代码路径:launch.sh 是 Docker 部署与 Space 部署共用的启动入口;区别仅在于:
- 数据持久化:Space 的磁盘是临时/受限的,
ktem_app_data目录中的文档索引与会话数据在 Space 重建后可能丢失,重要数据请定期备份; - 登录与多用户:仓库同时提供
KH_DEMO_MODE与KH_SSO_ENABLED两种特殊启动模式(见 launch.sh),在线公共 Demo 即运行在 demo 模式下(关闭用户管理、禁用 LightRAG);你自己的私有 Space 默认走标准模式,首次登录使用admin / admin作为默认账号(来自 README 的安装说明),建议登录后立即在 UI 中修改凭据; - 模型出口:在线 Space 无法访问你本地的 Ollama,因此"Local LLM"选项要求你另行部署可被公网访问的 Ollama 服务(如通过 tunnel),这对大多数用户而言成本较高,这也是官方推荐在线安装使用 Cohere 等云端 API 的原因。
7.2 常见问题排查
- 首次设置连接失败:检查 API Key 是否粘贴正确、是否有多余空格;Space 的 Runtime Logs 中会打印
update_model阶段的具体异常信息; - 页面长时间停留在构建:确认硬件配置未被设置为过低的免费档位,必要时到 Space Settings 调整后重启;
- 想要换一个模型供应商:无需重建 Space,直接在应用内
Resources选项卡添加新模型并设为默认即可,这与 docs/usage.md 中的模型管理流程完全一致。
结语
在线安装(HuggingFace Space)是 kotaemon 面向终端用户设计的零门槛部署方案:复制模板、调整参数、等待构建、完成首次模型配置,四步即可获得私有的 RAG 文档问答应用。其背后与仓库本地部署共用同一套 Dockerfile、launch.sh 与 app.py 启动链路,首次设置引导则由 libs/ktem/ktem/pages/setup.py 驱动,这种"一个入口、多种部署形态"的设计让在线体验与后续迁移到自建环境保持了一致性。若你需要更高可控性(本地模型、数据不出内网、GraphRAG 高级检索),可进一步参考仓库内的 Docker 安装说明、离线安装指南 与 本地模型配置。
【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考