此版本仍在开发中,尚未被视为稳定版。为了获取最新的快照版本,请使用Spring AI 1.1.3spring-doc.cadn.net.cn

图像模型API

数字Spring Image Model API旨在成为一个简单且可移植的接口,用于与专注于图像生成的各种AI模型交互,使开发者能够以最少的代码更改在不同的图像相关模型之间切换。 此设计遵循Spring的模块化和可互换性理念,确保开发者能够快速调整其应用程序以适应不同的图像处理AI能力。spring-doc.cadn.net.cn

此外,借助诸如ImagePrompt进行输入封装和ImageResponse负责输出处理的辅助类支持,图像模型API统一了与专注于图像生成的AI模型的通信。它管理了请求准备和响应解析的复杂性,为图像生成功能提供了直接且简化的API交互。spring-doc.cadn.net.cn

Spring 图像模型 API 建立在 Spring AI Generic Model API 的基础上,提供了特定于图像的抽象和实现。spring-doc.cadn.net.cn

API概述

本节提供了Spring图像模型API接口及关联类的使用指南。spring-doc.cadn.net.cn

图像模型

这里是ImageModel接口的定义:spring-doc.cadn.net.cn

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

	ImageResponse call(ImagePrompt request);

}

图片提示

ImagePrompt 是一个封装了 ImageMessage 对象列表和可选模型请求选项的 ModelRequest。 以下列表显示了 ImagePrompt 类的截断版本,不包括构造函数和其他实用方法:spring-doc.cadn.net.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
}

图片消息

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

public class ImageMessage {

	private String text;

	private Float weight;

    public String getText() {...}

	public Float getWeight() {...}

   // constructors and utility methods omitted
}

图像选项

表示可以传递给图像生成模型的选项。ImageOptions接口扩展了ModelOptions接口,用于定义可传递给AI模型的一些便携式选项。spring-doc.cadn.net.cn

ImageOptions 接口定义如下:spring-doc.cadn.net.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图像生成模型就有自己的选项,如qualitystyle等。spring-doc.cadn.net.cn

这是一个强大的功能,允许开发者在启动应用程序时使用模型特定的选项,然后使用ImagePrompt在运行时覆盖它们。spring-doc.cadn.net.cn

图片响应

ImageResponse 类的结构如下:spring-doc.cadn.net.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模型的输出,其中每个ImageGeneration实例包含可能由单个提示产生的多个输出之一。spring-doc.cadn.net.cn

ImageResponse 类同样携带了一个持有AI模型响应元数据的 ImageResponseMetadata 对象。spring-doc.cadn.net.cn

图像生成

最后,ImageGeneration 类从 ModelResult 继承,以表示输出响应及与此结果相关的元数据:spring-doc.cadn.net.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.cadn.net.cn

反馈与贡献

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