トークン(Token)とは?
トークンとは入出力の際のデータ量を表す数値です。
OpenAIのAPIではこのトークンの数で従量課金が行われます。
その為、文字数が多くなるとトークン数が大きくなり、1度に掛かり費用が大きくなります。
逆に簡単な入出力には大した費用は掛からないという事でもあります。
確実な情報ではありませんが、ひらがなは1文字1トークン、漢字は1文字2トークンといった相場もあるようです。
トークン数の基準
トークン数の計算はAI毎に異なっているため、絶対的な計算方法はありません。
OpenAIについてはtiktokenというもので計算ができるそうなので、送信前に入力トークン数を知る事は可能です。
最近だとトークン数が多い場合にキャッシュする仕組みも提供されているので、この数字でそのまま課金される訳ではない点はご注意ください。
トークン数による料金
OpenAIの公式では1M(1,000,000)トークン辺りの金額が公表されています。
2025年1月月現在の情報だと以下のような金額になっています。
- gpt-4o
- 入力:2.5$ / 1M
- 出力:10$ / 1M
- gpt-4o-mini
- 入力:0.15$ / 1M
- 出力:0.6$ / 1M
- gpt-o1
- 入力:15$ / 1M
- 出力:60$ / 1M
- gpt-o1-mini
- 入力:3$ / 1M
- 出力:12$ / 1M
このようにモデルによって金額はバラつきがあります。
o1は費用も高く、まだPreview版という事もありますので、4oや4o-miniが主流な状況です。
特に4o-miniだと入力で1,000トークン使っても僅か0.00015$となります。
※日本円で約0.024円(1$ = 160円で計算)
利用トークン数の取得
利用したトークン数はメッセージのレスポンス内に含まれています。
// チャットの送信 var response = await chat.CompleteChatAsync(chatMessages); ChatTokenUsage usage = response.Value.Usage; // 通信が成功した場合はUsageにトークン数が返ってきます Console.WriteLine($"入力トークン数:{usage.InputTokenCount}"); Console.WriteLine($"出力トークン数:{usage.OutputTokenCount}"); Console.WriteLine($"合計トークン数:{usage.TotalTokenCount}");
このようにUsage内を確認すれば利用したToken数が分かるので、サービスを作った際にユーザー毎の利用料の計算や制限の設定等に利用する事も可能です。
自身でサービスを作る際には必要な情報なので必ず把握しておきましょう!