Azure OpenAI イメージ生成
Spring AI は、Azure、OpenAI のイメージ生成モデルである DALL-E をサポートします。
前提条件
Azure ポータル (英語) の Azure OpenAI サービスセクションから Azure OpenAI endpoint
および api-key
を取得します。Spring AI は、Azure から取得した API Key
の値に設定する必要がある spring.ai.azure.openai.api-key
という構成プロパティを定義します。また、Azure でモデルをプロビジョニングするときに取得したエンドポイント URL に設定する必要がある spring.ai.azure.openai.endpoint
という構成プロパティもあります。環境変数をエクスポートすることは、これらの構成プロパティを設定する 1 つの方法です。
export SPRING_AI_AZURE_OPENAI_API_KEY=<INSERT KEY HERE>
export SPRING_AI_AZURE_OPENAI_ENDPOINT=<INSERT ENDPOINT URL HERE>
デプロイ名
Azure AI アプリケーションの実行を使用するには、[Azure AI ポータル ]( oai.azure.com/portal (英語) ) を通じて Azure AI デプロイを作成します。
Azure では、各クライアントは Azure OpenAI サービスに接続するために Deployment Name
を指定する必要があります。
Deployment Name
は、導入することを選択したモデルとは異なることを理解することが重要です
たとえば、"MyImgAiDeployment" という名前の デプロイは、Dalle3
モデルまたは Dalle2
モデルのいずれかを使用するように構成できます。
現時点では、物事をシンプルにするために、次の設定を使用して デプロイを作成できます。
デプロイ名: MyImgAiDeployment
形名: Dalle3
この 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
のみがあるためです。
自動構成
Spring AI は、Azure OpenAI チャットクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml
ファイルに次の依存関係を追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-azure-openai-spring-boot-starter'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
イメージ生成プロパティ
接頭辞 spring.ai.openai.image
は、OpenAI の ImageModel
実装を構成できるプロパティ接頭辞です。
プロパティ | 説明 | デフォルト |
spring.ai.azure.openai.image.enabled | OpenAI イメージモデルを有効にします。 | true |
spring.ai.azure.openai.image.options.n | 生成するイメージの数。1 ~ 10 の範囲である必要があります。dall-e-3 の場合、n=1 のみがサポートされます。 | - |
spring.ai.azure.openai.image.options.model | イメージ生成に使用するモデル。 | AzureOpenAiImageOptions.DEFAULT_IMAGE_MODEL |
spring.ai.azure.openai.image.options.quality | 生成されるイメージの品質。HD は、より詳細なイメージとイメージ全体の一貫性を高めたイメージを作成します。このパラメーターは、dall-e-3 でのみサポートされます。 | - |
spring.ai.azure.openai.image.options.response_format | 生成されたイメージが返される形式。URL または b64_json のいずれかである必要があります。 | - |
| 生成されるイメージのサイズ。dall-e-2 の場合は、256x256, 512x512 または 1024x1024 のいずれかである必要があります。1024x1024, 1792x1024 または 1024x1792 (dall-e-3 モデルの場合) のいずれかである必要があります。 | - |
| 生成されたイメージの幅。dall-e-2 の場合は 256, 512,, 1024 のいずれかである必要があります。 | - |
| 生成されたイメージの高さ。dall-e-2 の場合は 256, 512,, 1024 のいずれかである必要があります。 | - |
| 生成されたイメージのスタイル。鮮やかまたはナチュラルのいずれかである必要があります。Vivid を使用すると、モデルは非常にリアルでドラマチックなイメージを生成する方向に傾きます。Natural を選択すると、モデルはより自然で、あまり現実的ではないイメージを生成します。このパラメーターは、dall-e-3 でのみサポートされます。 | - |
| エンドユーザーを表す一意の識別子。Azure OpenAI が不正使用を監視および検出できます。 | - |
ランタイムオプション
OpenAiImageOptions.java [GitHub] (英語) では、使用するモデル、品質、サイズなどのモデル構成を提供します。
起動時に、AzureOpenAiImageModel(OpenAiImageApi openAiImageApi)
コンストラクターと withDefaultOptions(OpenAiImageOptions defaultOptions)
メソッドを使用してデフォルトのオプションを構成できます。あるいは、前述の spring.ai.azure.openai.image.options.*
プロパティを使用します。
実行時に、ImagePrompt
呼び出しに新しいリクエスト固有のオプションを追加することで、デフォルトのオプションをオーバーライドできます。たとえば、品質や作成するイメージの数などの OpenAI 固有のオプションをオーバーライドするには、次のコード例を使用します。
ImageResponse response = azureOpenaiImageModel.call(
new ImagePrompt("A light cream colored mini golden doodle",
OpenAiImageOptions.builder()
.withQuality("hd")
.withN(4)
.withHeight(1024)
.withWidth(1024).build())
);
モデル固有の AzureOpenAiImageOptions [GitHub] (英語) に加えて、ImageOptionsBuilder#builder() [GitHub] (英語) で作成されたポータブル ImageOptions [GitHub] (英語) インスタンスを使用できます。 |