尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

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/WeKnoraWeKnora 是一个把文档变成可检索 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 .envSTORAGE_TYPE保持 local文件直接存容器挂载的本地目录不引入对象存储OLLAMA_BASE_URL保持默认http://host.docker.internal:11434别改成 localhost——容器里的 localhost 指向容器自己只有 host.docker.internal 才通宿主机DB_PASSWORD、SYSTEM_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/healthps里 WeKnora-app、WeKnora-postgres、WeKnora-docreader 等全部 Upcurl 返回 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_k与rerank_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),仅供参考
返回列表