用WeKnora把文档变成可查询知识库:RAG问答、Agent推理与自维护Wiki
【免费下载链接】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是腾讯开源的LLM知识平台,把上传的原始文档变成三样可直接用的东西:可查询的RAG知识库、能自主调工具的ReAct智能体,以及自维护的Wiki。它解决的是"文档堆着没人翻、知识检索靠人肉记忆"的问题。
🚀 先跑起来:4条命令拉起,问出第一个跨文档问题
首次部署后做两件事:导入几份文档建库,再在对话框里问一个跨文档问题。答案带引用来源,RAG流水线的分阶段进度(检索、重排、生成)在聊天界面逐步可见;切到Agent模式,它会自己决定查库、调MCP工具,甚至在Docker/E2B沙箱里写脚本、产出文件。
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora && cp .env.example .env docker compose pull && docker compose up -d⚙️ 核心能力拆解:分块、检索、Agent与Wiki
自适应分块:chunk_size怎么定才不丢召回
分块方式直接决定检索召回率。WeKnora先跑一个文档profiler统计结构信号(Markdown标题数、分页符、章节标记、全大写标题行),再按结果选档:结构化文档在#/##/###边界切分并在embedding时拼上# Top > ## Section面包屑;PDF类文档按分页符、编号章节、多语言章节标记切;没有结构特征的回退到递归分隔符切分,切得明显的档(如产出200个单行块)会被校验器拒绝并降级。
默认参数在config/config.yaml里:
knowledge_base: chunk_size: 512 chunk_overlap: 50 split_markers: ["\n\n", "\n", "。"]docs/CHUNKING.md还给出分场景预设:FAQ库用200–400、父子分块关闭;PDF报告用800–1200;长文叙述1000–2000。父子分块默认开启:子块(约384字符)做向量匹配,父块(约4096字符)回传给LLM,小块易命中且上下文完整。
混合检索:BM25+向量+图谱三路召回再精排
单路向量检索容易漏掉精确术语和专有名词。WeKnora并行跑BM25稀疏检索与密集向量检索,复杂问题可叠加GraphRAG图谱检索作为第三路,最后rerank精排取top30。向量库支持pgvector、Elasticsearch、OpenSearch、Milvus、Weaviate、Qdrant、Doris、腾讯向量数据库共8种后端,每个知识库可独立绑定。
ReAct Agent与技能沙箱:让智能体真正动手
"查资料、核对、生成一份文件"这类多步任务单轮RAG做不完。internal/agent/里的引擎是ReACT循环:think规划 → act调工具 → observe取结果 → 下一轮。工具面覆盖内置工具、MCP远程服务(支持对话中OAuth2授权)、10种网络搜索provider和跨会话长期记忆;技能在Docker/E2B/Cube沙箱中隔离执行,按配置带独立网络策略,v0.8.0起还有租户级技能目录,可从git/zip安装技能包。
自维护Wiki:文档进,带图谱的页面出
RAG只回答"文档里写了什么",不产出体系化视图。Wiki模式让agent把原始文档蒸馏成互链的Markdown页面并抽取实体关系图谱,页面支持人工编辑、行级diff和一键回滚,增量构建后图谱实时更新。
📦 部署与集成:Docker一键拉起步骤
上面3条命令就是最小集。.env有两个必填组:数据库(B1节)和JWT/AES密钥(F1节,生产必须改掉默认值)。模型侧20+提供商任选,本地Ollama也能跑;.env注释按部署基础、存储、检索、模型、安全分组。可选组件用compose profile一行开启:
docker compose --profile neo4j --profile langfuse up -d对外接入包括RESTful API(约360个端点)、CLIweknora、29工具的MCP Server、企微/飞书/Slack/Telegram等10个IM渠道和网页嵌入组件;每个工作区带Owner/Admin/Contributor/Viewer四级RBAC、按KB资源归属和审计日志。
🎛 效果调优:先看这3组参数
| 参数 | 作用 | 推荐值 |
|---|---|---|
| embedding_top_k / rerank_top_k | 向量召回候选数 / 精排保留数 | 默认30;长尾文档多就加大,压延迟就调小 |
| vector_threshold / rerank_threshold | 向量与重排的相似度过滤线 | 默认0.2/0.3;答非所问调高,召回不足调低 |
| chunk_size(按知识库设) | 切片长度,决定召回粒度 | FAQ 200–400;长文1000–2000;混合留512 |
分块参数在知识库编辑器里有"Test with sample text"只读预览,改配置不触发重传就能对比切片结果;dataset/还带了BLEU/ROUGE评测集做端到端回归。
🧭 适用判断
- 适合:需要私有化部署和数据主权、手里有文档级知识资产(手册、合规文档、产品资料)的企业;想让企微/飞书里直接问答、不再单独维护聊天机器人的团队
- 不适合:只有几百条高频问答的纯FAQ场景(一张表+向量库更轻);需要实时流式数据入库的场景,知识库走的是批量导入与增量同步
- 资源基线:Docker Compose默认带Postgres、Redis、app与frontend,加Neo4j知识图谱后单机4C8G可跑
🔭 值得关注的方向
官方ROADMAP.md中已列出的近期方向:支持音视频格式并增强多模态理解;在规则分块之外支持语义分块、章节分块;文档结构与图谱关系可视化;自研检索召回相关模型(Embedding/ReRank/LLM)。
WeKnora是一条能整体私有化部署的"文档→知识→答案"流水线,LLM、向量库、存储后端三层都留了替换口。手里有存量文档想变成可查询资产的话,先用上面的4条命令拉起来,按自己的文档类型调chunk_size和检索阈值,再决定要不要上Agent模式与Wiki。
【免费下载链接】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),仅供参考