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

コストの最適化

GPT-Live と Realtime API の音声利用量の測定方法とコストの管理方法を解説します。

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

GPT-Live の利用量とコスト

GPT-Live では、音声での会話と、推論やツールの実行を担うバックエンドが分かれています。音声セッションの料金はセッション時間で決まり、バックエンドの料金は使用するモデルとツールで決まるため、それぞれ別に見積もります。

音声セッションの料金

GPT-Live の音声セッションには、現行のモデルの単価が秒単位で適用されます。セッション時間の端数を分単位で切り上げることはありません。

セッションの利用時間には、ユーザーやアシスタントが話している時間のほか、どちらも話していない時間や、バックエンドが処理を行っている時間も含まれます。

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

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

WebRTC の初期化時の料金

POST /v1/live/sessions リクエストで WebRTC セッションを作成すると、初期化時に音声利用時間 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-luna を Fast モードで使用し、互いに依存しないツール呼び出しを並列に実行するとします。この最適化により、ユーザーがタスクを終えて音声セッションを 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 に処理を委任する場合は、バックエンドのレスポンスの usage を、入れ子の response.completed イベントから読み取ります。このイベントは response.event を通じて届きます。レスポンス ID を使ってバックエンドの各レスポンスを 1 回だけ計上し、そのモデルの単価を適用するために必要な入力、出力、キャッシュ済みトークンの内訳を保存してください。アプリケーションが独立してバックエンド処理を実行する場合は、それらのリクエストの利用量も取得します。

代表的な会話をいくつか選び、見積もった総コストと実際の総コストを比較してください。評価のためだけに行うモデル呼び出しはアプリケーションの利用量と区別し、タスクの成否と併せてコストを確認します。