For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション

コストの最適化

GPT-Live と Realtime API の音声使用量を把握し、コストを管理する方法を説明します。

使用する API を選択して、使用量の計測方法と音声アプリケーションのコストを管理する方法を確認してください。

GPT-Live の使用量とコスト

GPT-Live では、音声会話と、推論やツールの実行を担うバックエンドが分離されています。音声セッションのコストは時間に応じて、バックエンドのコストは使用するモデルやツールに応じて決まるため、この 2 つは個別に見積もります。

音声セッションのコスト

GPT-Live の音声セッションは、現在のモデル料金に基づき、秒単位で課金されます。セッション時間が分単位に切り上げられることはありません。

アクティブなセッション時間には、ユーザーが話している時間、アシスタントが話している時間、双方が無言の時間、バックエンドが処理している時間が含まれます。

見積もりでは、セッションの開始から終了までのアクティブな時間を計上します。再生する音声の長さだけを測るのではなく、API が報告する時間を使用してください。マイク入力をミュートしてもセッションは終了しません。会話が終わったら、セッションを終了し、最終的な使用量を取得します。

バックエンドのモデルとツールの料金については、API の料金を参照してください。

WebRTC の初期化料金

WebRTC セッションを作成する POST /v1/live/sessions リクエストでは、セッションの初期化時に音声時間 15 秒分が課金されます。この金額は、セッションの実行開始後に時間に応じた料金から差し引かれます。コストを見積もる際は、実行中のセッション時間にさらに 15 秒を加算しないでください。

たとえば、以下の 90 秒のセッションには、初期化時に課金される 15 秒がすでに含まれています。105 秒分として課金されるわけではありません。再接続や、ユーザーが話す準備を整える前にセッションを作成するアプリケーションを評価する際は、セッション作成時の料金を考慮してください。

バックエンドのコスト

バックエンドの呼び出しは、音声を使用しないアプリケーションと同様に、音声セッションとは別に課金されます。モデルの入力・出力トークン、対応している場合はキャッシュ済み入力、該当する画像やツールの料金を含めてください。アプリケーションがほかのサービスを呼び出す場合は、そのコストも見積もりに含めます。

バックエンドの処理は、音声フロントエンドとは別に最適化できます。 一般的なコスト最適化ガイドを参考に、リクエスト数とトークン使用量を削減してください。 対応するバックエンドモデルでは、プロンプトキャッシュを活用できます。 再利用できる指示、ツール定義など、内容が変わらない情報を プロンプトの先頭に配置してください。

バックエンドの選択によって、会話の長さも変わる場合があります。最適化によってユーザーの待ち時間が長くなる場合や、アシスタントがタスクを完了する確実性が変わる場合は、音声とバックエンドを合わせたコストを比較してください。

会話コストの見積もり

音声セッションが 1 つの会話では、次のように計算します。

総コスト =(課金対象の音声秒数 ÷ 60 × 音声の 1 分あたりの料金)+ バックエンドのコスト

たとえば、音声料金を仮に 1 分あたり $0.05 とすると、90 秒の音声セッションのコストは $0.075 です。バックエンドのモデルとツールのコストが合計 $0.02 の場合、会話のコストは $0.095 になります。

項目計算コスト
音声セッション90 秒 ÷ 60 × $0.05$0.075
バックエンドの処理モデルとツールの合計コスト$0.02
会話の合計$0.075 + $0.02$0.095

上記の料金とバックエンドのコストは例です。実際には、現在の音声料金、計測したバックエンド使用量、適用されるモデルとツールの料金を使用してください。タスクが複数の音声セッションにまたがる場合は、それぞれの時間を合算し、セッション間に行われたバックエンド処理も含めます。

最適化の方法

不要な会話や待ち時間を減らし、ユーザーがタスクを完了できるようにすることに重点を置きます。タスクに必要な確認やチェックは維持してください。

セッション開始前の関連コンテキストの提供

音声セッションを開始する前に、アプリケーションがすでに使用許可を得ている情報を集めます。たとえば、注文に関するサポートを行うアシスタントは、注文番号と現在の状況を把握した状態で会話を始められます。これにより、ユーザーは同じ情報を繰り返したり、再照会を待ったりする必要がなくなります。

このコンテキストは最新の状態に保ち、タスクに関連する内容に絞ります。 音声モデルには会話に必要な情報を渡し、詳細な記録やワークフローはバックエンドで管理してください。 セッションの構成委任とツールを参照してください。

ツールの待ち時間の短縮

