|
获取最新的快照版本,请使用 Spring AI 1.1.3! |
Azure OpenAI 图像生成
Spring AI 支持来自Azure OpenAI的gpt-image-1-mini图像生成模型。
前提条件
在Azure门户的“Azure OpenAI服务”部分获取您的Azure OpenAI endpoint 和 api-key 。
Spring AI 定义了两个配置属性:
-
spring.ai.azure.openai.api-key:将其设置为从 Azure 获取的API Key的值。 -
spring.ai.azure.openai.endpoint:将其设置为您在 Azure 中配置模型时获取的终结点 URL。
您可以在application.properties文件中设置这些配置属性:
spring.ai.azure.openai.api-key=<your-azure-openai-api-key>
spring.ai.azure.openai.endpoint=<your-azure-openai-endpoint>
为了在处理 API 密钥等敏感信息时增强安全性,可以使用 Spring 表达式语言(SpEL)来引用自定义环境变量:
# 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>
您也可以在应用程序代码中以编程方式设置这些配置:
// 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部署。
在Azure中,每个客户端必须指定Deployment Name以连接到Azure OpenAI服务。
理解Deployment Name与您选择部署的模型不同是至关重要的
例如,一个名为 'MyImgAiDeployment' 的部署可以配置为使用 'gpt-image-1-mini' 模型。
目前,为了保持简单,您可以使用以下设置创建部署:
部署名称: MyImgAiDeployment
模型名称: gpt-image-1-mini
此Azure配置将与Spring Boot Azure AI Starter及其自动配置功能的默认配置保持一致。
如果您使用了不同的部署名称,请相应地更新配置属性:
spring.ai.azure.openai.image.options.deployment-name=<my deployment name>
Azure OpenAI 和 OpenAI 的不同部署结构导致 Azure OpenAI 客户端库中有一个名为 deploymentOrModelName 的属性。
这是因为在 OpenAI 中没有 Deployment Name,只有 Model Name。
自动配置
|
There has been a significant change in the Spring AI auto-configuration, starter modules' artifact names. Please refer to the 升级说明以获取更多信息。 |
Spring AI 为 Azure OpenAI 聊天客户端提供了 Spring Boot 自动配置功能。要启用此功能,请在项目的 Maven `pom.xml` 文件中添加以下依赖项:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-azure-openai</artifactId>
</dependency>
或者添加到您的Gradle 构建脚本文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-azure-openai'
}
| 参考以下依赖管理部分,添加Spring AI BOM到你的构建文件中。 |
图像生成属性
|
图片自动配置的启用和禁用现在通过带有前缀 要启用,请设置 spring.ai.model.image=azure-openai (默认情况下已启用) 要禁用,请设置 spring.ai.model.image=none(或任何不匹配azure-openai的值)。 这种修改是为了允许配置多个模型。 |
前缀 spring.ai.azure.openai.image 是属性前缀,允许您为Azure OpenAI配置 ImageModel 实现。
属性 |
描述 |
默认 |
spring.ai.azure.openai.image.enabled(已移除,不再有效) |
启用Azure OpenAI图像模型。 |
true |
spring.ai.model.image |
启用图像模型。对于Azure OpenAI,请设置为 |
azure-openai |
spring.ai.azure.openai.image.options.n |
生成图像的数量(例如,对于 gpt-image-1-mini,此值为 1)。 |
- |
spring.ai.azure.openai.image.options.model |
用于图像生成的模型(例如 |
gpt-image-1-mini |
spring.ai.azure.openai.image.options.deployment-name |
在Azure AI Studio中为您的图像模型定义的部署名称。 |
- |
spring.ai.azure.openai.image.options.response_format |
生成的图片以何种格式返回。必须是 URL 或 b64_json 之一。 |
- |
spring.ai.azure.openai.image.options.size |
生成图像的大小(例如,1024x1024)。请检查Azure文档以了解您的模型支持的尺寸。 |
- |
spring.ai.azure.openai.image.options.size_width |
生成图像的宽度。 |
- |
spring.ai.azure.openai.image.options.size_height |
生成图像的高度。 |
- |
spring.ai.azure.openai.image.options.user |
代表您终端用户的唯一标识符,有助于Azure OpenAI监控和检测滥用行为。 |
- |
连接属性
前缀 spring.ai.azure.openai 用于作为属性前缀,以便您连接到Azure OpenAI。
属性 |
描述 |
默认 |
spring.ai.azure.openai.endpoint |
连接到的URL(例如:<your-resource>.openai.azure.com/) |
- |
spring.ai.azure.openai.apiKey |
API 密钥 |
- |
运行时选项
AzureOpenAiImageOptions 提供了模型配置,如部署名称、模型和图像大小。
在启动时,默认选项可以通过 AzureOpenAiImageModel(OpenAIClient openAIClient, AzureOpenAiImageOptions options) 构造函数进行配置。或者,使用之前描述的 spring.ai.azure.openai.image.options.* 属性。
在运行时,您可以通过向ImagePrompt调用中添加特定请求的选项来覆盖默认选项。
例如,要使用gpt-image-1-mini模型并自定义大小:
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()方法创建。 |