获取最新的快照版本,请使用 Spring AI 1.1.3spring-doc.cadn.net.cn

Azure OpenAI 图像生成

Spring AI 支持来自Azure OpenAI的gpt-image-1-mini图像生成模型。spring-doc.cadn.net.cn

前提条件

在Azure门户的“Azure OpenAI服务”部分获取您的Azure OpenAI endpointapi-keyspring-doc.cadn.net.cn

Spring AI 定义了两个配置属性:spring-doc.cadn.net.cn

  1. spring.ai.azure.openai.api-key:将其设置为从 Azure 获取的 API Key 的值。spring-doc.cadn.net.cn

  2. spring.ai.azure.openai.endpoint:将其设置为您在 Azure 中配置模型时获取的终结点 URL。spring-doc.cadn.net.cn

您可以在application.properties文件中设置这些配置属性:spring-doc.cadn.net.cn

spring.ai.azure.openai.api-key=<your-azure-openai-api-key>
spring.ai.azure.openai.endpoint=<your-azure-openai-endpoint>

为了在处理 API 密钥等敏感信息时增强安全性,可以使用 Spring 表达式语言(SpEL)来引用自定义环境变量:spring-doc.cadn.net.cn

# In application.yml
spring:
  ai:
    azure:
      openai:
        api-key: ${AZURE_OPENAI_API_KEY}
        endpoint: ${AZURE_OPENAI_ENDPOINT}
# In your environment or .env file
export AZURE_OPENAI_API_KEY=<your-azure-openai-api-key>
export AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint>

您也可以在应用程序代码中以编程方式设置这些配置:spring-doc.cadn.net.cn

// Retrieve API key and endpoint from secure sources or environment variables
String apiKey = System.getenv("AZURE_OPENAI_API_KEY");
String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");

部署名称

要使用运行Azure AI应用,通过[Azure AI门户](oai.azure.com/portal)创建一个Azure AI部署。spring-doc.cadn.net.cn

在Azure中,每个客户端必须指定Deployment Name以连接到Azure OpenAI服务。spring-doc.cadn.net.cn

理解Deployment Name与您选择部署的模型不同是至关重要的spring-doc.cadn.net.cn

例如,一个名为 'MyImgAiDeployment' 的部署可以配置为使用 'gpt-image-1-mini' 模型。spring-doc.cadn.net.cn

目前,为了保持简单,您可以使用以下设置创建部署:spring-doc.cadn.net.cn

部署名称: MyImgAiDeployment 模型名称: gpt-image-1-minispring-doc.cadn.net.cn

此Azure配置将与Spring Boot Azure AI Starter及其自动配置功能的默认配置保持一致。spring-doc.cadn.net.cn

如果您使用了不同的部署名称,请相应地更新配置属性:spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.deployment-name=<my deployment name>

Azure OpenAI 和 OpenAI 的不同部署结构导致 Azure OpenAI 客户端库中有一个名为 deploymentOrModelName 的属性。 这是因为在 OpenAI 中没有 Deployment Name,只有 Model Namespring-doc.cadn.net.cn

添加仓库和BOM

Spring AI 工件发布在 Maven Central 和 Spring Snapshot 仓库中。 请参阅 工件仓库 部分,以将这些仓库添加到您的构建系统。spring-doc.cadn.net.cn

为了帮助管理依赖,Spring AI 提供了一个 BOM(物料清单),以确保在整个项目中使用一致的 Spring AI 版本。请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建系统。spring-doc.cadn.net.cn

自动配置

There has been a significant change in the Spring AI auto-configuration, starter modules' artifact names. Please refer to the 升级说明以获取更多信息。spring-doc.cadn.net.cn

Spring AI 为 Azure OpenAI 聊天客户端提供了 Spring Boot 自动配置功能。要启用此功能,请在项目的 Maven `pom.xml` 文件中添加以下依赖项:spring-doc.cadn.net.cn

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-azure-openai</artifactId>
</dependency>

