免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

WeKnora 内网离线部署实操:3 个板块从零跑通本地 RAG 知识库

WeKnora 内网离线部署实操:3 个板块从零跑通本地 RAG 知识库 WeKnora 内网离线部署实操3 个板块从零跑通本地 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/WeKnoraWeKnora 是一个开源 LLM 知识平台把 PDF、Word 等原始文档变成可检索的 RAG 知识库再配一个能自主推理的问答 Agent 和自动生成的 Wiki。这篇指南带你在一台无网或只有内网的机器上完成私有化部署文档解析、向量检索、模型推理全在本机数据不出机器读完照做就能跑通。30 秒自检这套方案适不适合你三个问题各一句判断加一句后果机器连不上外网是的话直接往下看全部组件跑在单机 Docker 里拔网线也能用能连公网就别折腾本地模型了直接用云端 API 更省事。数据不能出机器金融、政务、医疗的文档丢给第三方 API 过不了合规私有化部署后文件只落在自己的磁盘上数据能出网就用云端托管服务运维成本更低。是不是单台 Docker 主机本方案 8 核 32GB 内存单机就够如果你要的是多节点 K8s 集群看仓库里的 helm/ 模板那不是本文范围。不适合以上场景比如只是个人尝鲜、不需要多空间协作建议先用零依赖单应用的 Lite 版本部署轻得多区别见 docs/LITE.md。部署地图组件、端口与硬件要求组件作用默认端口/关键参数备注frontendWeb 界面nginx 代理 API 请求80FRONTEND_PORT依赖 app 健康后才启动app主服务解析调度、检索、Agent 推理8080APP_PORT/health健康检查入口postgres主数据库 向量库ParadeDB/pgvector5432仅容器内数据和嵌入向量都存这里docreader文档解析器PDF/Word/Excel 等gRPC 50051仅容器内不对宿主机暴露redis异步任务队列Asynq6379仅容器内密码由REDIS_PASSWORD注入Ollama宿主机上的模型推理服务11434不在 compose 里启动脚本自动安装硬件与网络要求每条都是要求 原因8 核 CPU 32GB 内存无 GPU 时模型推理和 PDF 解析全压 CPU吃内存跑 7B 对话模型建议留 16GB 以上可用。磁盘预留 200GB镜像、模型权重、文档解析产物都会往盘上写留少了中途扩容很麻烦。首次必须有一个联网窗口拉镜像、拉模型都要联网真正的无网环境正确姿势是一台联网机器下好所有东西拷到目标机再部署不是在目标机上现拉。Docker ≥20.10 Compose v2 Gitscripts/start_all.sh 依赖这三者完成 Ollama 安装和容器编排。备料代码、配置与关键变量目标拿到代码并把.env和config/config.yaml备齐这两个文件是整个部署唯一的配置入口。操作git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env克隆仓库并从模板复制出 compose 实际读取的.env。.env里重点改四处其余保持默认STORAGE_TYPE→ 保持local→ 文件直接存容器挂载的本地目录不引入对象存储内网部署没必要多一个 MinIO。OLLAMA_BASE_URL→ 保持默认http://host.docker.internal:11434宿主机 Ollama→ 容器里写localhost指的是容器自己找不到模型Ollama 在别的机器就改成那台的内网 IP。DB_PASSWORD、REDIS_PASSWORD→ 换成自己生成的值→ 模板里的示例值在仓库里公开内网也别沿用。SYSTEM_AES_KEY→ 换成自己生成的 32 字节值→ 它负责库里 API Key、模型凭据的落盘加密丢了这些字段就永久解不回来。另外 config/config.yaml 会被直接挂载进 app 容器解析与检索行为想微调时改它就行重启容器生效不用重建镜像。完成信号.env存在且上面四处都已填好。起服务一条命令启动目标确认环境没问题后一条命令把 5 个容器全部拉起来。先做一次环境自检./scripts/start_all.sh -c这条命令把 Docker、Ollama、.env完整性、磁盘和内存一次性检查并打印出来有缺的会直接告诉你缺什么。没问题就启动./scripts/start_all.sh脚本串了三件事确认 Ollama 在跑没装会自动装、检查.env、再用 compose 拉起前端、app、postgres、docreader、redis。离线机器用镜像已经docker load进本地的话改跑./scripts/start_all.sh --no-pull跳过拉取直接用本地镜像这正是离线部署的关键开关。完成信号 脚本末尾打印出前端界面: http://localhost和API接口: http://localhost:8080集群即起来了。备模型嵌入与对话各备一个目标Ollama 里就位一个嵌入模型和一个对话模型缺哪个哪段链路就断。嵌入模型——把文档切成向量入库用推荐bge-m3ollama pull bge-m3这条命令下载 1024 维的中文 embedding 模型。完成信号ollama list里能看到bge-m3。离线怎么办在联网机器ollama pull bge-m3后ollama save导出.ollama文件拷过去目标机ollama load导入。对话模型——回答问题和生成 Wiki 用按机器配置选ollama pull qwen2.5:7b这条命令下载 7B 对话模型内存紧张就换qwen2.5:3b之类更小的模型名换成你本地已有的即可。完成信号curl http://localhost:11434/api/tags返回的 JSON 里同时包含两个模型。离线导入方式同上。⚠️ 模型没就位时 app 只告警不崩OLLAMA_OPTIONALtrue默认开启但上传文档和问答功能暂时用不了。启动后验证5 项过全才算跑通顺序操作预期结果1docker compose ps所有容器 Up重点看 WeKnora-app、-postgres、-docreader2curl -f http://localhost:8080/health返回 200后端健康检查通过3浏览器打开 http://localhost注册登录第一个账号默认开放注册第一个账号即可使用系统设置4新建知识库上传一份 PDF解析状态从 processing 变为完成5问答页问一句这份文档主要讲什么拿到带引用出处的回答整条链路全通踩坑与调优三个最高频问题app 容器反复重启日志全是 Ollama 连不上现象docker compose ps里 app 状态 Restarting日志报模型服务连接失败。原因OLLAMA_BASE_URL写成了localhost容器内该地址指向容器自身或宿主机 Ollama 根本没起来。处理先在宿主机curl http://localhost:11434/api/tags确认 Ollama 活着再核对.env写的是host.docker.internal:11434远程模型则填内网 IP。上传文档失败或解析卡在 processing现象前端提示上传失败或文档列表长期停在解析中。原因默认单文件上限 50MBMAX_FILE_SIZE_MB超限直接拒没超限则是解析器不支持该格式。处理超限的压缩或拆分没超限就docker compose logs docreader解析器会报具体是哪种格式不认详见 docs/QA.md。问答太慢现象第一个 token 等十几秒甚至更久。原因无 GPU 时推理全压在 CPU 上模型越大延迟越高与配置无关。处理换一个更小的对话模型或把.env的BATCH_EMBED_SIZE调小换内存这两招通常比换硬件见效快。三个调优抓手各配动哪个旋钮 预期效果对话模型规格Ollama 里 7B 换 3BCPU 推理延迟明显下降回答质量略有损失适合先跑通再升配。BATCH_EMBED_SIZE调小嵌入批大小内存峰值下降、不再 OOM代价是批量入库吞吐略降。config/config.yaml里的embedding_top_k/rerank_top_k调低减少召回数量换速度调高换答案质量改完重启 app 生效调参细节见 docs/CHUNKING.md。收尾跑通之后值得做的两件事到这里解析、检索、推理已经在单机上闭环数据全程不出机器升级时改.env的WEKNORA_VERSION再拉镜像即可。下一步建议做两件事给postgres-data和data-files两个数据卷挂独立磁盘并定期备份防止单盘故障丢库内网里有 GPU 机器的话把OLLAMA_BASE_URL指过去做模型负载分担。继续深入从这几份仓库内材料入手部署脚本scripts/start_all.sh启动、停止、环境检查都在这里配置模板.env.example每项变量都带注释解析与检索调优config/config.yaml常见问题与运维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),仅供参考
返回列表