次の方法で共有


Realtime API (プレビュー) リファレンス

Note

現在、この機能はパブリック プレビュー段階にあります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

Realtime API は、Azure OpenAI Service とのリアルタイムでの対話を可能にする WebSocket ベースの API です。

(/realtime を経由する) Realtime API は、WebSockets API をベースにして、エンド ユーザーとモデルの間の完全な非同期ストリーミング通信を実現しています。 オーディオ データのキャプチャやレンダリングなどのデバイスの詳細は、Realtime 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.createdresponse.content_part.added など)、最後に応答が完了したことを示す response.done イベントで応答します。

Note

このクライアント response.create イベントは、instructionstemperature などの推論構成を含みます。 これらのフィールドがオーバーライドには、この応答に関するセッションの構成だけです。

イベント構造

{
  "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_textinput_audioitem_referencetext
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 項目の種類。

使用できる値: messagefunction_callfunction_call_output
オブジェクト string 返される API オブジェクトの識別子。 値は常に realtime.item になります。
status RealtimeItemStatus アイテムの状態。 このフィールドは会話には影響しませんが、conversation.item.created イベントとの整合性のために受け入れられます。

使用できる値: completedincomplete
ロール (role) RealtimeMessageRole メッセージ送信者のロール。 このプロパティは、message 項目にのみ適用されます。

使用できる値: systemuserassistant
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 オブジェクトは、会話内の項目を表します。 これは、次のような一部のサーバー イベント内で使用されます。

フィールド タイプ 内容
object string 返される API オブジェクトの識別子。

使用できる値: realtime.item
type RealtimeItemType 項目の種類。

使用できる値: messagefunction_callfunction_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 配列 セッションがサポートするモダリティ。

使用できる値: textaudio

たとえば、"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 セッションのためのツールの選択。

使用できる値: autonone、および 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 配列 セッションがサポートするモダリティ。

使用できる値: textaudio

たとえば、"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 応答を追加する会話を制御します。 サポートされている値は autonone です。

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 配列 セッションがサポートするモダリティ。

使用できる値: textaudio

たとえば、"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.01.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.01.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