上一篇 下一篇 分享链接 返回 返回顶部

从生成到通知:用 Dify 搭一条能跑起来的自动化工作流(含源码)

发布人:慈云数据-客服中心 发布时间:14小时前 阅读量:1

Dify 工作流自动化教程|附源码

在 AI 应用落地过程中,“能不能做”往往不是最大问题,真正的瓶颈是:能不能稳定地把多个步骤串起来,形成可复用、可维护、可扩展的自动化流程
Dify 的工作流(Workflow)正是为此而生。

如果你已经厌倦了“发一条指令,AI 回一个结果”这种一次性对话模式,那么工作流会让你看到另一种可能:

  • 自动读取输入
  • 调用模型生成内容
  • 做条件分支
  • 接入数据库 / Webhook / 第三方系统
  • 输出结构化结果
  • 形成真正可上线的自动化应用

本文将以一个“内容生成 + 审核 + 通知”的实际场景为例,手把手讲清楚 Dify 工作流怎么搭建,并附上可直接参考的源码示例,帮助你快速做出第一条可用的自动化流程。


一、什么是 Dify 工作流?

Dify 工作流可以理解为一条“AI 自动化流水线”。
它不是单轮聊天,而是由多个节点组成的任务图,每个节点负责一个步骤,例如:

  • 开始节点:接收用户输入
  • LLM 节点:让模型完成分类、改写、总结、生成
  • 条件分支节点:根据结果走不同路径
  • 代码节点:做格式转换、字段清洗、逻辑处理
  • HTTP 请求节点:调用外部 API
  • 结束节点:输出最终结果

你可以把它想象成“AI 版的 n8n / Zapier + Prompt 编排”。

工作流适合什么场景?

常见场景包括:

  1. 内容生产自动化

    • 标题生成
    • 文章润色
    • SEO 关键词扩展
    • 社媒文案批量生成
  2. 办公流程自动化

    • 用户提交表单后自动总结
    • 自动分类工单
    • 自动生成会议纪要
  3. 客服与运营

    • 问题意图识别
    • FAQ 自动回复
    • 投诉内容摘要并通知负责人
  4. 企业系统集成

    • 与飞书、企业微信、钉钉联动
    • 与 CRM、工单系统、数据库联动
    • 与 Webhook、API 服务联动

二、本文要实现的示例:自动生成内容并发送通知

为了让文章更落地,我们做一个实战案例:

用户输入一段产品信息或文章素材 → Dify 自动生成一篇营销文案 → 判断文案是否达标 → 达标则返回结果,不达标则重新优化 → 最后通过 Webhook 发送到飞书/企业微信。

这个流程非常适合:

  • 新媒体团队
  • 电商运营
  • 产品运营
  • 独立开发者
  • 接单做 AI 自动化项目的人

这个案例的价值在于,它不仅能“生成”,还体现了工作流最核心的能力:自动判断 + 自动分支 + 自动通知


三、开始前你需要准备什么?

在开始之前,建议准备以下内容:

  • 一个可用的 Dify 环境(云端或自建均可)
  • 一个支持调用的大模型配置
  • 一个可接收通知的 Webhook 地址
  • 基本的 API 调用知识
  • 对提示词工程有一点了解

如果你是初学者,也没关系,下面的步骤会尽量写得足够细。


四、Dify 工作流搭建步骤


1)新建工作流应用

进入 Dify 控制台后:

  • 点击 创建应用
  • 选择 Workflow(工作流)
  • 输入应用名称,例如:内容自动生成器
  • 进入工作流编辑界面

这时你会看到一个默认的工作流画布,通常包括:

  • Start
  • LLM
  • End

我们接下来要做的是把它扩展成完整的自动化流程。


2)设计输入变量

先定义工作流的输入参数。
例如我们希望用户传入:

  • topic:主题
  • style:风格
  • target_audience:目标受众
  • length:字数要求

你可以把这些变量都放到 Start 节点里,让后续节点统一调用。

示例输入:

{
  "topic": "Dify 工作流自动化教程",
  "style": "专业、实用、面向开发者",
  "target_audience": "想学习 AI 自动化的技术人员",
  "length": 1200
}

3)配置 LLM 节点:生成初稿

LLM 节点是整个工作流的核心。
这里我们让模型根据输入内容生成一段营销文案或文章初稿。

提示词示例:

你是一名资深内容运营专家,擅长将原始素材整理为高质量的中文营销文案。

