Spring Al学习7:ImageModel

AI大模型面试圣经
大模型开发者宝藏
Dify高效AI工作流智能体

以下是 ImageModel 接口定义:

@FunctionalInterface

public interface ImageModel extends Model<ImagePrompt, ImageResponse> {

复制代码
ImageResponse call(ImagePrompt request);

}

ImagePrompt

ImagePrompt 作为 ModelRequest 的实现,封装了 ImageMessage 对象列表及可选的模型请求选项。以下代码清单展示该类的简化结构(省略构造函数和工具方法):

public class ImagePrompt implements ModelRequest<List> {

复制代码
private final List<ImageMessage> messages;

private ImageOptions imageModelOptions;

@Override
public List<ImageMessage> getInstructions() {...}

@Override
public ImageOptions getOptions() {...}

// constructors and utility methods omitted

}

ImageMessage

ImageMessage 类封装了用于生成图像的文本及其权重值。对于支持权重的模型,该值可为正数或负数。

public class ImageMessage {

复制代码
private String text;

private Float weight;

public String getText() {...}

public Float getWeight() {...}

// constructors and utility methods omitted

}

ImageOptions

ImageOptions 接口继承 ModelOptions,表示可传递给图像生成模型的选项,用于定义少量可跨模型移植的通用参数。

ImageOptions 接口定义如下:

public interface ImageOptions extends ModelOptions {

复制代码
Integer getN();

String getModel();

Integer getWidth();

Integer getHeight();

String getResponseFormat(); // openai - url or base64 : stability ai byte[] or base64

}

此外,每个模型特定的 ImageModel 实现可携带专属选项传递给 AI 模型。例如 OpenAI 图像生成模型拥有 quality、style 等独有参数。

这一强大特性允许开发者在启动应用时使用模型特定选项,运行时再通过 ImagePrompt 动态覆盖。

ImageResponse

ImageResponse 类的结构如下:

public class ImageResponse implements ModelResponse {

复制代码
private final ImageResponseMetadata imageResponseMetadata;

private final List<ImageGeneration> imageGenerations;

@Override
public ImageGeneration getResult() {
	// get the first result
}

@Override
public List<ImageGeneration> getResults() {...}

@Override
public ImageResponseMetadata getMetadata() {...}

// other methods omitted

}

ImageResponse 类封装 AI 模型的输出,每个 ImageGeneration 实例包含单个提示词可能生成的多个输出之一。

最后,ImageGeneration 类继承 ModelResult,用于表示输出响应及相关的元数据信息:

ImageGeneration

最后,ImageGeneration 类继承 ModelResult,表示输出响应及其相关结果元数据:

public class ImageGeneration implements ModelResult {

复制代码
private ImageGenerationMetadata imageGenerationMetadata;

private Image image;

@Override
public Image getOutput() {...}

@Override
public ImageGenerationMetadata getMetadata() {...}

// other methods omitted

}

AI大模型面试圣经
大模型开发者宝藏
Dify高效AI工作流智能体

相关推荐
腾渊信息科技公司2 分钟前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地1 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
遇乐的果园2 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园3 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
莫逸风3 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
从零开始的代码生活_3 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky4 小时前
AI Agent 学习
人工智能·学习
z123456789864 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
茯苓gao4 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
yaoxin5211235 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python