news 2026/9/11 5:05:44

30 分钟完成 WeKnora 本地部署:单机 Docker + Ollama 跑私有 RAG 问答

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
30 分钟完成 WeKnora 本地部署:单机 Docker + Ollama 跑私有 RAG 问答

30 分钟完成 WeKnora 本地部署:单机 Docker + Ollama 跑私有 RAG 问答

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

WeKnora 是一个把文档变成可检索 RAG 知识库、再配自主问答智能体的开源 LLM 知识平台;本文只用 Docker 和 Ollama 带你完整走完 WeKnora 本地部署,让内网机器断开外网后照样解析文档、照样问答。

这套方案适合谁

先对号入座,命中任意一条就往下看:

  • 机器连不上外网:内网、机房环境,云端 API 根本调不通,WeKnora 本地部署后解析、检索、推理链路全在机器上跑;
  • 文档敏感不能出机器:金融、政务、医疗场景,离线部署后文件只落在自己的磁盘上;
  • 想在自己的硬件上吃透整条 RAG 链路:学习或小团队试点,单机 Docker 就够,不用上 Kubernetes。

反例:如果只是个人尝鲜、不需要多空间协作,直接看零依赖的 Lite 版本,更轻,见 docs/LITE.md。

动手前先备好

要求为什么
软件Docker ≥20.10、Docker Compose v2、GitOllama 不必预装,启动脚本会自动装
硬件8 核 CPU、32GB 内存起步7B 对话模型推理吃内存,至少留 16GB 可用内存,否则模型加载时会 OOM
磁盘预留 200GB镜像、模型、文档解析产物都会往盘上写
网络首次拉镜像和拉模型必须联网见下方警告

⚠️网络窗口是离线部署最大的坑:正确姿势是"一台联网机器下载好全部镜像与模型,docker save 打包拷到目标机 load",再开始部署;在目标机上现拉只会一直失败。

实操

第 1 步:拿到 WeKnora 本地部署的代码

一次性取代码并初始化配置,整个部署只有一个配置入口 .env,模板里每一项都带注释,照着填就行。

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env

成功信号:根目录ls能看到 .env 与 .env.example 两个文件并存。

第 2 步:填好 .env 里的四个关键变量

只改四处,其余保持默认。

grep -E "STORAGE_TYPE|OLLAMA_BASE_URL|DB_PASSWORD|SYSTEM_AES_KEY" .env
  • STORAGE_TYPE保持 local,文件直接存容器挂载的本地目录,不引入对象存储;
  • OLLAMA_BASE_URL保持默认http://host.docker.internal:11434,别改成 localhost——容器里的 localhost 指向容器自己,只有 host.docker.internal 才通宿主机;
  • DB_PASSWORDSYSTEM_AES_KEY换成自己生成的值,后者是加密数据库敏感字段的 32 字节 AES 密钥,丢了已加密数据就无法恢复。

成功信号:上面四行全部有值,且你改过的 SYSTEM_AES_KEY 恰好 32 字节。

第 3 步:一条命令拉起集群

脚本会先确认 Ollama、检查 .env 是否齐全,再用 compose 拉起前端、app、postgres、docreader、redis 这批容器,相当于把 Docker 快速上手的检查清单自动化了。

./scripts/start_all.sh --no-pull

--no-pull表示不联网拉镜像、只用本地已 load 的镜像,这是离线部署的关键开关;第一次在有网机器上部署就去掉这个参数。

成功信号:脚本末尾打印出"前端界面: http://localhost"和"API接口: http://localhost:8080",随后执行:

docker compose ps curl -f http://localhost:8080/health

ps里 WeKnora-app、WeKnora-postgres、WeKnora-docreader 等全部 Up,curl 返回 HTTP 200、响应体{"status":"ok"}

第 4 步:Ollama 搭配装入两个模型

对话和嵌入各要一个。

ollama pull bge-m3 ollama pull qwen2.5:7b

离线环境下这两条命令在联网机器执行,导出模型文件拷过去再导入。

成功信号:ollama list能看到这两个模型;缺模型时 app 只会告警、不会崩,但问答功能暂时用不了。

排障速查

现象原因动作
app 日志持续告警 Ollama 连不上,问答功能不可用OLLAMA_BASE_URL 写了 localhost,或 Ollama 服务没在跑确认宿主机 Ollama 存活后,把 .env 改成 http://host.docker.internal:11434 再重启 app
启动时报找不到镜像离线机没有 load 过镜像联网机 docker save、目标机 docker load,再跑一次启动命令
上传文档被直接拒绝单文件超过 MAX_FILE_SIZE_MB(默认 50MB)调大 .env 里该变量,或把文档拆分
问答太慢无 GPU 时推理全压在 CPU 上换更小的对话模型,或调小 BATCH_EMBED_SIZE 换内存

之后值得调的参数

三个地方最值得动:对话模型规格(选 Ollama 上能稳定跑通的最小尺寸)、.env.example 里的BATCH_EMBED_SIZE(嵌入批次,越小越省内存)、config/config.yaml 里的embedding_top_krerank_top_k(召回数量,该文件直接挂载进 app 容器,改完重启即生效,不用重建镜像)。

跑通之后

文档解析、向量检索、模型推理全部在本机完成、数据不出机器,这就是 WeKnora 本地部署的终点。

两个下一步动作:给数据卷挂独立磁盘并定期备份;把 Ollama 指向内网里显存最大的那台机器,做模型负载分担。

想深入就翻这几份仓库内材料:

  • 启动与运维脚本:scripts/start_all.sh
  • 配置模板:.env.example
  • 常见问题与运维:docs/QA.md
  • 分块与解析细节:docs/CHUNKING.md

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 5:01:48

Python实现壁纸自动下载工具的技术解析

1. 项目概述:用Python打造壁纸自动下载工具每次手动下载壁纸都要经历"搜索→筛选→保存"的重复操作?作为Python开发者,我花了三天时间开发了一套全自动壁纸下载脚本。这个工具能根据关键词自动抓取高清壁纸,支持定时任务…

作者头像 李华
网站建设 2026/9/11 5:00:18

如何在AMD和Intel显卡上运行CUDA程序:ZLUDA安装教程与配置完整指南

如何在AMD和Intel显卡上运行CUDA程序:ZLUDA安装教程与配置完整指南 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA ZLUDA 是一个通过软件层模拟 CUDA 运行时的开源项目,它的目标是实现…

作者头像 李华
网站建设 2026/9/11 4:59:15

微信小程序同城社交APP毕设全攻略:从选题到部署答辩

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:56:26

用AI安全重构Java遗留系统:从行为基线到小步迭代的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:52:53

Billion Mail 部署教程:从初始化到第一封邮件群发

Billion Mail 部署教程:从初始化到第一封邮件群发 【免费下载链接】BillionMail BillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discor…

作者头像 李华