请根据以下信息生成一篇内容:
- 主题:{{topic}}
- 风格:{{style}}
- 目标受众:{{target_audience}}
- 字数要求:{{length}}

要求:
1. 语言自然流畅,结构清晰;
2. 突出产品价值和用户收益;
3. 如信息不足,请合理补全,但不要胡编乱造;
4. 输出为适合直接发布的中文文案。

这里的关键点是:
输入变量要明确,输出要求要明确,模型角色要明确。


4)增加代码节点:做结果检查

很多时候,LLM 输出不一定完全符合预期。
比如:

  • 字数不够
  • 没有包含重点信息
  • 格式不规范

这时可以加一个代码节点,对模型结果做简单校验和处理。

示例 Python 代码

def main(content: str, min_length: int = 800):
    result = {
        "pass": True,
        "reason": "",
        "content": content
    }

    if not content or len(content.strip()) < min_length:
        result["pass"] = False
        result["reason"] = f"内容长度不足,当前长度:{len(content.strip()) if content else 0}"

    return result

这个节点会输出:

  • pass: 是否通过
  • reason: 不通过原因
  • content: 原始内容

5)增加条件分支节点

接下来,根据代码节点的结果进行判断:

  • 如果 pass = true,则进入下一步通知
  • 如果 pass = false,则重新回到 LLM 节点优化内容

这样就形成了一个简单的“自动纠错”闭环。

分支逻辑示例:

  • 通过分支:发送结果
  • 失败分支:增强提示词重新生成

这个思路特别重要,因为它让 AI 从“单次生成工具”升级成了“自动工作系统”。


6)配置 HTTP 请求节点:发送飞书通知

如果你希望工作流真正接入业务,就不能只停留在 Dify 内部。
最常见的做法是通过 HTTP 请求节点,把结果发送到飞书、企业微信、Slack 或自建服务。

飞书 Webhook 示例

飞书群机器人通常提供一个 Webhook 地址,你可以直接 POST 消息。

请求体示例:

{
  "msg_type": "text",
  "content": {
    "text": "Dify 自动生成任务已完成:\n{{content}}"
  }
}

HTTP 节点配置要点

  • 请求方法:POST
  • Content-Type:application/json
  • 请求地址:你的飞书 Webhook
  • 请求体:使用上一步输出的内容变量

7)结束节点:返回最终结果

最后在 End 节点输出:

  • 生成内容
  • 校验结果
  • 通知状态

这样,整个工作流就闭环了。


五、一个完整的工作流逻辑图

你可以把流程理解成如下结构:

Start
  ↓
LLM:生成初稿
  ↓
Code:检查长度与格式
  ↓
Condition:是否通过?
   ├─ 是 → HTTP 请求:发送通知 → End
   └─ 否 → 回到 LLM:优化重写 → 再检查

这个结构虽然简单,但已经具备很多真实业务场景中的核心特征:

  • 可重复执行
  • 可自动纠错
  • 可接入外部系统
  • 可扩展更多节点

六、附源码:Dify API 调用示例

很多人搭好工作流后,下一步就想把它接入自己的系统。
下面给你一份可以直接参考的 Python 调用示例。


1)Python 调用 Dify Workflow API

说明:以下示例用于调用 Dify 的工作流接口,适合集成到你自己的后端服务中。

import requests
import json

DIFY_API_URL = "https://api.dify.ai/v1/workflows/run"
DIFY_API_KEY = "你的Dify API Key"

def run_workflow(topic, style, target_audience, length):
    headers = {
        "Authorization": f"Bearer {DIFY_API_KEY}",
        "Content-Type": "application/json"
    }

    payload = {
        "inputs": {
            "topic": topic,
            "style": style,
            "target_audience": target_audience,
            "length": length
        },
        "response_mode": "blocking",
        "user": "demo-user-001"
    }

    response = requests.post(DIFY_API_URL, headers=headers, json=payload, timeout=120)
    response.raise_for_status()
    return response.json()

if __name__ == "__main__":
    result = run_workflow(
        topic="Dify 工作流自动化教程",
        style="专业、实用、适合技术读者",
        target_audience="AI 工具学习者",
        length=1500
    )
    print(json.dumps(result, ensure_ascii=False, indent=2))

2)FastAPI 封装成一个对外接口

如果你想把 Dify 工作流包装成一个业务 API,可以这样做:

