How to

【How to】深度研究:使用Dify构建自动化研究应用

DeepResearch:使用 Dify 构建自动化研究应用

摘要:
本文介绍如何利用低代码平台 Dify 快速搭建名为 "DeepSearch" 的自动化工具。通过配置 LLM、搜索 API 和迭代工作流,该工具能自动生成关键词并执行多轮网络检索,最终汇总生成综合研究报告。无需复杂编码即可实现高效的信息搜集与总结,大幅提升研究效率。


你是否厌倦了在不同来源间反复搜索信息,随后又花费大量时间整理和总结这些发现?你并不孤单。许多个人和团队都面临着从各种网页或内部文档中筛选内容以获取主题全面概览的挑战。幸运的是,Dify 作为一个用于 LLM(大语言模型)应用开发的低代码、开源平台,通过自动化多步搜索工作流并实现高效摘要生成解决了这一问题,且仅需极少的编码工作量。

在本文中,我们将创建 "DeepResearch"——一个协调搜索、生成关键词并将结果汇总为统一报告的工具。按照以下步骤操作后,你将了解 Dify 如何简化信息收集过程,让你专注于洞察而非重复性任务。

前置条件

在开始之前,请确保你具备以下条件:

Dify 账号

你可以注册一个在线账户,或者选择将 Dify 本地部署以用于组织内部使用。

LLM API Key(大语言模型密钥)

DeepResearch 依赖大型语言模型 (LLM) 来生成搜索查询和摘要。你需要来自提供商(如 OpenAI、Google、Anthropic)的 API 密钥,或者使用 Ollama等工具在本地部署开源模型并与 Dify集成。本文示例使用的是 DeepSeek API。

要获取 DeepSeek API 密钥,请访问 DeepSeek API 开放平台或使用第三方模型平台

参考阅读:
Dify x DeepSeek:部署私有 AI 助手 & 构建本地 DeepSeek R1 + Web Search App

外部搜索工具或 API

为了进行网络搜索,你需要一个搜索引擎提供商的 API 密钥。本文使用 Tavily Search API。你可以从 Tavily 获取 Tavily API 密钥。虽然本文假设使用的是搜索 API,但 Dify 也支持其他数据检索方法

你可以根据所需范围和数据来源调整这些前置条件。

从模板创建工作流

1. 导航至“探索”页面

在 Dify 仪表板中,点击 "Explore"(探索)。

2. 选择“DeepResearch”模板

在 "Explore" 页面中,搜索并点击 "DeepResearch" 模板。

3. 命名你的应用

默认名称为 "DeepResearch",但你可以根据需要进行自定义。

构建多步搜索工作流

1. 预览应用

点击 "Preview"(预览)以试用该应用。系统会提示你输入 topic(主题)和 depth(深度)。

  • topic (Text):你想要调查的主题。
  • depth (Number):搜索的轮数。

通过提供这些输入,我们赋予工作流处理各种研究上下文的灵活性。

2. 重复搜索步骤的机制

为了避免手动复制每个搜索步骤,我们将在工作流中放置一个 Iteration(迭代)节点。该节点会处理数组中的每个元素,从而有效地循环执行你的搜索序列。

Iteration 节点将在每次迭代结束时启动下一轮搜索,或者在判断已收集到足够信息时终止流程。

3. 关键节点详解

以下是我们可能放置在 Iteration(迭代)容器内的常见节点:

a) LLM Node (大语言模型节点)

  • 用途:AI 建议或优化后续的搜索关键词,或者决定是否应结束搜索过程。
  • Prompt 技巧:考虑使用如下提示词:“基于当前的发现和用户主题,建议下一个探索角度。如果不需要进一步搜索,将 shouldContinue 设置为 false。”

b) Search/Extraction Node (搜索/提取节点)

  • 用途:使用来自 LLM 节点的“下一个主题”执行网络搜索或查询外部 API。
  • 实现方式:通过输入你的搜索关键词变量来配置该节点。

c) Assigner Node (赋值器/变量更新节点)

  • 用途:将每组新结果合并到累积列表 (findings) 中,或更新对话状态。
  • 关键设置:在添加新数据时选择 "append"(追加),以避免覆盖之前的结果。

d) IF-ELSE Node (条件判断节点)

  • 用途:评估 shouldContinue 布尔值或类似标志,以决定是继续下一次迭代还是退出循环。

e) Final LLM Node (最终大语言模型节点)

  • 用途:对完整的 findings 数组进行总结或综合,以生成连贯的叙述或要点摘要。
  • Prompt 技巧:系统提示词如“将所有搜索洞察整合为简洁的技术概览。格式化为 Markdown”,效果通常很好。

f) Answer Node (回答节点)

  • 用途:将来自 LLM 的最终输出返回给用户。
  • 此节点代表应用的最终“响应”步骤。

这些正确连接的节点构成了重复搜索和数据收集的基础。通过这些节点的连接,用户输入主题和深度后,即可从多次搜索中获得详尽的摘要。工作流直观地展示了直到收集到足够数据或手动停止之前的循环过程。

未来的可能性

构建 "DeepResearch" 只是一个开始。Dify 的低代码环境支持许多插件和变体:

  • 自定义报告:基于收集的数据生成定制报告,从而获得更深入的见解并辅助战略决策。
  • 链接内部数据:连接公司的专有知识库,使搜索过程对于内部使用更加全面。
  • 与其他工具集成:通过 Slack 自动发送通知。Dify 生态系统使得扩展变得简单直接。

通过这些增强功能,你可以将 DeepResearch 提升为一个端到端的信息收集与整合系统。这一切都可以在不深入传统编码复杂性或复杂基础设施的情况下实现。

本教程旨在展示如何使用 Dify 自动化和简化深度研究任务。通过利用 Dify 的功能,你可以显著减少手动研究花费的时间和精力,同时轻松地将多步搜索工作流适配到各种主题、API 或数据源上。我们鼓励你尝试使用 Dify,并发现构建符合特定需求的迭代式研究解决方案有多快。

文章来源: https://dify.ai/blog/deepresearch-building-a-research-automation-app-with-dify
← 返回文章列表