Gemini APIの請求が、有料化した初日に4万円を超えた話

GAS(Google Apps Script)の設計にGemini APIを使っていて、無料枠から有料版のAPIキーに切り替えました。その日のうちに、請求額が4万円を超えました。

無料枠でスクリプトを調整していたときの概算では、1回の呼び出しあたり0.3円くらいで収まる想定でした。しかも有料キーをもらったのは当日15時45分で、それ以降の実行はログ上わずか8件です。単純計算すれば数円にしかならないはずなのに、実際の請求は4万円超——想定していた金額の、実に1万倍以上という開きでした。数字を見た瞬間、正直かなり焦りました。

まず自分のログと突き合わせた

金額そのものより先に、「本当にこの請求は正しいのか」を確認することにしました。AIと一緒に組んでいたGASスクリプトの中身、呼び出していたモデル、入出力トークン数といった実行ログを見返しました。

結果、自分のGASスクリプトの利用分だけをどう積み上げても、4万円という金額には届きません。有料キー取得後の実行はたった8件で、単価も概算で押さえていたので、計算の余地はそれほど大きくありませんでした。

ただし、ここには一つ留保が要ります。このAPIキーは共有されていて、自分のGASプロジェクト以外でもそのキーが使われていました。なので「絶対にこの額にはならない」と確信を持てたのは、あくまで自分が把握している自分のスクリプトの利用分についてで、キー全体・請求全体の話ではありません。少なくとも「自分の設計・自分の使い方が原因でこの請求が発生したわけではなさそうだ」ということだけは確信が持てた、というのが正確なところです。

念のため担当の方にもGASとログを確認してもらいましたが、「特に問題はない」という結論で、原因は結局分からないまま一旦落ち着きました。原因不明という着地自体はすっきりしませんが、慌てて何かを止めたり、問い合わせに右往左往したりする前に、自分の手元のログと概算で「少なくとも自分のせいではなさそうだ」と気づけたことには、素直に胸を撫で下ろしました。

気づけたのは、AIに全部任せていなかったから

今振り返ると、この違和感に気づけたのは偶然ではないと思っています。もともとこのGASは、「できるだけAIに仕事をさせず、プログラミングで処理できる部分は極力プログラミングでやる」という設計思想で組んでいました。だから、何がどれだけ呼ばれているかを自分のログとして追える状態になっていました。

もしこれが「全部AIに任せる」という設計だったら、そもそも「おかしい」と疑うための手がかりを、自分の手元にそれほど持てていなかったかもしれません。違和感に気づけるかどうかは、AIの賢さよりも、自分がどこまで手元で把握できる作り方をしているかに左右されるのだと感じました。

事後対応として、トークン数を残す関数を作った

この経験をきっかけに、コードを新しく生成・実行するたびに使った入力・出力・思考のトークン数をログに残す関数を作りました。あくまで自分のスクリプトがどれだけ呼び出し、どれだけのトークンを使ったかを記録するものなので、これだけで請求全体の内訳が分かるわけではありません。それでも、次に同じような違和感を覚えたときに、少なくとも「自分の利用分」については手元に記録が残る仕組みにしておきたかったからです。

それでも、AIを使うことへの怖さは増した

今回の一件で、AIを使うことへの恐怖はむしろ増しました。便利であることは間違いありません。ただ、しっかり予防線を張っておかないと、同じようなトラブルに巻き込まれるということを、身をもって知りました。

異常に早く気づき、自分の側に原因がないかを検算できるようにするという意味で、今回の一件を経て自分の中に残った備えは3つです。

  • APIを呼び出す前に、どれくらいのコストがかかりそうかをあらかじめ概算しておくこと
  • できるだけAIに任せきりにせず、プログラミングで処理できる部分は自分の手元に残しておくこと
  • 使用量をログとして残しておくこと

原因そのものを防げる保証にはなりませんが、少なくとも「おかしい」と早く気づき、自分の側に原因があるかどうかを自分で検証できる状態は作れます。今回はそれだけでも、慌てずに済む十分な支えになりました。