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

Azure OpenAI イメージ生成

Spring AI は、Azure および OpenAI の gpt-image-1-mini イメージ生成モデルをサポートしています。

前提条件

Azure ポータル (英語) の Azure OpenAI サービスセクションから Azure、OpenAI、endpointapi-key を入手します。

Spring AI は 2 つの構成プロパティを定義します。

  1. spring.ai.azure.openai.api-key: これを Azure から取得した API Key の値に設定します。

  2. spring.ai.azure.openai.endpoint: Azure でモデルをプロビジョニングするときに取得したエンドポイント URL に設定します。

application.properties ファイルで次の構成プロパティを設定できます。

spring.ai.azure.openai.api-key=<your-azure-openai-api-key>
spring.ai.azure.openai.endpoint=<your-azure-openai-endpoint>

API キーなどの機密情報を扱う際のセキュリティを強化するために、Spring 式言語 (SpEL) を使用してカスタム環境変数を参照できます。

# In application.yml
spring:
  ai:
    azure:
      openai:
        api-key: ${AZURE_OPENAI_API_KEY}
        endpoint: ${AZURE_OPENAI_ENDPOINT}
# In your environment or .env file
export AZURE_OPENAI_API_KEY=<your-azure-openai-api-key>
export AZURE_OPENAI_ENDPOINT=<your-azure-openai-endpoint>

これらの構成をアプリケーションコードでプログラム的に設定することもできます。

// Retrieve API key and endpoint from secure sources or environment variables
String apiKey = System.getenv("AZURE_OPENAI_API_KEY");
String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");

デプロイ名

Azure AI アプリケーションの実行を使用するには、[Azure AI ポータル ]( oai.azure.com/portal (英語) ) を通じて Azure AI デプロイを作成します。

Azure では、各クライアントは Azure OpenAI サービスに接続するために Deployment Name を指定する必要があります。

Deployment Name は、導入することを選択したモデルとは異なることを理解することが重要です

たとえば、"MyImgAiDeployment" という名前のデプロイは、"gpt-image-1-mini" モデルを使用するように構成できます。

現時点では、物事をシンプルにするために、次の設定を使用して デプロイを作成できます。

デプロイ名: MyImgAiDeployment 形名: gpt-image-1-mini

この Azure 構成は、Spring Boot Azure AI スターターおよびその自動構成機能のデフォルト構成と一致します。

別の デプロイ名を使用する場合は、それに応じて構成プロパティを更新します。

spring.ai.azure.openai.image.options.deployment-name=<my deployment name>

Azure、OpenAI、OpenAI の異なる デプロイ構造により、Azure、OpenAI クライアントライブラリに deploymentOrModelName というプロパティが作成されます。これは、OpenAI には Deployment Name がなく、Model Name のみがあるためです。

リポジトリと BOM の追加

Spring AI アーティファクトは、Maven Central リポジトリと Spring スナップショットリポジトリに公開されています。これらのリポジトリをビルドシステムに追加するには、アーティファクトリポジトリセクションを参照してください。

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

自動構成

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

Spring AI は、Azure OpenAI チャットクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml ファイルに次の依存関係を追加します。

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

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-azure-openai'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。

イメージ生成プロパティ

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

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

無効にするには、spring.ai.model.image=none (または azure-openai に一致しない値)

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

プレフィックス spring.ai.azure.openai.image は、Azure OpenAI の ImageModel 実装を構成できるようにするプロパティプレフィックスです。

プロパティ

説明

デフォルト

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

Azure および OpenAI イメージモデルを有効にします。

true

spring.ai.model.image

イメージモデルを有効にします。Azure および OpenAI の場合は azure-openai に設定してください。

azure-openai

spring.ai.azure.openai.image.options.n

生成するイメージの数(例: gpt-image-1-mini の場合は 1)。

-

spring.ai.azure.openai.image.options.model

イメージ生成に使用するモデル(例: gpt-image-1-mini)。

gpt-image-1-mini

spring.ai.azure.openai.image.options.deployment-name

Azure AI Studio でイメージモデル用に定義されているデプロイという名前。

-

spring.ai.azure.openai.image.options.response_format

生成されたイメージが返される形式。URL または b64_json のいずれかである必要があります。

-

spring.ai.azure.openai.image.options.size

生成されるイメージのサイズ(例: 1024x1024)。お使いのモデルでサポートされているサイズについては、Azure のドキュメントをご確認ください。

-

spring.ai.azure.openai.image.options.size_width

生成されるイメージの幅。

-

spring.ai.azure.openai.image.options.size_height

生成されるイメージの高さ。

-

spring.ai.azure.openai.image.options.user

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

-

接続プロパティ

プレフィックス spring.ai.azure.openai は、Azure OpenAI に接続できるようにするプロパティプレフィックスとして使用されます。

プロパティ

説明

デフォルト

spring.ai.azure.openai.endpoint

接続先の URL (e.g. <your-resource>.openai.azure.com/ (英語) )

-

spring.ai.azure.openai.apiKey

API キー

-

ランタイムオプション

AzureOpenAiImageOptions [GitHub] (英語) は、デプロイの名称、モデル、イメージサイズなどのモデル構成情報を提供します。

起動時に、AzureOpenAiImageModel(OpenAIClient openAIClient, AzureOpenAiImageOptions options) コンストラクターを使用してデフォルトのオプションを構成できます。あるいは、前述の spring.ai.azure.openai.image.options.* プロパティを使用します。

実行時に、ImagePrompt 呼び出しにリクエスト固有のオプションを追加することで、デフォルトオプションを上書きできます。例: カスタムサイズで gpt-image-1-mini モデルを使用する場合:

ImageResponse response = azureOpenAiImageModel.call(
        new ImagePrompt("A light cream colored mini golden doodle",
        AzureOpenAiImageOptions.builder()
                .model("gpt-image-1-mini")
                .deploymentName("gpt-image-1-mini")
                .height(1024)
                .width(1024)
                .build())
);
モデル固有の AzureOpenAiImageOptions [GitHub] (英語) に加えて、ImageOptionsBuilder#builder() [GitHub] (英語) で作成されたポータブル ImageOptions [GitHub] (英語) インスタンスを使用できます。