在这里插入图片描述

DIfy 工作流

工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。

Dify 工作流分为两种类型:

  • Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
  • Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。

这里文生视频我只需要生成视频即可,所以我选择Workflow

创建工作流

文生视频工作流:

  • 用户输入关键字(提示词)
  • LLM 对用户的输入进行扩充描述
  • TEXT TO VIDEO 接收LLM输入,执行生成视频
  • LLM2 对 TEXT TO VIDEO输出的text进行修饰(可以控制最终输出)
  • 结束输出LLM2的text

具体工作流如下:
在这里插入图片描述
工作流运行效果如下,输入提示词:小猫游泳,工作流就开始执行
在这里插入图片描述

整个工作流的输入输出如下:

  • 开始输入:
{
  "query": "小猫游泳",
  "sys.files": [],
  "sys.user_id": "9347ec70-d7db-4943-9e69-b0bed251bc54",
  "sys.app_id": "a5cba457-16ce-4493-901c-3a78408cbef4",
  "sys.workflow_id": "5708888f-e53d-4000-bebd-af01b2fee66b",
  "sys.workflow_run_id": "2a9ffa7b-0a7c-4619-9885-161f90f0af7e"
}
  • 开始输出:
{
  "query": "小猫游泳",
  "sys.files": [],
  "sys.user_id": "9347ec70-d7db-4943-9e69-b0bed251bc54",
  "sys.app_id": "a5cba457-16ce-4493-901c-3a78408cbef4",
  "sys.workflow_id": "5708888f-e53d-4000-bebd-af01b2fee66b",
  "sys.workflow_run_id": "2a9ffa7b-0a7c-4619-9885-161f90f0af7e"
}
  • LLM输入:
{}
  • LLM数据处理:
{
  "model_mode": "chat",
  "prompts": [
    {
      "role": "system",
      "text": "适当补充用户输入的文本,生成更加丰富的描述,文字长度不要太多。\n这是用户输入的文本:小猫游泳",
      "files": []
    }
  ],
  "model_provider": "langgenius/siliconflow/siliconflow",
  "model_name": "deepseek-ai/DeepSeek-V3"
}
  • TEXT TO VIDEO 输入:
{
  "prompt": "一只毛茸茸的小黄猫在水池里欢快地划动着小爪子,溅起晶莹的水花。它眯着圆溜溜的眼睛,小耳朵不时抖落水珠,蓬松的尾巴像螺旋桨一样在水里摆动。阳光透过水面映照出斑驳的光影,小猫时而潜入水中追逐水泡,时而浮出水面发出奶声奶气的\"喵呜\"声,俨然是个快乐的小游泳健将。"
}
  • TEXT TO VIDEO 输出:
{
  "text": "正在使用豆包 API 生成视频...视频生成任务已创建,任务ID: cgt-20250714084017-c5wg6,等待视频生成完成...视频正在生成中,已等待 5 秒...视频正在生成中,已等待 10 秒...视频正在生成中,已等待 15 秒...视频正在生成中,已等待 20 秒...视频生成成功!视频链接: https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-lite-t2v/02175245361727400000000000000000000ffffac180e538b30a4.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzQyNE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250714%2Fcn-beijing%2Fto%2Frequest&X-Tos-Date=20250714T004038Z&X-Tos-Expires=86400&X-Tos-Signature=178334c684aa6ab440110f510e892417a1ca794e54f8059dd71d703ae772be1&X-Tos-SignedHaders=host",
  "files": [],
  "json": [
    {
      "type": "video",
      "url": "https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-lite-t2v/02175245361727400000000000000000000ffffac180e538b30a4.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzNGE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250714%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250714T004038Z&X-Tos-Expires=86400&X-Tos-Signature=178334c684aa6dab4401f510e892417a1ca794e54f8059dd71d703ae772be1&X-Tos-SignedHeaders=host"
    }
  ]
}
  • LLM2输入:
{}
  • LLM2数据处理:
{
  "model_mode": "chat",
  "prompts": [
    {
      "role": "system",
      "text": "提示用户视频生成成功,并且要求最终生成的视频正在使用豆包 API 生成视频...视频生成任务已创建,任务ID: cgt-20250714084017-c5wg6,等待视频生成完成...视频正在生成中,已等待 5 秒...视频正在生成中,已等待 10 秒...视频正在生成中,已等待 15 秒...视频正在生成中,已等待 20 秒...视频生成成功!视频链接: https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-lite-t2v/02175245361727400000000000000000000ffffac180e538b30a4.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzQyNGE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250714%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250714T004038Z&X-Tos-Expires=86400&X-Tos-Signature=178334c684aa6dab440110f510e892417a1ca794e54f8059dd71d703ae772be1&X-Tos-SignedHeaders=host直接点击播放就可以观看,",
      "files": []
    }
  ],
  "model_provider": "langgenius/siliconflow/siliconflow",
  "model_name": "deepseek-ai/DeepSeek-V3"
}
  • 结束输入:
{
  "result": "您的视频已成功生成!🎬\n\n视频链接已准备好,您可以点击下方播放按钮直接观看:\n\n[播放视频](https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-lite-t2v/02175245361727400000000000000000000ffffac180e538b30a4.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzQyNGE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250714%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250714T004038Z&X-Tos-Expires=86400&X-Tos-Signature=178334c684aa6dab440110f510e892417a1ca794e54f8059dd71d703ae772be1&X-Tos-SignedHeaders=host)\n\n如果遇到播放问题,建议:\n1. 确保网络连接稳定\n2. 尝试复制链接到浏览器地址栏打开\n3. 该链接将在2025年7月15日前有效\n\n希望您喜欢这个由豆包AI生成的视频!如需其他帮助请随时告知。"
}
  • 结束输出:
{
  "result": "您的视频已成功生成!🎬\n\n视频链接已准备好,您可以点击下方播放按钮直接观看:\n\n[播放视频](https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-lite-t2v/02175245361727400000000000000000000ffffac180e538b30a4.mp4?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYjg3ZjNlOGM0YzQyNGE1MmI2MDFiOTM3Y2IwMTY3OTE%2F20250714%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20250714T004038Z&X-Tos-Expires=86400&X-Tos-Signature=178334c684aa6dab440110f510e892417a1ca794e54f8059dd71d703ae772be1&X-Tos-SignedHeaders=host)\n\n如果遇到播放问题,建议:\n1. 确保网络连接稳定\n2. 尝试复制链接到浏览器地址栏打开\n3. 该链接将在2025年7月15日前有效\n\n希望您喜欢这个由豆包AI生成的视频!如需其他帮助请随时告知。"
}

