智谱 AI 图像生成

本站(springdoc.cn)中的内容来源于 spring.io ,原始版权归属于 spring.io。由 springdoc.cn 进行翻译,整理。可供个人学习、研究,未经许可,不得进行任何转载、商用或与之相关的行为。 商标声明:Spring 是 Pivotal Software, Inc. 在美国以及其他国家的商标。

Spring AI supports CogView, the Image generation model from ZhiPuAI.

先决条件

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

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

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

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

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

在处理 API Key 等敏感信息时,为了增强安全性,可以使用 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 Snapshot 资源库中。请参阅 “Artifact 仓库” 部分,将这些资源库添加到你的构建系统中。

为了帮助进行依赖关系管理,Spring AI 提供了一个 BOM(物料清单),以确保在整个项目中使用一致的 Spring AI 版本。请参阅 “依赖管理” 部分,将 Spring AI BOM 添加到构建系统中。

自动配置

Spring AI 自动配置、Starter 模块的工件名称发生了重大变化。更多信息请参阅 升级说明

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-key

API Key

-

配置属性

重试配置

前缀 spring.ai.retry 用作属性前缀,使你能够为智谱 AI 图像客户端配置重试机制。

属性 说明 默认值

spring.ai.retry.max-attempts

最大重试次数。

10

spring.ai.retry.backoff.initial-interval

指数退避策略的初始休眠持续时间。

2 sec.

spring.ai.retry.backoff.multiplier

退避间隔乘数。

5

spring.ai.retry.backoff.max-interval

最大退避持续时间。

3 min.

spring.ai.retry.on-client-errors

如果为 false,则抛出 NonTransientAiException,并且不会对 4xx 客户端错误代码进行重试尝试

false

spring.ai.retry.exclude-on-http-codes

不应触发重试的 HTTP 状态码列表(例如,用于抛出 NonTransientAiException)。

empty

spring.ai.retry.on-http-codes

应触发重试的 HTTP 状态码列表(例如,用于抛出 TransientAiException)。

empty

运行时选项

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 实例。