基于 WeKnora 构建企业级 RAG 知识库:Windows 部署与实践全解析
WeKnora(维娜拉) 是一款基于大语言模型(LLM)的文档理解与语义检索框架(其实就是➡️ RAG 知识库系统),专为结构复杂、内容异构的文档场景而打造。
框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。核心检索流程基于 RAG(Retrieval-Augmented Generation) 机制,将上下文相关片段与语言模型结合,实现更高质量的语义回答。
上面两段总结起来就是一句话——基于 WeKnora 这个开源项目,可以快速搭建自己的 RAG 知识库了! 😃
架构设计
核心特性
- 🔍 精准理解:支持 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 接口,适配开发者与业务用户使用习惯 |
快速开始
其实介绍 Windows 下部署 就是为了熟悉一下,最终正式用肯定是要部到 Linux 系统下~
🛠 环境要求
确保本地已安装以下工具:
- Docker
- Docker Compose
- Git
安装步骤
在Windows下找一个目录
① 克隆代码仓库
# 克隆主仓库
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
② 配置环境变量
# 复制示例配置文件
cp .env.example .env# 编辑 .env,填入对应配置信息
# 所有变量说明详见 .env.example 注释
③ 启动服务备选(此处我用的➡️docker desktop)
# 启动 ollama 服务 (可选)
ollama serve > /dev/null 2>&1 &# 启动服务
docker compose up -d
之前如果装过➡️ dify,80端口可能会提示被占用,可以在docker 里先停掉,或者修改项目根目录 docker-compose.yml 文件,更换端口。
服务访问地址
docker 启动成功后,可访问以下地址:
- Web UI:
http://localhost
- 后端 API:
http://localhost:8080
- 链路追踪(Jaeger):
http://localhost:16686
之前介绍过➡️ Windows下使用ollama调试大模型
- 当时的 Ollama version 0.7.0,如今已经太老了,下载最新版 0.11.10
- 最新版的ollama 已经不再是之前的命令行对话了,有可视化UI界面了
ollama服务状态不对,开始我还以为是ollama版本问题,后来发现是环境变量 .env 文件的问题。
我这里统一都用的百炼地址,支持本地大模型!
按需开通,完成初始化配置后,就看到知识库聊天问答界面了。
不得不说,小马哥家这 UI 界面,确实挺好看的!比 Claude 生成的那种大紫色的配色好看多了! 😃
项目目录结构
WeKnora/
├── cmd/ # 应用入口
├── internal/ # 核心业务逻辑
├── config/ # 配置文件
├── migrations/ # 数据库迁移脚本
├── scripts/ # 启动与工具脚本
├── services/ # 各子服务实现
├── frontend/ # 前端项目
└── docs/ # 项目文档
在docs 目录下有详细的API文档介绍~ 简直不要太方便了!
常用命令
# 清空数据库(慎用!)
make clean-db
官网:
https://weknora.weixin.qq.com/
https://github.com/Tencent/WeKnora