なぜOpenAIのモデルが標準なのか
AI業界は従来のSaaS請求では必ずしも対処できない独自の課題を抱えています。OpenAIのモデルはこれらの問題を同時に解決します。- 予測可能な収益と低リスク: API使用に前払クレジットを要求することで、OpenAIはユーザーが支払えないほどの請求を抱えるリスクを排除しています。先に資金が入り、ユーザーは使用するごとにサービスを受け取ります。
- 開発者のスケーラビリティ: 5ドルのチャージは参入障壁が低く、アプリケーションが成長するにつれて、自動チャージや大きなパックの購入が可能になります。開始時の摩擦はほぼゼロで、成長に上限はありません。
- ユーザー心理: クレジットを抽象的な「トークン」や「ポイント」ではなく法定通貨(USD)で表すことで価値を明確にします。まるでAIサービスの銀行口座のように感じられ、信頼を築き、企業が予算管理しやすくなります。
OpenAIの請求方法
OpenAIは異なるユーザー需要に応える2つの請求モデルを運用しています。- API(従量課金): APIは前払いの法定通貨クレジットを使用します。ユーザーは5ドル、10ドル、50ドル以上でアカウントにチャージします。これらのクレジットはドル価値を持っていますが、OpenAIの外では金銭的価値を持ちません。OpenAIは入力トークンと出力トークンで異なるレートを使用してトークン単位で課金します。クレジットは期限切れにならず、ユーザーの残高が0ドルになるとAPIコールは即座に失敗します。
- ChatGPT Plus、Team、Enterprise: これらは定額制のサブスクリプションです。ChatGPT Plusは月額20ドル、Teamプランはユーザー1人あたり月額25ドルです。これらのプランには、ユーザーがブロックされる代わりに小さいモデルにダウングレードされるソフトキャップが設けられています。
- 支出ベースのレート階層: 時間をかけてより多く支払うと、より高いAPIレート制限がアンロックされます。これは請求履歴に直接結びついた信頼ベースのアクセススケーリングシステムです。
| モデル | 価格 | 入力トークン | 出力トークン |
|---|---|---|---|
| GPT-4o | 従量課金 | $2.50 / 100万 | $10.00 / 100万 |
| GPT-4o-mini | 従量課金 | $0.15 / 100万 | $0.60 / 100万 |
| o1 | 従量課金 | $15.00 / 100万 | $60.00 / 100万 |
| プラン | 価格 | 種類 |
|---|---|---|
| 無料 | $0 | 制限付きアクセス |
| Plus | $20 / 月 | ソフトキャップ付きサブスクリプション |
| Team | $25 / ユーザー / 月 | 席単位のサブスクリプション |
| Enterprise | カスタム | 請求書ベースの請求 |
ユニークな点
OpenAIの請求戦略には、AIサービスに効果的な以下のような特徴があります。- 法定通貨で表示されるクレジット: クレジットはUSDで表示されるため、金銭的価値を感じられます。これにより開発者にとって価格が透明で理解しやすくなります。
- 有効期限なし: 永久に有効な残高は「使わないと損」というプレッシャーを軽減します。ユーザーは価値が消えないと知っているため、大きな金額をチャージすることに抵抗がありません。
- 多次元のメータリング: 入力と出力トークンは別々に追跡されますが、同じクレジット残高から差し引かれます。これにより、出力トークンを入力トークンより高価に設定することができます。
- 信頼階層: 合計支出にレート制限を結びつけることで、ユーザーをプラットフォームに留め、長期顧客により良いパフォーマンスを提供します。
戦略的利点
このモデルは強力なフライホイールを生み出します。低い参入コストが開発者を引き込みます。プリペイドクレジットが即時のキャッシュフローを提供します。使用量ベースのスケーリングにより、開発者が成功すればOpenAIも成功します。サブスクリプションは開発者以外から安定した予測可能な収益基盤を提供します。Dodo Paymentsで再現する
Dodo Paymentsを使えば、OpenAIの請求モデルの複製が可能です。APIにはクレジットベース請求を、ChatGPT Plus側には標準的なサブスクリプションを使います。Create a Fiat Credit Entitlement
まずDodo Paymentsのダッシュボードでクレジット権利を作成します。これがユーザーの中心的な残高になります。
- クレジットタイプ: 法定通貨クレジット(USD)
- クレジット有効期限: なし
- 繰越: 不要(有効期限がないため)
- 超過利用: 無効
Create Top-Up Products
異なるクレジットパック用に一回限りの支払い商品を作成します。5ドル、10ドル、50ドル、100ドルなどのオプションを提供するかもしれません。各商品に法定通貨クレジット権利を紐づけます。商品ごとのクレジット発行量はセント単位で設定します。50ドルパックであれば5000クレジットを発行します。
Create Usage Meters
トークン使用量を追跡するために2つのメーターを作成します。
llm.input_tokens:tokensプロパティに対する合計集計。llm.output_tokens:tokensプロパティに対する合計集計。- 両方のメーターを法定通貨クレジット権利にリンクします。それぞれで「クレジットあたりのメーター単位」を設定する必要があります。
クレジットあたりのメーター単位の計算
GPT-4oの価格(入力トークン1Mあたり2.50ドル)に合わせるには、100セントに相当するトークン数を計算する必要があります。- 入力トークン: 1,000,000トークン / 1あたり400,000トークン。
- 出力トークン: 1,000,000トークン / 1あたり100,000トークン。
Handle Balance Depletion
APIリクエストを処理する前にユーザーの残高を確認するべきです。残高がゼロまたはマイナスの場合は402エラーを返してください。
残高不足Webhookの処理
ユーザーが0ドルになるまで待たずに、残高が一定の閾値を下回った時点でメールやアプリ内通知をトリガーするWebhookを活用してください。Build the ChatGPT Subscription Side (Optional)
ChatGPT Plusのようなサブスクリプションプランを提供したい場合は、Dodo Paymentsで別のサブスクリプション商品を作成してください。これらはクレジット権利を必要としません。Teamプランでは、追加ユーザーごとにアドオンを追加することで席単位課金を行います。
ソフトキャップの実装
OpenAIのソフトキャップを再現するには、同じメーターを使用してサブスクリプションユーザーの使用量を追跡しますが、クレジット権利にはリンクしません。アプリケーションロジック内で現在の請求期間の使用量をチェックしてください。LLM Ingestion Blueprintで加速
上記のステップは使用イベントを手動で構築し送信する方法を示しています。プロダクション環境では、LLM Ingestion BlueprintがOpenAIクライアントを直接ラップし、自動トークン追跡を提供します。inputTokens、outputTokens、およびtotalTokensをキャプチャし、イベントメタデータとして送信します。適切なトークンプロパティで集計するようメーターを設定してください。
支出ベースのレート階層の実装
OpenAIのレート階層は容量管理に有効な手段です。これを実装するには、顧客の生涯支出を追跡します。- 生涯支出の追跡:
payment.succeededのWebhookをリッスンし、その顧客のtotal_spendフィールドをデータベースで更新します。 - 階層定義: 支出額とレート制限のマッピングを作成します。
- Tier 1: 50の支出 -> 3 RPM
- Tier 2: 250の支出 -> 10 RPM
- Tier 3: $250以上の支出 -> 50 RPM
- 制限の適用: APIミドルウェアで顧客の階層を確認し、対応するレート制限を適用します。
完全な実装例: APIプロキシ
実際には、ユーザーとLLMプロバイダーの間にAPIプロキシを置くケースが多いでしょう。このプロキシは認証、クレジット確認、使用報告を処理します。エッジケースの処理
OpenAIと同じくらい複雑な請求システムを構築する際には、慎重な対処が必要なエッジケースがいくつかあります。レースコンディション
残高が非常に少ないユーザーが同時に複数のリクエストを送信すると、最初のイベントが処理される前にクレジット限度を超えてしまうことがあります。これを防ぐために、小さな「バッファ」を実装するか、リクエスト中に顧客の残高に対して分散ロックを使用できます。イベント取り込みの遅延
Dodo Paymentsはイベントを非同期で処理します。このため、APIコールとクレジット差し引きの間にわずかな遅延が生じる場合があります。ほとんどのユースケースでは許容範囲です。厳密なリアルタイム制御が必要な場合は、ユーザー残高のローカルキャッシュを保持し、楽観的に更新できます。返金処理
クレジットパックの購入を返金すると、Dodo Paymentsは設定に応じてクレジット権利を自動的に処理します。ただし、ユーザーが既に持っていないクレジットを使えないように、アプリケーションロジックでこの変更を即座に反映させる必要があります。マルチモデル対応
異なる価格の複数モデルをサポートする場合、2つの方法があります。- 別々のメーター: 各モデル(例:
gpt-4o.input_tokens、gpt-4o-mini.input_tokens)ごとにメーターを作成します。 - 重み付けイベント: 単一のメーターを使用し、Dodoに送信する前に
tokensの値に重みを掛けます。たとえば、GPT-4oがGPT-4o-miniの10倍高価であれば、GPT-4oリクエストにはトークンを10倍にして送信できます。