在这里插入图片描述
在这里插入图片描述

1、添加模型

在创建工作流之前,需要先添加模型。选择工作室菜单,点击头像,选择设置

在这里插入图片描述
点击左侧菜单“模型供应商”,安装模型,我这里安装了通义前问和硅基流动,并且一定要添加对应模型的API-KEY,可以在Dify市场中查看并添加更多的模型。
在这里插入图片描述
建议先添加模型,工作流、知识库等应用中都需要模型处理,下面的案例我直接安装过了

2、创建应用

点击导航栏“工作室”菜单,选择“创建空白应用”
在这里插入图片描述
随后我们选择“工作流”,填写应用名称:文生视频工作流、描述:可选
在这里插入图片描述
然后就进入到工作流中
在这里插入图片描述

3、Workflow的系统变量

了解一下Workflow的系统变量

变量名称 数据类型 说明 备注
sys.files Array[File] 文件参数,存储用户初始使用应用时上传的图片 图片上传功能需要在应用编辑页面右上角的“功能”处开启
sys.user_id String 用户 ID,每个用户在使用工作流应用时,系统会自动向用户分配唯一标识符,用以区分不同的对话用户
sys.app_id String 应用 ID,系统会向每个 Workflow 应用分配一个唯一的标识符,用以区分不同的应用, 并通过这些参数记录当前应用的基本信息 面向具备开发能力的用户,通过这些参数定位不同的 Workflow 应用
sys.workflow_id String Workflow ID,用于记录当前 Workflow 应用内所有节点信息 面向具备开发能力的用户,可以通过此参数追踪并记录 Workflow 内的包含节点信息
sys.workflow_run_id String Workflow 应用运行 ID,用于记录 Workflow 应用中的运行情况 面向具备开发能力的用户,可以通过此参数追踪应用的历史运行情况

