Spring AI 支持OpenAI的图像生成模型DALL-E。
前置条件
需创建OpenAI API密钥以访问ChatGPT模型。
请在OpenAI注册页面创建账户,并于API密钥页面生成令牌。
Spring AI项目定义了配置属性spring.ai.openai.api-key
,需将其设置为从openai.com获取的API密钥值。
可在application.properties
文件中配置:
spring.ai.openai.api-key=<your-openai-api-key>
为提升API密钥等敏感信息的安全性,可使用Spring表达式语言(SpEL)引用自定义环境变量:
# application.yml
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}
# 环境变量或.env文件
export OPENAI_API_KEY=<your-openai-api-key>
也可在应用代码中编程设置:
// 从安全源或环境变量获取API密钥
String apiKey = System.getenv("OPENAI_API_KEY");
自动配置
Spring AI自动配置及starter模块构件名称有重大变更,请参考升级说明。
Spring Boot为OpenAI图像生成客户端提供自动配置。添加以下依赖至Maven的pom.xml文件启用:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
或Gradle的build.gradle文件:
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-openai'
}
请参考依赖管理章节将Spring AI BOM添加到构建文件。
图像生成属性
连接属性
前缀spring.ai.openai
用于连接OpenAI的属性配置:
多组织用户可通过API密钥指定请求所属组织和项目,相关用量将计入指定组织/项目。
重试属性
前缀spring.ai.retry
用于配置OpenAI图像客户端的重试机制:
配置属性
图像自动配置的启用/禁用现通过顶级属性spring.ai.model.image
配置:
启用:
spring.ai.model.image=openai
(默认启用)禁用:
spring.ai.model.image=none
(或非openai值)
此变更为支持多模型配置。
前缀spring.ai.openai.image
用于配置OpenAI的ImageModel实现:
专属属性
spring.ai.openai.image.*
优先覆盖通用属性spring.ai.openai.*
,便于不同模型使用独立OpenAI账户。
所有spring.ai.openai.image.options.*
属性支持运行时覆盖。
运行时选项OpenAiImageOptions.java
提供模型配置(如模型类型/质量/尺寸等)。
启动时可通过以下方式配置默认选项:
OpenAiImageModel(OpenAiImageApi openAiImageApi)
构造器withDefaultOptions(OpenAiImageOptions defaultOptions)
方法或前述
spring.ai.openai.image.options.*
属性
运行时可通过ImagePrompt
调用覆盖默认选项。例如覆盖图像质量和生成数量:
ImageResponse response = openaiImageModel.call(
new ImagePrompt("浅奶油色迷你金毛贵宾犬",
OpenAiImageOptions.builder()
.quality("hd")
.N(4)
.height(1024)
.width(1024).build()
);
除模型专属的OpenAiImageOptions
外,也可使用通过ImageOptionsBuilder#builder()
创建的通用ImageOptions
实例。
评论区