
WeKnora 离线部署实操如何在无网环境下跑起本地 RAG 知识库与问答 Agent【免费下载链接】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内网机器没有外网文档又不能交给云端 API但你仍想要一个能传文档、能提问、能给出引用出处的 RAG 知识库。本文用 Docker Ollama 完成 WeKnora 私有化部署跑通后解析、检索、推理全部落在本机问答自带引用来源。先看你的处境这条路是否适合走你的情况这条路线是否适合更省事的替代选择机器连不上外网单位内网、机房网页都打不开适合。镜像、模型、解析全部本地化拔线也能跑若偶尔有网络窗口在联网机上把物料备齐再拷入内网部署文档涉密合规要求数据不出机器适合。文件与权重只落在自己的磁盘上涉密与非涉密混用时只让涉密文档进这套库其余走云端服务想在自己的硬件上吃透 RAG 链路或给小团队做试点适合。单机 compose 编排就够不必上重型调度纯个人尝鲜、无多人协作需求可先试零依赖的单应用 Lite 版机器预检硬件下限与联网窗口清单项目下限一句原因软件Docker ≥ 20.10、Compose v2、Gitcompose 文件按 v2 语法编写老版本直接解析失败硬件8 核 CPU / 32GB 内存7B 对话模型推理以内存为主可用内存低于 16GB 时响应明显拖慢磁盘预留 200GB镜像、模型权重、解析中间产物都往盘上写联网窗口首次拉镜像、下模型必须能上网⚠️ 离线部署的正确顺序在联网机上拉完镜像docker save打包、下好模型再整体拷进内网而非在目标机上现拉搭建走查取壳、接脑、跑通取壳代码与唯一配置入口git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env克隆代码并复制出配置模板——整个部署只有一个配置入口就是.env数据库密码、存储类型、Ollama 地址全在这一个文件里模板内每项都带注释。重点确认以下几处其余保持默认变量模板默认值作用一句话STORAGE_TYPElocal文件直接落到容器挂载的本地目录不引入对象存储OLLAMA_BASE_URLhttp://host.docker.internal:11434容器内访问宿主机 Ollama 的固定写法写成localhost会指向容器自己DB_PASSWORD/REDIS_PASSWORD/SYSTEM_AES_KEY模板示例值换成自生成值内网环境也别直接沿用示例密码另外 config/config.yaml 会被直接挂载进 app 容器映射到/app/config/config.yaml调解析与检索行为时改它、重启容器即可不需要重建镜像。接脑两个 Ollama 模型就位ollama pull bge-m3 # 嵌入模型 ollama pull qwen2.5:7b # 对话模型可换成你已有的型号嵌入和对话各备一个离线机器上这两条命令要在联网机执行导出模型文件拷入目标机再导入。模型缺席时 app 只告警、不崩溃但问答功能暂时不可用。跑通一条命令拉起整套集群./scripts/start_all.sh -c ./scripts/start_all.sh --no-pull第一条是环境自检先跑一遍排除低级问题第二条正式拉起前端、app、postgres、docreader、redis 这批容器。--no-pull表示跳过联网拉镜像、只用本地已有的——这正是离线启动的开关有网的首次部署去掉它即可。脚本还会顺带确认 Ollama 存活、.env齐全。 脚本末尾打印出前端80 端口与 API8080 端口两个地址时集群即就绪。更多启动、停止、重建操作都收在 scripts/start_all.sh 里。验收从进程级到效果级逐层确认进程级——容器状态。docker compose ps确认全部为 Up重点盯WeKnora-app、WeKnora-postgres、WeKnora-docreader三个核心容器。服务级——健康检查与首次登录。curl -f http://localhost:8080/health返回 200 说明后端自检通过随后浏览器打开http://localhost系统默认开放注册把第一个账号注册并登录。效果级——传 PDF 提问回答带引用。新建一个知识库上传一份 PDF等解析状态转为完成再到问答页问一句这份文档主要讲什么。回答中出现引用来源标注整条链路才算全通。✅ 三层全部通过这次部署才算真正落地。排障与调优高频卡点与三个旋钮症状可能原因处理app 容器反复重启日志刷 Ollama 连接失败Ollama 进程没起或.env里地址写成localhost先在宿主机跑curl http://localhost:11434/api/tags确认进程活着再把地址改成host.docker.internal上传文档被直接拒绝单文件超过 50MB 默认上限拆分文件或在.env调大MAX_FILE_SIZE_MB解析卡住无进展该格式不被解析器支持看docker compose logs docreader解析错误会指明具体原因调优集中在三个旋钮无 GPU 时优先动第一个旋钮所在文件说明对话模型规格前端模型设置 /ollama pull的目标型号CPU 推理全压对话模型换更小规格见效最快嵌入批次大小.env的BATCH_EMBED_SIZE调小用内存换稳定性召回数量config/config.yaml 的embedding_top_k/rerank_top_k调小减少检索上下文回答更快收尾跑通之后至此一台不碰外网的机器上已跑起完整的 WeKnora 私有化链路文档解析、向量检索、模型推理全部本地完成数据不出机器。接下来值得做的两件事给data-files数据卷挂独立磁盘并定期备份把 Ollama 指向内网里显存最大的那台机器做模型负载分担。延伸阅读部署脚本与全部子命令scripts/start_all.sh配置模板含逐项注释.env.example常见问题与运维手册docs/QA.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),仅供参考