或者添加到您的Gradle 构建脚本文件中。spring-doc.cadn.net.cn

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-azure-openai'
}
参考以下依赖管理部分,添加Spring AI BOM到你的构建文件中。

图像生成属性

图片自动配置的启用和禁用现在通过带有前缀spring.mvc.static-path-pattern的顶级属性进行配置。spring-doc.cadn.net.cn

要启用,请设置 spring.ai.model.image=azure-openai (默认情况下已启用)spring-doc.cadn.net.cn

要禁用,请设置 spring.ai.model.image=none(或任何不匹配azure-openai的值)。spring-doc.cadn.net.cn

这种修改是为了允许配置多个模型。spring-doc.cadn.net.cn

前缀 spring.ai.azure.openai.image 是属性前缀,允许您为Azure OpenAI配置 ImageModel 实现。spring-doc.cadn.net.cn

属性spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

默认spring-doc.cadn.net.cn

spring.ai.azure.openai.image.enabled(已移除,不再有效)spring-doc.cadn.net.cn

启用Azure OpenAI图像模型。spring-doc.cadn.net.cn

truespring-doc.cadn.net.cn

spring.ai.model.imagespring-doc.cadn.net.cn

启用图像模型。对于Azure OpenAI,请设置为azure-openaispring-doc.cadn.net.cn

azure-openaispring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.nspring-doc.cadn.net.cn

生成图像的数量(例如,对于 gpt-image-1-mini,此值为 1)。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.modelspring-doc.cadn.net.cn

用于图像生成的模型(例如 gpt-image-1-mini)。spring-doc.cadn.net.cn

gpt-image-1-minispring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.deployment-namespring-doc.cadn.net.cn

在Azure AI Studio中为您的图像模型定义的部署名称。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.response_formatspring-doc.cadn.net.cn

生成的图片以何种格式返回。必须是 URL 或 b64_json 之一。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.sizespring-doc.cadn.net.cn

生成图像的大小(例如,1024x1024)。请检查Azure文档以了解您的模型支持的尺寸。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.size_widthspring-doc.cadn.net.cn

生成图像的宽度。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.size_heightspring-doc.cadn.net.cn

生成图像的高度。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.image.options.userspring-doc.cadn.net.cn

代表您终端用户的唯一标识符,有助于Azure OpenAI监控和检测滥用行为。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

连接属性

前缀 spring.ai.azure.openai 用于作为属性前缀,以便您连接到Azure OpenAI。spring-doc.cadn.net.cn

属性spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

默认spring-doc.cadn.net.cn

spring.ai.azure.openai.endpointspring-doc.cadn.net.cn

连接到的URL(例如:<your-resource>.openai.azure.com/spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.azure.openai.apiKeyspring-doc.cadn.net.cn

API 密钥spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

运行时选项

AzureOpenAiImageOptions 提供了模型配置,如部署名称、模型和图像大小。spring-doc.cadn.net.cn

在启动时,默认选项可以通过 AzureOpenAiImageModel(OpenAIClient openAIClient, AzureOpenAiImageOptions options) 构造函数进行配置。或者,使用之前描述的 spring.ai.azure.openai.image.options.* 属性。spring-doc.cadn.net.cn

在运行时,您可以通过向ImagePrompt调用中添加特定请求的选项来覆盖默认选项。 例如,要使用gpt-image-1-mini模型并自定义大小:spring-doc.cadn.net.cn

ImageResponse response = azureOpenAiImageModel.call(
        new ImagePrompt("A light cream colored mini golden doodle",
        AzureOpenAiImageOptions.builder()
                .model("gpt-image-1-mini")
                .deploymentName("gpt-image-1-mini")
                .height(1024)
                .width(1024)
                .build())
);
除了特定于模型的AzureOpenAiImageOptions之外,您还可以使用可移植的ImageOptions实例,通过ImageOptionsBuilder#builder()方法创建。