0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenAI: GPT-4o mini の料金計算ロジック

Last updated at Posted at 2025-04-03

この文書について

非エンジニアの方に説明する機会があったので、記録しておきます。

■ OpenAI の料金表はこちら
https://openai.com/ja-JP/api/pricing/

今回は、「GPT-4o mini」を計算します
※ 2025.4.3 時点の料金

  • 入力:$0.150 / 100万トークン
  • 出力:$0.600 / 100万トークン

初心者の方向けに詳しく書くと、

  • 入力は、プロンプト(命令書)の文字量
  • 出力は、レスポンス(回答)の文字量
  • チャット1回 = 入力 + 出力 です

まず日本語1文字に何トークンを消費するか

日本語におけるトークン換算の目安

種別 概算トークン数/文字 備考
日本語の1文字(漢字・ひらがな・カタカナ) 1~1.2 トークン 句読点や記号も含めると増えることもある
日本語の文章(平均) 1文字 ≒ 1.1トークン 長文のサンプルから計算した平均的な値

これで、100万トークン ÷ 1.1 ≒ 約90万文字の日本語入力 と考えてよさそうです。

入力

  • $0.150 / 100万トークン(日本語で約90万文字)
    • 日本語1文字あたり: 0.000000167ドル
      • 1ドル150円の場合: 0.00002505円

出力

  • $0.600 / 100万トークン(日本語で約90万文字)
    • 日本語1文字あたり: 0.000000667ドル
      • 1ドル150円の場合: 0.00010005円

※ 従量課金としての「見積書」を出す場合、この部分の説明になると思います。


具体的な見積もり

  • 要約の場合を例にあげます

入力

  • HTML から文字だけを除いて1,000文字の場合、$0.000167

出力

  • 1,000文字なら $0.000667
    • ※1,000文字以内で要約を作るとした場合

合計

  • 入力: $0.000167 + 出力: $0.000667 = $0.000834(≒ 約0.1251円)

実際の要約処理の流れ

  • 前処理: PHP の file_get_contents で要約するページの HTML を取得
    • ヘッダ、フッタ、ナビ、広告コードなどを除く処理を行う
  • プロンプトと合わせて、前処理で取得した本文をリクエスト
  • レスポンスも合わせて(ページによりますが)、1,000~3,000文字程度のチャットになる
  • 結論として、0.1~0.3円で、要約が作れることが分かりました

※ ウェブ検索を行うと、前処理は不要です(1回約10円かかります)
  前処理を実装するかしないかで、かなりコストが変わってきます。


PHP での換算関数

AI というと、Python で利用される方が多いと思いますが、私は PHPer なので…。PHP での関数を残しておきます。

/**
 * OpenAI の利用コストを計算する(GPT-4o mini)
 * 料金表: https://openai.com/api/pricing/
 * 2025年3月現在の料金表を元に計算
 *
 * @param int $promptTokens 使用した入力トークンの数。
 * @param int $completionTokens 使用した出力トークンの数。
 * @param float $exchangeRate 為替レート(USD/JPY)。
 * @return array 日本円でのコスト(USD, JPY)
 */
function calCostGpt_4o_MiniInJPY($promptTokens, $completionTokens, $exchangeRate)
{
    // 1,000トークンあたりの単価 (GPT-4o mini)
    $pricePerMillionInputTokens = 0.15; // Input
    $pricePerMillionOutputTokens = 0.60; // Output

    // トークンのコストを計算
    $promptTokensCostInUSD = ($promptTokens / 1000000) * $pricePerMillionInputTokens;
    $completionTokensCostInUSD = ($completionTokens / 1000000) * $pricePerMillionOutputTokens;

    // 合計コストを計算
    $totalCostInUSD = $promptTokensCostInUSD + $completionTokensCostInUSD;

    // 日本円でのコストを計算
    $costInJPY = $totalCostInUSD * $exchangeRate;

    return [$totalCostInUSD . 'ドル', round($costInJPY, 2) . '円'];
}

OpenAI 公式ツールでトークン数を計算する

  • Tokenizer
    • テキスト内のトークンの合計数を確認できます

参考になりましたら、幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?