本案例概要
使用的工具 / 插件
| 类型 | 名称 / 能力 | 作用 |
|---|---|---|
| 内置工具 | Google 搜索(SerpApi) | 根据用户输入的主题(如「中美两国 AI 发展现状」)进行联网检索,返回搜索结果列表(organic_results:link、snippet、title)。使用前需在 Dify 中授权并配置 API Key。 |
| 内置工具 | 单页面抓取(Firecrawl) | 根据 URL 抓取网页正文,返回 text 等字段;在迭代中对每条搜索结果的链接逐个抓取。需在 firecrawl.dev 获取 API Key 并授权。 |
| 内置工具 | 电子邮件 | 通过 SMTP 发送邮件,将生成的报告正文发送到指定邮箱。需在 Dify 中配置邮箱授权(如 QQ/126 的 SMTP)。 |
| 节点 | 参数提取器 | 利用 LLM 将自然语言转为结构化参数;本案例中用于从「综述大纲」文本中提取各章节标题数组(subtitles),供后续迭代按章撰写。 |
技术要点
- 输入:用户在工作流开始时输入调研主题(如
target:「中美两国 AI 发展现状」)。 - 检索与抓取:先用 Google 搜索 得到一批链接与摘要;再用 代码执行 从返回的 JSON 中取出
organic_results;迭代 对每条结果依次:用代码取当前条目的link→ Firecrawl 单页面抓取 该 URL → 大模型 根据页面text与target总结与主题相关的核心内容(无关则输出空字符串)。 - 资料汇总:迭代结束后,用 代码执行 2 将各次迭代的总结文本拼接成一份长文本
result,作为后续生成大纲与正文的「参考资料」。 - 大纲与章节标题:大模型 1 根据
result与target生成「综述大纲」;参数提取器 根据该大纲提取章节标题数组subtitles。 - 按章撰写:迭代 1 对
subtitles的每一项执行:LLM2 根据result、大纲与当前章节标题撰写该章内容;迭代输出为各章内容组成的数组。 - 报告合并与输出:代码执行 3 将各章内容数组合并为一份完整报告字符串;可选通过 邮箱 节点发送;结束节点 输出最终报告。
工作流程概览
开始(target:调研主题)
↓
Google 搜索(target) → 搜索结果 json
↓
代码执行:取出 json[0]['organic_results'] → result 数组
↓
迭代:对 result 中每条
├─ 代码执行 1:取当前条 link
├─ Firecrawl 单页面抓取(link) → text
└─ 大模型(text, target):总结与 target 相关核心内容
↓
代码执行 2:将迭代输出拼接为 result(参考资料长文本)
↓
大模型 1(result, target):生成综述大纲 text
↓
参数提取器(text):提取章节标题数组 subtitles
↓
迭代 1:对 subtitles 中每章
└─ LLM2(result, text, item):撰写该章内容
↓
代码执行 3:将各章内容数组合并为完整报告字符串
↓
邮箱(可选):发送报告至指定邮箱
↓
结束:输出报告