腾讯开源WeKnora部署全攻略:从零搭建智能文档问答系统
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模型,也可切换为自定义模型(记得删除前面“[#”屏蔽)

根据需要可以修改前端服务端口

提示:如果飞牛系统中postgres容器端口5432已被占用,需进行相应修改

将文件重命名为.env

将所有文件上传到NAS设备上

创建项目,选择上述文件夹路径(配置会自动导入)

等待容器构建完成,此过程可能需要一些时间

由于容器数量较多,启动后务必检查是否有报错,确保所有服务均成功启动

sudo bash ./scripts/start_all.sh
sudo bash ./scripts/start_all.sh --stop
sudo make clean-db
initialization
使用操作指南
在浏览器中输入 http://NAS的IP:8081 即可访问系统界面

首先需要注册一个账号,点击“立即注册”按钮

填写用户名、邮箱和密码完成注册过程

注册完成后即可登录系统,注意需使用邮箱作为登录凭证

管理面板设计简洁明了,点击右上角“新建知识库”开始使用

此处可随意填写知识库名称进行测试

提示:有时可能遇到创建失败的情况(通过加入交流群获取解决方法)

连接SSH,输入以下命令查看数据库表(若只有少量表,说明创建不完整)
docker exec -it WeKnora-postgres psql -U postgres -d WeKnora -c "\dt"

输入以下命令进行初始化,系统会自动创建缺失的表结构
docker exec -i WeKnora-postgres psql -U postgres -d WeKnora -f /docker-entrypoint-initdb.d/00-init-db.sql

再次输入命令查看,此时表结构应已完整
docker exec -it WeKnora-postgres psql -U postgres -d WeKnora -c "\dt"

成功创建知识库后,需进行相关配置设置

此处配置使用Ollama服务,可查看当前已安装的模型列表(不同用户可能显示不同)

LLM大语言模型配置,选择较小的模型以提升响应速度(也可选择更大模型以获得更高智能度)

Embedding嵌入模型配置,可选择普通常规模型,但推荐使用专用嵌入模型以获得最佳效果

其余配置保持默认设置,最后务必点击保存按钮

设置完成后进入知识库界面,上传需要学习的文档文件

随机选择两个文档进行功能测试

测试效果良好,系统能够准确索引到相关文章内容

如有不同类型需求,可创建多个知识库进行分类管理

系统信息页面,官方提供完整API开发文档,便于有二次开发需求的用户参考

资源占用情况统计(不计Ollama),处理器占用率较低,内存占用约1.3GB

整体总结
在部署过程中遇到一些小意外,主要是无法成功创建知识库的问题。上网搜索未找到有效解决方案,最终通过加入开发者交流群获得帮助。需要指出,网络上许多所谓教程仅复制粘贴介绍图片,缺乏实际指导价值,容易误导用户。
WeKnora本质上是一个基于大语言模型的文档理解与检索框架,可视为智能知识库系统。通过对接适当模型,将需要学习的文档上传至知识库,即可实现对话式内容搜索。无论是企业内部文档整理与知识管理,还是科研人员的文献查阅、技术支持人员的手册查询,该系统都能发挥重要作用。
综合推荐:⭐⭐⭐(适合有知识库需求、注重隐私保护的用户或企业)
使用体验:⭐⭐⭐(上手门槛较低,设置过程简单直观)
部署难易:⭐⭐⭐(难度中等)