04-知识库管理

第四章:知识库管理

4.1 知识库概述

4.1.1 什么是知识库

知识库(Knowledge Base)是 Dify 平台中用于存储和管理企业文档、数据的核心功能模块。它将 RAG(Retrieval-Augmented Generation,检索增强生成)管线上的各环节可视化,提供了一套简单易用的界面来管理知识内容。

通过知识库功能,你可以:

  • 上传和管理各类文档
  • 自动进行文档分段和向量化处理
  • 配置灵活的检索策略
  • 将知识集成到 AI 应用中

4.1.2 知识库的核心价值

解决 LLM 的知识局限性

大语言模型虽然拥有广泛的知识,但存在以下局限:

  • 时效性问题:训练数据有截止日期
  • 专业性不足:缺少企业特定知识
  • 幻觉问题:可能生成不准确的信息

知识库通过以下方式解决这些问题:

局限性 知识库解决方案
信息过时 实时更新知识库内容
缺少专业知识 上传企业内部文档
回答不准确 基于检索内容生成
无法溯源 提供引用来源

4.1.3 知识库的核心优势

实时性

  • 知识库内容可随时更新
  • 无需重新训练模型
  • 新信息立即生效

精准性

  • 基于实际文档生成回答
  • 大幅减少幻觉现象
  • 可追溯答案来源

灵活性

  • 自定义知识覆盖范围
  • 支持多种文档格式
  • 可对接外部知识库

4.1.4 知识库与文档的关系

在 Dify 中:

  • 知识库(Knowledge):文档的集合,可整体集成到应用中
  • 文档(Documents):知识库中的单个内容项
  • 分段(Chunks):文档被切分后的内容片段
知识库
├── 文档 A
│   ├── 分段 1
│   ├── 分段 2
│   └── 分段 3
├── 文档 B
│   ├── 分段 1
│   └── 分段 2
└── 文档 C
    └── 分段 1

4.2 创建知识库

4.2.1 进入知识库管理

  1. 登录 Dify 控制台
  2. 点击左侧导航栏的"知识库"
  3. 查看已有知识库或创建新知识库

4.2.2 创建新知识库

步骤一:点击创建按钮
点击"创建知识库"按钮,进入创建流程。

步骤二:填写基本信息

知识库名称: 产品帮助文档
知识库描述: 包含产品功能说明、使用指南、常见问题等内容

步骤三:选择数据源类型

Dify 支持多种数据源:

数据源类型 说明 适用场景
本地文件上传 上传本地文档 内部文档、手册
网页爬取 抓取网页内容 在线文档、新闻
Notion 同步 同步 Notion 内容 团队知识库
GitHub 仓库 同步 GitHub 内容 代码文档

4.2.3 支持的文件格式

文本文档

  • TXT:纯文本文件
  • Markdown(.md):结构化文本
  • DOCX:Word 文档
  • HTML:网页文件

数据文件

  • CSV:逗号分隔值
  • Excel(.xlsx, .xls):电子表格
  • JSON:结构化数据

富文本

  • PDF:适合报告、手册
  • EPUB:电子书格式

文件大小限制

  • 单个文件:最大 15 MB
  • 建议将大文件拆分处理

4.3 文档上传与处理

4.3.1 上传本地文件

上传步骤

  1. 选择"本地文件上传"
  2. 拖拽文件或点击选择
  3. 支持批量上传多个文件
  4. 等待上传完成

批量上传技巧

  • 相关文档放在同一个知识库
  • 使用清晰的文件命名
  • 提前检查文件格式兼容性

4.3.2 网页爬取

配置网页爬取

网页 URL: https://docs.example.com
爬取深度: 2  # 从起始页面爬取的层级深度
爬取模式: 
  - sitemap: 根据 sitemap 爬取
  - single: 只爬取单个页面
  - recursive: 递归爬取所有链接

爬取注意事项

  • 确保目标网站允许爬取
  • 设置合理的爬取深度
  • 大型网站可能需要较长时间

4.3.3 Notion 同步

配置步骤

  1. 在 Notion 中创建集成(Integration)
  2. 获取 API Token
  3. 在 Dify 中配置 Notion 连接
  4. 选择要同步的页面或数据库

同步设置

同步模式:
  - 手动同步: 需要手动触发
  - 自动同步: 定期自动更新
同步频率: 每天 / 每周 / 每月

4.3.4 文档处理流程

上传的文档会经过以下处理流程:

原始文档
    ↓
文本提取(解析文档内容)
    ↓
文本清洗(去除噪音)
    ↓
分段处理(切分文本块)
    ↓
向量化(生成 Embedding)
    ↓
索引存储(保存到向量数据库)

4.4 分段策略配置

4.4.1 分段的重要性

