图像模型API
这Spring 图像模型 API设计为一个简单且可移植的界面,用于与各种专注于图像生成的AI模型交互,允许开发者以最小的代码修改在不同图像相关模型之间切换。
这一设计符合Spring模块化和可互换性的理念,确保开发者能够快速调整应用以适应与图像处理相关的不同AI能力。
此外,还有像这样的同伴职业的支持图片提示对于输入封装和ImageResponse(图像响应)在输出处理方面,图像模型API统一了与专注于图像生成的AI模型的通信。
它管理请求准备和响应解析的复杂性,提供直接且简化的 API 交互以实现图像生成功能。
Spring 图像模型 API 构建在 Spring AI 之上通用模型API,提供图像特定的抽象和实现。
图像模型
以下是ImageModel接口定义:
@FunctionalInterface
public interface ImageModel extends Model<ImagePrompt, ImageResponse> {
ImageResponse call(ImagePrompt request);
}
图片提示
ImagePrompt 是一个ModelRequest该模块封装了ImageMessage对象列表及可选的模型请求选项。
以下列表展示了图片提示类,排除构造子和其他实用方法:
public class ImagePrompt implements ModelRequest<List<ImageMessage>> {
private final List<ImageMessage> messages;
private ImageOptions imageModelOptions;
@Override
public List<ImageMessage> getInstructions() {...}
@Override
public ImageOptions getOptions() {...}
// constructors and utility methods omitted
}
图像信息
这图像信息类封装了将要使用的文本以及文本在影响生成图像中的权重。对于支持权重的模型,权重可以是正的,也可以是负的。
public class ImageMessage {
private String text;
private Float weight;
public String getText() {...}
public Float getWeight() {...}
// constructors and utility methods omitted
}
图片选项
表示可以传递给图像生成模型的选项。这图片选项接口扩展了ModelOptions界面 并用于定义一些可传递给 AI 模型的可移植选项。
这图片选项接口定义如下:
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图像生成模型有其选项,如质量,风格等。
这是一个强大的功能,允许开发者在启动应用程序时使用模型特定的选项,然后在运行时使用图片提示.
ImageResponse(图像响应)
结构ImageResponse(图像响应)类别如下:
public class ImageResponse implements ModelResponse<ImageGeneration> {
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模型的输出,每个图像生成包含单个提示可能产生的多个输出之一的实例。
这ImageResponse(图像响应)类别还携带A图像响应元数据对象持有关于AI模型响应的元数据。
图像生成
最后,ImageGeneration类从以下模型结果为了表示输出响应及相关元数据:
public class ImageGeneration implements ModelResult<Image> {
private ImageGenerationMetadata imageGenerationMetadata;
private Image image;
@Override
public Image getOutput() {...}
@Override
public ImageGenerationMetadata getMetadata() {...}
// other methods omitted
}
API 文档
你可以在这里找到Javadoc。
反馈与贡献
项目的GitHub讨论区是反馈的好地方。