在实际业务中,大模型常常“一本正经地胡说八道”——因为它不知道你公司的产品细节、内部流程或行业术语。

如何让 AI “只说你知道的内容”?答案就是:RAG(Retrieval-Augmented Generation,检索增强生成)

Dify 内置了强大的知识库系统,支持上传 PDF、Word、TXT 等文档,自动切片、向量化,并在用户提问时智能检索相关内容,注入 Prompt 实现精准回答

本文将带你:
✅ 手把手搭建知识库
✅ 深入解析文本切片与向量化流程
✅ 掌握提升检索准确率的五大实战技巧

让你的 AI 助手从“通识学霸”变成“领域专家”。


一、上传文档并建立知识库

🧭 第一步:创建知识库

  1. 登录 Dify 控制台
  2. 进入左侧菜单 → “知识库”
  3. 点击 “新建知识库”
  4. 输入名称(如“产品手册”、“客服FAQ”)
  5. 选择分段策略(稍后详解)
  6. 点击“创建”

✅ 建议:为不同业务场景创建独立知识库,便于权限管理和精准检索。


📎 第二步:上传文档

支持格式:

  • .pdf(含扫描件自动OCR识别)
  • .docx, .pptx, .xlsx
  • .txt, .md
  • .csv(结构化数据支持)
操作步骤:
  1. 进入知识库详情页
  2. 点击“上传文件”
  3. 拖入或选择本地文件
  4. 设置文档权限(可选)
  5. 点击“确认上传”

⏱️ 系统会自动完成:解析 → 切片 → 向量化 → 存入向量数据库


📊 查看处理状态

上传后,你会看到每份文档的处理进度:

  • 解析状态(成功/失败)
  • 分段数量
  • 向量生成状态
  • 可预览每个文本块的内容

💡 提示:如果文档较大(>50MB),建议分批上传,避免超时。


二、文本切片策略与向量化流程解析

这是 RAG 的核心技术环节。切得好,检索才准;向量强,匹配才稳

🔍 什么是文本切片(Text Splitting)?

由于大模型有上下文长度限制(如 32K),我们不能把整本 PDF 直接喂给 AI。必须将文档拆分成小段落,每段独立向量化。

Dify 提供多种切片策略:

策略 说明 适用场景
固定长度切片 按字符数切割(如每 500 字一段) 通用场景,简单高效
按标题分割 识别 #, ## 等标题层级,保持语义完整 技术文档、手册
句子边界分割 在句号、换行处切分,避免断句 自然语言文本
语义分割(Sentence-BERT) 使用模型判断语义边界,最智能 高精度要求场景

✅ 推荐组合:“按标题分割” + “句子边界微调”,兼顾结构与语义。


🧠 向量化流程解析

切片完成后,Dify 会调用 embedding 模型将每段文本转换为向量(即“数字指纹”),存储在向量数据库中。

流程如下:
原始文档
   ↓ 解析(Unstructured / PyPDF2)
文本片段列表
   ↓ 清洗(去噪、去广告、标准化编码)
干净文本块
   ↓ 调用 Embedding 模型(如 text-embedding-ada-002)
向量表示(vector)
   ↓ 存入向量数据库(Milvus / Weaviate / PGVector)
可供检索的索引

💡 默认使用 OpenAI 的 text-embedding-ada-002,也支持国产模型(如通义、bge)。


⚙️ 如何选择 embedding 模型?

模型 特点 是否推荐
OpenAI text-embedding-ada-002 效果好,稳定性高 ✅ 强烈推荐(SaaS版默认)
BAAI/bge-base-zh 中文优化,开源免费 ✅ 自建部署首选
Tongyi/text-embedding-v1 阿里云出品,中文表现优秀 ✅ 支持私有化调用
Jina Embeddings 多语言支持好 ✅ 国际化项目可用

📌 在 Dify 的“模型管理”中可配置多个 embedding 模型并自由切换。


三、提高检索准确率的五大技巧