正如下所示:
在这里插入图片描述

4、添加用户输入变量

首先点击图中的加号按钮
在这里插入图片描述
设置变量为文本,变量名称query,显示名称query,最大长度256,最后点击确定
在这里插入图片描述

5、添加LLM节点

点击开始后面的添加节点按钮,选择节点中的LLM,目前是让用户输入的提示词,让LLM适当补充用户输入的文本,生成更加丰富的描述。

在这里插入图片描述
节点添加成功之后,我们可以设置模型,硅基流动中的可选模型有很多,我选择deepseek-V3模型,上下文这里不需要所以不做设置,SYSTEM是给LLM的提示词,这里我输入:适当补充用户输入的文本,生成更加丰富的描述,文字长度不要太多。并且提供大模型用户的输入内容为

在这里插入图片描述
注意:在添加模型的时候,可以设置一下模型的参数

在这里插入图片描述
模型参数的具体解释如下:

参数 描述
温度 (Temperature) 控制生成文本的多样性。较低的温度(如0.2)会生成更确定、保守的响应,较高的温度(如0.8或1.0)会使生成的文本更具创意和多样性,但可能带来不准确的结果。
最大标记 (Maximum Tokens) 设置模型一次生成文本的最大标记数。一个标记通常是一个词或标点符号。较大的最大标记数允许生成更长的文本,而较小的数值则限制输出的长度。
Top P Top P采样控制模型生成时考虑的概率选项数量。Top P值为1时,模型会考虑所有可能的输出,较低的值限制选择概率最高的一部分词汇,生成的文本更为保守。
取样数量 (Sampling Quantity) 控制生成文本时的采样数量,影响模型生成的候选回答数。较大的数值会生成更多答案,较小的数值则会生成较少。
频率惩罚 (Frequency Penalty) 控制避免重复词汇的程度。较高的频率惩罚让模型更倾向于选择不重复的词语和短语,避免文本中的冗余。
回复格式 (Response Format) 控制模型输出的格式,例如简单的文字回复、列表或表格等,具体设置可能影响回答的组织方式。

6、安装文生视频插件

首先我们安装文生视频的插件,这是必须的,因为需要依赖视觉模型来处理,这里我使用的是Doubao Image and Video Generator

点击页面插件按钮
在这里插入图片描述
安装插件中选择插件源Marketplace
在这里插入图片描述
搜索Doubao Image and Video Generator,点击安装按钮
在这里插入图片描述
安装完之后,可以在插件中看到
在这里插入图片描述
接下来需要进行授权,填写API-KEY
在这里插入图片描述
API-Key在火山方舟的左侧菜单中的下方,拿到KEY直接去Dify授权
在这里插入图片描述
注意:使用豆包的视觉模型需要先在这里测试一下,这里还需要开通一些服务
在这里插入图片描述
点击API接入,进行视觉模型授权,授权成功如下,否则,在Dify文生图会报错
在这里插入图片描述

7、添加文生视频节点

点击LLM旁边的添加节点,选择工具中的Doubao Image and Video Generato插件,可以看到它可以文生图、文生视频、图生视频,这里选择文生视频,也就是Text to Video
在这里插入图片描述
设置Text to Video模型的提示词,将LLM的输出作为Text to Video的输入

在这里插入图片描述

8、添加LLM节点

此时已经拿到了Text to Video模型生成的视频了,Text to Video模型输出结果将会被LLM处理之后输出,这里可以设置输出结果的形式。
选择模型-设置提示词,置于为什么我要这么设置,是因为Text to Video模型输出的结果中text是一个很长的字符串,包括视频链接,不怎么友好。
在这里插入图片描述

9、添加结束节点

添加结束节点,将LLM2的结果作为输出结果
在这里插入图片描述

一个完整的工作流就设置成功了
在这里插入图片描述

10、发布测试

点击发布,随后可以运行该工作流
在这里插入图片描述
测试一下,输入:小猫游泳,随后工作流就开始执行,最终生成视频
在这里插入图片描述

我多生成了几个视频,截图如下:

在这里插入图片描述
在这里插入图片描述

最后

如果对dify工作流不怎么了解的话,可以查看一下文档:https://docs.dify.ai/zh-hans/guides/workflow/readme

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