腾讯开源知识库 WeKnora,手把手教你在 NAS 上部署
WeKnora:
一款基于大语言模型(LLM)的文档理解与语义检索框架,专为结构复杂、内容异构的文档场景而打造。框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。核心检索流程基于 RAG(Retrieval-Augmented Generation) 机制,将上下文相关片段与语言模型结合,实现更高质量的语义回答。
架构设计:
核心特性:
- 🔍 精准理解:支持 PDF、Word、图片等文档的结构化内容提取,统一构建语义视图
- 🧠 智能推理:借助大语言模型理解文档上下文与用户意图,支持精准问答与多轮对话
- 🔧 灵活扩展:从解析、嵌入、召回到生成全流程解耦,便于灵活集成与定制扩展
- ⚡ 高效检索:混合多种检索策略:关键词、向量、知识图谱
- 🎯 简单易用:直观的Web界面与标准API,零技术门槛快速上手
- 🔒 安全可控:支持本地化与私有云部署,数据完全自主可控
适用场景:
| 应用场景 | 具体应用 | 核心价值 |
|---|---|---|
| 企业知识管理 | 内部文档检索、规章制度问答、操作手册查询 | 提升知识查找效率,降低培训成本 |
| 科研文献分析 | 论文检索、研究报告分析、学术资料整理 | 加速文献调研,辅助研究决策 |
| 产品技术支持 | 产品手册问答、技术文档检索、故障排查 | 提升客户服务质量,减少技术支持负担 |
| 法律合规审查 | 合同条款检索、法规政策查询、案例分析 | 提高合规效率,降低法律风险 |
| 医疗知识辅助 | 医学文献检索、诊疗指南查询、病例分析 | 辅助临床决策,提升诊疗质量 |
功能模块能力:
| 功能模块 | 支持情况 | 说明 |
|---|---|---|
| 文档格式支持 | ✅ PDF / Word / Txt / Markdown / 图片(含 OCR / Caption) | 支持多种结构化与非结构化文档内容解析,支持图文混排与图像文字提取 |
| 嵌入模型支持 | ✅ 本地模型、BGE / GTE API 等 | 支持自定义 embedding 模型,兼容本地部署与云端向量生成接口 |
| 向量数据库接入 | ✅ PostgreSQL(pgvector)、Elasticsearch | 支持主流向量索引后端,可灵活切换与扩展,适配不同检索场景 |
| 检索机制 | ✅ BM25 / Dense Retrieve / GraphRAG | 支持稠密/稀疏召回、知识图谱增强检索等多种策略,可自由组合召回-重排-生成流程 |
| 大模型集成 | ✅ 支持 Qwen、DeepSeek 等,思考/非思考模式切换 | 可接入本地大模型(如 Ollama 启动)或调用外部 API 服务,支持推理模式灵活配置 |
| 问答能力 | ✅ 上下文感知、多轮对话、提示词模板 | 支持复杂语义建模、指令控制与链式问答,可配置提示词与上下文窗口 |
| 端到端测试支持 | ✅ 检索+生成过程可视化与指标评估 | 提供一体化链路测试工具,支持评估召回命中率、回答覆盖度、BLEU / ROUGE 等主流指标 |
| 部署模式 | ✅ 支持本地部署 / Docker 镜像 | 满足私有化、离线部署与灵活运维的需求 |
| 用户界面 | ✅ Web UI + RESTful API | 提供交互式界面与标准 API 接口,适配开发者与业务用户使用习惯 |
安装
下载项目到本地:github.com/Tencent/WeKnora
解压 ZIP 文件,找到 .env.example 配置文件
打开编辑,修改 Ollama 地址(需要自行单独部署)
默认是用 Qwen3 8B 模型,也可以切换为自己的模型(记得删掉前面“#”屏蔽)
根据需要可以修改前端服务端口
TIP:如果是飞牛系统 postgres 容器端口 5432 已经被占用,需要进行修改
将文件重命名为 .env
将所有文件上传到 NAS 上
创建项目,选择上面文件夹路径即可(配置会自动导入)
等待容器构建完成需要一些时间
由于容器比较多,启动后一定要注意有没有报错,是否都全部启动成功
1 | sudo bash ./scripts/start_all.sh |
使用
浏览器中输入 http://NAS的IP:8081 就能看到界面
首先需要注册一个账号,点击“立即注册”
填写用户名,邮箱和密码进行注册
注册完成就可以登录了,注意是用邮箱
管理面板还是比较清爽简洁的,点击右上角“新建知识库”
这里我就随便填写一个名称了
TIP:有可能会遇到创建失败的情况(我也是后来加交流群才知道的解决方法)
连接 SSH,输入下面命令查看数据库表(这里只有几个,说明创建少了)
1 | docker exec -it WeKnora-postgres psql -U postgres -d WeKnora -c "\dt" |
输入下面命令初始化,会自动创建缺少的表了
1 | docker exec -i WeKnora-postgres psql -U postgres -d WeKnora -f /docker-entrypoint-initdb.d/00-init-db.sql |
再次输入命令查看,现在就全了
1 | docker exec -it WeKnora-postgres psql -U postgres -d WeKnora -c "\dt" |
创建知识库后,需要先配置一下
这里我是配置使用 Ollama 的,可以看到目前安装过的模型(每个人可能都不一样)
LLM 大语言模型配置,模型选了一个比较小的(速度考虑,也可以选大的会更智能)
Embedding 嵌入模型配置,也可以选普通常规模型,最好当然是选嵌入模型
其他这些就保持默认了,最后记得点击保存
设置完成就会进入知识库,上传需要学习的文件
随便找了两个文档进行测试
效果还行,起码是能索引到相关的文章
如果有不同类型需求,也可以创建多个知识库
系统信息,官方提供了 API 开发文档,有需要二次开发的用户可以点开看看
资源占用情况(不计 Ollama),处理器占用不高,内存占用在 1.3GB 左右
总结
部署这个也是遇到了一些小意外,就是无法创建知识库,上网搜索一堆也没找到方法,最后还是加了开发者的群才搞定的。真的要吐槽网络上的云教程,根本就是误人子弟,都是复制粘贴介绍的图片就算教程了。
WeKnora 是一款基于大语言模型的文档理解与检索框架,简单来说就是知识库。对接好模型,将需要学习的文档上传到知识库里,就可以对话搜索里面的内容了。不管是企业里整理内部文档、做知识管理,还是科研人员查文献、技术支持查手册,都能派上用场。











































