ガイド:ChatGPT APIのトークンとコスト計算
ChatGPT APIは、文字単位でレスポンスを返すServer-Sent Events:サーバー送信イベント(SSE)をサポートしています。SSEはHTTPプロトコルに基づくリアルタイム通信技術で、大規模言語モデル(LLM) APIのテストシナリオで一般的に使用されています。開発者はしばしば、SSEイベントを連結し、トークン数と推定コストを計算する必要があります。この記事では、特定のAIアプリケーションのテストを例に取り、入力と出力の文字数を自動的にトークン値に変換し、1回のAPIテストセッション中にリアルタイムでコストの推定額を計算する方法を示します。前提条件#
テストプロセス中に消費するトークンを計算する前に、大規模モデルプロバイダの課金条件を理解する必要があります。プロセスに使用されたトークン数を記録し、OpenAIの料金表によって相応の通貨に変換する必要があります。この記事では、日本円(JPY)を例として使用しています。
したがって、APIテスト中の質問応答のコストを計算するには、次の2つのステップが含まれます:2. リアルタイム為替レートを使用して、消費トークンの料金を日本円に変換する。トークン数変換ライブラリ#
コンテンツを正確にトークン値に変換するには、サードパーティのトークン変換ライブラリが必要です。次の例では、APIテストプロセス中に入力/出力データをトークン数に変換するために、OpenAI GPT Token Counterライブラリを使用しています。まず、JSファイルを作成して、次のコードを入れます:Node.jsスクリプトの名前をgpt-tokens-counter.jsに変更し、他のプログラミング言語の呼び出しセクションで説明されているように、Apidogの外部プログラムディレクトリに保存します。そして、OpenAI GPT Token Counterをパソコンにインストールする必要があります。このパッケージを次のコマンドでインストールできます。リアルタイム為替レートAPI#
入力と出力のトークン値を取得した後、リアルタイム為替レートAPIを使用して、消費したトークンの料金を日本円(JPY)に変換する必要があります。この記事では、リアルタイム為替レートを取得するために Currencylayer APIを呼び出します。ここからアカウント登録してAPIキーを取得できます。入力のコスト#
入力値をトークンに変換#
入力値は、ユーザーがAIアプリケーションにリクエストを発行するときに入力する質問やプロンプトと理解できます。 そのため、リクエストのbodyからmessagesパラメータのcontent内容を抽出し、カスタムスクリプトを前処理に追加すると、それをトークン値に変換できます。前処理セクションで、入力値をトークンに変換するため、カスタムScriptを追加する必要があります:「送信」ボタンをクリックすると、入力値から変換されたトークンの推定値がコンソールに表示されます。トークンを実際の消費額(JPY)への変換#
入力から消費されたトークンの値を取得した後、リアルタイム為替レートAPIを使用して、USDからJPYへの為替レーどを取得する必要があります。前処理に次のスクリプトを追加します:レスポンスのコスト#
レスポンスの連結#
APIから返されたレスポンスのContent-Typeパラメータにtext/event-streamが含まれる場合、Apidogは自動的に返されたデータをSSEイベントとして解析します。通常、SSEイベントの各返り値には断片的な文字(通常1文字)しか含まれていません。この場合、返されたすべてのコンテンツを完全な文に連結する必要があります。API定義の後処理に移動し、レスポンスコンテンツを抽出し連結を完了するカスタムスクリプトを追加します。リクエスト後、コンソールで完全なレスポンスコンテンツを取得できます。レスポンス内容をトークン値への変換#
完全なレスポンス内容を取得した後、サードパーティのライブラリを使用してそれをトークン値に変換する必要があります。後処理に次のカスタムScriptを追加すると、Apidogが外部のgpt-tokens-counter.jsスクリプト(具体的なスクリプトは「前提条件」の「トークン数変換ライブラリ」部分までご参照)を呼び出してトークン値を取得できます。レスポンスの実際コスト(JPY)#
入力値に消費したトークン値のコストと同様に、レスポンスの実際コスト(JPY)はトークン値に為替レートを乗算することで取得できます。合計コストの推定値#
最後に、入力とレスポンスのコストを足すと、合計コストの推定値が取得されます。加算用のカスタムスクリプトを後処理に追加しましょう。これにより、APIのテストプロセス中に現在のリクエストの実際コストの推定値を知ること ができるようになります。 Modified at 2025-01-20 08:21:59