分段(Chunking)是知识库处理的关键步骤:

  • 将长文档切分为适当大小的片段
  • 每个片段包含相对完整的信息
  • 便于精确检索和引用

分段策略直接影响:

  • 检索的准确性
  • 回答的相关性
  • Token 消耗效率

4.4.2 分段方式

自动分段
系统根据文档结构自动识别分段边界:

  • 按段落分段
  • 按标题层级分段
  • 按固定长度分段

自定义分段
手动指定分段规则:

分段长度: 500  # 每个分段的最大字符数
分段重叠: 50   # 相邻分段的重叠字符数
分段标识符:    # 分段的分隔符
  - "\n\n"     # 双换行
  - "##"       # Markdown 标题
  - "---"      # 分隔线

4.4.3 分段参数配置

最大分段长度(Chunk Size)

  • 推荐范围:300-1000 字符
  • 太短:上下文信息不完整
  • 太长:检索精度下降,Token 消耗增加

分段重叠(Chunk Overlap)

  • 推荐值:分段长度的 10-20%
  • 作用:保持相邻分段的上下文连贯性

分段策略建议

内容类型 分段长度 重叠长度
技术文档 500-800 50-100
问答 FAQ 200-400 20-50
长篇文章 800-1000 100-150
代码文档 300-500 30-50

4.4.4 QA 分段模式

对于 FAQ 类文档,可以使用 QA 分段模式:

问题: 如何创建知识库?
答案: 在 Dify 控制台点击"知识库",然后点击"创建知识库"按钮...

QA 模式优势

  • 问答配对存储
  • 检索更精准
  • 特别适合 FAQ 场景

4.5 索引与向量化

4.5.1 索引方式

Dify 支持多种索引方式:

高质量索引(推荐)

  • 使用 Embedding 模型进行向量化
  • 支持语义检索
  • 检索效果最好

经济索引

  • 使用关键词索引
  • 成本较低
  • 适合简单场景

4.5.2 Embedding 模型选择

OpenAI Embedding

模型: text-embedding-3-small
维度: 1536
特点: 效果好,需要 API 调用

开源 Embedding

模型: bge-large-zh
维度: 1024
特点: 可本地部署,中文效果好

模型对比

模型 维度 效果 成本
text-embedding-3-large 3072 最佳
text-embedding-3-small 1536 优秀
text-embedding-ada-002 1536 良好
bge-large-zh 1024 中文优秀 低(本地)

4.5.3 向量数据库

Dify 支持多种向量数据库:

Weaviate(默认)

  • 功能全面
  • 支持混合检索
  • 社区活跃

Qdrant

  • 性能优秀
  • 支持多种语言
  • 易于扩展

Milvus

  • 分布式架构
  • 超大规模数据
  • 企业级特性

Chroma

  • 轻量级
  • 易于上手
  • 适合开发测试

4.6 检索策略配置

4.6.1 检索模式

向量检索

  • 基于语义相似度
  • 理解同义词和近义词
  • 推荐首选

全文检索

  • 基于关键词匹配
  • 精确匹配效果好
  • 适合专业术语

混合检索

  • 结合向量和全文检索
  • 综合两种方式的优势
  • 效果最佳

4.6.2 检索参数配置

Top K

  • 返回最相关的 K 个分段
  • 推荐值:3-10
  • 值越大,上下文越丰富,但 Token 消耗也越多

Score 阈值

  • 相似度得分门槛
  • 推荐值:0.5-0.7
  • 过滤掉相关性低的结果

配置示例

检索模式: 混合检索
Top K: 5
Score 阈值: 0.6
重排序: 启用
重排序模型: cohere-rerank

4.6.3 重排序(Rerank)

重排序是提升检索质量的关键技术:

工作原理

  1. 初次检索返回候选结果
  2. 使用 Rerank 模型重新评估
  3. 按相关性重新排序
  4. 返回最终结果

Rerank 模型

  • Cohere Rerank
  • Jina Reranker
  • BGE Reranker

效果提升

  • 显著提高检索准确率
  • 减少无关内容干扰
  • 推荐在生产环境启用

4.6.4 检索测试

在发布应用前,务必进行检索测试:

测试步骤

  1. 进入知识库详情页
  2. 点击"检索测试"
  3. 输入测试问题
  4. 查看返回的分段
  5. 验证相关性

测试用例设计

- 直接匹配: 问题与文档内容完全对应
- 同义表达: 使用不同说法表达同一意思
- 模糊查询: 只包含部分关键词
- 复杂问题: 需要综合多个分段回答

4.7 知识库集成应用

4.7.1 在聊天助手中集成

配置步骤

  1. 打开聊天助手应用
  2. 进入"上下文"配置
  3. 点击"添加"选择知识库
  4. 配置检索参数