即使有了知识库,AI 仍可能“答非所问”。根本原因往往是:检索不准

以下是五个经过验证的优化技巧,大幅提升 RAG 效果。


✅ 技巧 1:关键词增强(Hybrid Search)

纯向量检索容易忽略关键词匹配。Dify 支持 混合检索(Keyword + Vector)

  • 先用 BM25 或 Elasticsearch 做关键词匹配
  • 再用向量检索找语义相似内容
  • 最后融合排序(Reciprocal Rank Fusion)

🔧 开启方式:在知识库设置中启用“关键词检索”

📌 效果:显著提升对“专有名词”“缩写词”的召回率。


✅ 技巧 2:元数据过滤(Metadata Filtering)

为文档或文本块添加元数据,实现精准筛选。

示例场景:
  • 文档来源:source: "用户手册_v2.pdf"
  • 所属部门:dept: "客服"
  • 发布时间:date: "2025-03"

然后在 Prompt 中添加过滤条件:

请仅参考 2025 年发布的文档回答问题。

Dify 会在检索时自动过滤 date < 2025 的片段。

🛠️ 配置路径:上传文档时手动填写元数据,或通过 API 批量注入。


✅ 技巧 3:查询扩展(Query Expansion)

用户提问太简短?AI 看不懂?

启用 查询扩展 功能,让系统自动补全语义:

原始查询 扩展后
“退款流程” “如何申请退款?退款需要哪些材料?退款多久到账?”
“登录失败” “账号无法登录怎么办?密码错误如何重置?”

实现方式:

  • 使用 LLM 自动生成相关问题
  • 将多个查询并行检索,合并结果

💡 在 Dify 高级设置中开启“更多类似问题”功能即可。


✅ 技巧 4:重排序(Reranking)

向量检索返回 Top-K 结果后,再用更强大的模型进行二次打分排序

例如:

  1. 向量库返回 20 个候选片段
  2. 使用 bge-reranker 模型重新打分
  3. 取 Top-3 注入 Prompt

✅ 显著提升最终答案的相关性。

📌 Dify 已集成主流 reranker 模型,可在“检索设置”中启用。


✅ 技巧 5:Prompt 注入优化

即使检索到了正确内容,如果 Prompt 写得不好,AI 也可能视而不见。

推荐模板结构:
请根据以下【知识库内容】回答问题,要求:
- 必须基于文档内容,不要编造
- 如果没有相关信息,回答“暂无资料”

【知识库内容】
{{retrieved_content}}

【当前问题】
{{query}}

【回答】

💡 加上“不要编造”等指令,能有效抑制幻觉。


✅ 实战案例:构建企业级 FAQ 问答系统

我们以某 SaaS 公司为例,构建一个客服知识机器人:

  1. 上传文件:

    • 产品功能说明.pdf
    • 常见问题FAQ.docx
    • 价格策略表.xlsx
  2. 设置元数据:

    • category: pricingcategory: onboarding
  3. 启用混合检索 + 查询扩展

  4. 设计 Prompt:

    你是 {{company}} 的官方客服,请严格依据知识库回答。
    
  5. 测试效果:

    • 问:“免费版支持多少用户?” → 正确返回“最多5人”
    • 问:“怎么升级到企业版?” → 返回付款链接和流程图

🎯 准确率从 60% 提升至 92%!


✅ 总结:RAG 是 AI 落地的关键一环

环节 关键动作 工具支持
文档上传 支持多格式解析 ✅ Dify 内置
文本切片 按标题/语义分割 ✅ 多种策略可选
向量化 调用 embedding 模型 ✅ 支持 OpenAI/BGE/通义
检索优化 混合搜索、rerank、元数据过滤 ✅ 全链路支持
Prompt 设计 引导 AI 正确使用知识 ✅ 可视化编排

知识库不是“有就行”,而是要“用得准”。只有持续优化 RAG 流程,才能让 AI 真正成为你的“超级员工”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