Dify案例2:基于Workflow的小红书笔记AI智能体以及AI绘图过程中遇到的问题
目录
一、背景与目标
二、AI绘图
1、原生插件——不推荐
2、接口请求——推荐
三、Dify工作流搭建
1、添加环境变量
2、小红书主题
3、小红书封面图
参数提取
代码执行
4、小红书正文
5、小红书笔记
6、结束
7、发布测试
四、总结
在上文中介绍了基于Chatflow的智能体:
Dify案例1:基于Chatflow旅行、吃饭、新闻、学习的AI智能体-CSDN博客
Dify 工作流分为两种类型:
- Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
- Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
一、背景与目标
小红书平台对图文比较的【标题吸睛度+封面美观度+正文价值密度】有极高的要求。使用人工创作流程耗时且难以规模化。本文基于Dify Workflow构建一条端到端的自动化链路:用户仅输入主题,工作流即可在短时间内输出直接可发布的【标题+封面图+正文】的小红书笔记。
通过这个智能体可以熟悉Workflow类型应用,AI文生图以及【HTTP请求】、【代码执行】、【参数提取器】、【模版转换】、【结束】等等节点类型的使用,实现一键输出「标题 + 封面图 + 正文」的完整小红书笔记。
Dify官方文档:Dify:企业级 Agentic AI 解决方案开发平台
先看下一个这个智能体:
架构:
开始节点(主题) ↓
LLM节点1:小红书标题生成 ↓
HTTP节点:硅基流动文生图 ↓
代码节点:提取图片 URL ↓
LLM节点2:小红书正文生成 ↓
模板节点:整合标题+封面+正文 ↓
结束节点:返回完整小红书笔记
二、AI绘图
在正式搭建工作流之前之前,必须先让【AI绘图】节点是可用的状态,否则整条链路会因为一张封面图而失败。
由于Dify原生SiliconFlow插件因模型下线不可用,采用直接HTTP请求硅基流动API的方案进行AI绘图。
1、原生插件——不推荐
在此次需求中,需要通过文字提示词生成小红书封面,先考虑Dify提供的插件,打开Dify的图像插件工具:
发现了熟悉硅基流动提供的SiliconFlow图像插件,支持Flux和Stable Diffusion,因此优先使用了这种方法,可是!!!它运行时报错:Model Disable
以为是配置有问题,后面才发现,在2025年2月硅基流动下线了很多大模型,包含使用的Flux和 Stable Diffusion,导致无法调用,但是Dify并没有将SiliconFlow工具移除掉!!!
因此只能考虑其他的,因为其他的要么收费,要么需要本地部署,个人开发就没有必要了
2、接口请求——推荐
然后发现硅基流动可以通过Http请求进行AI绘图,就不再考虑Dify提供的其他插件
Dify API 文档:创建图片生成请求 - SiliconFlow
📌硅基流动地址:硅基流动统一登录
将上述接口的请求参数以及硅基流动的API Key,修改一下prompt提示词:“海边落日黄昏”,复制到Postman测试接口:
curl --request POST \--url https://api.siliconflow.cn/v1/images/generations \--header 'Authorization: Bearer <token>' \--header 'Content-Type: application/json' \--data '{"model": "Kwai-Kolors/Kolors","prompt": "an island near sea, with seagulls, moon shining over the sea, light house, boats int he background, fish flying over the sea","image_size": "1024x1024","batch_size": 1,"num_inference_steps": 20,"guidance_scale": 7.5
}
打开图片链接,可以看到生成的图片,到此AI绘图成功!
三、Dify工作流搭建
接下来就可以回到工作台,创建Workflow的工作流
1、添加环境变量
因为经常需要使用到硅基流动的API Key,可以添加环境变量
2、小红书主题
创建后点击【开始】添加小红书主题变量
再点击【+】选择【LLM】节点类型,创建小红书标题,添加对应的提示词(输入" / "就会自动提示变量选择)
小红书标题提示词:
你是小红书标题专家,请根据主题「xxxx」生成一个简短且吸引人的标题,要求:
简短精炼,突出重点
字数建议:10-20字(超过30字会被折叠)。
避免冗长,直接点明内容的核心价值或亮点。
例子:
❌ "这是我用过最好用的10款面膜,每一款都超级补水,特别是第三款!"
✅ "10款爆水面膜!第3款绝了!"
关键词前置,提高搜索曝光
将核心关键词(如品类、功效、场景)放在标题开头,便于算法推荐和用户搜索。
例子:
"油皮必看!5分钟控油妆教!"
"通勤穿搭|小个子显高10cm秘诀"
制造悬念或冲突,引发好奇心
通过提问、对比、反常识等方式吸引点击。
例子:
"月薪3k和3w的包包,差别到底在哪?"
"千万别这样涂口红!90%女生都错了!"
情绪化表达,增强代入感
使用感叹词、emoji、口语化表达,拉近与用户的距离。
例子:
"救命!这睫毛膏也太能打了!"
"谁懂啊!这碗螺蛳粉直接封神!"
标明内容形式,降低用户决策成本
直接说明是攻略、测评、教程、合集等,帮助用户快速判断。
例子:
"实测!6款热门防晒霜红黑榜!"
"手残党必学!3步搞定日常眼妆!"
二、小红书标题的加分技巧
巧用符号和emoji
用「」、❗、🔥等符号或emoji突出关键词,但避免过度堆砌(1-3个为宜)。
例子:
「平价替代」大牌同源工厂清单❗
打工人早餐🔥5分钟搞定!
结合热点或节日
蹭热点流量(如季节、明星同款、平台流行梗)。
例子:
"跟着杨幂学穿搭!2024夏季同款!"
"双11必囤!这5件护肤品闭眼入!"
突出数字和结果
数字能快速传递信息量,结果导向标题更具说服力。
例子:
"1周瘦5斤!刘畊宏食谱亲测有效!"
"3件衬衫搞定7天通勤穿搭!"
针对目标人群精准标签化
明确受众(如学生党、宝妈、敏感肌等),增强共鸣。
例子:
"学生党福音!50元以内彩妆宝藏!"
"宝妈必藏!10分钟宝宝辅食食谱!"
三、避雷指南(标题禁忌)
避免夸大或虚假宣传
如"100%有效""全网第一"可能被限流。
不用生僻词或专业术语
用户搜索时难以触达。
不堆砌无关关键词
标题与内容不符会影响账号权重。
慎用敏感词
如"最便宜""绝对"等广告法违禁词。
四、不同内容类型的标题模板
测评/合集类
"2024防晒霜TOP5!油皮直接抄作业!"
"50款粉底液实测!这3款雷区勿入!"
教程/干货类
"手残党必看!3步画出野生眉!"
"PPT排版技巧|领导夸爆的极简风!"
种草/好物类
"挖到宝了!这腮红显白到发光!"
"小众但好用!回购10次的洗发水!"
情感/生活类
"25岁才明白,存钱比恋爱重要!"
"沪漂5年,我终于学会了松弛感!"
五、测试标题的小技巧
AB测试:同一篇内容换不同标题发布,观察点击率。
参考爆款:搜索同类热门笔记,分析高赞标题结构。
利用工具:如"零克查词"检测违禁词,"灰豚数据"找热点关键词。
总结:小红书标题需要直击痛点、情绪饱满、信息明确,同时结合平台算法偏好。多练习、多模仿爆款,逐渐找到适合自己的标题风格!
开启新对话
3、小红书封面图
再添加【HTTP请求】节点为小红书封面图,将之前的硅基流动AI绘图的接口信息填入
通过Http接口请求返回如下实体:
{"images": [{"url": "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs%2F20250724%2F93440q1g6m.png?Expires=1753340724&OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Signature=FMi4EAvpvQzcl4KM5uIdyd%2FYcdc%3D"}],"timings": {"inference": 0.62},"seed": 1239351816,"shared_id": "0","data": [{"url": "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs%2F20250724%2F93440q1g6m.png?Expires=1753340724&OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Signature=FMi4EAvpvQzcl4KM5uIdyd%2FYcdc%3D"}],"created": 1753337125
}
参数提取
添加【参数提取器】节点,从返回的Json提取images
代码执行
添加【代码执行】节点,从返回的Json中提取图片URL
代码:
from typing import Any, Uniondef main(data: Any) -> str:"""从复杂数据结构中安全提取第一个URL(优化版):param data: 支持 dict/list/str 的任意嵌套数据结构:return: 总是返回字符串类型,找不到时返回空字符串"""def extract_url(value: Union[dict, list, str]) -> str:""" 递归提取的核心逻辑 """if isinstance(value, str):return value if value.startswith(('http://', 'https://', 'data:image')) else ''if isinstance(value, dict):# 优先检查单数形式字段for field in ['url', 'image', 'link', 'src']:if field in value:found = extract_url(value[field])if found: return found# 检查复数形式字段for list_field in ['urls', 'images', 'links', 'sources']:if isinstance(value.get(list_field), list):found = extract_url(value[list_field])if found: return found# 深度搜索字典值for v in value.values():found = extract_url(v)if found: return foundif isinstance(value, list):for item in value:found = extract_url(item)if found: return foundreturn ''return {"result":extract_url(data)}
4、小红书正文
添加【LLM】节点为小红书正文,输入以下内容:
代码:
根据标题「xxxx}」写一篇小红书笔记正文,结构如下:
一、基础要求
字数限制:
建议 100-500字(过短不易被推荐,过长影响阅读体验)。
单行内容 ≤15字,符号/emoji分隔,多空行制造呼吸感
关键信息放在前3行(用户不点“展开”也能看到重点)。
排版格式:
多分段、多换行(避免大段文字)。
合理使用 空格、符号(如“|”、“·”)、emoji 分隔内容,例如:
🌟好用不贵|学生党闭眼入
💡技巧:睡前涂一层,第二天皮肤嫩到发光!
语言风格:
口语化,像朋友分享一样自然(避免官方广告腔)。
适当加入语气词(“啊啊啊”“真的绝了!”)和网络热词(“谁懂啊”“救命”)。
二、正文结构(万能模板)
1. 开头:抓眼球
痛点提问:
“毛孔粗大怎么办?用了10款产品后终于找到本命!”
结果前置:
“3天瘦5斤!跟着吃真的绝了!”
身份标签:
“作为985营养师,告诉你哪些保健品是智商税…”
2. 中间:干货+体验
分点叙述(用数字/符号标序):
✅优点1:质地清爽不黏腻
✅优点2:成分党狂喜(无酒精+5%烟酰胺)
❌缺点:包装有点廉价…
场景化描述:
“约会前急救厚敷10分钟,脸直接亮一个度!”
3. 结尾:引导互动
提问式:
“你们还有什么去黑头神器?求安利!”
利益诱导:
“关注+评论抽1人送同款!”
三、加分技巧
关键词布局:
植入 热搜词(如“早八伪素颜妆”“黄黑皮天菜”),提升搜索曝光。
品牌/产品名重复2-3次(但避免硬广)。
标签(#)规则:
添加 3-5个精准标签,例如:
#护肤干货 #学生党平价 #油皮护肤
1个泛流量标签(如#好物推荐)+1个细分标签(如#敏感肌修复)。
图片/视频呼应:
正文需提及图片中的关键信息(如“图2是成分表”“视频最后有教程”)。
四、避坑指南
❌ 避免:
长段落无分段、生硬广告(直接发购买链接)。
虚假夸大(“一夜回春”“百分百有效”可能被限流)。
✅ 建议:
用“自用分享”“个人感受”等软化广告属性。
五、案例对比
普通文案:
“这款面膜补水效果很好,建议购买。”
高互动文案:
“💦沙漠干皮救星!敷完脸能掐出水!
|自用空瓶3罐,来扒一扒它为啥这么顶…
✅ 精华多到能涂脖子+手脚
✅ 成分安全(美修全绿)
❌ 唯一缺点:面膜纸有点厚
👇你们还有哪些宝藏面膜?速速交出!”
5、小红书笔记
将各个节点数据源输出的结果,通过【模版转换】节点拼接成完整的小红书笔记
6、结束
添加【结束】节点,将上一节点整合后的小红书笔记作为输出
{{ cover }}
{{ title }}
{{ content }}
7、发布测试
点击【发布】后,再点击【运行】进行测试,输入小红书主题:“海边城市”
等待运行结果,可以看到已经生成了封面图URL以及小红书笔记
如果运行过程中报错,可以点击Test Run下【追踪】,查看报错信息
四、总结
本文介绍利用 Dify Workflow 构建小红书笔记自动生成链路:以 SiliconFlow HTTP 接口替代已下线的 AI 绘图SiliconFlow插件,通过 LLM 节点生成标题与正文,代码节点提取图片 URL,模板节点拼装输出,实现主题输入即可秒级产出完整小红书笔记。