mendoi-apps

API運用

AIサービスで、使われるほど赤字になる事故を防ぐ

AI APIを使うサービスで、無料利用・決済前の実行・連打・上限漏れによって、利用者が増えるほど赤字になる事故を防ぎます。

サービスを公開する。

利用者が増える。

アクセス数も伸びる。

運営「やった!」

API請求「俺も伸びたよ」

人気と赤字が同時に成長する世界線があります。

AI APIは、文章生成や画像生成を1回するたびに外部費用が出ることがあります。

なので「機能が動く」だけでは足りません。

誰が、何回、どの条件で使えるかをAPI実行前に止める必要があります。

APIを呼ぶ前に3つ見る

高コストな処理の直前で確認します。

  1. 誰が使おうとしているか
  2. そのプランで使える機能か
  3. 今日・今月の上限を超えていないか

APIを呼んだあとで確認しても、料金はもう発生しています。

食べ終わったあとに食券を確認する店にならないようにします。

決済前に処理を始めない

購入ボタンを押した。

決済画面を開いた。

これは支払い完了ではありません。

キャンセルされることもあります。

失敗することもあります。

有料処理は、決済成功を確認して権限を付けたあとに動かします。

「決済画面まで来たので、たぶん払うだろう」でAPIを先に回すと、財布だけ未来を信じています。

無料枠は「1人1回」の1人を決める

無料利用を出すなら、何をもって同じ利用者とするか考えます。

Cookieを消したら復活するのか。

別端末ならまた使えるのか。

メールアドレスを変えれば戻るのか。

複数アカウントなら無限に回せるのか。

完全に防げない場合もあります。

それでも、無料枠がどの程度まで悪用できるかを把握しておく必要があります。

二重クリックと複数タブを試す

生成ボタンを2回押す。

リロードする。

別タブから同時に押す。

これで同じ処理が2回走らないか確認します。

画面上は1回でも、裏でAPIが2回呼ばれていたら料金は2回です。

人間の指は冪等性を知りません。普通に連打します。

止めるボタンを先に作る

異常利用が始まったあと、コードを書き換えてデプロイしている時間はありません。

運営側で、

  • 無料生成だけ止める
  • 高コスト機能だけ止める
  • 特定ユーザーを止める
  • 全体の日次上限で止める

といった手段を用意します。

費用が一定額を超えたら通知する仕組みも役立ちます。

停止機能は成長後の追加装備ではありません。

請求が燃えたときの消火器です。

安全な順番を崩さない

基本の流れは、

ログイン確認 → プラン確認 → 使用量確認 → 必要なら決済 → 決済成功確認 → 権限付与 → API実行 → 使用量記録

です。

AIサービスで怖いのは「誰も使わない」だけではありません。

めちゃくちゃ使われたのに、なぜかお金が減る。

公開前に、成功画面より先に、お金が漏れる穴を探した方が安全です。

人気が出る前に「最大いくらまで」を決める

AIを使うサービスでは、1回の利用が小さな金額でも、回数が増えると話が変わります。

100回なら平気でも、1万回なら同じ設計では危ないことがあります。しかも連打や自動アクセスが混ざると、売上より先に利用料だけ伸びることもあります。

公開前に、1人あたり、1日あたり、全体で、どこまで使わせるかを決めておきます。上限に近づいたら警告する。超えたら止める。無料利用で高価な処理を何度も回せないようにする。この3つだけでも事故を減らせます。

「バズりました!」の次の通知が「請求もバズりました!」だと笑えません。

利用者が増えてから慌てるより、増える前に止め方を作る。人気と赤字を同じグラフで右肩上がりにしないための基本です。