news 2026/6/12 20:42:36

47_Spring AI 干货笔记之图像模型 API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
47_Spring AI 干货笔记之图像模型 API

一、图像模型 API

Spring 图像模型 API 旨在提供一个简单且可移植的接口,用于与专注于图像生成的各种 AI 模型 交互,使开发人员能够以最少的代码更改在不同图像相关模型之间切换。这种设计符合 Spring 的模块化和可互换性理念,确保开发人员能够快速调整其应用程序以适应与图像处理相关的不同 AI 能力。

此外,借助 ImagePrompt(用于输入封装)和 ImageResponse(用于输出处理)等辅助类的支持,图像模型 API 统一了与专注于图像生成的 AI 模型的通信。它管理了请求准备和响应解析的复杂性,为图像生成功能提供了直接且简化的 API 交互。

Spring 图像模型 API 构建于 Spring AI 通用模型 API 之上,提供了图像特定的抽象和实现。

二、API 概述

本节提供了 Spring 图像模型 API 接口及相关类的指南。

三、图像模型

以下是 ImageModel 接口定义:

@FunctionalInterfacepublicinterfaceImageModelextendsModel<ImagePrompt,ImageResponse>{ImageResponsecall(ImagePromptrequest);}

3.1 ImagePrompt

ImagePrompt 是一个 ModelRequest,它封装了 ImageMessage 对象列表和可选的模型请求选项。以下列表显示了 ImagePrompt 类的简化版本,省略了构造函数和其他实用方法:

publicclassImagePromptimplementsModelRequest<List<ImageMessage>>{privatefinalList<ImageMessage>messages;privateImageOptionsimageModelOptions;@OverridepublicList<ImageMessage>getInstructions(){...}@OverridepublicImageOptionsgetOptions(){...}// 构造函数和实用方法已省略}

3.2 ImageMessage

ImageMessage 类封装了要使用的文本以及该文本在影响生成图像时应具有的权重。对于支持权重的模型,权重可以是正值或负值。

publicclassImageMessage{privateStringtext;privateFloatweight;publicStringgetText(){...}publicFloatgetWeight(){...}// 构造函数和实用方法已省略}

3.3 ImageOptions

表示可以传递给图像生成模型的选项。ImageOptions 接口扩展了 ModelOptions 接口,用于定义一些可以传递给 AI 模型的可移植选项。

ImageOptions 接口定义如下:

publicinterfaceImageOptionsextendsModelOptions{IntegergetN();StringgetModel();IntegergetWidth();IntegergetHeight();StringgetResponseFormat();// openai - url 或 base64 : stability ai byte[] 或 base64}

此外,每个特定模型的 ImageModel 实现都可以有自己的选项,这些选项可以传递给 AI 模型。例如,OpenAI 图像生成模型有自己的选项,如质量、风格等。

这是一个强大的功能,允许开发人员在启动应用程序时使用特定于模型的选项,然后在运行时使用 ImagePrompt 覆盖它们。

3.4 ImageResponse

ImageResponse 类的结构如下:

publicclassImageResponseimplementsModelResponse<ImageGeneration>{privatefinalImageResponseMetadataimageResponseMetadata;privatefinalList<ImageGeneration>imageGenerations;@OverridepublicImageGenerationgetResult(){// 获取第一个结果}@OverridepublicList<ImageGeneration>getResults(){...}@OverridepublicImageResponseMetadatagetMetadata(){...}// 其他方法已省略}

ImageResponse 类保存 AI 模型的输出,每个 ImageGeneration 实例包含由单个提示产生的多个可能输出中的一个。

ImageResponse 类还携带一个 ImageResponseMetadata 对象,该对象保存有关 AI 模型响应的元数据。

3.5 ImageGeneration

最后,ImageGeneration 类从 ModelResult 扩展而来,表示输出响应以及与此结果相关的元数据:

publicclassImageGenerationimplementsModelResult<Image>{privateImageGenerationMetadataimageGenerationMetadata;privateImageimage;@OverridepublicImagegetOutput(){...}@OverridepublicImageGenerationMetadatagetMetadata(){...}// 其他方法已省略}

四、可用实现

为以下模型提供商提供了 ImageModel 实现:

  • OpenAI 图像生成

  • Azure OpenAI 图像生成

  • QianFan 图像生成

  • StabilityAI 图像生成

  • ZhiPuAI 图像生成

五、API 文档

您可以在此处找到 Javadoc。

六、反馈与贡献

该项目的 GitHub 讨论区 是发送反馈的好地方。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 17:35:27

开源语音合成哪家强?EmotiVoice全面对比评测

开源语音合成哪家强&#xff1f;EmotiVoice全面对比评测 在智能语音助手、有声书平台和虚拟偶像日益普及的今天&#xff0c;用户早已不满足于“能说话”的TTS系统——他们想要的是会表达、有温度、像真人一样富有情感的声音。然而&#xff0c;大多数开源文本转语音模型仍停留在…

作者头像 李华
网站建设 2026/6/11 2:58:13

【Java毕设源码分享】基于springboot+vue的社区疫情物资管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/11 15:25:44

Webtop Docker 容器化部署指南:基于浏览器的Linux桌面环境

概述 Webtop 是一款由LinuxServer团队开发的创新型容器化应用&#xff0c;它将完整的Linux桌面环境封装在Docker容器中&#xff0c;通过现代Web浏览器即可随时随地访问。这种独特的架构消除了传统远程桌面软件的复杂配置需求&#xff0c;同时保持了桌面环境的功能完整性。 We…

作者头像 李华
网站建设 2026/6/12 23:22:44

个性化内部钓鱼邮件的攻击机制与防御体系构建

摘要近年来&#xff0c;网络钓鱼攻击呈现高度情境化与组织内嵌化趋势。根据KnowBe4 2025年第三季度模拟数据&#xff0c;伪装为人力资源&#xff08;HR&#xff09;或信息技术&#xff08;IT&#xff09;部门、并引用公司名称与内部系统术语的钓鱼邮件&#xff0c;其用户点击率…

作者头像 李华
网站建设 2026/6/10 14:53:45

伪装Meta合规通知的钓鱼攻击机制与中小企业防御策略研究

摘要随着社交媒体平台在中小企业&#xff08;SMB&#xff09;数字营销中的核心地位日益凸显&#xff0c;针对其业务账号的定向钓鱼攻击显著上升。2025年&#xff0c;Check Point邮件安全团队披露了一起大规模钓鱼活动&#xff0c;攻击者伪装为Meta Business Suite发送“政策违规…

作者头像 李华