WeKnora(维娜拉) 是一款基于大语言模型(LLM)的文档理解与语义检索框架,专为结构复杂、内容异构的文档场景而打造。
框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。核心检索流程基于 RAG(Retrieval-Augmented Generation) 机制,将上下文相关片段与语言模型结合,实现更高质量的语义回答。
官网: https://weknora.weixin.qq.com
重要提示: 从 v0.1.3 版本开始,WeKnora 提供了登录鉴权功能,以增强系统安全性。在生产环境部署时,我们强烈建议:

WeKnora 采用现代化模块化设计,构建了一条完整的文档理解与检索流水线。系统主要包括文档解析、向量化处理、检索引擎和大模型推理等核心模块,每个组件均可灵活配置与扩展。
| 应用场景 | 具体应用 | 核心价值 |
|---|---|---|
| 企业知识管理 | 内部文档检索、规章制度问答、操作手册查询 | 提升知识查找效率,降低培训成本 |
| 科研文献分析 | 论文检索、研究报告分析、学术资料整理 | 加速文献调研,辅助研究决策 |
| 产品技术支持 | 产品手册问答、技术文档检索、故障排查 | 提升客户服务质量,减少技术支持负担 |
| 法律合规审查 | 合同条款检索、法规政策查询、案例分析 | 提高合规效率,降低法律风险 |
| 医疗知识辅助 | 医学文献检索、诊疗指南查询、病例分析 | 辅助临床决策,提升诊疗质量 |
| 功能模块 | 支持情况 | 说明 |
|---|---|---|
| 文档格式支持 | ✅ 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 接口,适配开发者与业务用户使用习惯 |
确保本地已安装以下工具:
# 克隆主仓库
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
# 复制示例配置文件
cp .env.example .env
# 编辑 .env,填入对应配置信息
# 所有变量说明详见 .env.example 注释
# 启动全部服务(含 Ollama 与后端容器)
./scripts/start_all.sh
# 或
make start-all
# 启动 ollama 服务 (可选)
ollama serve > /dev/null 2>&1 &
# 启动服务
docker compose up -d
./scripts/start_all.sh --stop
# 或
make stop-all
启动成功后,可访问以下地址:
http://localhosthttp://localhost:8080http://localhost:16686WeKnora 作为微信对话开放平台的核心技术框架,提供更简便的使用方式:
git clone https://github.com/Tencent/WeKnora
mcp客户端配置服务器
{
"mcpServers": {
"weknora": {
"args": [
"path/to/WeKnora/mcp-server/run_server.py"
],
"command": "python",
"env":{
"WEKNORA_API_KEY":"进入你的weknora实例,打开开发者工具,查看请求头x-api-key,以sk开头",
"WEKNORA_BASE_URL":"http(s)://你的weknora地址/api/v1"
}
}
}
}
使用stdio命令直接运行
pip install weknora-mcp-server python -m weknora-mcp-server
为了方便用户快速配置各类模型,降低试错成本,我们改进了原来的配置文件初始化方式,增加了Web UI界面进行各种模型的配置。在使用之前,请确保代码更新到最新版本。具体使用步骤如下: 如果是第一次使用本项目,可跳过①②步骤,直接进入③④步骤。
./scripts/start_all.sh --stop
make clean-db
./scripts/start_all.sh
首次访问会自动跳转到初始化配置页面,配置完成后会自动跳转到知识库页面。请按照页面提示信息完成模型的配置。

知识上传![]() | 知识问答入口![]() |
图文结果回答![]() | |
知识库管理: 支持拖拽上传各类文档,自动识别文档结构并提取核心知识,建立索引。系统清晰展示处理进度和文档状态,实现高效的知识库管理。
![]() | ![]() |
WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间的关联关系。开启知识图谱功能后,系统会分析并构建文档内部的语义关联网络,不仅帮助用户理解文档内容,还为索引和检索提供结构化支撑,提升检索结果的相关性和广度。
常见问题排查:常见问题排查
详细接口说明请参考:API 文档
WeKnora/ ├── cmd/ # 应用入口 ├── internal/ # 核心业务逻辑 ├── config/ # 配置文件 ├── migrations/ # 数据库迁移脚本 ├── scripts/ # 启动与工具脚本 ├── services/ # 各子服务实现 ├── frontend/ # 前端项目 └── docs/ # 项目文档
# 清空数据库(慎用!)
make clean-db
我们欢迎社区用户参与贡献!如有建议、Bug 或新功能需求,请通过 Issue 提出,或直接提交 Pull Request。
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featuregofmt 格式化代码使用 Conventional Commits 规范:
feat: 添加文档批量上传功能 fix: 修复向量检索精度问题 docs: 更新API文档 test: 添加检索引擎测试用例 refactor: 重构文档解析模块
本项目基于 MIT 协议发布。 你可以自由使用、修改和分发本项目代码,但需保留原始版权声明。