提示词配置

基于以下知识库内容回答用户问题:

{{context}}

回答要求:
1. 仅基于提供的知识回答
2. 如果知识库中没有相关信息,请明确告知
3. 回答时注明信息来源

4.7.2 在工作流中集成

使用"知识检索"节点:

节点配置

节点名称: 检索产品文档
知识库: 产品帮助文档
查询变量: {{user_question}}
检索参数:
  Top K: 5
  Score 阈值: 0.6
输出变量: retrieved_docs

4.7.3 引用与溯源

启用引用功能后,回答会包含来源信息:

配置方法
在应用设置中开启"显示引用来源"

效果展示

回答内容...

引用来源:
[1] 产品使用手册.pdf - 第3章
[2] FAQ文档.md - 常见问题

4.8 知识库维护

4.8.1 文档管理

文档操作

  • 添加:上传新文档
  • 删除:移除不需要的文档
  • 更新:重新上传更新版本
  • 禁用:临时停用某文档

批量操作

  • 选中多个文档
  • 批量删除/禁用
  • 批量重新索引

4.8.2 分段管理

分段操作

  • 查看分段内容
  • 编辑分段文本
  • 删除问题分段
  • 手动添加分段

分段优化

  • 合并过短的分段
  • 拆分过长的分段
  • 修正分段边界

4.8.3 增量更新

对于需要持续更新的知识库:

更新策略

更新方式: 
  - 追加: 添加新内容,保留旧内容
  - 替换: 删除旧内容,添加新内容
  - 合并: 智能合并新旧内容

自动同步

  • 配置定时同步任务
  • 监控数据源变化
  • 自动触发更新

4.8.4 质量监控

监控指标

  • 检索命中率
  • 回答准确率
  • 用户反馈

优化方向

  • 补充缺失的知识
  • 优化分段策略
  • 调整检索参数

4.9 连接外部知识库

4.9.1 外部知识库介绍

如果你的团队已有独立知识库系统,可以直接连接而无需重新上传:

支持的连接方式

  • API 对接
  • 数据库直连
  • 向量数据库连接

4.9.2 配置外部连接

API 方式

外部知识库 URL: https://your-kb-api.com/search
认证方式: Bearer Token
Token: your-api-token
请求格式: POST JSON

响应格式要求

{
  "results": [
    {
      "content": "文档内容",
      "score": 0.95,
      "source": "文档名称"
    }
  ]
}

4.9.3 混合使用

可以同时使用内部知识库和外部知识库:

知识库配置:
  - 类型: 内部
    名称: 产品文档
    权重: 0.6
  - 类型: 外部
    名称: 企业Wiki
    权重: 0.4

4.10 最佳实践

4.10.1 知识库规划

规划建议

  1. 按主题或用途分类创建知识库
  2. 每个知识库保持内容相关性
  3. 避免内容重复或冲突

知识库分类示例

├── 产品知识库
│   ├── 功能说明
│   ├── 使用手册
│   └── FAQ
├── 技术知识库
│   ├── API 文档
│   ├── 开发指南
│   └── 故障排查
└── 业务知识库
    ├── 行业报告
    ├── 案例分析
    └── 政策法规

4.10.2 文档准备

文档质量

  • 内容准确、及时
  • 结构清晰、规范
  • 使用标准格式

预处理建议

  • 清理格式问题
  • 去除无关内容
  • 补充必要的上下文

4.10.3 检索优化

优化策略

  1. 选择合适的分段大小
  2. 启用重排序功能
  3. 定期测试检索效果
  4. 根据反馈持续优化

4.11 本章小结

通过本章的学习,你应该掌握:

  1. 知识库概念:理解知识库在 RAG 架构中的作用
  2. 创建知识库:掌握知识库的创建流程
  3. 文档处理:了解文档上传、分段、索引的过程
  4. 检索配置:熟练配置检索策略和参数
  5. 应用集成:将知识库集成到 AI 应用中
  6. 维护管理:掌握知识库的日常维护方法

4.12 思考与练习

  1. 实践练习

    • 创建一个产品 FAQ 知识库
    • 测试不同分段策略的效果
    • 将知识库集成到聊天助手中
  2. 思考题

    • 如何设计知识库的分类结构?
    • 什么情况下应该启用重排序?
    • 如何评估知识库的质量?
  3. 扩展学习

    • 研究 RAG 技术的原理
    • 了解不同向量数据库的特点
    • 探索知识图谱的应用

下一章预告:第五章将深入介绍工作流编排,包括工作流的核心概念、节点类型和实战案例。

posted @ 2025-11-29 13:06  我才是银古  阅读(0)  评论(0)    收藏  举报