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

相关推荐
人活一口气4 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP5 小时前
Vibe Coding -- 完整项目案例实操
java
荣码5 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing5 小时前
Google第三方授权登录
java·后端·程序员
明月光8186 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑15 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯16 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路19 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
像我这样帅的人丶你还1 天前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev1 天前
GreenDAO → Room
android·java·kotlin