没有外网怎么部署 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服务器进不了公网文档问答还能不能用可以。WeKnora 这套开源 LLM 知识平台支持把文档解析、向量检索按语义相似度去知识库找内容、大模型推理全部放在你自己的机器上跑本文带你从零完成一次完整的 WeKnora 本地部署 / 离线部署最后你会得到一个能在内网里上传文档、直接提问的知识库。先花 30 秒看清它是什么这一章帮你确认这台无外网的机器上到底要跑哪些东西、能换来什么能力。WeKnora 的定位是把原始文档变成会查、会推理的知识资产。你上传一份 PDF 或 Word它先由内置的 docreader 解析服务拆成文本和块再交给嵌入模型把文本变成向量的模型入库提问时系统用混合检索关键词 向量 可选知识图谱找出相关段落最后由本地大模型组织成带引用的回答。整套链路里没有任何一步需要访问云端 API。核心能力清单十几种格式的文档解析PDF、Word、Excel、PPT、Markdown、HTML、图片等断网状态下都能解析入库RAG 快速问答基于知识库检索作答回答附来源引用ReAct Agent 模式可以自主多步调用检索、MCP 工具处理复杂问题模型、向量库、存储全部可换默认 PostgreSQL Ollama也可换成 Milvus、Qdrant 等内置 Web 控制台建库、上传、检索、改分块知识块的切分都有图形界面部署前检查清单这一章帮你把最容易卡住的三件事——硬件、依赖、模型文件——提前核对一遍免得部署到一半发现缺东西。检查项最低要求推荐配置备注CPU / 内存4 核 / 8GB8 核以上 / 16GB 起docreader 容器内含 LibreOffice、Playwright较吃内存跑 7B 对话模型建议再留内存磁盘预留 50GB 起100GB 以上 SSD要装下 Postgres 数据卷、上传文件卷、Ollama 模型文件Docker20.1020.10需带 Compose v2 插件docker composeCompose v1 也能用启动脚本会自动探测Git任意较新版本同左用于拉取代码离线场景也可整包拷贝Ollama已安装并能 serve同左本地推理入口WeKnora 默认地址http://host.docker.internal:11434模型文件1 个嵌入 1 个对话模型bge-m3嵌入 一个 7B 级对话模型量化版在有网机器上ollama pull下载好随机器搬进内网⚠️ 两个最容易漏的点一是 Ollama 模型文件几个 GB内网机器上拉不下来必须提前备二是 Docker 镜像本身见下一章第 3 步离线机需要预先docker load。最关键的几条命令docker --version docker compose version # 确认 Docker 与 Compose 版本 ollama serve # 启动本地推理服务内网机已装 Ollama 时 ./scripts/check-env.sh # 校验 .env 必填变量与工具链部署实操6 步把 WeKnora 跑起来这一章按顺序操作即可每一步都给了完成标志做到哪一步卡住就看哪一步。第 1 步拿到代码。在能访问该仓库的机器上克隆再整体拷贝到内网服务器或内网直接访问 git 服务。git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora完成标志内网服务器上存在WeKnora/docker-compose.yml和.env.example两个文件。第 2 步生成并修改配置。复制环境变量模板成.env重点改 5 处数据库口令DB_USER/DB_PASSWORD/DB_NAME、REDIS_PASSWORD、JWT_SECRET、SYSTEM_AES_KEY32 字节 AES 主密钥用于加密库里存的 API Key 等敏感字段保持STORAGE_TYPElocal文件存本地卷不需要 MinIO和OLLAMA_BASE_URLhttp://host.docker.internal:11434Ollama 跑在宿主机时。完整变量说明见 .env.example运行行为配置在 config/config.yaml。cp .env.example .env vi .env # 修改上述 5 处完成标志./scripts/check-env.sh不再报变量未设置。 别用模板里的默认密钥上生产SYSTEM_AES_KEY丢了会导致已加密的凭据全部不可恢复。第 3 步把 Docker 镜像搬进内网。在有网机器上拉取核心镜像并打包拷进内网后加载。# 有网机器 docker compose pull docker save -o weknora-images.tar wechatopenai/weknora-ui wechatopenai/weknora-app wechatopenai/weknora-docreader paradedb/paradedb:v0.22.2-pg17 redis:7.0-alpine # 内网机器 docker load -i weknora-images.tar完成标志内网机docker images里能看到wechatopenai/weknora-app等镜像。第 4 步加载 Ollama 模型。同样在有网机器上下载模型后拷贝~/.ollama/models目录或在有网机导出后于内网导入。ollama pull bge-m3 # 嵌入模型 ollama pull qwen2.5:7b # 对话模型按内存选 3B/7B完成标志ollama list里两个模型都在curl http://localhost:11434/api/tags有返回。第 5 步启动服务集群。使用仓库自带的一键脚本等价于docker compose up -d额外做了.env兜底和平台检测--no-pull表示不联网拉镜像./scripts/start_all.sh --no-pull它会在后台拉起 frontendNginx Vue 界面端口 80、appGo 后端端口 8080、docreader文档解析、postgresParadeDB带 BM25/向量扩展的 PostgreSQL、redis任务队列五个核心容器。完成标志脚本输出的启动结果里 Docker 容器一项为成功docker compose ps中各容器状态为 Up/healthyapp 的 healthcheck 依赖 postgres 与 docreader全绿才算齐。第 6 步注册账号并配置模型。浏览器打开http://localhost内网就用服务器 IP首次进入注册页创建第一个账号它将成为系统管理员。然后进入模型设置页把 LLM、嵌入Embedding两类模型都指向 Ollama模型名分别填第 4 步拉的对话模型和 bge-m3点测试连通。完成标志模型设置页两项测试均显示连接成功。验证是否真的可用5 步功能走查 性能基线这一章帮你确认部署不是起来了而是能用了并建立一套日常巡检的合格线。后端健康检查curl http://localhost:8080/health返回成功说明 Go 后端就绪创建知识库控制台进入知识库新建一个文档型知识库上传文档传一份 10 页左右的 PDF等状态从解析中变为已完成问答抽查问一个文档里确实存在的问题如XX 条款的审批流程是什么看回答是否附知识库引用换格式复测再传一份 Word 或 Excel确认多格式解析都正常关键指标基线8 核 CPU、跑 7B 量化模型时指标合格线明显偏慢时先查什么向量检索延迟 200ms知识库过大可先加过滤条件缩小检索范围问答响应时间整条 RAG 链路首答 5sOllama 是否被多个会话抢占、对话模型是否偏大文档解析速度≥ 10 页/分钟docreader 日志扫描件 PDF 会走 OCR 明显更慢内存使用率 80%调低CONCURRENCY_POOL_SIZE默认 5踩坑与优化这一章把高频故障压成一张表再给 4 条最值的调优和 2 条安全建议。现象原因处理页面能打开一问就报模型错误Ollama 没在跑或OLLAMA_BASE_URL指不到宿主机起ollama serve用curl http://localhost:11434/api/tags验证后重试OLLAMA_OPTIONALtrue时不可用只告警不阻断容易被忽略docker compose up报 .env 缺失或变量未设置没执行cp .env.example .env或必填项没填补齐后跑./scripts/check-env.sh自检文档上传后一直卡在解析中docreader 未健康或文件超过MAX_FILE_SIZE_MB默认 50MBdocker compose logs docreader看解析日志大文件先拆分问答结果和文档内容对不上嵌入模型换了但旧向量没重建维度对不上在知识库设置里重新解析/重建该库容器反复 OOM 被杀docreader含 LibreOffice/Playwright吃内存加大内存或调低CONCURRENCY_POOL_SIZE调优建议按性价比排序模型降档对话模型选量化版q4或 3B 级别嵌入用 bge-m3内存占用立降降并发低配机把CONCURRENCY_POOL_SIZE从默认 5 调到 2避免解析/嵌入同时打满检索引擎别叠加RETRIEVE_DRIVER保持默认postgresParadeDB 自带 BM25 向量不要额外拉 Milvus/Qdrant 组件占内存资源不够就换 Lite单机低资源场景可用 Lite 单二进制模式SQLite 内存队列一个进程跑全套官方文档标注其适用个人/离线/低资源环境见 website-docs/01-getting-started/02-installation.md 第七节安全两条生产环境设DISABLE_REGISTRATIONtrue关掉自助注册并把JWT_SECRET、SYSTEM_AES_KEY换成自己生成的值只把前端 80 端口暴露给内网用户后端 8080 尽量不对外官方安全建议也是不要把服务直接暴露在公网写在最后到这里你已经在无外网环境跑通了一次完整的 WeKnora 内网部署文档进得来、问答出得去、数据不出本机。日常维护记住两件事就够——docker compose ps看服务、docker compose logs app看日志遇到问题先翻 docs/QA.md。后续如果知识库规模变大可以往多向量库叠加检索、Langfuse 全链路追踪方向升级。官方资源均在仓库内内网可直接阅读安装部署详解website-docs/01-getting-started/02-installation.md故障排查 FAQdocs/QA.md一键启停脚本scripts/start_all.sh环境变量模板.env.example中文 README 与更新日志README_CN.md、CHANGELOG.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),仅供参考