智譜AI影像生成

Spring AI 支援 CogView,這是智譜AI的影像生成模型。

先決條件

您需要透過智譜AI建立一個 API 才能訪問智譜 AI 語言模型。

智譜 AI 註冊頁面 建立帳戶,並在 API 金鑰頁面 生成令牌。Spring AI 專案定義了一個名為 spring.ai.zhipuai.api-key 的配置屬性,您應該將其設定為從 API 金鑰頁面 獲取的 API Key 的值。匯出環境變數是設定該配置屬性的一種方法

export SPRING_AI_ZHIPU_AI_API_KEY=<INSERT KEY HERE>

新增倉庫和 BOM

Spring AI 元件釋出在 Maven Central 和 Spring Snapshot 倉庫中。請參閱倉庫章節將這些倉庫新增到您的構建系統中。

為了幫助進行依賴管理,Spring AI 提供了 BOM(物料清單),以確保在整個專案中使用的 Spring AI 版本一致。請參閱依賴管理章節將 Spring AI BOM 新增到您的構建系統中。

自動配置

Spring AI 自動配置、starter 模組的 artifact 名稱發生了重大變化。請參閱升級說明瞭解更多資訊。

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 金鑰

-

配置屬性

重試屬性

字首 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外,您還可以使用可移植的ImageOptions例項,該例項透過ImageOptionsBuilder#builder()建立。