首页 > 教程攻略 > ai资讯 >Dify工作流实践:从文档生成思维导图

Dify工作流实践:从文档生成思维导图

来源:互联网 时间:2026-07-22 14:57:11

在日常工作中,面对各种文档、方案和纪要,想快速抓住重点并不容易。有时候反复读上几遍,才能真正理清里面的核心逻辑。于是就有了这样一个想法:能不能借助Dify,把文档自动转化成结构清晰的思维导图?这样提取和理解重点信息就高效多了。以下就是实践过程的完整记录(基于Dify 1.2.0版本)。

前置准备

1. 安装Markdown转换器插件

这个插件的作用很简单——用来生成思维导图所需的HTML文件。

2. 安装Agent策略插件

安装这个插件,是为了让Dify能够顺利调用MCP工具。

3. 启动MCP Server工具

MCP Server工具的核心能力,是把输入的Markdown内容转换成HTML格式的思维导图。原始项目代码地址如下:

https://github.com/YuChenSSR/mindmap-mcp-server

需要注意的是,这个工具默认只支持stdio模式(也就是本地进程间通信)。而Dify服务通常部署在容器中,需要的是sse模式来实现远程调用,所以对代码做了一些调整。

启动服务的命令如下:

# 略过Python环境搭建
pip install mcp  # 安装依赖
python mindmap_mcp_server.py --host 0.0.0.0 --port 1100

配置工作流

整体工作流结构如下图所示,接下来逐个节点说明。

开始节点

添加一个file变量,用来支持文件上传。

文档提取器节点

这个节点负责提取文档中的原始内容。

文档内容转Markdown节点

将文档提取器提取到的内容,转换成规范的Markdown格式。这里用到的Prompt提示词如下:

上下文内容:{{#context#}}
## 核心任务
将上下文内容转化为符合以下标准的Markdown格式思维导图框架:
1. **要素提取**:识别并提取关键实体、关系、流程三类核心要素
2. **逻辑重构**:按「总-分」结构重组信息,确保父子节点存在推导关系
## 格式规范
### 层级控制
- 主标题 `#`(1级):文档主题
- 章节 `##`(2级):核心模块(≥3个)
- 子项 `###`(3级):具体要素(每个父节点下≥2个)
### 内容标记
- 关键术语:**加粗显示** + (简短释义)
- 数据示例:```包裹的代码块```
## 质量保障
1. 预检机制(输出前必须验证):
   - [ ] 无孤立节点(所有子项都有父节点)
   - [ ] 无重复内容(合并相似条目)

Agent节点

添加Agent策略时,选择环境准备阶段安装的Agent策略插件,并指定FunctionCalling策略。同时配置MCP工具。这里有一个小细节:工具列表需要至少添加一个工具才能正常保存,所以额外加了一个获取当前时间的工具。

MCP服务配置如下:

{
  "mindmap": {
    "description": "将输入的markdown的内容转为思维导图",
    "url": "http://192.168.1.110:1100/sse",
    "headers": {},
    "timeout": 60,
    "sse_read_timeout": 300
  }
}

指令配置:

请根据上下文内容调用mindmap MCP工具将输出结果转为合适完整可渲染的html,
注意生成的内容务必不要添加其他冗余的信息。
上下文:{{#1748051257295.text#}}

生成内容校验节点

这个节点负责检查上一步输出的内容是否存在语法问题,并根据规则确定最终输出结果。使用的Prompt如下:

你的任务是对上下文中的html内容做校验,
对html内容存在语法问题做修复并输出,
确保输出内容完整不含且不包含冗余内容,
最终输出为'#思维导图'拼接上html内容
上下文:{{#context#}}

Markdown转HTML节点

这个节点使用环境准备阶段安装的Markdown转换器插件。

结束节点

最终输出为HTML文件。

启动工作流

测试时没有用太长的文章,因为要考虑token限制。这里直接拿之前写过的一篇文章来验证输出效果。

工作流执行完成后会生成文件,点击右下角即可查看效果。

实践过程遇到的问题

  1. 如果输入文件中包含特殊字符,特别是代码内容,生成的思维导图偶尔会出现渲染异常的情况。
  2. Dify Agent有时会无法调用MCP工具。这种情况可能需要对MCP工具的描述信息进行优化,同时调整工作流节点的Prompt和指令。

总结

这篇文章分享了如何用Dify将文档转化为结构化的思维导图。不过坦白说,目前的处理流程还比较粗糙,有不少可以优化的空间。比如,输入内容可以直接从网页提取、长文档可以拆分迭代处理,以及文档中图片的处理方式等等。这些都是后续可以继续完善的方向。