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

相关推荐
pshdhx_albert5 小时前
AI agent实现打字机效果
java·http·ai编程
&&Citrus5 小时前
【CPN学习笔记(二)】Chap2 非分层颜色 Petri 网——从一个简单协议开始读懂 CPN
笔记·学习·php·cpn·petri网
沉鱼.446 小时前
第十二届题目
java·前端·算法
赫瑞7 小时前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
小橘子8317 小时前
(学习)Claude Code 源码架构深度解析
学习·程序人生·架构
周末也要写八哥8 小时前
多进程和多线程的特点和区别
java·开发语言·jvm
惜茶9 小时前
vue+SpringBoot(前后端交互)
java·vue.js·spring boot
diablobaal9 小时前
云计算学习100天-第102天-Azure入门4
学习·云计算·azure
AI_零食9 小时前
Flutter 框架跨平台鸿蒙开发 - 自定义式按钮设计应用
学习·flutter·ui·华为·harmonyos·鸿蒙
小陈phd9 小时前
多模态大模型学习笔记(三十)—— 基于YOLO26 Pose实现车牌检测
笔记·学习