当前位置: 首页 > news >正文

【Dify】基于 Agent 实现热门新闻生成助手

目录

一、实现思路

二、创建 Agent 应用并完善提示词工程

2.1 创建 Agent 应用

2.2 添加工具

2.3 自定义工具的 服务实现

2.4 执行结果


一、实现思路

我们在运营某个圈子的时候,可能每天都要将这个圈子的“热门新闻”发送到朋友圈或聊天群里,但依靠传统的实现手段非常耗时耗力,我们通常要先收集热门新闻,再组装要新闻内容,再根据内容设计海报等。

那怎么才能简化并高效的完成以上工作呢?

答案是我们可以借助 AI 工具:Dify + Java 服务来实现热点新闻自动生成功能,最终生成效果如下:

具体实现步骤如下:

  1. 在 dify 中创建 Agent 应用。

  2. 填写提示词,设置变量和编排任务。

  3. 添加相关组件:

    1. time:获取当前时间,根据时间生成对应日期的热点新闻。

    2. tavily:联网的搜索服务,用于查询某个日期的热点新闻。

    3. 自定义 Java 服务:实现将 HTML 页面转换为图片。

  4. 选择 LLM

  5. 执行热点新闻生成操作。

二、创建 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 执行效果如下:

http://www.xdnf.cn/news/954055.html

相关文章:

  • 【教程】矩形重叠检测 -- 分离轴定理的应用
  • Vue 插槽(Slot)用法详解
  • UFW防火墙安全指南
  • 【算法-BFS实现FloodFill算法】使用BFS实现FloodFill算法:高效识别连通块并进行图像填充
  • 时间复杂度和算法选择
  • WinUI3开发_使用mica效果
  • vitepress添加图片放大功能
  • 基于2.4G功能的使用
  • encodeURIComponent和decodeURIComponent
  • 21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
  • 多元隐函数 偏导公式法 (显示变化 + 隐式变化)
  • ABAP设计模式之---“Tell, Don’t Ask原则”
  • STL 1 容器
  • 基于生态系统服务(InVEST模型)的人类活动、重大工程生态成效评估、论文写作
  • 12.找到字符串中所有字母异位词
  • Oracle查询表空间大小
  • vue的<router-link>的to里面的query和params的区别
  • pocketflow库实现guardrail
  • Nginx server_name 配置说明
  • Qt插件化编程的全面解析(QPluginLoader)
  • 微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
  • 云防火墙(安全组)配置指南:从入门到精通端口开放 (2025)
  • OCR、图像分类与目标检测
  • 雷达RCS计算中的旋转矩阵
  • 在Ubuntu上利用loongarch64交叉编译工具编译opencv4.4.0
  • 【排错】ollama报错unable to load model
  • 【知识点】第8章:程序设计方法论
  • CKA考试知识点分享(6)---PriorityClass
  • 自动化测试工具playwright中文文档-------19.评估JavaScript
  • 初版BL程序一些细节整理(碎碎念)