【Dify】基于 Agent 实现热门新闻生成助手
目录
一、实现思路
二、创建 Agent 应用并完善提示词工程
2.1 创建 Agent 应用
2.2 添加工具
2.3 自定义工具的 服务实现
2.4 执行结果
一、实现思路
我们在运营某个圈子的时候,可能每天都要将这个圈子的“热门新闻”发送到朋友圈或聊天群里,但依靠传统的实现手段非常耗时耗力,我们通常要先收集热门新闻,再组装要新闻内容,再根据内容设计海报等。
那怎么才能简化并高效的完成以上工作呢?
答案是我们可以借助 AI 工具:Dify + Java 服务来实现热点新闻自动生成功能,最终生成效果如下:
具体实现步骤如下:
-
在 dify 中创建 Agent 应用。
-
填写提示词,设置变量和编排任务。
-
添加相关组件:
-
time:获取当前时间,根据时间生成对应日期的热点新闻。
-
tavily:联网的搜索服务,用于查询某个日期的热点新闻。
-
自定义 Java 服务:实现将 HTML 页面转换为图片。
-
-
选择 LLM。
-
执行热点新闻生成操作。
二、创建 Agent 应用并完善提示词工程
2.1 创建 Agent 应用
变量定义:一种动态数据容器,能够存储和传递不固定的内容,在不同的节点内被相互引用,实现信息在节点间的灵活通信。
<prompt><instruction>根据提供的关键字{{keyword}}生成5条热门的吸引人的中文新闻标题。请遵循以下步骤:1. 先根据time插件获取具体的日期。2. 使用搜索插件查询中文的热门{{keyword}}信息。3. 提取搜索中的标题内容。4. 将上面标题生成一个热门排行榜html页面,html中不用生成<meta>标签,要求美观大方,并展示HTML预览效果。5.将上面生成的html页面转换成image图片。</instruction>
</prompt>
2.2 添加工具
2.3 自定义工具的 服务实现
1. 添加依赖
<dependency><groupId>com.github.alotuser</groupId><artifactId>html2image</artifactId><version>1.0.0</version>
</dependency>
2. 编写服务代码:
import cn.alotus.HtmlRender;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.UUID;@RestController
@RequestMapping("/html2img")
public class ApiController {@RequestMapping("/gen")public String generate(@RequestParam String html) throws IOException {HtmlRender htmlRender = new HtmlRender(BufferedImage.TYPE_INT_RGB);String imgPath = "D://" + UUID.randomUUID() + ".png";//生成图片htmlRender.toPng(html, imgPath);return imgPath;}
}
2.4 执行结果
Agent 执行效果如下: