本文目录
  1. 1. Dify和RAGFlow的搭建过程
  2. 2. 什么是RAG,讲一下原理和流程
  3. 9. 讲一下Dify知识库的索引和对应的原理
  4. 10. 什么是混合检索,讲讲流程和原理
  5. 11. RAGFlow的知识库有什么优势?
  6. 12. RAGFlow里面的DeepDoc是什么?
  7. 13. RAGFlow的文档切分都有哪些格式?
  8. 14. Dify怎么连接外部知识库?
  9. 15. Dify和Coze有什么区别?

Dify 与 RAG 知识库实践

理解 Dify、RAGFlow、知识库索引、混合检索和外部知识库连接。

1. Dify和RAGFlow的搭建过程

Dify 搭建过程

# 1. 克隆仓库
git clone https://github.com/langgenius/dify.git

# 2. 进入docker目录
cd dify/docker

# 3. 复制环境变量配置文件
cp .env.example .env

# 4. 启动所有容器
docker compose up -d

# 5. 浏览器访问 http://localhost/install 完成初始化

RAGFlow 搭建过程

# 1. 克隆仓库
git clone https://github.com/infiniflow/ragflow.git

# 2. 进入docker目录
cd ragflow/docker

# 3. 启动容器
docker compose -f docker-compose.yml up -d

# 4. 浏览器访问 http://localhost 完成配置

两者都是基于 Docker Compose 编排,包含 Web 服务、数据库、向量数据库、Redis 等多个组件。


2. 什么是RAG,讲一下原理和流程

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将外部知识检索大模型生成相结合的技术架构。

核心原理:在模型生成回答之前,先从外部知识库中检索与问题相关的文档片段,将其作为上下文注入提示词,让模型基于真实资料生成回答,而非仅依赖参数中的记忆。

完整流程

 文档预处理(离线阶段)
   文档上传 文本分段 向量化(Embedding) 存入向量数据库

 检索与生成(在线阶段)
   用户提问 问题向量化 向量相似度检索 召回Top-K相关片段
 将问题 + 检索结果组装为Prompt LLM生成最终回答

优势:减少幻觉、支持知识实时更新、可追溯来源。


9. 讲一下Dify知识库的索引和对应的原理

Dify 知识库支持以下索引模式:

1. 高质量模式(推荐)

  • 使用 Embedding 模型 将文档分段后进行向量化
  • 存储到向量数据库中
  • 检索时将用户问题向量化,通过向量相似度(余弦相似度等)匹配最相关片段
  • 原理:将文本映射到高维语义空间,语义相近的文本在向量空间中距离更近

2. 经济模式

  • 使用关键词倒排索引,基于 BM25 等算法
  • 无需调用 Embedding 模型,成本低
  • 检索基于词频匹配,对精确关键词匹配效果好,但语义理解弱

索引流程

文档上传 文本提取 分段(Chunk)→ Embedding向量化 存入向量数据库

        同时构建关键词倒排索引(混合检索时)

10. 什么是混合检索,讲讲流程和原理

混合检索(Hybrid Search) 是将向量语义检索关键词检索相结合的检索策略。

两种检索方式对比

方式 优势 劣势
向量检索 理解语义,能匹配同义词、近义表达 对精确关键词匹配不够精准
关键词检索 精确匹配关键词,速度快 无法理解语义,无法处理同义替换

混合检索流程

用户提问
   ├──→ 向量化 向量数据库检索 召回结果A(语义相关)
   └──→ 关键词提取 倒排索引检索 召回结果B(关键词匹配)

                              结果融合(如 RRF 倒排序融合算法)

                              统一排序 输出Top-K结果

融合原理:常用 RRF(Reciprocal Rank Fusion) 算法,根据各结果在不同检索方式中的排名加权计算综合分数,生成最终排序。


11. RAGFlow的知识库有什么优势?

RAGFlow 在知识库方面的主要优势:

  1. 深度文档解析(DeepDoc):内置强大的文档解析引擎,能处理复杂格式的文档(含表格、图片、公式等),提取精度高
  2. 智能分段策略:支持多种文档分段方式,能根据文档结构自适应切分,保持语义完整性
  3. 可视化分段预览:支持在界面上直接查看和调整文档分段结果,便于人工校验
  4. 混合检索:支持向量检索 + 全文检索的混合模式,并提供 Rerank 重排序
  5. 模板化解析:针对不同文档类型(论文、财报、法律文书等)提供专用解析模板
  6. 引用溯源:生成的回答可以精确追溯到原文的具体段落,便于验证

12. RAGFlow里面的DeepDoc是什么?

DeepDoc 是 RAGFlow 内置的深度文档解析引擎,用于将复杂格式的文档高质量地转换为结构化文本。

核心能力

  • 版面分析:识别文档的版面布局,区分标题、正文、表格、图片等区域
  • 表格提取:精准识别和提取表格数据,保持行列结构
  • OCR能力:对扫描件和图片中的文字进行识别
  • 多格式支持:支持 PDF、Word、Excel、PPT、图片等多种文档格式
  • 公式识别:识别数学公式并转为文本描述

意义:DeepDoc 解决了传统 RAG 系统在处理复杂文档时“切分不准确、表格丢失、图片忽略”的痛点,显著提升了知识库的入库质量。


13. RAGFlow的文档切分都有哪些格式?

RAGFlow 支持以下文档格式的导入和切分:

格式 说明
PDF 支持文字型和扫描型PDF,含表格和图片提取
Word(.doc/.docx) 支持段落结构识别
Excel(.xls/.xlsx) 按行/表格结构切分
PPT(.ppt/.pptx) 按页面/幻灯片切分
Markdown 按标题层级和段落切分
TXT 纯文本按段落或固定长度切分
图片 通过OCR识别文字后切分
HTML 解析DOM结构提取文本切分
JSON 结构化数据解析

14. Dify怎么连接外部知识库?

Dify 支持通过外部知识库API连接第三方知识库(如 RAGFlow、自建知识库等):

步骤

  1. 在外部知识库系统中创建API服务:确保外部知识库提供标准的检索API接口

  2. 在Dify中配置外部知识库

    • 进入 Dify → 知识库 → 创建知识库 → 选择“连接外部知识库”
    • 填写以下参数:
      • API端点(Endpoint):外部知识库的检索API地址
      • API Key:认证密钥
      • 知识库ID:外部知识库的唯一标识
  3. 在应用中引用:创建应用时,在“上下文”中添加已连接的外部知识库

  4. 检索配置:设置 Top K、Score Threshold 等检索参数

这种方式使得 Dify 可以复用已有的 RAGFlow 等知识库基础设施,无需重复建设。


15. Dify和Coze有什么区别?

维度 Dify Coze
定位 开源 LLMOps 平台,面向开发者和企业 字节跳动的 AI Bot 构建平台,面向更广泛的用户
部署方式 支持私有化部署(Docker),数据可控 SaaS平台,云端托管为主
开源性 完全开源(Apache 2.0) 闭源平台
工作流 支持可视化工作流编排 支持可视化工作流编排
模型支持 支持接入多种模型(OpenAI、开源模型等) 主要基于字节系模型,也支持接入其他模型
知识库 内置RAG引擎,支持连接外部知识库 内置知识库功能
插件生态 通过API和工具集成 丰富的内置插件市场
发布渠道 API、Web应用、嵌入式 豆包、飞书、微信、API等多渠道发布
适用场景 企业级私有化AI应用、对数据安全要求高的场景 快速搭建面向C端用户的Bot
技术门槛 中高,需要一定的开发能力 低,对非技术人员友好