图像模型 API

它旨在成为一个简单且可移植的界面,用于与专门用于图像生成的各种 AI 模型进行交互,使开发人员能够以最少的代码更改在不同的图像相关模型之间切换。 这种设计符合 Spring 的模块化和可互换性理念,确保开发人员能够快速使其应用程序适应与图像处理相关的不同 AI 功能。Spring Image Model APIspring-doc.cn

此外,通过支持用于输入封装和输出处理的配套类,图像模型 API 统一了与专用于图像生成的 AI 模型的通信。 它管理请求准备和响应解析的复杂性,为映像生成功能提供直接和简化的 API 交互。ImagePromptImageResponsespring-doc.cn

Spring Image Model API 构建在 Spring AI 之上,提供特定于图像的抽象和实现。Generic Model APIspring-doc.cn

API 概述

本节提供了 Spring Image Model API 接口和相关类的指南。spring-doc.cn

图像模型

下面是 ImageModel 接口定义:spring-doc.cn

@FunctionalInterface
public interface ImageModel extends Model<ImagePrompt, ImageResponse> {

	ImageResponse call(ImagePrompt request);

}

ImagePrompt 图像提示

ImagePrompt 是一个封装 ImageMessage 对象列表和可选模型请求选项的 ImagePrompt。 下面的清单显示了该类的截断版本,不包括构造函数和其他 Util 方法:ModelRequestImagePromptspring-doc.cn

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
}

图片消息

该类封装要使用的文本以及文本在影响生成的图像时应具有的权重。对于支持权重的模型,权重可以是正数或负数。ImageMessagespring-doc.cn

public class ImageMessage {

	private String text;

	private Float weight;

    public String getText() {...}

	public Float getWeight() {...}

   // constructors and utility methods omitted
}

图像选项

表示可以传递给 Image generation model 的选项。该接口扩展了接口,用于定义一些可以传递给 AI 模型的可移植选项。ImageOptionsModelOptionsspring-doc.cn

接口定义如下:ImageOptionsspring-doc.cn

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 图像生成模型有自己的选项,如 、 、 等。qualitystylespring-doc.cn

这是一项强大的功能,允许开发人员在启动应用程序时使用特定于模型的选项,然后在运行时使用 .ImagePromptspring-doc.cn

图像响应

该类的结构如下:ImageResponsespring-doc.cn

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 模型的输出,每个实例都包含由单个提示生成的可能多个输出之一。ImageGenerationspring-doc.cn

该类还携带一个对象,其中包含有关 AI 模型响应的元数据。ImageResponseImageResponseMetadataspring-doc.cn

图像生成

最后,ImageGeneration 类从 the 扩展,以表示有关此结果的输出响应和相关元数据:ModelResultspring-doc.cn

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。spring-doc.cn

反馈和贡献

该项目的 GitHub 讨论是发送反馈的好地方。spring-doc.cn