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

Dify 是一个开源的 LLM 应用开发平台,提供了知识库、RAG 管道、智能体与工作流编排等功能 。
不过,虽然 Dify 的工作流编排能力有口皆碑,但是其内置知识库的能力却与之不相称。
在真实业务场景中,Dify 处理复杂的文档,尤其是 PDF(含表格、图片、多栏排版),还是有些不足。
- 解析深度有限。主要抽取纯文本,没有保留完整的表格行列关系、图片语义、页眉页脚信息等。
- 检索策略单一。虽支持向量+关键词混合搜索,但无法按业务权重动态调整,亦缺乏自定义重排序逻辑 。
这就导致 Dify 内置知识库的召回性能,难以满足企业级应用的需求。
好在 Dify 是一个开放平台, 它也提供了对接外部知识库的功能,不过其 /retrieval 端点与字段要求固定,无法按需增加自定义参数,实际性能和可扩展性均受限。
因此,我们需要更好的方案。
一、Dify x ThinkDoc 方案
在企业级应用需求的场景下,我们采用 Dify 的编排与交互能力,将解析与检索环节外接至 ThinkDoc 知识库,通过 HTTP 直调 API 实现多模态精准召回。

二、 仅需三步迅速成效
第一步: ThinkDoc 侧准备
1. 登录 ThinkDoc → 创建知识库 → 上传文件。
2. 在知识库页面,复制知识库ID
– Knowledge ID:6871xxxxxxxx
3. 在用户账号页面,创建API密钥: – API Key:td-xxxxxxxx

第二步: Dify 工作流配置
在 Dify工作室,我们选择创建空白应用,然后选择 Chatflow。

随后,我们在开始与 LLM 这两个节点间,增加一个 HTTP请求 节点,这样,我们就创建一个最简单的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 请求 节点的配置,如下图所示:

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

第三步: 效果验证
我们在知识库中,上传了一份《大卫说流程》Word文稿,随后在 Dify 工作流的预览界面输入问题:
流程有哪些特征?
很快,系统返回如下回答:

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

可以看到,这个最简单的RAG工作流,非常快速和准确地找到了相关信息,并通过LLM生成了回答。
三、 灵活调整参数
基于 ThinkDoc 强大的文档解析和融合检索能力,我们还可以进一步扩展。
- 多知识库联合检索: kb_ids 参数值为数组,可以填入多个知识库ID;如果填入空数组[],那么将默认在用户的所有知识库中检索。
- 动态阈值:根据检索结果测试的情况,调整 score_threshold,兼顾检索的精度与召回率。
如何使用 ThinkDoc 的混合检索与重排序功能呢?
我们只需在 HTTP请求的 Body 中增加以下参数:query_type、rerank、top_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 方案, 是效果出色与可扩展的优选方案。
您可以查阅官方文档进一步了解:
- Dify 外部知识库
https://docs.dify.ai/zh-hans/guides/knowledge-base/connect-external-knowledge-base - ThinkDoc API
https://doc.bluedigit.ai/api/redoc
关于 ThinkDoc
ThinkDoc 是一个专为 AI 应用设计的智能知识库平台。无论是文档解析、智能检索,还是 API 集成与自动化工作流,ThinkDoc 都以无缝、高效的方式助力企业与个人构建 AI 就绪的知识库,让知识资产真正释放生产力!