我们在运营某个圈子的时候,可能每天都要将这个圈子的“热门新闻”发送到朋友圈或聊天群里,但依靠传统的实现手段非常耗时耗力,我们通常要先收集热门新闻,再组装要新闻内容,再根据内容设计海报等。
那怎么才能简化并高效的完成以上工作呢?
答案是我们可以借助 AI 工具:Dify + Java 服务来实现热点新闻自动生成功能,最终生成效果如下:
实现思路
具体实现步骤如下:
- 在 dify 中创建 Agent 应用。
- 添加相关组件:
- time:获取当前时间,根据时间生成对应日期的热点新闻。
- tavily:联网的搜索服务,用于查询某个日期的热点新闻。
- 自定义 Java 服务:实现将 HTML 页面转换为图片。
- 填写提示词,设置变量和编排任务。
- 选择 LLM。
- 执行热点新闻生成操作。
为什么要使用Java服务?
为什么要使用 Java 服务,而不是根据文案直接生成图片呢?
答:因为根据文案直接生成图片,目前大模型生成图片服务,并不能满足热点新闻的生成要求。所以,我们可以让大模型先生成美观的 HTML 页面,再将 HTML 转换成图片,才能满足生产级别的图片要求。当然,自定义服务不一定是 Java 语言实现的,其他语言也是可以的,例如 Python。
1.自定义工具
自定义工具的 Schema 用于描述调用的外部调用服务,只需要满足 OpenAI-Swagger 要求即可:- {
- "openapi": "3.1.0",
- "info": {
- "title": "html to image",
- "description": "Generate image files based on HTML code",
- "version": "v1.0.0"
- },
- "servers": [
- {
- "url": "http://192.168.3.94:8080"
- }
- ],
- "paths": {
- "/html2img/gen": {
- "get": {
- "description": "Generate image files based on HTML code",
- "operationId": "generate",
- "parameters": [
- {
- "name": "html",
- "in": "query",
- "description": "HTML code",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "deprecated": false
- }
- }
- },
- "components": {
- "schemas": {}
- }
- }
复制代码 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;
- }
- }
复制代码 3.Agent执行效果
Agent 执行效果如下:
小结
AI 发展为我们提供了很大的便利,大大的提升了我们的工作效率,以后人机共创将是新的方向。我们也要灵活使用 AI 工具,加上我们之前的编程经验,可以发挥出巨大的化学反应,开发出很多很好玩又实用的产品。一起行动起来吧,使用 AI 技术做点有价值又有意义的事情~
本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、AI Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。
关注公众号(加好友):
作者: 王磊的博客
出处: http://vipstone.cnblogs.com/
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |