WeKnora 开源 RAG 智能问答知识库如何快速跑起来:完整实战指南
【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora
WeKnora 是一个开源的 RAG 智能问答平台:把原始文档丢进去,就能得到可查询的知识库、自主推理的 Agent,以及一套自维护的 Wiki。如果你的团队文档散落各处、FAQ 和最新版本对不上、找人问答案比搜文档还慢,它一次部署就能解决。本文先用 5 分钟把它跑起来,再讲清楚背后的设计,以及真正值得调的几个参数。
能力全景:它都能帮你做什么
| 能力 | 它能帮你做什么 |
|---|---|
| RAG 快速问答 | 提问后自动检索知识库并给出带引用的回答,点引用直达原文 |
| ReAct 智能代理 | 自主编排知识检索、MCP 工具与网络搜索,完成多步骤任务 |
| Wiki 模式 | Agent 把文档蒸馏成互链 Markdown 知识页,支持浏览、编辑与一键回滚 |
| 多格式文档解析 | PDF、Word、Excel、PPT、图片等 10+ 格式,扫描件走 OCR |
| 四层混合检索 | BM25、向量、知识图谱并行召回,再用 rerank 精排 |
| 多渠道接入 | Web UI、API、CLI、浏览器扩展,外加企微/飞书/Slack 等 9 种 IM 渠道 |
用 Docker Compose 从零跑起来 🐳
前置只需要 Docker 和 Docker Compose,两条命令启动核心服务栈(前端、后端、PostgreSQL、Redis、docreader 解析服务):
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env docker compose pull docker compose up -d启动后:
- Web UI:
http://localhost,注册账号后进入初始化向导 - 后端 API:
http://localhost:8080 - 初始化向导里选择 LLM 提供商(OpenAI、DeepSeek、通义千问、Ollama 等 20+ 家),配置嵌入模型即可上传文档
可选服务通过 Compose profiles 按需开启,可任意组合:
--profile neo4j:知识图谱--profile minio:对象存储--profile langfuse:全链路追踪--profile full:以上全部
关键配置集中在 config.yaml:检索阈值、分块参数、无匹配时的兜底回复都在这里。想用本地 Ollama 模型的话,先后台跑ollama serve再启动即可。
它是怎么工作的 🧩
1. 自适应三阶段分块问题:按固定长度硬切会切散标题和上下文,检索时拿到的片段没有"出处"。方案:先跑一个文档画像,统计 Markdown 标题、分页符、章节编号等结构信号,auto模式从 heading / heuristic / recursive 三层里挑最合适的一档;heading 模式还会把"面包屑"标题拼进向量输入。效果:Vecta 2026 年 2 月基准下该基线端到端准确率 69%,结构化文档的块数还能少 30%~50%。
2. 四层混合检索问题:纯关键词检索听不懂同义词,纯向量检索又常匹配不上型号、错误码这类精确词。方案:BM25 稀疏、密集向量、GraphRAG 三路并行召回,最后用 rerank 模型精排。关键参数在 config.yaml 里:
conversation: embedding_top_k: 30 # 向量召回数量 vector_threshold: 0.2 # 相似度阈值 rerank_threshold: 0.3 # 重排阈值效果:同义类问题靠向量兜住召回,关键词类问题靠 BM25 保证精确命中,阈值和 top_k 都能按场景调。
3. ReAct 代理引擎问题:单次 RAG 回答不了"先查库、再比对、最后上网核实"这类任务。方案:internal/agent/ 里的引擎按推理—行动循环逐步执行,自主调用知识检索、MCP 工具和网络搜索,技能执行放在沙箱里隔离。效果:多步任务的工具调用过程在界面上逐步可见,并可通过 Langfuse 做全链路追踪。
真实场景怎么用 📄
场景一:上传文档,直接提问把一份产品手册 PDF 拖进知识库 → 系统完成解析、分块、向量化(解析、分块等阶段进度在聊天里逐步可见)→ 输入"故障排查章节里错误码 E23 是什么意思",得到带引用的结构化回答,点引用跳回原文段落。全程不用手工整理索引。
场景二:把一堆文档变成可浏览的 Wiki新建 Wiki 类型知识库,让 Agent 跑一轮 → 原始文档被蒸馏成互链的 Markdown 知识页,同时生成知识图谱 → 在图谱里交互式探索实体之间的关系;发现某页内容有问题时,直接在浏览器里编辑,修订历史支持行级 diff 和一键回滚。
场景三:挂进企业 IM后台填入企微或飞书凭证 → 群里 @机器人提问 → 回答直接来自知识库,9 种 IM 渠道都支持文件消息,员工不用打开 Web 界面也能查文档。
让它更好用:调优要点 ⚙️
- 分块策略:按文档类型选——技术文档用
heading,带章节的 PDF 用heuristic,混合内容保持auto。chunk_size对 FAQ 类建议 200–400,叙事型文档 1000–2000。注意切换策略不会自动重建索引,需要触发重新解析,完整参数说明见 docs/CHUNKING.md。 - 检索参数:精确度优先就调低
vector_threshold/rerank_threshold;召回不足就调大embedding_top_k。建议从默认的 30 / 0.2 / 0.3 出发,用自己的高频问题实测再动。 - 分块微调:某个检索块内容割裂时,不用重新解析整份文档,直接在界面编辑该块,系统会自动重建索引,且支持按版本 diff 和回滚。
行动清单
- 用 Docker Compose 部署核心栈,注册账号并在初始化向导配好 LLM 与嵌入模型
- 上传 3–5 份真实文档,在知识库里抽查分块质量,策略保持
auto - 用 5–10 个高频真实问题压测问答,按命中率微调检索阈值
- 需要知识图谱时执行
docker compose --profile neo4j up -d重拉一次 - 接入企微或飞书渠道,把文档问答放进团队日常沟通
一次部署,散落的文档就变成可查询、会推理、持续更新的知识资产。
【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考