收藏本站,收获最前沿的人工智能与编程资讯!!

Spring AI 使用智谱AI图像生成

技术文档 11℃ 0

Spring AI 支持智谱AI的图像生成模型CogView。

前提条件

你需要在智谱AI创建API以访问智谱AI语言模型。

在智谱AI注册页面创建账号,并在API密钥页面生成令牌。

Spring AI项目定义了一个名为spring.ai.zhipuai.api-key的配置属性,你需要将其设置为从API密钥页面获取的API密钥值。

你可以在application.properties文件中设置该配置属性:

spring.ai.zhipuai.api-key=<your-zhipuai-api-key>

为了在处理API密钥等敏感信息时提升安全性,你可以使用Spring表达式语言(SpEL)引用自定义环境变量:

# In application.yml
spring:
  ai:
    zhipuai:
      api-key: ${ZHIPUAI_API_KEY}
# In your environment or .env file
export ZHIPUAI_API_KEY=<your-zhipuai-api-key>

你也可以在应用程序代码中以编程方式设置该配置:

// Retrieve API key from a secure source or environment variable
String apiKey = System.getenv("ZHIPUAI_API_KEY");

添加仓库和物料清单(BOM)

Spring AI构件发布在Maven Central和Spring快照仓库中。参考构件仓库章节将这些仓库添加到你的构建系统中。

为了便于依赖管理,Spring AI提供了BOM(物料清单),以确保整个项目使用一致版本的Spring AI。参考依赖管理章节将Spring AI BOM添加到你的构建系统中。

自动配置

Spring AI自动配置、启动器模块的构件名称发生了重大变更。更多信息请参考升级说明。

Spring AI为智谱AI聊天客户端提供了Spring Boot自动配置。如需启用该功能,请在项目的Maven pom.xml文件中添加以下依赖:

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

或在Gradle build.gradle构建文件中添加:

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-zhipuai'
}

请参考依赖管理章节,将Spring AI BOM添加到你的构建文件中。

图像生成配置属性

图像自动配置的启用与禁用现在通过顶级前缀spring.ai.model.image进行配置。

启用配置:spring.ai.model.image=stabilityai(默认已启用)

禁用配置:spring.ai.model.image=none(或任何不等于stabilityai的值)

该变更用于支持多模型的配置管理。

配置前缀spring.ai.zhipuai.image用于配置智谱AI的ImageModel实现类。

配置属性描述默认值
spring.ai.zhipuai.image.enabled (已移除,不再生效)启用智谱AI图像模型true
spring.ai.model.image启用智谱AI图像模型zhipuai
spring.ai.zhipuai.image.base-url可选配置,覆盖spring.ai.zhipuai.base-url,指定聊天专属URL-
spring.ai.zhipuai.image.api-key可选配置,覆盖spring.ai.zhipuai.api-key,指定聊天专属API密钥-
spring.ai.zhipuai.image.options.model用于图像生成的模型cogview-3
spring.ai.zhipuai.image.options.user代表终端用户的唯一标识符,可帮助智谱AI监控和检测滥用行为-

连接配置属性

配置前缀spring.ai.zhipuai用于配置连接智谱AI的相关属性。

配置属性描述默认值
spring.ai.zhipuai.base-url连接的URL地址open.bigmodel.cn/api/paas
spring.ai.zhipuai.api-keyAPI密钥-

配置属性

重试配置属性

配置前缀spring.ai.retry用于配置智谱AI图像客户端的重试机制。

配置属性描述默认值
spring.ai.retry.max-attempts最大重试次数10
spring.ai.retry.backoff.initial-interval指数退避策略的初始休眠时长2秒
spring.ai.retry.backoff.multiplier退避间隔乘数5
spring.ai.retry.backoff.max-interval最大退避时长3分钟
spring.ai.retry.on-client-errors若为false,抛出NonTransientAiException,且不会对4xx客户端错误码尝试重试false
spring.ai.retry.exclude-on-http-codes不应触发重试的HTTP状态码列表(例如抛出NonTransientAiException)
spring.ai.retry.on-http-codes应触发重试的HTTP状态码列表(例如抛出TransientAiException)

运行时选项

ZhiPuAiImageOptions.java提供了模型配置项,例如使用的模型、质量、尺寸等。

启动时,可以通过ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi)构造方法和withDefaultOptions(ZhiPuAiImageOptions defaultOptions)方法配置默认选项。或者使用前文介绍的spring.ai.zhipuai.image.options.*配置属性。

运行时,你可以在ImagePrompt调用中添加新的请求专属选项,覆盖默认配置。例如,覆盖智谱AI专属的生成质量和图像数量等选项,可参考以下代码示例:

ImageResponse response = zhiPuAiImageModel.call(
        new ImagePrompt("A light cream colored mini golden doodle",
        ZhiPuAiImageOptions.builder()
                .quality("hd")
                .N(4)
                .height(1024)
                .width(1024).build())

);

除了模型专属的ZhiPuAiImageOptions,你还可以使用通过ImageOptionsBuilder#builder()创建的通用ImageOptions实例。

相关推荐