最新の安定バージョンについては、Spring AI 2.0.2 を使用してください!

ZhiPuAI イメージの生成

Spring AI は、ZhiPuAI から派生したイメージ生成モデルである CogView をサポートしています。

前提条件

ZhiPu AI 言語モデルにアクセスするには、ZhiPuAI を使用して API を作成する必要があります。

ZhiPu AI 登録ページ (英語) でアカウントを作成し、API キーページ (英語) でトークンを生成します。

Spring AI プロジェクトでは、API キーページから取得した API Key の値に設定される spring.ai.zhipuai.api-key という名前の構成プロパティが定義されています。

この構成プロパティは、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 Snapshot リポジトリに公開されています。これらのリポジトリをビルドシステムに追加するには、アーティファクトリポジトリのセクションを参照してください。

依存関係の管理を容易にするため、Spring AI には部品表(BOM)が用意されており、プロジェクト全体で一貫したバージョンの Spring AI が使用されるようになっています。Spring AI の部品表をビルドシステムに追加するには、依存関係管理のセクションを参照してください。

自動構成

Spring AI の自動構成およびスターターモジュールのアーティファクト名に大幅な変更がありました。詳細については、アップグレードノートを参照してください。

Spring AI は、ZhiPuAI チャットクライアント用の 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 の部品表をビルドファイルに追加してください。

イメージ生成プロパティ

イメージの自動構成の有効化と無効化は、プレフィックス spring.ai.model.image を持つ最上位プロパティを介して構成されるようになりました。

有効にするには、spring.ai.model.image=stabilityai (デフォルトで有効になっています)

無効にするには、spring.ai.model.image=none (または安定性と一致しない値 ai)

この変更は、複数のモデルの構成を可能にするために行われます。

接頭辞 spring.ai.zhipuai.image は、ZhiPuAI の ImageModel 実装を構成できるプロパティ接頭辞です。

プロパティ

説明

デフォルト

spring.ai.zhipuai.image.enabled (削除され、無効になりました)

ZhiPuAI イメージモデルを有効にします。

true

spring.ai.model.image

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

イメージ生成に使用するモデル。

コグビュー 3

spring.ai.zhipuai.image.options.user

エンドユーザーを表す一意の識別子。ZhiPuAI が不正使用を監視および検出できます。

-

接続プロパティ

接頭辞 spring.ai.zhipuai は、ZhiPuAI への接続を可能にするプロパティ接頭辞として使用されます。

プロパティ

説明

デフォルト

spring.ai.zhipuai.base-url

接続先の URL

オープンビッグモデル (英語)

spring.ai.zhipuai.api-key

API キー

-

プロパティの構成

再試行プロパティ

プレフィックス spring.ai.retry は、ZhiPuAI イメージクライアントの再試行メカニズムを構成できるプロパティプレフィックスとして使用されます。

プロパティ 説明 デフォルト

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 [GitHub] (英語) では、使用するモデル、品質、サイズなどのモデル構成を提供します。

起動時に、ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi) コンストラクターと withDefaultOptions(ZhiPuAiImageOptions defaultOptions) メソッドを使用してデフォルトのオプションを構成できます。あるいは、前述の spring.ai.zhipuai.image.options.* プロパティを使用します。

実行時に、ImagePrompt 呼び出しに新しいリクエスト固有のオプションを追加することで、デフォルトのオプションをオーバーライドできます。たとえば、品質や作成するイメージの数などの ZhiPuAI 固有のオプションをオーバーライドするには、次のコード例を使用します。

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 [GitHub] (英語) に加えて、ImageOptionsBuilder#builder() [GitHub] (英語) で作成されたポータブル ImageOptions [GitHub] (英語) インスタンスを使用できます。