ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

没有外网,文档照样能问答:WeKnora 本地化离线部署五步走

2026/9/6 15:25:42 拓冰建站 浏览量
没有外网,文档照样能问答:WeKnora 本地化离线部署五步走 没有外网文档照样能问答WeKnora 本地化离线部署五步走【免费下载链接】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也拉不到在线服务。这篇文章带你把 WeKnora 完整部署上去——一个开源的 LLM 知识平台装好后能解析本地文档也能对着文档做语义问答就是系统按问题意思自动找到相关段落再让本地大模型组织出回答。全程数据不出这台机器最后你会得到一个打开浏览器就能用的知识库。01 动手之前先过一遍自检清单 不用急着敲命令先确认机器够不够格。硬件和软件要求合在一张表里照着勾就行项目最低要求建议值是否必须联网CPU8 核16 核解析和推理都吃 CPU否内存32GB64GB本地 7B 模型跑起来不吃内存就白搭否磁盘200GB 可用400GBSSD 优先镜像 模型文件 文档都往这儿落否系统Linux x86_64 或 arm64主流发行版均可否DockerEngine 20.10Compose v224 带docker compose插件否模型文件Ollama 已装且模型就位一台有网的机器上提前备好见第 03 章第 3 步准备阶段需要部署过程不需要Git任意较新版本—仅获取代码时需要之后断开也没关系清单全绿就可以往下走了。唯一要记住的一点部署动作本身不碰外网需要外网的只有搬运代码和模型这一步所以可以先在能上网的机器上把东西备齐再搬过来。02 这套离线链路长什么样先花 30 秒建立整体印象后面五步你才知道自己在装什么。WeKnora 的离线形态其实就三段文档进来后被解析、切块、生成向量embedding把文字变成一串数字以便按语义比对连同原文一起存进本地 Postgres你提问时系统先在本地做关键词 向量混合检索把最相关的段落捞出来最后交给 Ollama 上跑的本地大模型基于这些段落生成回答。前端界面只是个壳真正的推理全部发生在局域网内。看懂了这条链路剩下就是把它落到你的机器上。03 落地五步从裸机到能问答第 1 步 · 把代码弄到机器上在一台能上网的机器上 clone 下来再整体拷贝U 盘 / 内网文件服务都行到目标机器git clone https://gitcode.com/GitHub_Trending/we/WeKnora判断成功目标机器上有完整的WeKnora目录能看到根目录下的docker-compose.yml和 scripts/start_all.sh。第 2 步 · 生成并修改 .envcp .env.example .env打开.env离线模式只需要动三处STORAGE_TYPElocal # 文档文件直接存本机磁盘 RETRIEVE_DRIVERpostgres # 向量检索复用自带 Postgres别再引外部向量库 OLLAMA_BASE_URLhttp://host.docker.internal:11434 # 指向宿主机的 Ollama判断成功运行./scripts/start_all.sh -c做环境自检输出里没有 Ollama 地址或存储配置的报错。第 3 步 · 备好本地模型这是纯离线部署里最容易翻车的一步。Ollama 需要一个翻译文档的 embedding 模型和一个负责回答的对话模型。在一台有网的机器上先备好再拷贝到目标机器导入或在目标机器用离线安装包装 Ollama 后导入模型文件ollama pull bge-m3 # 嵌入模型负责把文档/问题变成向量 ollama pull deepseek-r1:7b # 对话模型7B 级别纯 CPU 就能跑判断成功目标机器上执行ollama list两个模型都在列表里。第 4 步 · 一键启动./scripts/start_all.sh --no-pull--no-pull是关键告诉脚本不要尝试从镜像仓库拉取直接用本地已导入的镜像。脚本会依次拉起 Ollama、Postgres、Redis、文档解析器、后端和前端。判断成功脚本末尾打印所有服务启动完成并给出前端与 API 地址。第 5 步 · 验证跑通了docker compose ps判断成功所有容器状态为Upapp 容器显示healthy最佳浏览器打开http://localhost能看到注册/登录页。到这里部署环节就收工了剩下的是用起来。04 第一次用起来文档进去答案出来别写长文档教程你就按这张表点一遍两列对照着看操作预期结果打开 Web 页面注册账号并进入初始化向导向导里选择模型 Provider 为 OllamaLLM 选deepseek-r1:7b、嵌入模型选bge-m3保存后服务正常刷新左侧知识库→ 新建一个知识库列表里出现这个空知识库点击可进入详情页把 PDF / Word / TXT 拖进上传区文档列表里状态从解析中逐步变为已完成点开能看到切分好的段落在问答框问一个只存在于文档里的问题几秒内出答案答案下方标注了引用的原文段落点击可跳转换一种问法再问一次同义改写靠向量检索能命中不同但相关的段落回答仍然对得上上传和解析完成后界面大致长这样左边是知识库和文档右边直接问答。第一次问答如果答案驴唇不对马嘴先别怀疑平台多半是第 2 步的模型没选对——确认嵌入和对话都指向 Ollama 的本地模型。05 常见卡点 快速绕过离线部署 90% 的坑都集中在这几张表里对号入座现象最可能原因一招解决启动脚本卡在拉取镜像不动无网环境还走了在线拉取确认启动时带了--no-pull镜像应提前docker save导出、docker load导入后端日志报连不上 Ollama容器内host.docker.internal解析不到把OLLAMA_BASE_URL改成宿主机局域网 IP如http://192.168.1.10:1143480 或 8080 端口被占前端打不开机器上已有服务占了默认端口.env里把FRONTEND_PORT、APP_PORT改成 8081/8082 后重启容器文档长时间停在解析中CPU 解析并发默认值偏高队列排队.env里把CONCURRENCY_POOL_SIZE降到 2~3重启 app 容器答案啰嗦、抓不住重点7B 对话模型能力上限换更大的本地模型或到系统设置里收紧提示词模板磁盘告急模型 镜像 文档累积占用大删掉不用的模型ollama rm清理无用镜像卷处理完重启docker compose restart app观察日志即可。更多排障细节可以看仓库里的 docs/QA.md。06 想更快更省三条进阶建议跑通只是及格线。机器配置紧张的话按下面顺序调整收益最大给容器划好资源在 docker-compose.yml 的对应服务下加deploy.resources.limits把内存大头留给 Ollama模型推理app 和 docreader 各留 4~8GB 就够。模型降档或量化16GB 内存的机器别硬上 7B 对话模型换更小的模型或用 4-bit/8-bit 量化版本gguf内存占用能砍一半速度反而上来。调小批量与切块参数解析慢时调小 embedding 批量.env的BATCH_EMBED_SIZE检索命中不精时到知识库设置里调小默认 chunk 大小粒度更细、引用更准。这三条都是.env或 compose 文件级别的改动不需要重新构建镜像改完重启容器即生效。写在最后WeKnora 这套离线方案的价值在于它让文档解析 语义问答这类原本依赖云服务的能力完整留在了你自己的机房里——政府、金融、医疗这些对数据不出域有硬性要求的场景正是它的主场。部署完记得定期备份 Postgres 数据卷和文档目录平台本身则随时可以通过重新导入镜像和模型文件来平滑升级版本。官方文档与 FAQdocs/QA.md项目 README含功能全景README_CN.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),仅供参考