Realtime API (プレビュー) リファレンス
Note
現在、この機能はパブリック プレビュー段階にあります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
Realtime API は、Azure OpenAI Service とのリアルタイムでの対話を可能にする WebSocket ベースの API です。
(/realtime
を経由する) Realtime API は、WebSockets API をベースにして、エンド ユーザーとモデルの間の完全な非同期ストリーミング通信を実現しています。 オーディオ データのキャプチャやレンダリングなどのデバイスの詳細は、Realtime API の対応範囲外です。 これは、エンド ユーザーへの接続およびモデル エンドポイント接続の両方を管理する、信頼された中間サービスのコンテキスト内で使用する必要があります。 これを信頼されていないエンド ユーザー デバイスから直接使用することは避けてください。
つながり
Realtime API には、サポートされているリージョン内の既存の Azure OpenAI リソース エンドポイントが必要です。 この API へのアクセスは、Azure OpenAI リソースの /realtime
エンドポイントへのセキュアな WebSocket 接続を介して行われます。
完全な要求 URI は、以下のものを連結することで作成できます。
- WebSocket Secure (
wss://
) プロトコル - Azure OpenAI リソース エンドポイント ホスト名 (
my-aoai-resource.openai.azure.com
、など) -
openai/realtime
API パス - サポートされている API バージョンの
api-version
クエリ文字列パラメーター (2024-10-01-preview
、など) -
gpt-4o-realtime-preview
モデル デプロイの名前を含むdeployment
クエリ文字列パラメーター
次に示すのは、適切に構築された /realtime
要求 URI の例です。
wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview-1001
認証
認証する場合:
-
Microsoft Entra (推奨): マネージド ID が有効な Azure OpenAI Service リソースの
/realtime
API で、トークンベースの認証を使用します。Authorization
ヘッダーを含むBearer
トークンを使用して、取得した認証トークンを適用します。 -
API キー:
api-key
は、次の 2 つの方法のいずれかで提供できます。- ハンドシェイク前の接続上で
api-key
接続ヘッダーを使用します。 このオプションはブラウザー環境内では使用できません。 - 要求 URI 上で
api-key
クエリ文字列パラメーターを使用します。 https/wss を使用する場合、クエリ文字列パラメーターは暗号化されます。
- ハンドシェイク前の接続上で
クライアント イベント
クライアントからサーバーに送信できるクライアント イベントには以下の 9 つが存在します。
イベント | 説明 |
---|---|
RealtimeClientEventConversationItemCreate | このクライアント conversation.item.create イベントは、メッセージ、関数呼び出し、関数呼び出し応答など、会話のコンテキストに新しい項目を追加するために使用されます。 |
RealtimeClientEventConversationItemDelete | このクライアント conversation.item.delete イベントは、会話履歴から項目を削除するために使用されます。 |
RealtimeClientEventConversationItemTruncate | このクライアント conversation.item.truncate イベントは、前のアシスタント メッセージのオーディオを切り捨てるのに使用されます。 |
RealtimeClientEventInputAudioBufferAppend | クライアント input_audio_buffer.append イベントは、入力オーディオ バッファーにオーディオ バイトを追加するために使用されます。 |
RealtimeClientEventInputAudioBufferClear | このクライアント input_audio_buffer.clear イベントは、バッファー内のオーディオ バイトをクリアするために使用されます。 |
RealtimeClientEventInputAudioBufferCommit | クライアント input_audio_buffer.commit イベントは、ユーザー入力オーディオ バッファーをコミットするために使用されます。 |
RealtimeClientEventResponseCancel | クライアント response.cancel イベントは、進行中の応答を取り消すために使用されます。 |
RealtimeClientEventResponseCreate | クライアント response.create イベントは、モデル推論を使用して応答を作成するようにサーバーに指示するために使用されます。 |
RealtimeClientEventSessionUpdate | このクライアント session.update イベントは、セッションの既定の構成を更新するために送信します。 |
RealtimeClientEventConversationItemCreate
このクライアント conversation.item.create
イベントは、メッセージ、関数呼び出し、関数呼び出し応答など、会話のコンテキストに新しい項目を追加するために使用されます。 このイベントを使用すると、会話の履歴を設定したり、途中で新しいアイテムを追加したりすることができます。 現時点で、このイベントではアシスタント オーディオ メッセージを設定することはできません。
成功した場合、サーバーは conversation.item.created
イベントで応答し、それ以外の場合は error
イベントが送信されます。
イベント構造
{
"type": "conversation.item.create",
"previous_item_id": "<previous_item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.create にする必要があります。 |
previous_item_id | string | 新しいアイテムが挿入される位置の前のアイテムの ID。 設定されていない場合、新しいアイテムは会話の末尾に追加されます。 設定されている場合、会話の途中にアイテムを挿入することができます。 ID が見つからない場合は、エラーが返され、アイテムは追加されません。 |
item | RealtimeConversationRequestItem | 会話に追加するアイテム。 |
RealtimeClientEventConversationItemDelete
このクライアント conversation.item.delete
イベントは、会話履歴から項目を削除するために使用されます。
会話履歴内に該当アイテムが存在しない場合を除いて、サーバーは conversation.item.deleted
イベントで応答します。存在しない場合、サーバーはエラーで応答します。
イベント構造
{
"type": "conversation.item.delete",
"item_id": "<item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.delete にする必要があります。 |
item_id | string | 削除するアイテムの ID。 |
RealtimeClientEventConversationItemTruncate
このクライアント conversation.item.truncate
イベントは、前のアシスタント メッセージのオーディオを切り捨てるのに使用されます。 サーバーはリアルタイムよりも速くオーディオを生成するため、このイベントは、ユーザーが中断を行って、クライアントに送信済みで未再生のオーディオを切り捨てる際に役に立ちます。 クライアントの再生によるサーバーのオーディオ理解は同期されます。
オーディオを切り捨てると、ユーザーが知らないテキストがコンテキスト内に存在することがないようにするために、サーバー側のテキスト トランスクリプトは削除されます。
このクライアント イベントが成功した場合、サーバーは conversation.item.truncated
イベントで応答します。
イベント構造
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.truncate にする必要があります。 |
item_id | string | 切り捨てるアシスタント メッセージアイテムの ID。 切り捨てることができるのは、アシスタント メッセージ アイテムだけです。 |
content_index | integer | 切り捨てるコンテンツ パーツのインデックス。 このプロパティは "0" に設定します。 |
audio_end_ms | integer | オーディオが切り捨てられる時点までの時間 (ミリ秒単位) audio_end_ms が実際のオーディオの時間よりも大きい場合、サーバーはエラーで応答します。 |
RealtimeClientEventInputAudioBufferAppend
クライアント input_audio_buffer.append
イベントは、入力オーディオ バッファーにオーディオ バイトを追加するために使用されます。 このオーディオ バッファーは、書き込みを行い、後にコミットすることができる一時ストレージです。
サーバー VAD (音声アクティビティ検出) モードでは、この音声バッファーは、音声を検出するために使用され、サーバーがコミットを行うタイミングを判断します。 サーバー VAD が無効になっている場合、クライアントは最大 15 MiB までの各イベントに配置するオーディオの量を選択できます。 たとえば、クライアントから小さいチャンクをストリーミングすると、VAD の応答性が向上する可能性があります。
他のほとんどのクライアント イベントとは異なり、サーバーはクライアント input_audio_buffer.append
イベントに対しては確認応答を送信しません。
イベント構造
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.append にする必要があります。 |
audio | string | Base64 エンコードされたオーディオ バイト。 この値は、セッション構成の input_audio_format フィールドで指定された形式にする必要があります。 |
RealtimeClientEventInputAudioBufferClear
このクライアント input_audio_buffer.clear
イベントは、バッファー内のオーディオ バイトをクリアするために使用されます。
サーバーは input_audio_buffer.cleared
イベントで応答します。
イベント構造
{
"type": "input_audio_buffer.clear"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.clear にする必要があります。 |
RealtimeClientEventInputAudioBufferCommit
このクライアント input_audio_buffer.commit
イベントは、ユーザー入力オーディオ バッファーをコミットするために使用されます。これにより、会話内に新しいユーザー メッセージ アイテムが作成されます。
input_audio_transcription
がセッション用に構成されている場合、オーディオは文字起こしされます。
サーバー VAD モードの場合、クライアントはこのイベントを送信する必要はありません。サーバーはオーディオ バッファーを自動的にコミットします。 サーバー VAD がない場合、クライアントはオーディオ バッファーをコミットしてユーザー メッセージ アイテムを作成する必要があります。 入力オーディオ バッファーが空の場合は、このクライアント イベントによってエラーが生成されます。
入力オーディオ バッファーをコミットしても、モデルからの応答は作成されません。
サーバーは input_audio_buffer.committed
イベントで応答します。
イベント構造
{
"type": "input_audio_buffer.commit"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.commit にする必要があります。 |
RealtimeClientEventResponseCancel
クライアント response.cancel
イベントは、進行中の応答を取り消すために使用されます。
サーバーは、response.cancelled
イベントで応答し、キャンセルする応答がない場合はエラーで応答します。
イベント構造
{
"type": "response.cancel"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.cancel にする必要があります。 |
RealtimeClientEventResponseCreate
クライアント response.create
イベントは、モデル推論を使用して応答を作成するようにサーバーに指示するために使用されます。 セッションがサーバー VAD モードで構成されている場合、サーバーは応答を自動的に作成します。
応答は少なくとも 1 つの item
を含み、2 つのアイテムを含むこともできます。この場合、2 つ目は関数呼び出しです。 これらのアイテムは、会話履歴に追加されます。
サーバーは、response.created
イベント、1 つ以上の項目イベントとコンテンツ イベント (conversation.item.created
や response.content_part.added
など)、最後に応答が完了したことを示す response.done
イベントで応答します。
Note
このクライアント response.create
イベントは、instructions
や temperature
などの推論構成を含みます。 これらのフィールドがオーバーライドには、この応答に関するセッションの構成だけです。
イベント構造
{
"type": "response.create"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.create にする必要があります。 |
応答 | RealtimeResponseOptions | 応答オプション。 |
RealtimeClientEventSessionUpdate
このクライアント session.update
イベントは、セッションの既定の構成を更新するために送信します。 クライアントは、セッション構成を更新するためにこのイベントをいつでも送信でき、音声に関するもの以外のすべてのフィールドは任意のタイミングで更新できます。
存在するフィールドのみが更新されます。 フィールド (instructions
など) をクリアするには、空の文字列を渡します。
サーバーは、構成が完全に有効になったことを示す session.updated
イベントで応答します。
イベント構造
{
"type": "session.update"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は session.update にする必要があります。 |
セッション | RealtimeRequestSession | セッション構成。 |
サーバー イベント
サーバーから受信される可能性があるのは、以下に示す 28 個のサーバー イベントです。
イベント | 説明 |
---|---|
RealtimeServerEventConversationCreated | このサーバー conversation.created イベントは、セッションの作成直後に返されます。 セッションごとに 1 つの会話が作成されます。 |
RealtimeServerEventConversationItemCreated | このサーバー conversation.item.created イベントは、会話アイテムの作成時に返されます。 |
RealtimeServerEventConversationItemDeleted | このサーバー conversation.item.deleted イベントは、クライアントが conversation.item.delete イベントで会話内のアイテムを削除したときに返されます。 |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted | サーバー conversation.item.input_audio_transcription.completed イベントは、オーディオ バッファーに書き込まれた音声の音声文字起こしの結果です。 |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed | このサーバー conversation.item.input_audio_transcription.failed イベントは、入力オーディオの文字起こしが構成されていて、ユーザー メッセージの文字起こし要求が失敗したときに返されます。 |
RealtimeServerEventConversationItemTruncated | このサーバー conversation.item.truncated イベントは、クライアントが先行するアシスタント オーディオ メッセージ アイテムを conversation.item.truncate イベントで切り捨てたときに返されます。 |
RealtimeServerEventError | このサーバー error イベントは、クライアントの問題またはサーバーの問題のいずれかであるエラーが発生したときに返されます。 |
RealtimeServerEventInputAudioBufferCleared | このサーバー input_audio_buffer.cleared イベントは、クライアントが input_audio_buffer.clear イベントで入力オーディオ バッファーをクリアしたときに返されます。 |
RealtimeServerEventInputAudioBufferCommitted | このサーバー input_audio_buffer.committed イベントは、入力オーディオ バッファーが、クライアントによって、あるいはサーバー VAD モードで自動的にコミットされたときに返されます。 |
RealtimeServerEventInputAudioBufferSpeechStarted | このサーバー input_audio_buffer.speech_started イベントは、音声が自動バッファーで検出された場合に server_vad モードで返されます。 |
RealtimeServerEventInputAudioBufferSpeechStopped | このサーバー input_audio_buffer.speech_stopped イベントは、サーバーがオーディオ バッファー内の音声の終了を検出した場合に server_vad モードで返されます。 |
RealtimeServerEventRateLimitsUpdated | このサーバー rate_limits.updated イベントは、更新されたレート制限を示すために応答の開始時に出力されます。 |
RealtimeServerEventResponseAudioDelta | このサーバー response.audio.delta イベントは、モデルによって生成されたオーディオが更新されたときに返されます。 |
RealtimeServerEventResponseAudioDone | このサーバー response.audio.done イベントは、モデルがオーディを生成した際に返されます。 |
RealtimeServerEventResponseAudioTranscriptDelta | このサーバー response.audio_transcript.delta イベントは、モデルによって生成されたオーディオ出力の文字起こしが更新されたときに返されます。 |
RealtimeServerEventResponseAudioTranscriptDone | このサーバー response.audio_transcript.done イベントは、モデルによって生成されたオーディオ出力の文字起こしのストリーミングが完了したときに返されます。 |
RealtimeServerEventResponseContentPartAdded | サーバー response.content_part.added イベントは、新しいコンテンツ パーツがアシスタント メッセージ項目に追加される際に返されます。 |
RealtimeServerEventResponseContentPartDone | サーバー response.content_part.done イベントは、コンテンツ パーツのストリーミングが完了する際に返されます。 |
RealtimeServerEventResponseCreated | このサーバー response.created イベントは、新しい応答が作成されたときに返されます。 これは応答の作成の最初のイベントであり、応答は初期状態である in_progress になっています。 |
RealtimeServerEventResponseDone | このサーバー response.done イベントは、応答のストリーミングが完了すると返されます。 |
RealtimeServerEventResponseFunctionCallArgumentsDelta | このサーバー response.function_call_arguments.delta イベントは、モデルによって生成された関数呼び出し引数が更新されたときに返されます。 |
RealtimeServerEventResponseFunctionCallArgumentsDone | このサーバー response.function_call_arguments.done イベントは、モデルによって生成された関数呼び出し引数のストリーミングが完了したときに返されます。 |
RealtimeServerEventResponseOutputItemAdded | このサーバー response.output_item.added イベントは、応答の生成中に新しいアイテムが作成されたときに返されます。 |
RealtimeServerEventResponseOutputItemDone | このサーバー response.output_item.done イベントは、アイテムのストリーミングが完了すると返されます。 |
RealtimeServerEventResponseTextDelta | このサーバー response.text.delta イベントは、モデル生成テキストが更新されると返されます。 |
RealtimeServerEventResponseTextDone | このサーバー response.text.done イベントは、モデル生成テキストのストリーミングが完了すると返されます。 |
RealtimeServerEventSessionCreated | サーバー session.created イベントは、Realtime API への新しい接続を確立したときの最初のサーバー イベントです。 このイベントは、既定のセッション構成で新しいセッションを作成して返します。 |
RealtimeServerEventSessionUpdated | このサーバー session.updated イベントは、クライアントによってセッションが更新されたときに返されます。 エラーが発生した場合、サーバーは代わりに error イベントを送信します。 |
RealtimeServerEventConversationCreated
このサーバー conversation.created
イベントは、セッションの作成直後に返されます。 セッションごとに 1 つの会話が作成されます。
イベント構造
{
"type": "conversation.created",
"conversation": {
"id": "<id>",
"object": "<object>"
}
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.created にする必要があります。 |
conversation | オブジェクト | 会話リソース。 |
会話プロパティ
フィールド | タイプ | 説明 |
---|---|---|
id | string | 会話の一意の ID。 |
オブジェクト | string | オブジェクトの種類は realtime.conversation である必要があります。 |
RealtimeServerEventConversationItemCreated
このサーバー conversation.item.created
イベントは、会話アイテムの作成時に返されます。 このイベントが生成されるシナリオは、以下のようにいくつか存在します。
- サーバーが応答を生成中であり、それが成功した場合に、種類が
message
(ロールassistant
) またはfunction_call
であるアイテムが 1 つ、または 2 つ生成されます。 - 入力オーディオ バッファーが、クライアントまたはサーバー (
server_vad
モード中) によってコミットされます。 サーバーは入力オーディオ バッファーのコンテンツを受け取り、それを新しいユーザー メッセージ アイテムに追加します。 - クライアントが会話に新しいアイテムを追加するために
conversation.item.create
イベントを送信しました。
イベント構造
{
"type": "conversation.item.created",
"previous_item_id": "<previous_item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.created にする必要があります。 |
previous_item_id | string | 会話コンテキスト内の先行するアイテムの ID であり、クライアントが会話の順序を理解することを可能にします。 |
item | RealtimeConversationResponseItem | 作成されたアイテム。 |
RealtimeServerEventConversationItemDeleted
このサーバー conversation.item.deleted
イベントは、クライアントが conversation.item.delete
イベントで会話内のアイテムを削除したときに返されます。 このイベントは、サーバーによる会話履歴の理解をクライアントのビューと同期するために使用されます。
イベント構造
{
"type": "conversation.item.deleted",
"item_id": "<item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.deleted にする必要があります。 |
item_id | string | 削除されたアイテムの ID。 |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted
サーバー conversation.item.input_audio_transcription.completed
イベントは、オーディオ バッファーに書き込まれた音声の音声文字起こしの結果です。
文字起こしは、入力オーディオ バッファーがクライアントまたはサーバー (server_vad
モード中) によってコミットされたときに開始されます。 文字起こしは応答の作成と非同期的に実行されるため、このイベントは応答イベントの前後のどちらでも発生する可能性があります。
Realtime API モデルはオーディオをネイティブに受け入れるため、入力文字起こしは、別の音声認識モデル (現状では常に whisper-1
) で実行される個別のプロセスです。 したがって、トランスクリプトはモデルの解釈とは多少異なったものになる可能性があり、大まかなガイドとして扱う必要があります。
イベント構造
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.input_audio_transcription.completed にする必要があります。 |
item_id | string | オーディオを含むユーザー メッセージ アイテムの ID。 |
content_index | integer | オーディオを含むコンテンツ パーツのインデックス。 |
transcript | string | 文字起こしされたテキスト。 |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed
このサーバー conversation.item.input_audio_transcription.failed
イベントは、入力オーディオの文字起こしが構成されていて、ユーザー メッセージの文字起こし要求が失敗したときに返されます。 このイベントは、クライアントが関連アイテムを識別できるように、他の error
イベントとは分けられています。
イベント構造
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.input_audio_transcription.failed にする必要があります。 |
item_id | string | ユーザー メッセージ アイテムの ID。 |
content_index | integer | オーディオを含むコンテンツ パーツのインデックス。 |
エラー | オブジェクト | 文字起こしエラーの詳細。 入れ子になったプロパティについては、次の表を参照してください。 |
エラーのプロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | エラーのタイプ。 |
code | string | エラー コード (存在する場合)。 |
message | string | 人間が判読できるエラー メッセージ。 |
param | string | エラーに関連するパラメーター (存在する場合)。 |
RealtimeServerEventConversationItemTruncated
このサーバー conversation.item.truncated
イベントは、クライアントが先行するアシスタント オーディオ メッセージ アイテムを conversation.item.truncate
イベントで切り捨てたときに返されます。 このイベントは、サーバーによるオーディオの理解をクライアントの再生と同期するために使用されます。
このイベントでは、オーディオが切り捨てられ、サーバー側のテキスト トランスクリプトが削除され、ユーザーが知らないコンテキストにテキストが存在しないようにします。
イベント構造
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は conversation.item.truncated にする必要があります。 |
item_id | string | 切り捨てられたアシスタント メッセージ アイテムの ID。 |
content_index | integer | 切り捨てられたコンテンツ パーツのインデックス。 |
audio_end_ms | integer | オーディオが切り捨てられた時点までの時間 (ミリ秒単位)。 |
RealtimeServerEventError
このサーバー error
イベントは、クライアントの問題またはサーバーの問題のいずれかであるエラーが発生したときに返されます。 ほとんどのエラーは回復可能であり、セッションは開いたままとなります。
イベント構造
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は error にする必要があります。 |
エラー | オブジェクト | エラーの詳細。 入れ子になったプロパティについては、次の表を参照してください。 |
エラーのプロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | エラーのタイプ。 たとえば、"invalid_request_error" と "server_error" はエラーの種類です。 |
code | string | エラー コード (存在する場合)。 |
message | string | 人間が判読できるエラー メッセージ。 |
param | string | エラーに関連するパラメーター (存在する場合)。 |
event_id | string | エラーの原因となったクライアント イベントの ID (該当する場合)。 |
RealtimeServerEventInputAudioBufferCleared
このサーバー input_audio_buffer.cleared
イベントは、クライアントが input_audio_buffer.clear
イベントで入力オーディオ バッファーをクリアしたときに返されます。
イベント構造
{
"type": "input_audio_buffer.cleared"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.cleared にする必要があります。 |
RealtimeServerEventInputAudioBufferCommitted
このサーバー input_audio_buffer.committed
イベントは、入力オーディオ バッファーが、クライアントによって、あるいはサーバー VAD モードで自動的にコミットされたときに返されます。
item_id
プロパティは、作成されたユーザー メッセージ アイテムの ID です。 したがって、conversation.item.created
イベントもクライアントに送信されます。
イベント構造
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.committed にする必要があります。 |
previous_item_id | string | 新しいアイテムが挿入される位置の前のアイテムの ID。 |
item_id | string | 作成されたユーザー メッセージ アイテムの ID。 |
RealtimeServerEventInputAudioBufferSpeechStarted
このサーバー input_audio_buffer.speech_started
イベントは、音声が自動バッファーで検出された場合に server_vad
モードで返されます。 このイベントは、オーディオがバッファーに追加された際にいつでも発生する可能性があります (音声が既に検出されている場合を除く)。
Note
クライアントでは、このイベントを使用してオーディオの再生を中断したり、視覚的なフィードバックをユーザーに提供したりする必要がある場合もあります。
クライアントでは、音声が停止したときに input_audio_buffer.speech_stopped
イベントを受け取ることを想定する必要があります。
item_id
プロパティは、音声が停止したときに作成されたユーザー メッセージ アイテムの ID です。
item_id
は、クライアントが VAD アクティブ化中にオーディオ バッファーを手動でコミットしない限り、input_audio_buffer.speech_stopped
イベントにも含まれます。
イベント構造
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.speech_started にする必要があります。 |
audio_start_ms | integer | セッション中にバッファーに書き込まれたすべてのオーディオの開始時点から音声が最初に検出された時点までの時間 (ミリ秒)。 このプロパティは、モデルに送信されるオーディオの先頭に対応するため、セッション内で構成された prefix_padding_ms を含みます。 |
item_id | string | 音声が停止したときに作成されたユーザー メッセージ アイテムの ID。 |
RealtimeServerEventInputAudioBufferSpeechStopped
このサーバー input_audio_buffer.speech_stopped
イベントは、サーバーがオーディオ バッファー内の音声の終了を検出した場合に server_vad
モードで返されます。
また、サーバーは、オーディオ バッファーから作成されたユーザー メッセージ アイテムと共に conversation.item.created
イベントを送信します。
イベント構造
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は input_audio_buffer.speech_stopped にする必要があります。 |
audio_end_ms | integer | セッションの開始から音声が停止したときまでの時間 (ミリ秒)。 このプロパティは、モデルに送信されるオーディオの末尾に対応するため、セッション内で構成された min_silence_duration_ms を含みます。 |
item_id | string | 作成されたユーザー メッセージ アイテムの ID。 |
RealtimeServerEventRateLimitsUpdated
このサーバー rate_limits.updated
イベントは、更新されたレート制限を示すために応答の開始時に出力されます。
応答が作成されると、一部のトークンは出力トークン用に予約されます。 ここで示すレート制限には、その予約が反映され、応答が完了するとそれに応じて調整されます。
イベント構造
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は rate_limits.updated にする必要があります。 |
rate_limits | RealtimeServerEventRateLimitsUpdatedRateLimitsItem の配列 | レート制限情報のリスト。 |
RealtimeServerEventResponseAudioDelta
このサーバー response.audio.delta
イベントは、モデルによって生成されたオーディオが更新されたときに返されます。
イベント構造
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.audio.delta にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
delta | string | Base64 エンコードされたオーディオ データ デルタ。 |
RealtimeServerEventResponseAudioDone
このサーバー response.audio.done
イベントは、モデルがオーディを生成した際に返されます。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.audio.done にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
RealtimeServerEventResponseAudioTranscriptDelta
このサーバー response.audio_transcript.delta
イベントは、モデルによって生成されたオーディオ出力の文字起こしが更新されたときに返されます。
イベント構造
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.audio_transcript.delta にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
delta | string | トランスクリプト デルタ。 |
RealtimeServerEventResponseAudioTranscriptDone
このサーバー response.audio_transcript.done
イベントは、モデルによって生成されたオーディオ出力の文字起こしのストリーミングが完了したときに返されます。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.audio_transcript.done にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
transcript | string | オーディオの最終的なトランスクリプト。 |
RealtimeServerEventResponseContentPartAdded
このサーバー response.content_part.added
イベントは、応答の生成中に新しいコンテンツ パーツがアシスタント メッセージ アイテムに追加されたときに返されます。
イベント構造
{
"type": "response.content_part.added",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.content_part.added にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | コンテンツ パーツが追加されたアイテムの ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
part | RealtimeContentPart | 追加されたコンテンツ パーツ。 |
パーツ プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseContentPartDone
このサーバー response.content_part.done
イベントは、アシスタント メッセージ アイテムでコンテンツ パーツのストリーミングが完了したときに返されます。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.content_part.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.content_part.done にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
part | RealtimeContentPart | 完了しているコンテンツ パーツ。 |
パーツ プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseCreated
このサーバー response.created
イベントは、新しい応答が作成されたときに返されます。 これは応答の作成の最初のイベントであり、応答は初期状態である in_progress
になっています。
イベント構造
{
"type": "response.created"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.created にする必要があります。 |
応答 | RealtimeResponse | 応答オブジェクト。 |
RealtimeServerEventResponseDone
このサーバー response.done
イベントは、応答のストリーミングが完了すると返されます。 このイベントは、最終的な状態に関係なく、常に生成されます。
response.done
イベントに含まれる応答オブジェクトは、応答内のすべての出力アイテムを含んでいますが、生のオーディオ データは含んでいません。
イベント構造
{
"type": "response.done"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.done にする必要があります。 |
応答 | RealtimeResponse | 応答オブジェクト。 |
RealtimeServerEventResponseFunctionCallArgumentsDelta
このサーバー response.function_call_arguments.delta
イベントは、モデルによって生成された関数呼び出し引数が更新されたときに返されます。
イベント構造
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.function_call_arguments.delta にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 関数呼び出しアイテムの ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
call_id | string | 関数呼び出しの ID。 |
delta | string | JSON 文字列としての引数デルタ。 |
RealtimeServerEventResponseFunctionCallArgumentsDone
このサーバー response.function_call_arguments.done
イベントは、モデルによって生成された関数呼び出し引数のストリーミングが完了したときに返されます。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.function_call_arguments.done にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 関数呼び出しアイテムの ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
call_id | string | 関数呼び出しの ID。 |
引数 | string | JSON 文字列としての最後の引数。 |
RealtimeServerEventResponseOutputItemAdded
このサーバー response.output_item.added
イベントは、応答の生成中に新しいアイテムが作成されたときに返されます。
イベント構造
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.output_item.added にする必要があります。 |
response_id | string | アイテムが属する応答の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
item | RealtimeConversationResponseItem | 追加されたアイテム。 |
RealtimeServerEventResponseOutputItemDone
このサーバー response.output_item.done
イベントは、アイテムのストリーミングが完了すると返されます。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.output_item.done にする必要があります。 |
response_id | string | アイテムが属する応答の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
item | RealtimeConversationResponseItem | ストリーミングが行われる項目。 |
RealtimeServerEventResponseTextDelta
このサーバー response.text.delta
イベントは、モデル生成テキストが更新されると返されます。 テキストは、アシスタント メッセージアイテムの text
コンテンツ部分に対応します。
イベント構造
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.text.delta にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
delta | string | テキスト デルタ。 |
RealtimeServerEventResponseTextDone
このサーバー response.text.done
イベントは、モデル生成テキストのストリーミングが完了すると返されます。 テキストは、アシスタント メッセージアイテムの text
コンテンツ部分に対応します。
このイベントは、応答が中断、不完全、または取り消されたときにも返されます。
イベント構造
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は response.text.done にする必要があります。 |
response_id | string | 応答の ID。 |
item_id | string | 項目の ID。 |
output_index | integer | 応答内の出力アイテムのインデックス。 |
content_index | integer | アイテムのコンテンツ配列内のコンテンツ パーツのインデックス。 |
text | string | 最終的なテキスト コンテンツ。 |
RealtimeServerEventSessionCreated
サーバー session.created
イベントは、Realtime API への新しい接続を確立したときの最初のサーバー イベントです。 このイベントは、既定のセッション構成で新しいセッションを作成して返します。
イベント構造
{
"type": "session.created"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は session.created にする必要があります。 |
セッション | RealtimeResponseSession | セッション オブジェクト。 |
RealtimeServerEventSessionUpdated
このサーバー session.updated
イベントは、クライアントによってセッションが更新されたときに返されます。 エラーが発生した場合、サーバーは代わりに error
イベントを送信します。
イベント構造
{
"type": "session.updated"
}
プロパティ
フィールド | タイプ | 説明 |
---|---|---|
type | string | イベントの種類は session.updated にする必要があります。 |
セッション | RealtimeResponseSession | セッション オブジェクト。 |
コンポーネント
RealtimeAudioFormat
使用可能な値:
pcm16
g711_ulaw
g711_alaw
RealtimeAudioInputTranscriptionModel
使用可能な値:
whisper-1
RealtimeAudioInputTranscriptionSettings
フィールド | タイプ | 説明 |
---|---|---|
モデル | RealtimeAudioInputTranscriptionModel | 現在、既定の whisper-1 モデルは、オーディオ入力文字起こしでサポートされている唯一のモデルです。 |
RealtimeClientEvent
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeClientEventType | クライアント イベントの種類。 |
event_id | string | イベントの一意な ID。 クライアントは、イベントの特定に役立つ ID を指定できます。 |
RealtimeClientEventType
使用可能な値:
session.update
input_audio_buffer.append
input_audio_buffer.commit
input_audio_buffer.clear
conversation.item.create
conversation.item.delete
conversation.item.truncate
response.create
response.cancel
RealtimeContentPart
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeContentPartType | コンテンツ タイプ。function オブジェクトのプロパティ。使用できる値: input_text 、input_audio 、item_reference 、text 。 |
text | string | テキスト コンテンツ。 このプロパティは、input_text および text のコンテンツ タイプに適用されます。 |
ID | string | クライアントとサーバーの両方で作成された項目内で参照する、以前の会話項目の ID。 このプロパティは、response.create イベント内の item_reference コンテンツ タイプに適用されます。 |
audio | string | Base64 エンコードされたオーディオ バイト。 このプロパティは、input_audio コンテンツ タイプに適用されます。 |
transcript | string | オーディオのトランスクリプト。 このプロパティは、input_audio コンテンツ タイプに適用されます。 |
RealtimeContentPartType
使用可能な値:
input_text
input_audio
text
audio
RealtimeConversationItemBase
会話に追加するアイテム。
次の表では、すべての RealtimeConversationItem
プロパティについて説明します。 イベントごとに適用されるプロパティは、RealtimeItemType によって異なります。
フィールド | タイプ | 説明 |
---|---|---|
id | string | 項目の一意 ID。 クライアントは、サーバー側コンテキストの管理に役立つ ID を指定できます。 クライアントが ID を指定しない場合は、サーバーによって生成されます。 |
type | RealtimeItemType | 項目の種類。 使用できる値: message 、function_call 、function_call_output |
オブジェクト | string | 返される API オブジェクトの識別子。 値は常に realtime.item になります。 |
status | RealtimeItemStatus | アイテムの状態。 このフィールドは会話には影響しませんが、conversation.item.created イベントとの整合性のために受け入れられます。使用できる値: completed 、 incomplete |
ロール (role) | RealtimeMessageRole | メッセージ送信者のロール。 このプロパティは、message 項目にのみ適用されます。 使用できる値: system 、user 、assistant |
content | RealtimeContentPart の配列 | メッセージのコンテンツ。 このプロパティは、message 項目にのみ適用されます。- ロール system のメッセージ項目では input_text コンテンツのみがサポートされます。- ロール user のメッセージ項目では input_text および input_audio コンテンツがサポートされます。- ロール assistant のメッセージ項目では text コンテンツがサポートされます。 |
call_id | string | 関数呼び出しの ID (function_call および function_call_output 項目の場合)。
function_call_output 項目上で渡された場合、サーバーは、同じ ID の function_call 項目が会話履歴内に存在することを確認します。 |
name | string | 呼び出される関数の名前 (function_call 項目の場合)。 |
引数 | string | 関数呼び出しの引数 (function_call 項目の場合)。 |
output | string | 関数呼び出しの出力 (function_call_output 項目の場合)。 |
RealtimeConversationRequestItem
RealtimeConversationRequestItem
オブジェクトを使用し、conversation.item.create イベントを介して会話内に新しい項目を作成します。
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeItemType | 項目の種類。 |
ID | string | 項目の一意 ID。 クライアントは、サーバー側コンテキストの管理に役立つ ID を指定できます。 クライアントが ID を指定しない場合は、サーバーによって生成されます。 |
RealtimeConversationResponseItem
RealtimeConversationResponseItem
オブジェクトは、会話内の項目を表します。 これは、次のような一部のサーバー イベント内で使用されます。
- conversation.item.created
- response.output_item.added
- response.output_item.done
-
response.created
(response
プロパティ タイプRealtimeResponse
使用) -
response.done
(response
プロパティ タイプRealtimeResponse
使用)
フィールド | タイプ | 内容 |
---|---|---|
object | string | 返される API オブジェクトの識別子。 使用できる値: realtime.item |
type | RealtimeItemType | 項目の種類。 使用できる値: message 、function_call 、function_call_output |
ID | string | 項目の一意 ID。 クライアントは、サーバー側コンテキストの管理に役立つ ID を指定できます。 クライアントが ID を指定しない場合は、サーバーによって生成されます。 このプロパティは Null 許容です。 |
RealtimeFunctionTool
リアルタイム エンドポイントで使用される関数ツールの定義。
フィールド | タイプ | 説明 |
---|---|---|
type | string | ツールの型。 使用できる値: function |
name | string | 関数の名前です。 |
description | string | 使用ガイドラインを含む関数の説明。 たとえば、"この関数を使用して現在の時刻を取得します"。 |
parameters | object | JSON オブジェクト形式の、関数のパラメーター。 |
RealtimeItemStatus
使用可能な値:
in_progress
completed
incomplete
RealtimeItemType
使用可能な値:
message
function_call
function_call_output
RealtimeMessageRole
使用可能な値:
system
user
assistant
RealtimeRequestAssistantMessageItem
フィールド | タイプ | 説明 |
---|---|---|
ロール (role) | string | メッセージのロール。 使用できる値: assistant |
content | RealtimeRequestTextContentPart の配列 | メッセージのコンテンツ。 |
RealtimeRequestAudioContentPart
フィールド | タイプ | 説明 |
---|---|---|
type | string | コンテンツ パーツの種類。 使用できる値: input_audio |
transcript | string | オーディオのトランスクリプト。 |
RealtimeRequestFunctionCallItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: function_call |
name | string | 関数呼び出しアイテムの ID。 |
call_id | string | 関数呼び出しアイテムの ID。 |
引数 | string | 関数呼び出しアイテムの引数。 |
status | RealtimeItemStatus | アイテムの状態。 |
RealtimeRequestFunctionCallOutputItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: function_call_output |
call_id | string | 関数呼び出しアイテムの ID。 |
output | string | 関数呼び出しアイテムの出力。 |
RealtimeRequestMessageItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: message |
ロール (role) | RealtimeMessageRole | メッセージのロール。 |
status | RealtimeItemStatus | アイテムの状態。 |
RealtimeRequestMessageReferenceItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: message |
ID | string | メッセージ項目の ID。 |
RealtimeRequestSession
session.update イベントを介してセッション構成を更新する場合は、RealtimeRequestSession
オブジェクトを使用します。
フィールド | タイプ | 説明 |
---|---|---|
modalities | 配列 | セッションがサポートするモダリティ。 使用できる値: text 、 audio たとえば、 "modalities": ["text", "audio"] は、テキストとオーディオの両方のモダリティを有効にする既定の設定です。 テキストのみを有効にするには、"modalities": ["text"] を有効にする設定します。 オーディオのみを有効にすることはできません。 |
instructions | string | モデルのテキストとオーディオの応答をガイドする命令 (システム メッセージ)。 テキストとオーディオの応答のコンテンツと形式をガイドするための手順の例を次に示します: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" オーディオ動作のガイドに役立つ手順の例を次に示します: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" モデルは常にこれらの手順に従っているわけではありませんが、目的の動作に関するガイダンスを提供します。 |
voice | RealtimeVoice | セッションのモデル応答に使用される音声で。 モデルのオーディオ応答のセッションで音声を使用した後は、変更できません。 |
input_audio_format | RealtimeAudioFormat | 入力オーディオの形式。 |
output_audio_format | RealtimeAudioFormat | 出力オーディオの形式。 |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | オーディオ入力文字起こしの設定。 このプロパティは Null 許容です。 |
turn_detection | RealtimeTurnDetection | セッションのターン検出設定。 このプロパティは Null 許容です。 |
tools | RealtimeTool の配列 | セッションのモデルで使用できるツール。 |
tool_choice | RealtimeToolChoice | セッションのためのツールの選択。 使用できる値: auto 、none 、および required 。 それ以外の場合は、使用する関数の名前を指定できます。 |
temperature | 数値 | モデルのサンプリング温度。 許容される温度値は [0.6, 1.2] に制限されます。 既定値は 0.8 です。 |
max_response_output_tokens | integer または "inf" | 単一のアシスタント応答の出力トークンの最大数 (ツール呼び出しを含む)。 出力トークンを制限するには、1 ~ 4096 の整数を指定します。 それ以外の場合は、値を "inf" に設定して、トークンの最大数を許可します。 たとえば、出力トークンを 1000 に制限するには、 "max_response_output_tokens": 1000 を設定します。 トークンの最大数を許可するには、"max_response_output_tokens": "inf" を設定します。既定値は "inf" です。 |
RealtimeRequestSystemMessageItem
フィールド | タイプ | 説明 |
---|---|---|
ロール (role) | string | メッセージのロール。 使用できる値: system |
content | RealtimeRequestTextContentPart の配列 | メッセージのコンテンツ。 |
RealtimeRequestTextContentPart
フィールド | タイプ | 説明 |
---|---|---|
type | string | コンテンツ パーツの種類。 使用できる値: input_text |
text | string | テキスト コンテンツ。 |
RealtimeRequestUserMessageItem
フィールド | タイプ | 説明 |
---|---|---|
ロール (role) | string | メッセージのロール。 使用できる値: user |
content | RealtimeRequestTextContentPart または RealtimeRequestAudioContentPart の配列 | メッセージのコンテンツ。 |
RealtimeResponse
フィールド | タイプ | 内容 |
---|---|---|
object | string | 応答オブジェクト。 使用できる値: realtime.response |
ID | string | 応答の一意の ID。 |
status | RealtimeResponseStatus | 応答の状態。 既定の状態値は in_progress です。 |
status_details | RealtimeResponseStatusDetails | 応答状態の詳細。 このプロパティは Null 許容です。 |
output | RealtimeConversationResponseItem の配列 | 応答の出力項目。 |
使用量 | オブジェクト | 応答の使用状況の統計情報。 各 Realtime API セッションは、会話コンテキストを維持し、新しい項目を会話に追加します。 前のターン (テキストおよびオーディオ トークン) からの出力は、後のターンで入力されます。 入れ子になった次のプロパティを参照してください。 |
+ total_tokens | integer | 入力および出力テキストおよびオーディオ トークンを含む、応答内のトークンの合計数。usage オブジェクトのプロパティ。 |
+ input_tokens | integer | テキスト トークンとオーディオ トークンを含む、応答で使用される入力トークンの数。usage オブジェクトのプロパティ。 |
+ output_tokens | integer | テキスト トークンとオーディオ トークンを含む、応答で送信された出力トークンの数。usage オブジェクトのプロパティ。 |
+ input_token_details | オブジェクト | 応答で使用される入力トークンの詳細。usage オブジェクトのプロパティ。br> 入れ子になった次のプロパティを参照してください。 |
+ cached_tokens | integer | 応答で使用されるキャッシュされたトークンの数。input_token_details オブジェクトのプロパティ。 |
+ text_tokens | integer | 応答で使用されるテキスト トークンの数。input_token_details オブジェクトのプロパティ。 |
+ audio_tokens | integer | 応答で使用されるオーディオ トークンの数。input_token_details オブジェクトのプロパティ。 |
+ output_token_details | オブジェクト | 応答で使用される出力トークンの詳細。usage オブジェクトのプロパティ。入れ子になった次のプロパティを参照してください。 |
+ text_tokens | integer | 応答で使用されるテキスト トークンの数。output_token_details オブジェクトのプロパティ。 |
+ audio_tokens | integer | 応答で使用されるオーディオ トークンの数。output_token_details オブジェクトのプロパティ。 |
RealtimeResponseAudioContentPart
フィールド | タイプ | 説明 |
---|---|---|
type | string | コンテンツ パーツの種類。 使用できる値: audio |
transcript | string | オーディオのトランスクリプト。 このプロパティは Null 許容です。 |
RealtimeResponseBase
応答リソース。
RealtimeResponseFunctionCallItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: function_call |
name | string | 関数呼び出しアイテムの ID。 |
call_id | string | 関数呼び出しアイテムの ID。 |
引数 | string | 関数呼び出しアイテムの引数。 |
status | RealtimeItemStatus | アイテムの状態。 |
RealtimeResponseFunctionCallOutputItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: function_call_output |
call_id | string | 関数呼び出しアイテムの ID。 |
output | string | 関数呼び出しアイテムの出力。 |
RealtimeResponseMessageItem
フィールド | タイプ | 説明 |
---|---|---|
type | string | 項目の種類。 使用できる値: message |
ロール (role) | RealtimeMessageRole | メッセージのロール。 |
content | 配列 | メッセージのコンテンツ。 配列項目: RealtimeResponseTextContentPart |
status | RealtimeItemStatus | アイテムの状態。 |
RealtimeResponseOptions
フィールド | タイプ | 説明 |
---|---|---|
modalities | 配列 | セッションがサポートするモダリティ。 使用できる値: text 、 audio たとえば、 "modalities": ["text", "audio"] は、テキストとオーディオの両方のモダリティを有効にする既定の設定です。 テキストのみを有効にするには、"modalities": ["text"] を有効にする設定します。 オーディオのみを有効にすることはできません。 |
instructions | string | モデルのテキストとオーディオの応答をガイドする命令 (システム メッセージ)。 テキストとオーディオの応答のコンテンツと形式をガイドするための手順の例を次に示します: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" オーディオ動作のガイドに役立つ手順の例を次に示します: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" モデルは常にこれらの手順に従っているわけではありませんが、目的の動作に関するガイダンスを提供します。 |
voice | RealtimeVoice | セッションのモデル応答に使用される音声で。 モデルのオーディオ応答のセッションで音声を使用した後は、変更できません。 |
output_audio_format | RealtimeAudioFormat | 出力オーディオの形式。 |
tools | RealtimeTool の配列 | セッションのモデルで使用できるツール。 |
tool_choice | RealtimeToolChoice | セッションのためのツールの選択。 |
temperature | 数値 | モデルのサンプリング温度。 許容される温度値は [0.6, 1.2] に制限されます。 既定値は 0.8 です。 |
max__output_tokens | integer または "inf" | 単一のアシスタント応答の出力トークンの最大数 (ツール呼び出しを含む)。 出力トークンを制限するには、1 ~ 4096 の整数を指定します。 それ以外の場合は、値を "inf" に設定して、トークンの最大数を許可します。 たとえば、出力トークンを 1000 に制限するには、 "max_response_output_tokens": 1000 を設定します。 トークンの最大数を許可するには、"max_response_output_tokens": "inf" を設定します。既定値は "inf" です。 |
conversation | string | 応答を追加する会話を制御します。 サポートされている値は auto と none です。auto 値 (またはこのプロパティを設定しない) により、応答の内容が確実にセッションの既定の会話に追加されます。このプロパティを none に設定すると、既定の会話に項目が追加されない、帯域外応答が作成されます。 詳細については、「攻略ガイド」をご覧ください。既定値は "auto" です |
metadata | map | オブジェクトにアタッチできる最大 16 組のキーと値のペアのセット。 これは、オブジェクトに関する追加情報を構造化された形式で格納する場合に役立ちます。 キーの最大長は 64 文字、値の最大長は 512 文字です。 例: metadata: { topic: "classification" } |
input | 配列 | モデルのプロンプト内に含める入力項目。 既定の会話を含めずに、この応答の新しいコンテキストを作成します。 既定の会話の項目への参照を含めることができます。 配列項目: RealtimeConversationItemBase |
RealtimeResponseSession
RealtimeResponseSession
オブジェクトは、Realtime API 内のセッションを表します。 これは、次のような一部のサーバー イベント内で使用されます。
フィールド | タイプ | 内容 |
---|---|---|
object | string | セッション オブジェクト。 使用できる値: realtime.session |
ID | string | セッションの一意の ID。 |
モデル | string | セッションに使用されるモデル。 |
modalities | 配列 | セッションがサポートするモダリティ。 使用できる値: text 、 audio たとえば、 "modalities": ["text", "audio"] は、テキストとオーディオの両方のモダリティを有効にする既定の設定です。 テキストのみを有効にするには、"modalities": ["text"] を有効にする設定します。 オーディオのみを有効にすることはできません。 |
instructions | string | モデルのテキストとオーディオの応答をガイドする命令 (システム メッセージ)。 テキストとオーディオの応答のコンテンツと形式をガイドするための手順の例を次に示します: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" オーディオ動作のガイドに役立つ手順の例を次に示します: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" モデルは常にこれらの手順に従っているわけではありませんが、目的の動作に関するガイダンスを提供します。 |
voice | RealtimeVoice | セッションのモデル応答に使用される音声で。 モデルのオーディオ応答のセッションで音声を使用した後は、変更できません。 |
input_audio_format | RealtimeAudioFormat | 入力オーディオの形式。 |
output_audio_format | RealtimeAudioFormat | 出力オーディオの形式。 |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | オーディオ入力文字起こしの設定。 このプロパティは Null 許容です。 |
turn_detection | RealtimeTurnDetection | セッションのターン検出設定。 このプロパティは Null 許容です。 |
tools | RealtimeTool の配列 | セッションのモデルで使用できるツール。 |
tool_choice | RealtimeToolChoice | セッションのためのツールの選択。 |
temperature | 数値 | モデルのサンプリング温度。 許容される温度値は [0.6, 1.2] に制限されます。 既定値は 0.8 です。 |
max_response_output_tokens | integer または "inf" | 単一のアシスタント応答の出力トークンの最大数 (ツール呼び出しを含む)。 出力トークンを制限するには、1 ~ 4096 の整数を指定します。 それ以外の場合は、値を "inf" に設定して、トークンの最大数を許可します。 たとえば、出力トークンを 1000 に制限するには、 "max_response_output_tokens": 1000 を設定します。 トークンの最大数を許可するには、"max_response_output_tokens": "inf" を設定します。 |
RealtimeResponseStatus
使用可能な値:
in_progress
completed
cancelled
incomplete
failed
RealtimeResponseStatusDetails
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeResponseStatus | 応答の状態。 |
RealtimeResponseTextContentPart
フィールド | タイプ | 説明 |
---|---|---|
type | string | コンテンツ パーツの種類。 使用できる値: text |
text | string | テキスト コンテンツ。 |
RealtimeServerEvent
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeServerEventType | サーバー イベントの種類。 |
event_id | string | サーバー イベントの一意の ID。 |
RealtimeServerEventRateLimitsUpdatedRateLimitsItem
フィールド | タイプ | 説明 |
---|---|---|
name | string | このアイテムに含まれる情報の対象となるレート制限プロパティの名前。 |
リミット | integer | このレート制限プロパティに対して構成された上限値。 |
残っています | integer | このレート制限プロパティに対して構成された上限までの残りの利用可能なクォータ。 |
reset_seconds | 数値 | このレート制限プロパティがリセットされるまでの残りの時間 (秒単位)。 |
RealtimeServerEventType
使用可能な値:
session.created
session.updated
conversation.created
conversation.item.created
conversation.item.deleted
conversation.item.truncated
response.created
response.done
rate_limits.updated
response.output_item.added
response.output_item.done
response.content_part.added
response.content_part.done
response.audio.delta
response.audio.done
response.audio_transcript.delta
response.audio_transcript.done
response.text.delta
response.text.done
response.function_call_arguments.delta
response.function_call_arguments.done
input_audio_buffer.speech_started
input_audio_buffer.speech_stopped
conversation.item.input_audio_transcription.completed
conversation.item.input_audio_transcription.failed
input_audio_buffer.committed
input_audio_buffer.cleared
error
RealtimeServerVadTurnDetection
フィールド | タイプ | 説明 |
---|---|---|
type | string | ターン検出の種類。 使用できる値: server_vad |
しきい値 | 数値 | サーバー VAD ターン検出のアクティブ化しきい値。 ノイズの多い環境では、偽陽性を回避するためにしきい値を増やす必要がある場合があります。 静かな環境では、偽陰性を回避するためにしきい値を減らす必要がある場合があります。 既定値は 0.5 です。 しきい値は、0.0 と 1.0 の間の値に設定できます。 |
prefix_padding_ms | string | 検出された音声の開始前に含める音声オーディオの期間 (ミリ秒)。 既定値は 300 です。 |
silence_duration_ms | string | 音声の終了を検出する無音時間 (ミリ秒)。 できるだけ早く音声の終了を検出する必要がありますが、音声の最後の部分を切り離すのを避けるには早すぎないようにする必要があります。 この値を小さい数値に設定すると、モデルの応答が速くなりますが、音声の最後の部分が切れる可能性があります。 この値を大きい数値に設定すると、モデルは音声の終了を検出するまで長く待ちますが、応答に時間がかかる場合があります。 |
RealtimeSessionBase
リアルタイム セッション オブジェクトの構成。
RealtimeTool
リアルタイム ツール定義の基本表現。
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeToolType | ツールの型。 |
RealtimeToolChoice
'auto' などの文字列リテラル オプションと定義済みツールへの構造化参照の両方を含む、リアルタイム tool_choice
パラメーターに対して使用可能な表現の組み合わせのセット。
RealtimeToolChoiceFunctionObject
名前付き関数ツールを選択するリアルタイム tool_choice
の表現。
フィールド | タイプ | 説明 |
---|---|---|
type | string |
tool_choice の型。使用できる値: function |
関数 | オブジェクト | 選択する関数ツール。 入れ子になった次のプロパティを参照してください。 |
+ name | string | 関数ツールの名前。function オブジェクトのプロパティ。 |
RealtimeToolChoiceLiteral
リアルタイム エンドポイントで使用可能なモードレベルの、文字列リテラル tool_choice
オプションのセット。
使用可能な値:
auto
none
required
RealtimeToolChoiceObject
名前付きツールを選択するリアルタイム tool_choice
の基本表現。
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeToolType |
tool_choice の型。 |
RealtimeToolType
リアルタイム ツールでサポートされているツールの種類の識別子。 現時点でサポートされているのは、"function" ツールだけです。
使用可能な値:
function
RealtimeTurnDetection
フィールド | タイプ | 説明 |
---|---|---|
type | RealtimeTurnDetectionType | ターン検出の種類。 使用できる値: server_vad |
しきい値 | 数値 | サーバー VAD ターン検出のアクティブ化しきい値。 ノイズの多い環境では、偽陽性を回避するためにしきい値を増やす必要がある場合があります。 静かな環境では、偽陰性を回避するためにしきい値を減らす必要がある場合があります。 既定値は 0.5 です。 しきい値は、0.0 と 1.0 の間の値に設定できます。 |
prefix_padding_ms | string | 検出された音声の開始前に含める音声オーディオの期間 (ミリ秒)。 既定値は 300 ミリ秒。 |
silence_duration_ms | string | 音声の終了を検出する無音時間 (ミリ秒)。 できるだけ早く音声の終了を検出する必要がありますが、音声の最後の部分を切り離すのを避けるには早すぎないようにする必要があります。 この値を小さい数値に設定すると、モデルの応答が速くなりますが、音声の最後の部分が切れる可能性があります。 この値を大きい数値に設定すると、モデルは音声の終了を検出するまで長く待ちますが、応答に時間がかかる場合があります。 既定値は 500 ミリ秒。 |
create_response | boolean | VAD が有効で音声が停止した際に、サーバーが応答を自動的に作成するかどうかを示します。 既定値は true です。 |
RealtimeTurnDetectionType
使用可能な値:
server_vad
RealtimeVoice
使用可能な値:
alloy
ash
ballad
coral
echo
sage
shimmer
verse
関連するコンテンツ
- Realtime API のクイックスタートを使用して作業を開始する。
- Realtime API の使用方法の詳細を確認する。