OpenAI 転写
Spring AI は OpenAI の転写モデル (英語) をサポートします。
前提条件
ChatGPT モデルにアクセスするには、OpenAI で API キーを作成する必要があります。OpenAI サインアップページ (英語) でアカウントを作成し、API キーページ (英語) でトークンを生成します。Spring AI プロジェクトでは、spring.ai.openai.api-key
という名前の構成プロパティが定義されており、これを openai.com から取得した API Key
の値に設定する必要があります。環境変数をエクスポートすることは、その構成プロパティを設定する 1 つの方法です。
自動構成
Spring AI は、OpenAI トランスクリプションクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml
ファイルに次の依存関係を追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
転写プロパティ
接続プロパティ
接頭辞 spring.ai.openai
は、OpenAI への接続を可能にするプロパティ接頭辞として使用されます。
プロパティ | 説明 | デフォルト |
spring.ai.openai.base-url | 接続先の URL | |
spring.ai.openai.api-key | API キー | - |
spring.ai.openai.organization-id | オプションで、API リクエストに使用する組織を指定できます。 | - |
spring.ai.openai.project-id | 必要に応じて、API リクエストに使用するプロジェクトを指定できます。 | - |
複数の組織に属しているユーザー(または従来のユーザー API キーを使用してプロジェクトにアクセスしているユーザー)の場合は、オプションで、API リクエストに使用する組織とプロジェクトを指定できます。これらの API リクエストからの使用量は、指定された組織とプロジェクトの使用量としてカウントされます。 |
プロパティの構成
プレフィックス spring.ai.openai.audio.transcription
は、OpenAI 転写モデルの再試行メカニズムを構成できるプロパティプレフィックスとして使用されます。
プロパティ | 説明 | デフォルト |
---|---|---|
spring.ai.openai.audio.transcription.base-url | 接続先の URL | |
spring.ai.openai.audio.transcription.api-key | API キー | - |
spring.ai.openai.audio.transcription.organization-id | オプションで、API リクエストに使用する組織を指定できます。 | - |
spring.ai.openai.audio.transcription.project-id | 必要に応じて、API リクエストに使用するプロジェクトを指定できます。 | - |
spring.ai.openai.audio.transcription.options.model | 使用するモデルの ID。現在、ウィスパー 1 (オープンソースの Whisper V2 モデルを搭載) のみが利用可能です。 | ささやき -1 |
spring.ai.openai.audio.transcription.options.response-format | トランスクリプト出力の形式。json、text、srt、verbose_json、vtt のいずれかのオプションで指定します。 | json |
spring.ai.openai.audio.transcription.options.prompt | モデルのスタイルをガイドしたり、前のオーディオセグメントを継続したりするためのオプションのテキスト。プロンプトはオーディオの言語と一致する必要があります。 | |
spring.ai.openai.audio.transcription.options.language | 入力オーディオの言語。入力言語を ISO-639-1 形式で指定すると、精度と遅延が向上します。 | |
spring.ai.openai.audio.transcription.options.temperature | サンプリング温度は 0 から 1 までです。0.8 のような高い値を設定すると出力はよりランダムになり、0.2 のような低い値を設定すると出力はより集中的かつ決定論的になります。0 に設定すると、モデルは対数確率を使用して、特定のしきい値に達するまで温度を自動的に上げます。 | 0 |
spring.ai.openai.audio.transcription.options.timestamp_granularities | この転写に入力するタイムスタンプの粒度。タイムスタンプの粒度を使用するには、response_format を verbose_json に設定する必要があります。単語またはセグメントのいずれかまたは両方のオプションがサポートされています。注: セグメントタイムスタンプには追加の遅延はありませんが、単語タイムスタンプを生成すると追加の遅延が発生します。 | セグメント |
共通の spring.ai.openai.base-url 、spring.ai.openai.api-key 、spring.ai.openai.organization-id 、spring.ai.openai.project-id プロパティをオーバーライドできます。spring.ai.openai.audio.transcription.base-url 、spring.ai.openai.audio.transcription.api-key 、spring.ai.openai.audio.transcription.organization-id 、spring.ai.openai.audio.transcription.project-id プロパティが設定されている場合は、共通のプロパティよりも優先されます。これは、異なるモデルや異なるモデルエンドポイントに異なる OpenAI アカウントを使用する場合に便利です。 |
spring.ai.openai.transcription.options で始まるすべてのプロパティは、実行時にオーバーライドできます。 |
ランタイムオプション
OpenAiAudioTranscriptionOptions
クラスは、転写を行うときに使用するオプションを提供します。起動時には、spring.ai.openai.audio.transcription
で指定されたオプションが使用されますが、実行時にこれらを上書きできます。
例:
OpenAiAudioApi.TranscriptResponseFormat responseFormat = OpenAiAudioApi.TranscriptResponseFormat.VTT;
OpenAiAudioTranscriptionOptions transcriptionOptions = OpenAiAudioTranscriptionOptions.builder()
.withLanguage("en")
.withPrompt("Ask not this, but ask that")
.withTemperature(0f)
.withResponseFormat(responseFormat)
.build();
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions);
AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest);
手動構成
spring-ai-openai
依存関係をプロジェクトの Maven pom.xml
ファイルに追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-openai'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
次に OpenAiAudioTranscriptionModel
を作成します
var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY"));
var openAiAudioTranscriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi);
var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder()
.withResponseFormat(TranscriptResponseFormat.TEXT)
.withTemperature(0f)
.build();
var audioFile = new FileSystemResource("/path/to/your/resource/speech/jfk.flac");
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions);
AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest);
サンプルコード
OpenAiTranscriptionModelIT.java [GitHub] (英語) テストでは、ライブラリの使用方法に関する一般的な例がいくつか提供されます。