Azure OpenAI 転写
Spring AI は Azure ウィスパーモデル (英語) をサポートします。
前提条件
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 つの方法です。
自動構成
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.audio.transcription=azure-openai (デフォルトで有効になっています) 無効にするには、spring.ai.model.audio.transcription=none (または azure-openai に一致しない値) この変更は、複数のモデルの構成を可能にするために行われます。 |
プレフィックス spring.ai.openai.audio.transcription
は、OpenAI イメージモデルの再試行メカニズムを構成できるプロパティプレフィックスとして使用されます。
プロパティ | 説明 | デフォルト |
---|---|---|
spring.ai.azure.openai.audio.transcription.enabled (削除され、無効になりました) | Azure OpenAI 転写モデルを有効にします。 | true |
spring.ai.model.audio.transcription | Azure OpenAI 転写モデルを有効にします。 | azure-openai |
spring.ai.azure.openai.audio.transcription.options.model | 使用するモデルの ID。現在は whisper のみが使用可能です。 | ささやく |
spring.ai.azure.openai.audio.transcription.options.deployment-name | モデルがデプロイされる デプロイ名。 | |
spring.ai.azure.openai.audio.transcription.options.response-format | トランスクリプト出力の形式。json、text、srt、verbose_json、vtt のいずれかのオプションで指定します。 | json |
spring.ai.azure.openai.audio.transcription.options.prompt | モデルのスタイルをガイドしたり、前のオーディオセグメントを継続したりするためのオプションのテキスト。プロンプトはオーディオの言語と一致する必要があります。 | |
spring.ai.azure.openai.audio.transcription.options.language | 入力オーディオの言語。入力言語を ISO-639-1 形式で指定すると、精度と遅延が向上します。 | |
spring.ai.azure.openai.audio.transcription.options.temperature | サンプリング温度は 0 から 1 までです。0.8 のような高い値を設定すると出力はよりランダムになり、0.2 のような低い値を設定すると出力はより集中的かつ決定論的になります。0 に設定すると、モデルは対数確率を使用して、特定のしきい値に達するまで温度を自動的に上げます。 | 0 |
spring.ai.azure.openai.audio.transcription.options.timestamp-granularities | この転写に入力するタイムスタンプの粒度。タイムスタンプの粒度を使用するには、response_format を verbose_json に設定する必要があります。単語またはセグメントのいずれかまたは両方のオプションがサポートされています。注: セグメントタイムスタンプには追加の遅延はありませんが、単語タイムスタンプを生成すると追加の遅延が発生します。 | セグメント |
ランタイムオプション
AzureOpenAiAudioTranscriptionOptions
クラスは、転写を行うときに使用するオプションを提供します。起動時には、spring.ai.azure.openai.audio.transcription
で指定されたオプションが使用されますが、実行時にこれらを上書きできます。
例:
AzureOpenAiAudioTranscriptionOptions.TranscriptResponseFormat responseFormat = AzureOpenAiAudioTranscriptionOptions.TranscriptResponseFormat.VTT;
AzureOpenAiAudioTranscriptionOptions transcriptionOptions = AzureOpenAiAudioTranscriptionOptions.builder()
.language("en")
.prompt("Ask not this, but ask that")
.temperature(0f)
.responseFormat(this.responseFormat)
.build();
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, this.transcriptionOptions);
AudioTranscriptionResponse response = azureOpenAiTranscriptionModel.call(this.transcriptionRequest);
手動構成
spring-ai-openai
依存関係をプロジェクトの Maven pom.xml
ファイルに追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-azure-openai</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-azure-openai'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
次に AzureOpenAiAudioTranscriptionModel
を作成します
var openAIClient = new OpenAIClientBuilder()
.credential(new AzureKeyCredential(System.getenv("AZURE_OPENAI_API_KEY")))
.endpoint(System.getenv("AZURE_OPENAI_ENDPOINT"))
.buildClient();
var azureOpenAiAudioTranscriptionModel = new AzureOpenAiAudioTranscriptionModel(this.openAIClient, null);
var transcriptionOptions = AzureOpenAiAudioTranscriptionOptions.builder()
.responseFormat(TranscriptResponseFormat.TEXT)
.temperature(0f)
.build();
var audioFile = new FileSystemResource("/path/to/your/resource/speech/jfk.flac");
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(this.audioFile, this.transcriptionOptions);
AudioTranscriptionResponse response = this.azureOpenAiAudioTranscriptionModel.call(this.transcriptionRequest);