项目介绍 • 架构设计 • 核心特性 • 快速开始 • 文档 • 开发指南
WeKnora(维娜拉) 是一款基于大语言模型(LLM)的文档理解与语义检索框架,专为结构复杂、内容异构的文档场景而打造。
框架采用模块化架构,融合多模态预处理、语义向量索引、智能召回与大模型生成推理,构建起高效、可控的文档问答流程。核心检索流程基于 RAG(Retrieval-Augmented Generation) 机制,将上下文相关片段与语言模型结合,实现更高质量的语义回答。
官网: https://weknora.weixin.qq.com
v0.3.5 版本亮点:
v0.3.4 版本亮点:
更早版本
v0.3.3 版本亮点:
v0.3.2 版本亮点:
v0.3.0 版本亮点:
DISABLE_REGISTRATION控制v0.2.0 版本亮点:
重要提示: 从 v0.1.3 版本开始,WeKnora 提供了登录鉴权功能,以增强系统安全性。在生产环境部署时,我们强烈建议:
weknora-pipelone.png
WeKnora 采用现代化模块化设计,构建了一条完整的文档理解与检索流水线。系统主要包括文档解析、向量化处理、检索引擎和大模型推理等核心模块,每个组件均可灵活配置与扩展。
| 应用场景 | 具体应用 | 核心价值 |
|---|---|---|
| 企业知识管理 | 内部文档检索、规章制度问答、操作手册查询 | 提升知识查找效率,降低培训成本 |
| 科研文献分析 | 论文检索、研究报告分析、学术资料整理 | 加速文献调研,辅助研究决策 |
| 产品技术支持 | 产品手册问答、技术文档检索、故障排查 | 提升客户服务质量,减少技术支持负担 |
| 法律合规审查 | 合同条款检索、法规政策查询、案例分析 | 提高合规效率,降低法律风险 |
| 医疗知识辅助 | 医学文献检索、诊疗指南查询、病例分析 | 辅助临床决策,提升诊疗质量 |
| 功能模块 | 支持情况 | 说明 |
|---|---|---|
| Agent模式 | ✅ ReACT Agent模式 | 内置工具检索知识库、调用MCP工具和网络搜索;支持跨知识库检索与多轮迭代推理 |
| 知识库类型 | ✅ FAQ / 文档 | FAQ和文档两种类型,支持文件夹导入、URL导入、标签管理、在线录入和知识迁移 |
| 文档格式支持 | ✅ PDF / Word / Txt / Markdown / HTML / 图片(OCR + Caption) | 结构化与非结构化文档解析;图片OCR文字提取;VLM图片描述生成 |
| IM频道集成 | ✅ 企业微信 / 飞书 / Slack / Telegram / 钉钉 / Mattermost | WebSocket和Webhook双模式;流式回复;斜杠命令(/help、/info、/search、/stop、/clear);用户级限流;基于Redis的多实例分布式协调 |
| 模型管理 | ✅ 集中配置、内置模型共享 | 模型集中配置,知识库级别模型选择,支持多租户共享内置模型 |
| 嵌入模型支持 | ✅ 本地模型(Ollama)、BGE / GTE / OpenAI兼容接口 | 支持自定义embedding模型,兼容本地部署与云端向量生成接口 |
| 向量数据库接入 | ✅ PostgreSQL(pgvector)/ Elasticsearch / Milvus / Weaviate / Qdrant | 五种向量索引后端,可灵活切换,适配不同检索场景 |
| 对象存储 | ✅ 本地 / MinIO / AWS S3 / 火山引擎TOS | 可插拔存储适配器;启动时自动创建存储桶 |
| 检索机制 | ✅ BM25 / Dense Retrieve / GraphRAG | 稠密/稀疏召回、知识图谱增强检索;可自由组合召回-重排-生成流程 |
| 大模型集成 | ✅ Qwen / DeepSeek / MiniMax / NVIDIA / Novita AI / OpenAI兼容 | 接入本地大模型(Ollama)或外部API服务;思考/非思考模式切换;vLLM流式推理内容支持 |
| 对话策略 | ✅ Agent模型、普通模式模型、检索阈值、Prompt配置 | 在线Prompt编辑;检索阈值调节;精确控制多轮对话行为 |
| 网络搜索 | ✅ DuckDuckGo / Bing / Google(可扩展) | 可插拔搜索引擎;按对话开关网络搜索 |
| MCP工具 | ✅ uvx / npx启动工具,Stdio / HTTP Streamable / SSE | 通过MCP扩展Agent能力;工具名称稳定(跨重连保持一致);VLM自动描述工具返回图片 |
| 推荐问题 | ✅ 基于知识库的问题推荐 | Agent在对话前展示推荐问题;图片知识自动触发问题生成 |
| 问答能力 | ✅ 上下文感知、多轮对话、提示词模板 | 复杂语义建模、指令控制与链式问答,可配置提示词与上下文窗口 |
| 安全机制 | ✅ AES-256-GCM静态加密、SSRF防护 | API密钥静态加密;远程API调用的SSRF安全校验;Agent技能沙盒执行 |
| 端到端测试支持 | ✅ 检索+生成过程可视化与指标评估 | 一体化链路测试,支持评估召回命中率、回答覆盖度、BLEU/ROUGE等指标 |
| 部署模式 | ✅ 本地 / Docker / Kubernetes(Helm) | 私有化和离线部署;热重载快速开发模式;Helm Chart支持Kubernetes部署 |
| 用户界面 | ✅ Web UI + RESTful API | 交互式界面与标准API;Agent/普通模式切换;工具调用过程可视化 |
| 任务管理 | ✅ MQ异步任务、数据库自动迁移 | MQ异步任务状态维护;版本升级时自动执行数据库表结构和数据迁移 |
确保本地已安装以下工具:
# 克隆主仓库
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
# 复制示例配置文件
cp .env.example .env
# 编辑 .env,填入对应配置信息
# 所有变量说明详见 .env.example 注释
检查 .env 文件中需要启动的镜像。
./scripts/start_all.sh
或者
make start-all
ollama serve > /dev/null 2>&1 &
docker compose up -d
docker-compose --profile full up -d
docker-compose --profile jaeger up -d
docker-compose --profile neo4j up -d
docker-compose --profile minio up -d
docker-compose --profile neo4j --profile minio up -d
./scripts/start_all.sh --stop
# 或
make stop-all
启动成功后,可访问以下地址:
http://localhosthttp://localhost:8080http://localhost:16686WeKnora 作为微信对话开放平台的核心技术框架,提供更简便的使用方式:
git clone https://github.com/Tencent/WeKnora
推荐直接参考 MCP配置说明 进行配置。
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
首次访问会自动跳转到注册登录页面,完成注册后,请创建一个新的知识库,并在该知识库的设置页面完成相关设置。
| 知识库管理 | 对话设置 |
| Agent模式工具调用过程 |
知识库管理: 支持创建FAQ和文档两种类型知识库,支持拖拽上传、文件夹导入、URL导入等多种方式,自动识别文档结构并提取核心知识,建立索引。支持标签管理和在线录入,系统清晰展示处理进度和文档状态,实现高效的知识库管理。
Agent模式: 支持开启ReACT Agent模式,可使用内置工具检索知识库,调用用户配置的MCP工具和网络搜索工具访问外部服务,通过多次迭代和反思,最终给出全面的总结报告。支持跨知识库检索,可以选择多个知识库同时检索。
对话策略: 支持配置Agent模型、普通模式所需的模型、检索阈值,支持在线配置Prompt,精确控制多轮对话行为和检索召回执行方式。对话输入框支持Agent模式/普通模式切换,支持开启和关闭网络搜索,支持选择对话模型。
WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间的关联关系。开启知识图谱功能后,系统会分析并构建文档内部的语义关联网络,不仅帮助用户理解文档内容,还为索引和检索提供结构化支撑,提升检索结果的相关性和广度。
具体配置请参考 知识图谱配置说明 进行相关配置。
请参考 MCP配置说明 进行相关配置。
常见问题排查:常见问题排查
详细接口说明请参考:API 文档
产品规划与计划:路线图 (Roadmap)
如果你需要频繁修改代码,不需要每次重新构建 Docker 镜像!使用快速开发模式:
# 方式 1:使用 Make 命令(推荐)
make dev-start # 启动基础设施
make dev-app # 启动后端(新终端)
make dev-frontend # 启动前端(新终端)
# 方式 2:一键启动
./scripts/quick-dev.sh
# 方式 3:使用脚本
./scripts/dev.sh start # 启动基础设施
./scripts/dev.sh app # 启动后端(新终端)
./scripts/dev.sh frontend # 启动前端(新终端)
开发优势:
详细文档: 开发环境快速入门
WeKnora/ ├── client/ # go客户端 ├── cmd/ # 应用入口 ├── config/ # 配置文件 ├── docker/ # docker 镜像文件 ├── docreader/ # 文档解析项目 ├── docs/ # 项目文档 ├── frontend/ # 前端项目 ├── internal/ # 核心业务逻辑 ├── mcp-server/ # MCP服务器 ├── migrations/ # 数据库迁移脚本 └── scripts/ # 启动与工具脚本
我们欢迎社区用户参与贡献!如有建议、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 协议发布。 你可以自由使用、修改和分发本项目代码,但需保留原始版权声明。