すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:リアルタイム マルチモーダル インタラクション フロー

最終更新日:Aug 26, 2026

このトピックでは、サーバーとクライアント間のリアルタイム マルチモーダル インタラクション フローについて説明します。

VAD モード

VAD モードを有効にするには、クライアント イベント の session.turn_detection パラメーターを "server_vad" に設定します。このモードでは、サーバーが受信したオーディオに対して音声アクティビティ検出 (VAD) を実行し、発話を検出すると応答します。このモードはデフォルトであり、クライアントがサーバーにオーディオを継続的に送信するシナリオ向けに設計されています。

server_vad

  • サーバーは、発話の開始を検出すると input_audio_buffer.speech_started イベントを送信します。
  • クライアントは、input_audio_buffer.append イベントを送信して、いつでもバッファーにオーディオを追加できます。
  • サーバーは、発話の終了を検出すると input_audio_buffer.speech_stopped イベントを送信します。
  • サーバーは、input_audio_buffer.committed イベントを送信して入力オーディオ バッファーをコミットします。
  • サーバーは conversation.item.created イベントを送信します。このイベントには、オーディオ バッファーから作成されたユーザーメッセージ アイテムが含まれます。

ツール呼び出しフロー

VAD モードでは、サーバーが生成した応答にツール呼び出しが必要な場合、次のインタラクション フローとなります:

image.svg

  • サーバーは、発話の終了を検出して応答を生成した後、ツール呼び出しが必要であると判断します。
  • サーバーは response.function_call_arguments.delta イベントを送信します。このイベントには、ツール呼び出しの引数に関する増分データが含まれます。
  • サーバーは response.function_call_arguments.done イベントを送信して、ツール呼び出しの引数がすべて送信されたことを示します。
  • クライアントはツール呼び出しを実行し、結果を取得します。
  • クライアントは、ツール呼び出し結果を含む conversation.item.create イベントを送信します。
  • サーバーは、ツール呼び出し結果に基づいて自動的に応答を生成します。

手動モード

手動モードを有効にするには、クライアント イベント の session.turn_detection パラメーターを null に設定します。このモードでは、クライアントは input_audio_buffer.commit および response.create イベントを明示的に送信することで、サーバーの応答を要求します。このモードは、チャットアプリケーションで音声メッセージを送信するなど、プッシュツートークのシナリオに適しています。

manual

  • クライアントは、input_audio_buffer.append イベントを送信して、バッファーにオーディオを追加できます。
  • クライアントは、input_audio_buffer.commit イベントを送信して入力オーディオ バッファーをコミットします。このコミットにより、会話内に新しいユーザーメッセージ アイテムが作成されます。
  • サーバーは応答として input_audio_buffer.committed イベントを送信します。
  • クライアントは response.create イベントを送信して、モデルが最終的な応答を生成するようにトリガーします。
  • サーバーは応答を生成し、response.text.delta または response.audio.delta イベントでクライアントに送信します。

ツール呼び出しフロー

image.svg

手動モードでは、サーバーが生成した応答にツール呼び出しが必要な場合、次のインタラクション フローとなります:

  • クライアントが response.create イベントを送信した後、サーバーは応答を生成し、ツール呼び出しが必要であることを検出します。
  • サーバーは response.function_call_arguments.delta イベントを送信します。このイベントには、ツール呼び出しの引数に関する増分データが含まれます。
  • サーバーは response.function_call_arguments.done イベントを送信して、ツール呼び出しの引数の転送が完了したことを示します。
  • クライアントはツール呼び出しを実行し、結果を取得します。
  • クライアントは conversation.item.create イベントでツール呼び出し結果を送信します。
  • クライアントは response.create イベントを送信して、モデルが最終的な応答を生成するようにトリガーします。
  • サーバーはツール呼び出し結果に基づいて応答を生成し、response.audio.delta または response.text.delta イベントでクライアントに送信します。