乐于分享
好东西不私藏

WeKnora,将文档转化为生动的知识

WeKnora,将文档转化为生动的知识
WeKnora(维娜拉)是腾讯开源的企业级知识库与 RAG(Retrieval-Augmented Generation)系统:Go 单体后端 + Vue 3 前端 + Python 文档解析微服务(docreader),支持多租户、多知识库、混合检索、Agent 智能体、知识图谱、Wiki 生成、MCP 集成、多平台 IM 接入与网页嵌入等能力。

一、产品概述

WeKnora 是一个基于大语言模型(LLM)的知识框架,围绕三大核心能力构建:

核心能力
说明
RAG 快速问答
面向日常查询的检索增强生成
ReAct Agent
自主编排检索、MCP 工具和网页搜索,处理复杂多步骤任务
Wiki 模式
Agent 将原始文档提炼为自维护、相互链接的 Markdown 知识库,配合交互式知识图谱

系统支持 10+ 种文档格式(PDF、Word、图片、Excel 等),兼容 20+ 种 LLM 提供商(OpenAI、DeepSeek、Qwen、Zhipu、Hunyuan、Gemini、Ollama 等),并可通过 IM 渠道(企业微信、飞书、Slack、Telegram 等)直接提供问答服务。

二、系统架构

WeKnora 采用模块化设计,核心架构如下:

组件
技术栈
说明
后端服务
Go
核心业务逻辑、API 服务
前端界面
Vue 3
Web 管理界面
文档解析
Python (docreader)
文档解析微服务
数据库
PostgreSQL
主数据存储
向量数据库
Qdrant / 其他
向量检索
缓存
Redis
会话缓存
对象存储
MinIO(可选)
文件与图片存储
图数据库
Neo4j(可选)
知识图谱

系统支持本地和私有云部署,确保数据主权

三、环境准备

3.1 前置要求

Docker和Docker Compose-1

Git-1

3.2 可选:本地 Ollama 模型

如需使用本地 Ollama 模型,请提前启动:

ollama serve > /dev/null 2>&1 &

四、安装部署

4.1 标准 Docker 部署

步骤 1:克隆代码仓库

git clone https://github.com/Tencent/WeKnora.gitcd WeKnora

步骤 2:配置环境变量

cp .env.example .env

步骤 3:拉取镜像并启动

docker compose pull 拉取最新镜像docker compose up -d启动核心服务

步骤 4:访问服务

启动后访问http://localhost开始使用

服务
URL
Web UI
http://localhost
后端 API
http://localhost:8080
Langfuse 追踪
http://localhost:3000

4.2 可选功能组件(Docker Compose Profiles)

通过--profile参数启用额外组件,可组合使用

Profile
说明
命令
full
所有功能
docker compose --profile full up -d
neo4j
知识图谱(Neo4j)
docker compose --profile neo4j up -d
minio
对象存储(MinIO)
docker compose --profile minio up -d
langfuse
链路追踪(Langfuse)
docker compose --profile langfuse up -d

五、使用指南

5.1 Web UI 操作

  1. 创建知识库

登录 Web 界面(http://localhost)

点击“新建知识库”

配置知识库名称、分块参数、索引策略等

保存并创建

上传文档

支持 PDF、Word、Excel、图片、Markdown 等多种格式

进入目标知识库

点击“上传文档”按钮

选择本地文件或输入网页 URL

确认上传,系统自动解析

文件夹管理

WeKnora v0.7.2 引入了知识库文件夹树功能,上传路径作为一级数据存储,支持浏览/重命名/移动文档

分块编辑与版本历史

可在 UI 中编辑检索分块,支持按版本 diff 和回滚,修改后自动重新索引

智能问答

进入知识库的聊天界面

输入问题

系统基于知识库内容生成带引用的回答

Agent 模式

WeKnora 的 ReAct Agent 可自主编排检索、MCP 工具和网页搜索

Wiki 模式

Agent 可将原始文档提炼为自维护、相互链接的 Markdown 知识库

知识图谱

六、使用场景

和企业微信机器人结合

七、故障排查

7.1 查看日志

docker compose logs -f app docreader postgres

7.2 启动/停止服务

启动服务./scripts/start_all.sh停止服务./scripts/start_all.sh --stop清空数据库./scripts/start_all.sh --stop && make clean-db

7.3 文档上传失败

通常是 Embedding 模型和对话模型未正确配置导致。请检查:

.env中的模型配置是否完整

如使用 Ollama,确保本地 Ollama 服务正常运行

查看主服务日志中的 ERROR 输出

7.4 图片无法显示

使用多模态功能时,如遇图片无法显示

确认多模态功能已配置:在知识库设置中开启高级设置

确认 MinIO 已启动:docker-compose --profile minio up -d

检查 MinIO Bucket 权限:访问 http://localhost:9001,配置 bucket 为公开读取

4.配置 MINIO_PUBLIC_ENDPOINT:如需从其他设备访问,将 localhost 替换为实际 IP

7.5 API 直链配置

响应中的图片、图表默认以内部引用resource://返回。如需返回可直接加载的 HTTP 直链:

单次请求:URL 添加?resource_urls=public

全局部署:设置环境变量RESOURCE_URL_MODE=public

如上,如有疑问欢迎留言交流,共同进步,谢谢~