待ち時間を短くすると、ユーザー体験の向上と音声セッションのコスト削減につながります。 たとえば、バックエンドで gpt-5.6-lunaFast モードで使用し、独立したツール呼び出しを並列に実行するとします。 こうした最適化によってユーザーが作業を終え、音声セッションを 1 分早く終了できれば、 音声料金を $0.05 削減できます。 バックエンドの追加コストがこの削減額を下回れば、総コストも下がります。

委任イベントが届く前に、文字起こしの断片から先読みで照会を開始することもできます。 バックエンドのコストを計測する際は、 結果が使われなかった先読み処理も含めてください。

モデル、接続、ストリーミング、ツールの最適化については、バックエンドのレイテンシの削減を参照してください。 音声エージェントの評価を使って、有用な音声応答が得られるまでの時間と タスクの成功を検証します。

長時間タスク中のセッション終了

音声フロントエンドとアプリケーションが管理するバックエンドは、独立して実行できます。 クライアント委任を使うと、音声セッションが開いていても閉じていても、 バックエンドワーカーは実行を続けられます。 音声セッションを終了する前に、タスクの状態と会話のコンテキストを保存してください。

アンビエントエージェントでは、ゴールモードでのコーディングなど、 長時間のタスクをバックエンドが処理している間は音声セッションを終了します。 会話を再開 というラベルのボタンを用意して、ユーザーが戻ったときに新しい音声セッションを開始できるようにします。 または、バックエンドの完了イベントを使って新しいセッションを開始し、 結果が用意できたことをユーザーに通知します。

保存したコンテキストと検証済みのタスク結果を input に含めて 新しいセッションを開始し、会話を復元します。たとえば、 新しい WebSocket 接続を介して、次の開始イベントを送信します。

{
  "type": "session.start",
  "session": {
    "model": "gpt-live-1",
    "instructions": "Help the user review completed work and delegate follow-up tasks.",
    "input": [
      {
        "type": "message",
        "role": "developer",
        "content": [
          {
            "type": "input_text",
            "text": "Saved task: add CSV export. Result: code is ready for review."
          }
        ]
      }
    ],
    "delegation": { "type": "client" }
  }
}

session.started を受信してから、音声のストリーミングを開始してください。 サポートされる履歴形式については、過去の会話を使ったセッションの初期化を 参照してください。

以前のセッションが store: true で保存されていれば、そのセッションをフォークすることもできます。どちらの方法を使う場合も、検証済みのバックエンドのタスク状態はアプリケーション内に保持してください。

セッションを終了すると、音声を使用しない待機時間 1 分あたり $0.05 を削減できます。この削減額を、再接続のコストやユーザー体験が中断される影響と比較してください。

適切なバックエンドモデルの選択

まず、タスクの精度と信頼性の要件を満たすモデルを選びます。 次に、音声時間、モデル使用量、ツール呼び出し、 再試行を含む会話の総コストを比較します。モデル選択ガイドでは、 これらのトレードオフのバランスを取る方法を説明しています。

大規模なバックエンドモデルでも、タスクをより速く完了し、音声セッションのコスト削減額が追加のトークンコストを上回れば、全体のコストを抑えられます。一方、安価なモデルでも、処理に時間がかかる、ツール呼び出しを繰り返す、タスクに失敗するといった場合は、全体のコストが高くなることがあります。

成功したタスク 1 件あたりのコストを、完了率や完了までの時間と合わせて比較してください。完了した作業が少ないために安価な構成のほうが優れて見えることのないよう、失敗した試行や再試行も合計に含めます。比較を計画する際は、音声エージェント評価の Cookbookを活用してください。

実際の使用量の監視

セッションごとに、音声時間とバックエンド使用量を別々に記録します。GPT-Live は、累積音声時間を秒単位で報告します。

{
  "type": "session.usage.updated",
  "event_id": "event_usage_1",
  "usage": { "seconds": 12 },
  "context_window": { "usage_ratio": 0.42 }
}

更新のたびに、前回の時間のスナップショットが置き換えられます。スナップショットの値を合算しないでください。 session.close を送信した後は、session.closed を受信するまでイベントの受信を続け、 その最終的な usage.seconds を 1 回だけ記録します。 正常終了の手順に従い、 切断前にアプリケーションが最終的な使用量を取得できるようにしてください。

Responses 委任では、response.event を介して配信される、ネストされた response.completed イベントからバックエンド応答の usage を読み取ります。 応答 ID を使って各バックエンド応答を 1 回だけ計上し、 そのモデルの料金を適用するために必要な入力・出力・キャッシュ済みトークンの詳細を保持します。 アプリケーションが独立して実行するバックエンド処理についても、それらのリクエストから使用量を取得してください。

代表的な会話について、見積もりと実際の合計を比較します。評価専用のモデル呼び出しはアプリケーションの使用量と分けて管理し、タスクの成功とコストを合わせて確認してください。