知识库搭建实战:用 Dify 搭企业私有知识库

一、为什么用 Dify 搭知识库

Dify 是开源的 LLMOps 平台,把「文档导入 → 向量化 → 检索 → 对话」整成可视化流程,不需要写 RAG 代码就能搭出企业私有知识库。对不想从零造轮子的团队,它是性价比最高的起点。

二、部署(Docker 一键)

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

默认跑在 80 端口,首次访问初始化管理员账号即可。生产环境建议:反向代理加 HTTPS、数据库与向量库(PostgreSQL + pgvector / Weaviate)独立部署、关闭公网注册。

三、创建知识库并导入文档

  1. 进入「知识库 → 创建」,选择「导入已有文本」;
  2. 上传上一步清洗结构化之后的 Markdown / TXT / 表格(参考本站《文档清洗与结构化》);
  3. 索引方式选「高质量」(需配 Embedding 模型),分段策略用「自动」或自定义;
  4. 等待向量化完成。

经验:每个文档最好自带 # 标题层级,分段能顺着章节切,召回更准。

四、分段与检索设置

参数 建议 说明
分段最大长度 500—1000 字符 中文按字算,别照搬英文 512 token
重叠 10%—15% 保留跨段上下文
检索方式 语义 + 全文混合 兼顾关键词与意图
TopK 3—5 太多引入噪声,太少漏信息

五、召回测试(上线前必做)

  • 用真实问题测:如「客户包裹丢了怎么赔」,看召回片段是否包含赔偿政策原文;
  • 错配就调整分段或补充文档,而不是先怪模型;
  • 记录 20 组问答的命中率,低于 80% 先别全员推。

六、常见坑

  • 直接传原始 PDF:没清洗的页眉页脚会污染索引;
  • Embedding 模型频繁更换:换模型要重建索引,否则维度不匹配;
  • 知识库当数据库用:精确数值(报价、库存)优先走结构化接口,别指望语义检索给准数。

Dify 解决的是「搭起来」的问题;效果上限仍在你喂进去的语料质量——所以清洗结构化这步省不掉。