☰
WeKnora 本地部署教程:30 分钟搭出一个私有 RAG 知识库
2026/10/19 1:30:33 网站建设 项目流程

WeKnora 本地部署教程:30 分钟搭出一个私有 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,数据全程留在本地。本教程以标准版为主线、Lite 版标注差异,全程约 30 分钟(标准版首次拉镜像另计 10–20 分钟,取决于网络),完成后你得到一台可提问的本地知识库实例。

动手前先定方案

两条部署路线的差别决定后续步骤和硬件预算,先看表再选:

对比维度标准版(Docker Compose)Lite 单二进制
外部依赖Docker + Compose,多容器栈零外部服务,单二进制 + 一个 SQLite 文件
账号与协作多空间,注册登录,RBAC 权限单空间,开箱即用
文档解析多种解析引擎可选内置 Simple 解析引擎
硬件基线4 核 8GB 起步同机可跑,4 核 8GB 更从容
适用场景团队共享知识库(团队场景,推荐)个人本机试用、隐私优先(个人场景,推荐)

一句话:多人协作选标准版,个人试用选 Lite 版。两条路线都建议搭配 Ollama(本地大模型运行器)做完全离线的推理;已有云端模型 API 的,Lite 用OPENAI_BASE_URL指向它,标准版在.env里填对应地址与密钥即可。

主线步骤

步骤 1:获取源码

目标:把项目文件放到本地磁盘。

克隆仓库并进入目录:

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora

步骤 2:生成配置文件并填密钥

目标:拿到一份专属配置文件,并把两处留空的安全密钥换成自己的值。

若走标准版路线执行cp .env.example .env;若走 Lite 路线执行cp .env.lite.example .env.lite。然后生成两个密钥填入:

openssl rand -hex 32 openssl rand -hex 16

前一个填JWT_SECRET,后一个填SYSTEM_AES_KEY(标准版要求 32 字节)。SYSTEM_AES_KEY要存档保存,丢失后旧凭据无法解密。若走 Lite 路线,确认OLLAMA_BASE_URL保持http://127.0.0.1:11434;若走标准版路线,容器内地址是http://host.docker.internal:11434,两者都是默认值,Ollama 端口不是 11434 时才需要改。

步骤 3:准备模型服务

目标:确保对话模型和向量化模型都可用。

完全本地化时,安装并启动 Ollama,拉取一个对话模型(7B–8B 规格任选)和一个用于文档向量化的 embedding 模型:

ollama serve ollama pull qwen2.5:7b ollama pull nomic-embed-text

已有 OpenAI 兼容云端模型 API 的,跳过本步,在配置文件里填服务地址和密钥即可。

步骤 4:启动服务

目标:让全部组件进入运行状态。

若走标准版路线,依次执行:

docker compose pull docker compose up -d

预期结果:docker compose ps中 frontend、app、docreader、postgres、redis 全部 healthy/running;首次拉镜像 10–20 分钟。若走 Lite 路线执行make run-lite,它先构建前端再构建 Go 二进制,首次约 5–10 分钟,需要本机装好 Go 1.26 与 Node。

步骤 5:首次进入并初始化模型

目标:完成账号与模型接通,进入可提问状态。

浏览器打开http://localhost(标准版后端 API 在http://localhost:8080)。若走标准版路线,会落在注册页,先创建第一个账号;若走 Lite 路线,页面直接可用,单空间免注册。在初始化向导或设置页的模型配置里填 LLM 与 Embedding 的地址和模型名,各做一次连通性测试,预期结果:两项都返回成功。

跑通自检

四项全过再开始导资料:

检查项通过标准不通过时去哪查
Web 页面打开http://localhost出现注册/登录页;标准版 5 个容器均为 runningdocker compose ps、docker compose logs -f app
模型连通设置页 LLM 与 Embedding 测试均返回成功确认 Ollama 在跑;容器内地址是否用了host.docker.internal
文档上传建文档知识库传一份 PDF,几秒内从处理中变为完成文档详情页的解析追踪时间线,看卡在哪一阶段
问答带引用问文档内的事实性问题,回答末尾有原文引用段知识库的检索配置与文档索引状态

跑通后立刻能做的 3 件事

把散落文档变成可搜索的库。新建文档知识库后直接拖入制度文档与技术手册,原目录结构会保留成侧栏的文件夹树,支持框选多选和批量打标签;检索时向量与关键词并行召回,返回带出处的原文片段。

追问一个答案的出处。在知识库问答模式下提一个事实性问题,模型先检索相关段落再组织回答,你可以逐段回溯到原文分块;对高频问题,把答案单独固定进 FAQ 类知识库,以后直接命中。

修正一个错误的检索块。进入文档详情页的分块编辑,改掉错误分块并保存,索引自动重建,下一次检索立刻生效;界面保留版本历史,支持 diff 对比和一键回滚。

排障速查 + 扩容参数

症状最常见原因一句话处理
Web 页面打不开端口被占或容器未就绪查.env中FRONTEND_PORT,用docker compose logs -f app看报错
模型测试失败Ollama 未启动或地址写错标准版容器内用host.docker.internal:11434,Lite 用127.0.0.1:11434
上传后停在"处理中"Embedding 模型没配好或解析任务挂住核对向量模型配置;追踪时间线里挂死可直接中止解析
图片显示无效链接存储后端对外不可达Lite 默认本地存储不会遇到;标准版用 MinIO 时配一个可达地址
刚保存的配置消失登录账号与空间归属不一致切回自己创建的空间再操作

更多按现象定位的问题,见 website-docs/01-getting-started/05-troubleshooting.md。

数据量上来之后

文档量上来后,按顺序调这四个参数:

  • BATCH_EMBED_SIZE设 64:批量入库时一次请求向量化 64 条,明显减少与 Ollama 的往返次数。
  • DOCREADER_GRPC_MAX_WORKERS设 CPU 核数(默认 4):文档解析是 CPU 密集型任务,并行度直接缩短排队时间。
  • CONCURRENCY_POOL_SIZE控制在 3–8(标准版默认 5):并发太高挤占内存拖慢在线问答,太低拖慢入库。
  • Ollama 模型参数num_ctx按模型上限调大:上下文足够时检索片段不被截断,长文档问答质量更稳。

用 8B 级本地模型时记住权衡:要单条回答质量就加大num_ctx,要整体吞吐就压低并发、分批入库,两者不能同时要满。

下一步建议:先导入 10–20 份最高频的文档,用 5 个真实问题校准检索与回答质量;确认满意后再考虑给标准版加--profile minio、--profile langfuse等可选服务。

仓库内相关资料:

  • docs/LITE.md:Lite 与标准版逐条差异,选型摇摆时看这篇
  • website-docs/01-getting-started/04-configuration.md:环境变量与配置项完整清单
  • client/example.go:Go 客户端示例,写上传与检索脚本直接照抄结构

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询