
WeKnora 本地部署全指南5 分钟跑通离线 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/WeKnora当你需要让模型读懂内部合同但又不能让任何一个字节离开内网时这件事的解法其实不复杂——只要整条推理链路都在你自己的机器上跑。WeKnora 是一款开源的 LLM 知识平台支持完整的本地部署文档解析、向量化、检索、模型推理全部发生在内网数据不出机房。它能把一堆原始文档变成可查询的 RAG 知识库、能自主编排工具推理的 Agent以及一份会自己维护的 Wiki。这一篇就讲怎么把它跑起来、怎么调顺。 WeKnora 核心能力解析、调度、隔离三条线一句话结论WeKnora 用一条可插拔的文档处理流水线 一个统一模型调度层 一套面向私有化部署的安全机制把文档进、答案出整条链路搬进了你的内网。文档处理链路PDF 到向量的本地流水线它做的事接收 PDF、Word、Excel、Markdown 等十余种格式走完解析 → 分块 → 向量化 → 入库四步。怎么做到解析由独立的 docreader 服务通过 gRPC 完成也就是主服务只管编排解析这种重活交给独立进程分块策略集中在 分块器模块 里实现默认按 512 token 一片、50 token 重叠切分。对你意味着什么换解析引擎、换分块参数都不需要动主应用代码链路是解耦的。模型调度层Ollama 只是选项之一它做的事统一屏蔽底层模型差异对话、Embedding生成向量表示的模型、Rerank对召回结果二次排序的模型走同一套配置接口。怎么做到模型实现按厂商分文件组织本地模型由 Ollama 聊天实现 和 Embedding 实现 承接同时兼容 OpenAI、DeepSeek、Qwen 等二十多家厂商全部通过 .env 里的声明式变量切换。对你意味着什么今天用 Ollama 纯离线明天某条业务线想切云端模型改的是配置而不是代码。安全隔离机制为数据不出内网兜底它做的事防止敏感信息在传输和存储环节漏出去。怎么做到API Key 与数据源凭据用 AES-256-GCM 静态加密出站 HTTP 请求统一走防 SSRF服务器端请求伪造即防止服务被诱导访问内网地址客户端多用户场景有四级角色矩阵的 RBAC基于角色的访问控制。对你意味着什么部署到内网后它默认就是按不可信边界来设防的不用自己补安全课。三条线都看完了接下来是最实际的部分从零跑通。 五分钟上手三步完成 WeKnora 离线部署目标很明确一台装了 Docker 和 Ollama 的机器五分钟拿到一个可用的本地知识库。第一步环境准备。核心只有两样Docker Compose 跑服务栈Ollama 提供本地模型。硬件规模可以参考下面这张对照表场景建议配置建议模型说明轻量体验8GB 内存 / 4 核7B 量化对话 小型 Embedding单机跑通即可解析并发调低标准部署16–32GB 内存 / 8 核8B 对话 通用 Embedding日常文档问答的主力配置高并发32GB 内存 / 12 核 GPU13B 或量化 70B多用户并发Embedding 走 GPU 加速第二步克隆并启动git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env # 按需修改文件内注释很全 docker compose pull docker compose up -d第三步接入本地模型。先在本机起 Ollama 并拉取模型ollama serve /dev/null 21 ollama pull qwen2.5:7b ollama pull nomic-embed-text然后在 .env 里打开这几个关键变量Ollama 不可用时系统只告警不阻断启动OLLAMA_OPTIONAL默认就是 true适合分阶段调试OLLAMA_OPTIONALtrue OLLAMA_BASE_URLhttp://host.docker.internal:11434 # 对话与向量化模型名称按你实际 pull 的填写 # INIT_LLM_MODEL_NAME... # INIT_EMBEDDING_MODEL_NAME... # INIT_EMBEDDING_MODEL_DIMENSION...跑通后你应该看到浏览器打开 http://localhost 出现 Web 界面后端 API 在 8080 端口注册账号后进入设置页能看到 Ollama 模型已连通上传一篇 PDF几分钟后就能带着引用片段问答。服务跑起来只是及格线下面是让它好用的三个调优动作。 调优实战检索命中率与解析吞吐的三处调整结论先行绝大多数不好用来自两处——分块参数和检索阈值没调以及解析并发保守导致上传后长时间排队。调整分块与检索阈值治答非所问现象模型回答和文档原文对不上或者引用总是差半句。原因通常是默认 512 的分块把关键段落切散了或者召回阈值过松把噪声也放了进来。调整方法在 config/config.yaml 里改两处——knowledge_base: chunk_size: 512 # 段落长的文档可降到 300让块更贴近语义边界 chunk_overlap: 50 conversation: vector_threshold: 0.2 # 余弦相似度门槛答非所问时调高到 0.3 收紧 rerank_threshold: 0.3 # 配合重排模型过滤低分召回效果变化分块变小会牺牲一点召回广度但显著提升片段相关性阈值每上调 0.05噪声明显减少代价是偶发的无匹配兜底回复变多。放开解析并发治上传后一直排队现象批量上传几十份文档后解析任务长时间停在队列里。原因重型解析器默认只有 1 个并发 workerEmbedding 也是小批量。调整方法.env 中放开DOCREADER_GRPC_MAX_WORKERS4 # gRPC 解析并发默认 4CPU 富余可再调 DOCREADER_MARKITDOWN_MAX_WORKERS2 # 重型解析器并发默认 1 # BATCH_EMBED_SIZE 留空走代码默认内存充足可显式调大效果变化同等文档量下的入库时间大致按并发线性缩短注意这是拿内存换时间8GB 机器的话 worker 数别超过 2。本地模型推理提速治首字等待久现象纯 CPU 环境下回答首字要等十几秒。做法是两条对话模型选量化版同参数量下快近一倍并通过 Ollama 的标准选项控制上下文窗口与线程数——Ollama 请求里透传num_ctx上下文长度文档很长才需要 4096 以上和num_thread建议设为物理核心数超配只会抖动。效果变化首字延迟通常能压到一半以内而回答质量基本不变——因为瓶颈本来就在解码吞吐不在温度参数。 踩坑速查与延伸资源下面是内网友好的社区里出镜率最高的五个故障按现象 → 原因 → 动作对照处理现象常见原因解决动作文档上传失败、解析卡住对话或 Embedding 模型没配对或 Ollama 没起确认ollama serve在跑核对 .env 中INIT_LLM_MODEL_NAME、INIT_EMBEDDING_MODEL_NAME及维度界面图片显示无效链接未启动 MinIO 或 bucket 权限不对docker compose --profile minio up -d检查 bucket 读写策略升级后版本不一致up -d复用了本地缓存镜像先docker compose pull再up -dPaddleOCR 启动失败平台兼容性部分 CPU 架构移除OCR_BACKEND配置或改为OCR_BACKENDvlm走视觉模型想看某一步到底慢在哪没开链路追踪docker compose --profile langfuse up -d在 3000 端口看逐阶段耗时延伸资源按需取用docs/QA.md官方常见问题排查手册docs/api/README.md全部 REST API 接口参考client/example.goGo 客户端调用示例代码docs/LITE.mdLite 版与标准版能力差异说明选型用打开终端敲下docker compose up -d你的知识库就在本地跑起来了。【免费下载链接】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),仅供参考