不用云端 API: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,等于把数据交给别人;而很多团队又买不起 GPU 服务器。这就是 WeKnora 的切入点。它是一个开源的大模型知识平台,把文档解析、切分、向量化(把文字转成一组可以比较相似度的数字)、检索和问答整条链路都放在你自己的机器上,回答由本地大模型完成。一次问话,数据从头到尾不出这台机器。
🧰 准备清单:动手前把这些备齐
先看整体结构。WeKnora 的架构是模块化流水线:文档解析、向量化、检索、模型推理,每个环节都可以单独替换,也都可以换成纯本地实现。
| 类别 | 最低体验配置 | 推荐配置 | 多人并发/更大模型 |
|---|---|---|---|
| CPU | 4 核 | 8 核 | 16 核及以上 |
| 内存 | 8 GB | 16 GB | 32 GB 起步 |
| 磁盘 | 20 GB 可用空间 | 50 GB | 按知识库规模再加 |
| GPU | 可选(CPU 也能跑 7B~8B 模型) | 有则明显提速 | 建议配备 |
软件方面需要四样东西:
- Docker 与 Docker Compose:跑 WeKnora 后端、数据库、文档解析等容器;
- Git:拉取代码;
- Ollama:本地模型推理服务,负责加载和运行大模型,全程不经过外网;
- 本文用到的 WeKnora 代码仓库。
注意一点:本地部署至少要准备两个模型——一个对话模型(负责生成回答),一个向量嵌入模型(负责把文档和问题变成可比较的数字)。
🚀 动手部署:五个步骤跑起整套服务
1. 克隆代码并生成配置
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env完成后应看到:目录下出现了一个.env文件。这是整套服务的环境配置入口,数据库、模型地址都从这里读。
2. 先装推理服务:安装 Ollama 并拉取模型
curl -fsSL https://ollama.com/install.sh | sh ollama serve & ollama pull llama3:8b ollama pull nomic-embed-text第一条装 Ollama,第二条让它在后台常驻,后两条下载对话模型和嵌入模型。完成后应看到:
curl http://localhost:11434/api/tags返回的 JSON 里同时出现llama3:8b和nomic-embed-text。
3. 启动 WeKnora 全套服务
make start-all这条命令会拉起后端应用、前端、PostgreSQL 和文档解析等容器。完成后应看到:终端输出中各容器状态为 running,且没有反复重启的容器。
4. 打开初始化向导,接上 Ollama
浏览器访问http://localhost,按向导完成三件事:注册账号、选择模型来源为本地 Ollama、选定刚才拉下来的两个模型。向导里有一个"模型连通性测试",通过后说明后端能正常调用你的本地模型。
一个高频坑:后端跑在容器里,容器里的localhost不是你的宿主机。Ollama 地址请填http://host.docker.internal:11434,不要填http://localhost:11434。
完成后应看到:页面进入正常工作台,而不是停留在初始化界面。
5. 建知识库并上传第一批文档
在工作台创建一个知识库,把几份自己的文档(PDF、Word 都行)传进去。上传后文档会排队走"解析 → 切块 → 向量化 → 入库"的流程,处理完成后文档状态变为就绪,每个切片都可以在界面上查看和编辑。
完成后应看到:知识库列表里出现新文档,状态为处理完成,且能看到对应的文本切片。
✅ 验证与体验:第一次提问
服务状态可以再确认一遍:
curl http://localhost:11434/api/version # Ollama 版本 curl http://localhost:11434/api/models # 已加载的模型然后回到网页,打开刚才的知识库,问一个只有你上传的文档里才有的事实,比如"这份手册里 X 功能的默认超时是多少"。
实际体验下来有两个感受值得说。一是回答下面会带引用来源,点开能直接跳到文档里那段原文,答案是否可信一眼可查;二是本地模型的速度取决于你的硬件,8B 级别的模型在普通 CPU 上逐字输出会有点慢,但读答案的同时继续打下一句问题的时间完全够用。
📈 进阶与常见问题
三条优化建议:
- 模型大小跟着硬件走。8GB 内存机器选 7B 级别模型,16GB 以上再上更大的;上下文窗口(num_ctx)按文档长短调,不必一律拉满,省内存。
- 低配机器可以走 Lite 模式。它把 WeKnora 打成一个单二进制,内置 SQLite,不需要 PostgreSQL 和 Redis,一条命令启动:
make run-lite。数据完全留在本地,适合个人试用,详见 Lite 说明。 - 想多用户协作时再考虑加内存和向量索引规模;单用户场景默认配置已经够用。
常见问题速查:
| 现象 | 一句话解法 |
|---|---|
| 向导里 Ollama 连通性测试失败 | 地址改成http://host.docker.internal:11434(容器访问宿主机的写法) |
| Ollama 报端口 11434 被占用 | 换一个端口起 Ollama,并同步修改.env里的OLLAMA_BASE_URL |
| 部分容器反复重启 | 看docker compose logs找第一个报错的容器,通常是.env里缺变量 |
| 上传文档一直"处理中" | 确认文档解析容器存活,必要时重启整套服务再重新上传 |
更多资料都在仓库里:
- 官方文档站(安装、快速上手、配置全解):website-docs/
- 初始化接口与 Ollama 检测接口说明:website-docs/01-getting-started/03-quickstart.md
- 排障 FAQ:docs/QA.md
- API 参考:docs/api/
- Go 客户端示例(用代码创建知识库、发起问答):client/example.go
- 开发模式与二次开发:docs/开发指南.md
部署完成后,你可以在浏览器里继续上传文档测试检索效果,也可以参照 client/example.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),仅供参考