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工作流智能体

相关推荐
曹牧32 分钟前
Spring:@RequestMapping注解,匹配的顺序与上下文无关
java·后端·spring
daixin884834 分钟前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor
星幻元宇VR1 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
_李小白1 小时前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习
韦禾水1 小时前
记录一次项目部署到tomcat的异常
java·tomcat
曦月合一2 小时前
树莓派安装jdk、tomcat、vnc、谷歌浏览器开机自启等环境配置
java·tomcat·树莓派
harder3212 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
此剑之势丶愈斩愈烈2 小时前
openssl 自建证书
java
面汤放盐2 小时前
何时使用以及何时不应使用微服务:没有银弹
java·运维·云计算
0xDevNull2 小时前
Spring Boot 自动装配:从原理到实践
java·spring boot·后端