mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-06-04 13:30:32 +08:00
Tenant RBAC headline release: 4-tier role matrix (Owner/Admin/ Contributor/Viewer), per-KB resource ownership, per-tenant audit log, tenant member management, self-service workspaces. Also: CLI v0.3/v0.4 GA, KB retrieval fan-out across vector stores, AES-256-GCM credential at-rest, docreader gRPC TLS+Token, Zhipu embedding, Huawei OBS, vLLM URL for MinerU, Apache Doris compat modes, server-side user preferences, Go 1.26.0. See CHANGELOG.md for the full list. docs(rbac): wire RBAC screenshots into READMEs and RBAC guide - README.md / README_CN.md / README_JA.md / README_KO.md: replace the single member-management thumbnail under the v0.6.0 RBAC highlight with a 2×2 showcase (member management, workspace switcher, self-service workspace creation, pending invitations). - docs/RBAC说明.md: add the member-management screenshot to the existing 前端实际界面 showcase so the guide is self-contained and no longer cross-references README for it. feat(rbac-ui): link tenant member page to RBAC guide Add an inline doc-link in the Tenant Members settings page that opens docs/RBAC说明.md on GitHub in a new tab, complementing the existing in-app role-matrix popover. New i18n key tenantMember.learnRbacGuide covered for zh-CN / en-US / ko-KR / ru-RU.
450 lines
30 KiB
Markdown
450 lines
30 KiB
Markdown
<p align="center">
|
||
<picture>
|
||
<img src="./docs/images/logo.png" alt="WeKnora Logo" height="120"/>
|
||
</picture>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<picture>
|
||
<a href="https://trendshift.io/repositories/15289" target="_blank">
|
||
<img src="https://trendshift.io/api/badge/repositories/15289" alt="Tencent%2FWeKnora | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
|
||
</a>
|
||
</picture>
|
||
</p>
|
||
<p align="center">
|
||
<a href="https://weknora.weixin.qq.com" target="_blank">
|
||
<img alt="官方网站" src="https://img.shields.io/badge/官方网站-WeKnora-4e6b99">
|
||
</a>
|
||
<a href="https://chatbot.weixin.qq.com" target="_blank">
|
||
<img alt="微信对话开放平台" src="https://img.shields.io/badge/微信对话开放平台-5ac725">
|
||
</a>
|
||
<a href="https://chromewebstore.google.com/detail/jpemjbopikggjlmikmclgbmkhhopjdgd" target="_blank">
|
||
<img alt="Chrome 插件" src="https://img.shields.io/badge/Chrome 插件-WeKnora-4285F4">
|
||
</a>
|
||
<a href="https://clawhub.ai/lyingbug/weknora" target="_blank">
|
||
<img alt="ClawHub Skill" src="https://img.shields.io/badge/ClawHub Skill-WeKnora-ff6b35">
|
||
</a>
|
||
<a href="https://github.com/Tencent/WeKnora/blob/main/LICENSE">
|
||
<img src="https://img.shields.io/badge/License-MIT-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="License">
|
||
</a>
|
||
<a href="./CHANGELOG.md">
|
||
<img alt="版本" src="https://img.shields.io/badge/version-0.6.0-2e6cc4?labelColor=d4eaf7">
|
||
</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
| <a href="./README.md"><b>English</b></a> | <b>简体中文</b> | <a href="./README_JA.md"><b>日本語</b></a> | <a href="./README_KO.md"><b>한국어</b></a> |
|
||
</p>
|
||
|
||
<p align="center">
|
||
<h4 align="center">
|
||
|
||
[项目介绍](#-项目介绍) • [架构设计](#-架构设计) • [核心特性](#-核心特性) • [快速开始](#-快速开始) • [文档](#-文档) • [开发指南](#-开发指南)
|
||
|
||
</h4>
|
||
</p>
|
||
|
||
# 💡 WeKnora — 让文档活起来:RAG、Agent 推理与自动 Wiki 一体化的知识框架
|
||
|
||
## 📌 项目介绍
|
||
|
||
**[WeKnora(维娜拉)](https://weknora.weixin.qq.com)** 是一款开源的、基于大语言模型(LLM)的知识管理框架,专为企业级文档理解、语义检索与智能推理场景打造。
|
||
|
||
框架围绕三大核心能力构建:**RAG 快速问答**适合日常知识查询,**ReAct Agent 智能推理**自主编排知识检索、MCP 工具与网络搜索完成复杂多步任务,全新的 **Wiki 模式**则让 Agent 从原始文档中自治生成相互链接的 Markdown 知识库与可视化知识图谱。结合多源数据接入(飞书 / Notion / 语雀,更多持续接入中)、二十余家主流模型厂商集成、Langfuse 全链路可观测性、**企业级多租户 RBAC(四级角色矩阵 + 资源归属 + 租户审计日志)**,以及完全可私有化部署的模块化架构,WeKnora 帮助团队把分散文档沉淀为可查询、可推理、可持续演进的专属知识资产。
|
||
|
||
框架支持从飞书、Notion 及语雀等外部平台自动同步知识(更多数据源持续接入中),覆盖 PDF、Word、图片、Excel 等十余种文档格式,并可通过企业微信、飞书、Slack、Telegram 等 IM 频道直接提供问答服务。模型层面兼容 OpenAI、DeepSeek、Qwen(阿里云)、智谱、混元、Gemini、MiniMax、NVIDIA、Ollama 等主流厂商。全流程模块化设计,大模型、向量数据库、存储等组件均可灵活替换,支持本地与私有云部署,数据完全自主可控。WeKnora 还无缝集成了 **Langfuse**,为 Agent 运行、Token 使用及任务流水线提供了全面的可观测性追踪。
|
||
|
||
## ✨ 最新更新
|
||
|
||
**v0.6.0 版本亮点:**
|
||
|
||
- **租户 RBAC(多租户角色权限体系)** —— 本版本的核心特性。WeKnora 现已在所有写入路由上强制执行四级租户内角色矩阵(`Owner` / `Admin` / `Contributor` / `Viewer`),并通过 `chunk → knowledge → kb → creator_id` 的归属链实现按知识库的资源所有权。Contributor 对自己创建的资源完全自治,对他人资源只读;Admin 管理整个租户;Owner 额外拥有删除租户的权限。详见 [`docs/RBAC说明.md`](./docs/RBAC说明.md)。
|
||
|
||
<table>
|
||
<tr>
|
||
<td width="50%" align="center"><b>成员管理</b><br/><img src="./docs/images/rbac-member-management.png" alt="成员管理" width="100%"></td>
|
||
<td width="50%" align="center"><b>工作区切换器</b><br/><img src="./docs/images/rbac-workspace-switcher.png" alt="工作区切换器" width="100%"></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%" align="center"><b>自助创建工作区</b><br/><img src="./docs/images/rbac-create-workspace.png" alt="创建新空间" width="100%"></td>
|
||
<td width="50%" align="center"><b>待处理邀请</b><br/><img src="./docs/images/rbac-pending-invitation.png" alt="待处理邀请" width="100%"></td>
|
||
</tr>
|
||
</table>
|
||
|
||
- **租户成员管理 + 多工作区 UX**:邀请 / 移除成员、修改角色、`/leave` 退出端点、可选的 invite-only 准入开关;待处理邀请弹窗 + 全局邀请铃铛;用户菜单内的租户切换器与按角色显隐的 UI 守卫;登录后自动恢复到上次活跃工作区;登录 / 切换工作区时展示富文本工作区通知。
|
||
- **自助创建工作区**:任何用户都可以自助创建租户(通过环境变量限制每用户上限);跨租户超级管理员在 UI 内会展示 Admin 角色徽章。
|
||
- **每租户 RBAC 审计日志**:所有 RBAC 相关事件均会记录,默认 90 天滚动清理(`created_at` 列建索引);跨租户超管的操作会固定记录到目标租户。
|
||
- **`weknora` CLI v0.3 / v0.4(正式版)**:从 Preview 升级为正式版,按 verb-noun 模式覆盖所有主资源:`agent`(CRUD + invoke / check / status)、`chunk`、`session`、`search`(chunks / kb / docs / sessions)、`kb`(edit / pin / empty / check / status)、`doc`(download / upload --recursive / view / wait)、`auth`(refresh / token)、`context`、`link / unlink`。新增 `weknora mcp serve` 提供策划式 stdio MCP 服务,方便 Claude Code / Cursor 等 AI 客户端直接驱动 WeKnora。全局参数:`--format`、`--json` 字段选择、`--jq`、`--paginate`、`--all-pages`、`--input`、`--log-level`、`--from-url`,NDJSON 输出,透明的 401 重试,信号感知 context。
|
||
- **多向量库扇出检索**:单个知识库可绑定多个向量库,检索引擎自动 fan-out 到所有绑定的向量库并合并结果。知识库创建 / 复制 / 删除时会校验向量库绑定关系,避免不一致状态。
|
||
- **MCP 与数据源凭据 AES-256-GCM 静态加密**:支持平滑的密钥轮换;接口响应自动脱敏;新增 `/credentials` 子资源模式,避免编辑时凭据丢失。
|
||
- **Docreader gRPC 加固**:app → docreader 连接支持 TLS + Token 鉴权;默认不再把 docreader gRPC 端口暴露到宿主机;`grpcio` 最低版本提升到 1.78.0 以匹配生成的 proto。
|
||
- **更多后端集成**:智谱 AI Embedding;华为云 OBS 对象存储;MinerU 文档解析支持自定义 vLLM URL;Apache Doris 新增兼容模式开关与守卫;docreader 支持 URL 白名单(白名单内的图片不再重新上传)。
|
||
- **服务端用户偏好**:字体 / 主题 / 记忆功能开关持久化到服务端;知识库置顶改为用户维度(替换原租户维度);知识库与 Agent 列表显示创建人名称与「我分享的」标识。
|
||
- **其他改进**:用户收藏与最近访问;成员快捷导航入口;侧边栏密度精修;租户信息支持行内编辑(含描述字段);知识文档标签选择器重设计;系统信息页展示 UI 构建版本;Moonshot 模型自动对 `moonshot-v1-*` / `kimi-k2.5` / `k2.6` 强制 `temperature=1`(这些模型拒绝其它取值,会返回 HTTP 400);修复 MinerU markdown 图片语法过度转义导致下游图片提取失败;`ErrSessionNotFound` / `ErrKnowledgeBaseNotFound` 全部正确映射为 HTTP 404;会话访问按用户隔离(安全加固);Go 升级至 1.26.0。
|
||
- **重要修复**:`audit_log.Stop()` 在 `Start()` 未调用时不再死锁;组织可搜索加入不再绕过邀请码过期校验;分块器不再合并顶层标题块;修复无限滚动加载丢失文档的竞态;建索引完成的文档立即标记完成;前端离线 / 旧浏览器兼容;对话历史渲染与分页稳定性提升;模型测试连接在编辑既有模型时会回退到已存储的 API Key。
|
||
|
||
<details>
|
||
<summary><b>更早版本</b></summary>
|
||
|
||
**v0.5.2 版本亮点:**
|
||
|
||
- **Wiki 模式规模化**:Wiki 入库通过通用任务队列 + 死信队列支撑万级文档知识库;页面链接图新增子图 API + 交互式探索 UI。
|
||
- **MCP 工具人机审批(Human-in-the-Loop)**:敏感的 MCP 工具调用会暂停 Agent,并在对话 UI 中等待用户显式审批。
|
||
- **更多模型 / 向量库 / 存储 / 搜索后端**:新增 Anthropic(Claude)、Apache Doris 4.1、腾讯云 VectorDB、金山云 KS3、SearXNG;配合向量数据库管理 UI 与按知识库独立开关的索引策略使用。
|
||
- **观测性深化**:Langfuse Span 扩展至 retrieval / rerank / agent 各阶段;对话流首尾两端记录端到端 TTFB;LLM 调用兜底超时加固,避免 worker 池被卡死请求永久阻塞。
|
||
- **自适应三层分块**:文档自动路由到 标题感知 / 启发式 / 递归 三种策略,知识库编辑器内嵌实时调试面板。详见 [`docs/CHUNKING.md`](./docs/CHUNKING.md)。
|
||
- **全局命令面板**:⌘K 面板取代原独立搜索页,可直接从结果开启新对话。
|
||
- **更多数据源与移动端**:新增语雀连接器(全量 + 增量同步),与飞书 / Notion 并列;附带轻量级微信小程序客户端(位于 `miniprogram/`)。
|
||
- **`weknora` CLI(早期版本)**:位于 `cli/` 的官方命令行客户端早期版本,欢迎反馈。
|
||
- **其他改进**:租户级 RRF 调参;查询理解专用模型;知识库批量管理与置顶分组;用户维度的会话置顶与关键词搜索;租户级 IM 频道总览;按用户保存的字体 / 主题偏好;新增 OpenMaiC 微课堂 Agent 技能;API 文档 / Swagger / Client SDK 全量整改。
|
||
- **重要修复**:修复 Embedder 在连接失败时返回 `(nil, nil)` 导致 SIGSEGV 的问题;Mimo / DeepSeek 类提供商 `reasoning_content` 正确回传;Agent 多轮历史改为从 DB 重建并修复附件跨轮丢失;修复 OIDC 登录;多个 Wiki 入库可靠性问题;空 PDF 不再凭文件名编造摘要。
|
||
|
||
**v0.4.0 版本亮点:**
|
||
|
||
- **[知识助理](https://weknora.weixin.qq.com/platform)**:云端托管的知识助理服务,无需本地部署即可快速体验
|
||
- **WeKnora Cloud**:WeKnora Cloud 模型服务集成,提供托管大模型和文档解析能力,支持凭证管理与状态检查
|
||
- **[Chrome 插件](https://chromewebstore.google.com/detail/jpemjbopikggjlmikmclgbmkhhopjdgd)**:浏览器插件支持网页知识快速采集
|
||
- **[ClawHub Skill](https://clawhub.ai/lyingbug/weknora)**:ClawHub Skill 技能市场集成,一键安装 Agent 技能
|
||
- **微信 IM 集成**:微信频道适配器,支持扫码登录和长轮询消息接收
|
||
- **附件处理**:对话流水线支持文件附件,增强错误处理和内容格式化,注入图片/附件元数据
|
||
- **Azure OpenAI 提供商**:全面支持 Azure OpenAI 的 Chat、VLM 和 Embedding 模型,保留部署名称映射,支持 dimensions 参数配置
|
||
- **阿里云 OSS 存储**:通过 S3 兼容模式支持阿里云 OSS 对象存储,提供配置界面、连通性测试和多语言国际化支持
|
||
- **Notion 连接器**:Notion 数据源集成,包含 API 客户端、Markdown 渲染器和 Connector 接口实现
|
||
- **百度 & Ollama 网页搜索**:新增百度和 Ollama 作为网页搜索引擎
|
||
- **VectorStore 管理**:完整的 VectorStore CRUD 功能,包含实体、仓库、服务层、连通性测试和 API 端点
|
||
- **重要修复**:修复 Azure OpenAI 端点处理、Embedding 截断、IM 引用标签清理、neo4j Go 1.24 Windows 兼容性及 OSS 签名问题
|
||
|
||
|
||
**v0.3.6 版本亮点:**
|
||
|
||
- **ASR 语音识别**:集成 ASR 模型,支持音频文件上传、文档内音频预览和语音转写能力
|
||
- **数据源自动同步(飞书)**:完整的数据源管理功能,支持飞书 Wiki/云文档自动同步(增量/全量),同步日志与租户隔离
|
||
- **OIDC 统一认证**:支持 OpenID Connect 登录,自动发现端点、自定义端点配置及用户信息字段映射
|
||
- **IM 引用回复上下文**:IM 频道中提取引用消息并注入 LLM 提示词,实现上下文关联回复;非文本引用防幻觉处理
|
||
- **IM 线程会话模式**:IM 频道支持按线程维度独立会话(Slack、Mattermost、飞书、Telegram),线程内多用户协作
|
||
- **文档自动摘要**:AI 生成文档摘要,可配置最大输入长度,文档详情页展示专属摘要区域
|
||
- **Tavily 网页搜索**:新增 Tavily 搜索引擎;重构 Web Search Provider 架构,提升可扩展性
|
||
- **MCP 自动重连**:MCP 工具调用断线自动重连
|
||
- **并行工具调用**:Agent 模式支持通过 errgroup 并发执行多个工具调用,加速复杂任务处理
|
||
- **Agent @提及范围限制**:用户 @提及限制在 Agent 授权的知识库范围内,防止越权访问
|
||
- **登录页性能优化**:移除全部 backdrop-filter blur,精简动画元素,新增 GPU 合成加速提示
|
||
|
||
**v0.3.5 版本亮点:**
|
||
|
||
- **Telegram、钉钉 & Mattermost IM集成**:新增Telegram机器人(webhook/长轮询,流式editMessageText回复)、钉钉机器人(webhook/Stream模式,AI卡片流式输出)和Mattermost适配器;IM频道现已覆盖企业微信、飞书、Slack、Telegram、钉钉、Mattermost共6个平台
|
||
- **IM斜杠命令与QA队列**:可插拔斜杠命令框架(/help、/info、/search、/stop、/clear),配合有界QA工作池、用户级限流和基于Redis的多实例分布式协调
|
||
- **推荐问题**:Agent基于关联知识库自动生成上下文相关的推荐问题,在对话界面开场前展示;图片知识自动触发问题生成任务
|
||
- **VLM自动描述MCP工具返回图片**:当MCP工具返回图片时,Agent通过配置的VLM模型自动生成文字描述,使不支持图片输入的LLM也能理解图片内容
|
||
- **Novita AI提供商**:新增Novita AI,通过OpenAI兼容接口支持Chat、Embedding和VLLM模型类型
|
||
- **MCP工具名称稳定性**:工具名称改为基于service.Name(跨重连保持稳定),新增唯一名称约束和碰撞防护;前端将snake_case工具名格式化为可读形式
|
||
- **来源频道标记**:知识条目和消息新增channel字段,记录来源(web/api/im/browser_extension),便于追溯
|
||
- **重要修复**:修复无知识库时Agent空响应、中文/emoji文档摘要UTF-8截断、租户设置更新时API密钥加密丢失、vLLM流式推理内容缺失、Rerank空段落过滤等问题
|
||
|
||
**v0.3.4 版本亮点:**
|
||
|
||
- **IM机器人集成**:支持企业微信、飞书、Slack IM频道,WebSocket/Webhook双模式,流式回复与知识库集成
|
||
- **多模态图片支持**:图片上传与多模态图片处理,增强会话管理能力
|
||
- **手动知识下载**:支持手动知识内容导出下载,文件名清洗与格式化处理
|
||
- **NVIDIA模型API**:支持NVIDIA聊天模型API,自定义端点及VLM模型配置
|
||
- **Weaviate向量数据库**:新增Weaviate向量数据库后端,用于知识检索
|
||
- **AWS S3存储**:集成AWS S3存储适配器,配置界面及数据库迁移
|
||
- **AES-256-GCM加密**:API密钥静态加密,采用AES-256-GCM增强安全性
|
||
- **内置MCP服务**:支持内置MCP服务,扩展Agent能力
|
||
- **混合检索优化**:按目标分组并复用查询向量,提升检索性能
|
||
- **Final Answer工具**:新增final_answer工具及Agent耗时跟踪,优化Agent工作流
|
||
|
||
**v0.3.3 版本亮点:**
|
||
|
||
- **父子分块策略**:层级化的父子分块策略,增强上下文管理和检索精度
|
||
- **知识库置顶**:支持置顶常用知识库,快速访问
|
||
- **兜底回复**:无相关结果时的兜底回复处理及UI指示
|
||
- **Rerank段落清洗**:Rerank模型段落清洗功能,提升相关性评分准确度
|
||
- **存储桶自动创建**:存储引擎连通性检查增强,支持自动创建存储桶
|
||
- **Milvus向量数据库**:新增Milvus向量数据库后端,用于知识检索
|
||
|
||
**v0.3.2 版本亮点:**
|
||
|
||
- 🔍 **知识搜索**:新增"知识搜索"入口,支持语义检索,可将检索结果直接带入对话窗口
|
||
- ⚙️ **解析引擎与存储引擎配置**:设置中支持配置各个来源的文档解析引擎和存储引擎信息,知识库中支持为不同类型文件选择不同的解析引擎
|
||
- 🖼️ **本地存储图片渲染**:本地存储模式下支持对话过程中图片的渲染,流式输出中图片占位效果优化
|
||
- 📄 **文档预览**:使用内嵌的文档预览组件预览用户上传的原始文件
|
||
- 🎨 **交互优化**:知识库、智能体、共享空间列表页面交互全面优化
|
||
- 🗄️ **Milvus支持**:新增Milvus向量数据库后端,用于知识检索
|
||
- 🌋 **火山引擎TOS**:新增火山引擎TOS对象存储支持
|
||
- 📊 **Mermaid渲染**:对话中支持Mermaid图表渲染,全屏查看器支持缩放、导航和导出
|
||
- 💬 **对话批量管理**:支持批量管理和一键删除所有会话
|
||
- 🔗 **远程URL创建知识**:支持从远程文件URL创建知识条目
|
||
- 🧠 **记忆图谱预览**:用户级记忆图谱可视化预览
|
||
- 🔄 **异步重新解析**:支持异步API重新解析已有知识文档
|
||
|
||
**v0.3.0 版本亮点:**
|
||
|
||
- 🏢 **共享空间**:共享空间管理,支持成员邀请、知识库和Agent跨成员共享,租户隔离检索
|
||
- 🧩 **Agent Skills**:Agent技能系统,预置智能推理技能,基于沙盒的安全隔离执行环境
|
||
- 🤖 **自定义Agent**:支持创建、配置和选择自定义Agent,知识库选择模式(全部/指定/禁用)
|
||
- 📊 **数据分析Agent**:内置数据分析Agent,DataSchema工具支持CSV/Excel分析
|
||
- 🧠 **思考模式**:支持LLM和Agent思考模式,智能过滤思考内容
|
||
- 🔍 **搜索引擎扩展**:新增Bing和Google搜索引擎,与DuckDuckGo并列可选
|
||
- 📋 **FAQ增强**:批量导入预检、相似问题、搜索结果匹配问题字段、大批量导入卸载至对象存储
|
||
- 🔑 **API Key认证**:API Key认证机制,Swagger文档安全配置
|
||
- 📎 **输入框内选择**:输入框中直接选择知识库和文件,@提及显示
|
||
- ☸️ **Helm Chart**:完整的Kubernetes部署Helm Chart,支持Neo4j图谱
|
||
- 🌍 **国际化**:新增韩语(한국어)支持
|
||
- 🔒 **安全加固**:SSRF安全HTTP客户端、增强SQL验证、MCP stdio传输安全、沙盒化执行
|
||
- ⚡ **基础设施**:Qdrant向量数据库支持、Redis ACL、可配置日志级别、Ollama嵌入优化、`DISABLE_REGISTRATION`控制
|
||
|
||
**v0.2.0 版本亮点:**
|
||
|
||
- 🤖 **Agent模式**:新增ReACT Agent模式,支持调用内置工具、MCP工具和网络搜索,通过多次迭代和反思提供全面总结报告
|
||
- 📚 **多类型知识库**:支持FAQ和文档两种类型知识库,新增文件夹导入、URL导入、标签管理和在线录入功能
|
||
- ⚙️ **对话策略**:支持配置Agent模型、普通模式模型、检索阈值和Prompt,精确控制多轮对话行为
|
||
- 🌐 **网络搜索**:支持可扩展的网络搜索引擎,内置DuckDuckGo搜索引擎
|
||
- 🔌 **MCP工具集成**:支持通过MCP扩展Agent能力,内置uvx、npx启动工具,支持多种传输方式
|
||
- 🎨 **全新UI**:优化对话界面,支持Agent模式/普通模式切换,展示工具调用过程,知识库管理界面全面升级
|
||
- ⚡ **底层升级**:引入MQ异步任务管理,支持数据库自动迁移,提供快速开发模式
|
||
|
||
</details>
|
||
|
||
|
||
## 📱 功能展示
|
||
|
||
<table>
|
||
<tr>
|
||
<td colspan="2" align="center"><b>💬 智能问答对话</b><br/><img src="./docs/images/qa.png" alt="智能问答对话" width="100%"></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%" align="center"><b>📖 Wiki 浏览器</b><br/><img src="./docs/images/wiki-browser.png" alt="Wiki 浏览器" width="100%"></td>
|
||
<td width="50%" align="center"><b>🕸️ Wiki 知识图谱</b><br/><img src="./docs/images/wiki-graph.png" alt="Wiki 知识图谱" width="100%"></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="50%" align="center"><b>🤖 Agent 模式 · 工具调用过程</b><br/><img src="./docs/images/agent-qa.png" alt="Agent 模式工具调用过程" width="100%"></td>
|
||
<td width="50%" align="center"><b>⚙️ 对话设置</b><br/><img src="./docs/images/settings.png" alt="对话设置" width="100%"></td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2" align="center"><b>🔭 监控可观测性 · Langfuse Tracing</b><br/><img src="./docs/images/langfuse.png" alt="Langfuse Tracing" width="100%"></td>
|
||
</tr>
|
||
</table>
|
||
|
||
## 🏗️ 架构设计
|
||
|
||

|
||
|
||
从文档解析、向量化、检索到大模型推理,全流程模块化解耦,组件可灵活替换与扩展。支持本地 / 私有云部署,数据完全自主可控,零门槛 Web UI 快速上手。
|
||
|
||
## 🧩 功能概览
|
||
|
||
**智能对话**
|
||
|
||
| 能力 | 详情 |
|
||
|------|------|
|
||
| 智能推理 | ReACT 渐进式多步推理,自主编排知识检索、MCP 工具与网络搜索,支持自定义智能体 |
|
||
| 快速问答 | 基于知识库的 RAG 问答,快速准确地回答问题 |
|
||
| Wiki 模式 | Agent 驱动从原始文档中自动生成并维护结构化、相互链接的 Markdown Wiki 知识页面 |
|
||
| 工具调用 | 内置工具、MCP 工具、网络搜索 |
|
||
| 对话策略 | 在线 Prompt 编辑、检索阈值调节、多轮上下文感知 |
|
||
| 推荐问题 | 基于知识库内容自动生成推荐问题 |
|
||
|
||
**知识管理**
|
||
|
||
| 能力 | 详情 |
|
||
|------|------|
|
||
| 知识库类型 | FAQ / 文档 / Wiki,支持文件夹导入、URL 导入、标签管理、在线录入 |
|
||
| 数据源导入 | 飞书 / Notion / 语雀 知识库自动同步(更多数据源开发中),支持增量与全量同步 |
|
||
| 文档格式 | PDF / Word / Txt / Markdown / HTML / 图片 / CSV / Excel / PPT / JSON |
|
||
| 检索策略 | BM25 稀疏召回 / Dense 稠密召回 / GraphRAG 图谱增强 / 父子分块 / 多维度索引 |
|
||
| 端到端测试 | 检索+生成全链路可视化,评估召回命中率、BLEU / ROUGE 等指标 |
|
||
|
||
**集成与扩展**
|
||
|
||
| 能力 | 详情 |
|
||
|------|------|
|
||
| 模型厂商 | OpenAI / Azure OpenAI / Anthropic(Claude)/ DeepSeek / Qwen(阿里云)/ 智谱 / 混元 / 豆包(火山引擎)/ Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Ollama |
|
||
| 向量数据库 | PostgreSQL (pgvector) / Elasticsearch / Milvus / Weaviate / Qdrant / Apache Doris / 腾讯云 VectorDB |
|
||
| Embedding | Ollama / BGE / GTE / 智谱 / OpenAI 兼容接口 |
|
||
| 对象存储 | 本地 / 腾讯云COS / 火山引擎 TOS / MinIO / AWS S3 / 阿里云 OSS / 金山云 KS3 / 华为云 OBS |
|
||
| IM 集成 | 企业微信 / 飞书 / Slack / Telegram / 钉钉 / Mattermost / 微信 |
|
||
| 网络搜索 | DuckDuckGo / Bing / Google / Tavily / Baidu / Ollama / SearXNG |
|
||
|
||
|
||
**平台能力**
|
||
|
||
| 能力 | 详情 |
|
||
|------|------|
|
||
| 部署 | 本地 / Docker / Kubernetes (Helm),支持私有化离线部署 |
|
||
| 界面 | Web UI / RESTful API / 命令行(`weknora`)/ Chrome Extension / 微信小程序 |
|
||
| 权限控制 | 租户 RBAC 四级角色矩阵(Owner / Admin / Contributor / Viewer),按知识库的资源归属,每租户审计日志,invite-only 准入,自助创建工作区,跨租户超级管理员 |
|
||
| 安全 | API Key 与 MCP / 数据源凭据 AES-256-GCM 静态加密、支持平滑密钥轮换;app ↔ docreader gRPC TLS + Token;防 SSRF HTTP 客户端;Agent 技能沙箱隔离 |
|
||
| 可观测性 | 集成 Langfuse 以追踪 ReAct 循环、Token 消耗、工具调用和任务流水线 |
|
||
| 任务管理 | MQ 异步任务,版本升级自动数据库迁移 |
|
||
| 模型管理 | 集中配置,知识库级别模型选择,多租户共享内置模型,WeKnora Cloud 托管模型与文档解析 |
|
||
|
||
## 🧩 Chrome 插件
|
||
|
||
[**WeKnora Chrome 插件**](https://chromewebstore.google.com/detail/jpemjbopikggjlmikmclgbmkhhopjdgd)支持在浏览器中直接将网页内容采集到 WeKnora 知识库。选中文本、图片或整个页面,一键保存为知识条目,无需复制粘贴或手动上传文件。
|
||
|
||
|
||
## 📱 微信小程序
|
||
|
||
[**WeKnora 微信小程序**](./miniprogram/README.md) 提供轻量移动端客户端,支持配置 WeKnora API、选择知识库、导入 URL,并在微信内向知识库提问。
|
||
|
||
|
||
## 🦞 ClawHub Skill
|
||
|
||
[**WeKnora ClawHub Skill**](https://clawhub.ai/lyingbug/weknora) 是 WeKnora 发布在 ClawHub 平台上的技能。安装后,可通过 WeKnora REST API 上传文档(文件 / URL / Markdown)、执行混合检索(向量 + 关键词)以及管理知识条目。
|
||
|
||
- **文档导入** — 通过 Agent 上传文件、导入网页或写入 Markdown 知识
|
||
- **混合检索** — 在单个或多个知识库中进行向量 + 关键词混合搜索
|
||
- **知识管理** — 以编程方式浏览、编辑和删除知识条目
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 🛠 环境要求
|
||
|
||
- [Docker](https://www.docker.com/) & [Docker Compose](https://docs.docker.com/compose/)
|
||
- [Git](https://git-scm.com/)
|
||
|
||
### 📦 安装与启动
|
||
|
||
```bash
|
||
git clone https://github.com/Tencent/WeKnora.git
|
||
cd WeKnora
|
||
cp .env.example .env # 按需编辑 .env,详见文件内注释
|
||
docker compose up -d # 启动核心服务
|
||
```
|
||
|
||
启动成功后访问 **http://localhost** 即可使用。
|
||
|
||
> 如需使用本地 Ollama 模型,请先运行 `ollama serve > /dev/null 2>&1 &`
|
||
|
||
### 🔧 可选服务(Docker Compose Profile)
|
||
|
||
按需添加 `--profile` 启动额外组件,多个 profile 可叠加使用:
|
||
|
||
| Profile | 说明 | 启动命令 |
|
||
|---------|------|----------|
|
||
| _(默认)_ | 核心服务 | `docker compose up -d` |
|
||
| `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` |
|
||
|
||
组合示例:`docker compose --profile neo4j --profile minio up -d`
|
||
|
||
停止服务:`docker compose down`
|
||
|
||
### 🌐 服务地址
|
||
|
||
| 服务 | 地址 |
|
||
|------|------|
|
||
| Web UI | `http://localhost` |
|
||
| 后端 API | `http://localhost:8080` |
|
||
| 链路追踪 (Langfuse) | `http://localhost:3000` |
|
||
|
||
## 文档知识图谱
|
||
|
||
WeKnora 支持将文档转化为知识图谱,展示文档中不同段落之间的关联关系。开启知识图谱功能后,系统会分析并构建文档内部的语义关联网络,不仅帮助用户理解文档内容,还为索引和检索提供结构化支撑,提升检索结果的相关性和广度。
|
||
|
||
具体配置请参考 [知识图谱配置说明](./docs/KnowledgeGraph.md) 进行相关配置。
|
||
|
||
## 配套MCP服务器
|
||
|
||
请参考 [MCP配置说明](./mcp-server/MCP_CONFIG.md) 进行相关配置。
|
||
|
||
## 🔌 使用微信对话开放平台
|
||
|
||
WeKnora 作为[微信对话开放平台](https://chatbot.weixin.qq.com)的核心技术框架,提供更简便的使用方式:
|
||
|
||
- **零代码部署**:只需上传知识,即可在微信生态中快速部署智能问答服务,实现"即问即答"的体验
|
||
- **高效问题管理**:支持高频问题的独立分类管理,提供丰富的数据工具,确保回答精准可靠且易于维护
|
||
- **微信生态覆盖**:通过微信对话开放平台,WeKnora 的智能问答能力可无缝集成到公众号、小程序等微信场景中,提升用户交互体验
|
||
|
||
|
||
## 📘 文档
|
||
|
||
常见问题排查:[常见问题排查](./docs/QA.md)
|
||
|
||
详细接口说明请参考:[API 文档](./docs/api/README.md)
|
||
|
||
产品规划与计划:[路线图 (Roadmap)](./docs/ROADMAP.md)
|
||
|
||
## 🧭 开发指南
|
||
|
||
### ⚡ 快速开发模式(推荐)
|
||
|
||
如果你需要频繁修改代码,**不需要每次重新构建 Docker 镜像**!使用快速开发模式:
|
||
|
||
```bash
|
||
# 启动基础设施
|
||
make dev-start
|
||
|
||
# 启动后端(新终端)
|
||
make dev-app
|
||
|
||
# 启动前端(新终端)
|
||
make dev-frontend
|
||
```
|
||
|
||
**开发优势:**
|
||
|
||
- ✅ 前端修改自动热重载(无需重启)
|
||
- ✅ 后端修改快速重启(5-10秒,支持 Air 热重载)
|
||
- ✅ 无需重新构建 Docker 镜像
|
||
- ✅ 支持 IDE 断点调试
|
||
|
||
**详细文档:** [开发环境快速入门](./docs/开发指南.md)
|
||
|
||
### 📁 项目目录结构
|
||
|
||
```
|
||
WeKnora/
|
||
├── client/ # go客户端
|
||
├── cmd/ # 应用入口
|
||
├── config/ # 配置文件
|
||
├── docker/ # docker 镜像文件
|
||
├── docreader/ # 文档解析项目
|
||
├── docs/ # 项目文档
|
||
├── frontend/ # 前端项目
|
||
├── internal/ # 核心业务逻辑
|
||
├── mcp-server/ # MCP服务器
|
||
├── migrations/ # 数据库迁移脚本
|
||
└── scripts/ # 启动与工具脚本
|
||
```
|
||
|
||
## 🤝 贡献指南
|
||
|
||
欢迎通过 [Issue](https://github.com/Tencent/WeKnora/issues) 反馈问题或提交 Pull Request。
|
||
|
||
**流程:** Fork → 新建分支 → 提交更改 → 创建 PR
|
||
|
||
**规范:** 使用 `gofmt` 格式化代码,遵循 [Conventional Commits](https://www.conventionalcommits.org/) 提交(`feat:` / `fix:` / `docs:` / `test:` / `refactor:`)
|
||
|
||
## 🔒 安全声明
|
||
|
||
**重要提示:** 从 v0.1.3 版本开始,WeKnora 提供了登录鉴权功能,以增强系统安全性。在生产环境部署时,我们强烈建议:
|
||
|
||
- 将 WeKnora 服务部署在内网/私有网络环境中,而非公网环境
|
||
- 避免将服务直接暴露在公网上,以防止重要信息泄露风险
|
||
- 为部署环境配置适当的防火墙规则和访问控制
|
||
- 定期更新到最新版本以获取安全补丁和改进
|
||
|
||
## 👥 贡献者
|
||
|
||
感谢以下优秀的贡献者们:
|
||
|
||
[](https://github.com/Tencent/WeKnora/graphs/contributors)
|
||
|
||
## 📄 许可证
|
||
|
||
本项目基于 [MIT](./LICENSE) 协议发布。
|
||
你可以自由使用、修改和分发本项目代码,但需保留原始版权声明。
|
||
|
||
## 📈 项目统计
|
||
|
||
<a href="https://www.star-history.com/#Tencent/WeKnora&type=date&legend=top-left">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&theme=dark&legend=top-left" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&legend=top-left" />
|
||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Tencent/WeKnora&type=date&legend=top-left" />
|
||
</picture>
|
||
</a>
|