WeKnora:

一款基于大语言模型(LLM)的文档理解与语义检索框架,专为结构复杂、内容异构的文档场景而打造。框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。核心检索流程基于 RAG(Retrieval-Augmented Generation) 机制,将上下文相关片段与语言模型结合,实现更高质量的语义回答。

null

架构设计:

图片

核心特性:

  • 🔍 精准理解:支持 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
2
3
4
sudo bash ./scripts/start_all.sh
sudo bash ./scripts/start_all.sh --stop
sudo make clean-db
initialization

使用

浏览器中输入 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 是一款基于大语言模型的文档理解与检索框架,简单来说就是知识库。对接好模型,将需要学习的文档上传到知识库里,就可以对话搜索里面的内容了。不管是企业里整理内部文档、做知识管理,还是科研人员查文献、技术支持查手册,都能派上用场。