from fastapi import FastAPI
from pydantic import BaseModel
import requests

app = FastAPI()

DIFY_API_URL = "https://api.dify.ai/v1/workflows/run"
DIFY_API_KEY = "你的Dify API Key"

class WorkflowRequest(BaseModel):
    topic: str
    style: str
    target_audience: str
    length: int

@app.post("/generate")
def generate(req: WorkflowRequest):
    headers = {
        "Authorization": f"Bearer {DIFY_API_KEY}",
        "Content-Type": "application/json"
    }

    payload = {
        "inputs": req.model_dump(),
        "response_mode": "blocking",
        "user": "api-user"
    }

    resp = requests.post(DIFY_API_URL, headers=headers, json=payload, timeout=120)
    resp.raise_for_status()
    return resp.json()

这样你就可以把 Dify 工作流变成一个标准 API,接入:

  • 网站后台
  • 小程序
  • CRM 系统
  • 自动化脚本
  • 内部运营平台

七、进阶技巧:让工作流更像“生产系统”

如果你只是玩一玩,基础流程已经够用了。
但如果你要真正上线,建议继续优化下面几个点。

1)给每个节点明确职责

不要让一个 LLM 节点同时负责:

  • 分类
  • 生成
  • 改写
  • 审核

最好拆成多个节点,各司其职,这样更稳定,也更容易调试。

2)输出尽量结构化

建议让模型输出 JSON 或固定格式,方便后续节点处理。

例如:

{
  "title": "xxx",
  "summary": "xxx",
  "keywords": ["AI", "Dify", "自动化"],
  "content": "正文内容..."
}

3)保留中间结果

在复杂流程里,建议把每一步的输出都保存下来。
这样一旦结果异常,排查会非常快。

4)加上异常处理

例如:

  • API 超时怎么办
  • 模型输出空内容怎么办
  • 分支判断失败怎么办

真正的自动化系统,核心不是“成功时多漂亮”,而是“失败时是否可恢复”。


八、常见问题

Q1:Dify 工作流和聊天应用有什么区别?

聊天应用更适合对话式交互;工作流更适合流程化、自动化、可编排的任务。

Q2:工作流能接数据库吗?

可以,通常通过 HTTP 请求节点或代码节点对接你自己的后端服务,再由后端去操作数据库。

Q3:能不能让工作流自动循环?

可以通过条件分支和节点回跳实现,但要注意避免死循环,建议设置最大重试次数。

Q4:适合做哪些业务?

内容生成、客服摘要、工单分类、数据清洗、报告生成、通知推送、表单自动处理,都很适合。


九、一个实用建议:先做“小而美”的工作流

很多人一上来就想做:

  • 多模型路由
  • 多工具调用
  • 多轮记忆
  • 数据库检索
  • 自动审批

结果画布越画越大,最后难以调试。

我的建议是:
先从“单输入 → 单输出 → 单通知”开始。

比如先做:

  1. 输入主题
  2. 生成内容
  3. 校验长度
  4. 发飞书通知

这个流程跑通后,再逐步加入:

  • 分类
  • 重写
  • 评分
  • 审核
  • 多渠道分发

你会发现,真正靠谱的 AI 自动化,不是一次性做得很大,而是一步一步做得很稳。


十、总结

Dify 工作流的价值,不只是“让 AI 会写东西”,而是让 AI 真正融入业务流程
它能把模型能力、提示词、业务逻辑、外部系统整合在一起,形成一个可执行、可维护、可扩展的自动化系统。

本文通过一个“内容生成 + 校验 + 通知”的案例,展示了 Dify 工作流的基本搭建方法,并附上了 Python API 调用源码和 FastAPI 封装示例。你可以直接拿去改造自己的业务场景。

如果你是:

  • 想学习 AI 自动化的开发者
  • 想把 Dify 用到实际业务中的运营人员
  • 想快速搭建 AI 工作流产品的创业者

那么最好的方式,不是只看教程,而是立刻动手搭一个最小可用版本。
先跑通,再优化;先闭环,再扩展。


如果你愿意,我还可以继续帮你写一篇:

  1. 《Dify 工作流实战:自动生成公众号文章并发布》
  2. 《Dify + 飞书自动化:从表单到通知全流程搭建》
  3. 《Dify 工作流源码详解:节点编排、变量传递与 API 接入》

你只要回复一个标题,我可以继续写成同风格的高质量长文。

目录结构
全文