znlgis 博客

GIS开发与技术分享

第四章:知识库管理

4.1 知识库概述

4.1.1 什么是知识库

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

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

4.1.2 知识库的核心价值

解决 LLM 的知识局限性

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

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

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

4.1.3 知识库的核心优势

实时性

精准性

灵活性

4.1.4 知识库与文档的关系

在 Dify 中:

知识库
├── 文档 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 支持的文件格式

文本文档

数据文件

富文本

文件大小限制

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)是知识库处理的关键步骤:

分段策略直接影响:

4.4.2 分段方式

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

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

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

4.4.3 分段参数配置

最大分段长度(Chunk Size)

分段重叠(Chunk Overlap)

分段策略建议

内容类型 分段长度 重叠长度
技术文档 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 模式优势

4.5 索引与向量化

4.5.1 索引方式

Dify 支持多种索引方式:

高质量索引(推荐)

经济索引

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

Score 阈值

配置示例

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

4.6.3 重排序(Rerank)

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

工作原理

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

Rerank 模型

效果提升

4.6.4 检索测试

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

测试步骤

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

测试用例设计

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

4.7 知识库集成应用

4.7.1 在聊天助手中集成

配置步骤

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

提示词配置

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



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

4.7.2 在工作流中集成

使用”知识检索”节点:

节点配置

节点名称: 检索产品文档
知识库: 产品帮助文档
查询变量: 
检索参数:
  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 外部知识库介绍

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

支持的连接方式

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 技术的原理
    • 了解不同向量数据库的特点
    • 探索知识图谱的应用

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