大模型RAG实战|Dify外挂ThinkDoc知识库实现多模态精准召回

Dify 是一个开源的 LLM 应用开发平台,提供了知识库、RAG 管道、智能体与工作流编排等功能 。

不过,虽然 Dify 的工作流编排能力有口皆碑,但是其内置知识库的能力却与之不相称。

在真实业务场景中,Dify 处理复杂的文档,尤其是 PDF(含表格、图片、多栏排版),还是有些不足。

  • 解析深度有限。主要抽取纯文本,没有保留完整的表格行列关系、图片语义、页眉页脚信息等。
  • 检索策略单一。虽支持向量+关键词混合搜索,但无法按业务权重动态调整,亦缺乏自定义重排序逻辑 。

这就导致 Dify 内置知识库的召回性能,难以满足企业级应用的需求。

好在 Dify 是一个开放平台, 它也提供了对接外部知识库的功能,不过其 /retrieval 端点与字段要求固定,无法按需增加自定义参数,实际性能和可扩展性均受限。

因此,我们需要更好的方案。

一、Dify x ThinkDoc 方案

在企业级应用需求的场景下,我们采用 Dify 的编排与交互能力,将解析与检索环节外接至 ThinkDoc 知识库,通过 HTTP 直调 API 实现多模态精准召回。

Dify HTTP节点直调ThinkDoc API

二、 仅需三步迅速成效

第一步: ThinkDoc 侧准备

1. 登录 ThinkDoc → 创建知识库 → 上传文件。

– doc.bluedigit.ai

2. 在知识库页面,复制知识库ID

– Knowledge ID:6871xxxxxxxx

3. 在用户账号页面,创建API密钥: – API Key:td-xxxxxxxx

ThinkDoc创建API密钥

第二步: Dify 工作流配置

在 Dify工作室,我们选择创建空白应用,然后选择 Chatflow

在Dify创建Chatflow

随后,我们在开始与 LLM 这两个节点间,增加一个 HTTP请求 节点,这样,我们就创建一个最简单的RAG工作流。

Dify x ThinkDoc RAG工作流

这个新增的 HTTP 请求 节点,参数如下:

API

POST https://doc.bluedigit.ai/api/retrieve

Headers

Authorization的键值,请填入刚才创建的 API 密钥:td-xxxxxxxx。

{
  "Authorization": "Bearer td-xxxxxxxx",
  "Content-Type": "application/json"
}

Body

选择raw,填入以下信息,使用刚才获得的知识库ID 6871xxxxxxxx。

{
  "query": "{{#sys.query#}}",
  "kb_ids": ["6781xxxxxxxx"],
  "retrieval_setting": {
    "top_k": 10,
    "score_threshold": 0.1,
  }
}

以上在 Dify 中的 HTTP 请求 节点的配置,如下图所示:

Dify x ThinkDoc HTTP请求节点示例

LLM 节点的配置

我们需要在 LLM 节点,配置系统和用户提示词,并在提示词的合适位置添加上下文用户查询变量:

Dify x ThinkDoc LLM节点示例

第三步: 效果验证

我们在知识库中,上传了一份《大卫说流程》Word文稿,随后在 Dify 工作流的预览界面输入问题:

流程有哪些特征?

很快,系统返回如下回答:

Dify x ThinkDoc 智能问答效果示例

整个工作流的执行情况如下图所示:

Dify x ThinkDoc 工作流执行情况示例

可以看到,这个最简单的RAG工作流,非常快速和准确地找到了相关信息,并通过LLM生成了回答。

三、 灵活调整参数

基于 ThinkDoc 强大的文档解析和融合检索能力,我们还可以进一步扩展。

  • 多知识库联合检索: kb_ids 参数值为数组,可以填入多个知识库ID;如果填入空数组[],那么将默认在用户的所有知识库中检索。
  • 动态阈值:根据检索结果测试的情况,调整 score_threshold,兼顾检索的精度与召回率。

如何使用 ThinkDoc 的混合检索与重排序功能呢?

我们只需在 HTTP请求的 Body 中增加以下参数:query_typereranktop_n

  {
    "query": "{{#sys.query#}}",
    "kb_ids": ["6781xxxxxx"],
    "retrieval_setting": {
      "top_k": 10,
      "score_threshold": 0.1,
      "query_type": "hybrid",
      "rerank": true,
      "top_n": 3
    }
  }

如果你仔细研究 ThinkDoc 返回的检索结果,可以发现更为丰富的图片、文字、元数据和来源信息(详情参见 API 文档)。

我们可以惊喜地发现,这个用 Dify 工作流编排的 RAG 系统,将可以生成图文并貌的回答,还可以列出参考资料、准确地标注引用来源。

综合以上,对于需要解析表格、图片、复杂排版的生产级场景,本文介绍的 Dify 通过 HTTP 直调 ThinkDoc API 方案, 是效果出色与可扩展的优选方案。

您可以查阅官方文档进一步了解:

关于 ThinkDoc

ThinkDoc 是一个专为 AI 应用设计的智能知识库平台。无论是文档解析、智能检索,还是 API 集成与自动化工作流,ThinkDoc 都以无缝、高效的方式助力企业与个人构建 AI 就绪的知识库,让知识资产真正释放生产力!

线上体验:doc.bluedigit.ai