Why OpenAI’s Model is the Standard
Mô hình tính phí SaaS truyền thống không xử lý tốt chi phí biến đổi của việc sử dụng AI. Mô hình của OpenAI giải quyết đồng thời ba vấn đề:- Doanh thu có thể dự đoán và rủi ro thấp: Vì việc sử dụng API được trả trước, người dùng không thể phát sinh các hóa đơn mà họ không có khả năng thanh toán. OpenAI nhận tiền trước, còn người dùng chi tiêu khi sử dụng dịch vụ.
- Khả năng mở rộng cho developer: Khoản nạp thêm $5 là rào cản gia nhập thấp. Khi ứng dụng phát triển, developer có thể tự động hóa việc nạp thêm hoặc mua các gói lớn hơn. Chi phí bắt đầu thấp và mức sử dụng có thể tăng mà không cần đổi gói.
- Tâm lý người dùng: Credit được định danh bằng đô la Mỹ, thay vì các “token” hoặc “point” trừu tượng, giúp giá trị trở nên rõ ràng. Số dư hoạt động như một tài khoản trả trước cho dịch vụ AI, giúp doanh nghiệp lập ngân sách dễ dàng hơn.
How OpenAI Bills
OpenAI vận hành hai mô hình tính phí cho các nhóm người dùng khác nhau.- API (Pay-as-you-go): API sử dụng các khoản credit trả trước được định danh bằng dollar. Người dùng nạp thêm $5, $10, $50 hoặc nhiều hơn vào tài khoản. Các credit hiển thị giá trị bằng dollar nhưng không thể sử dụng bên ngoài OpenAI. OpenAI tính phí theo token, với các mức giá khác nhau cho token đầu vào và đầu ra. Credit đã mua sẽ hết hạn sau một năm kể từ ngày mua và không được hoàn tiền (OpenAI Help Center). Khi số dư đạt $0, các lệnh gọi API sẽ thất bại.
- ChatGPT Plus, Business, and Enterprise: Đây là các gói subscription có mức phí cố định. ChatGPT Plus có giá $20 mỗi tháng, còn gói Business (trước đây là Team) có giá $25 mỗi user mỗi tháng khi thanh toán theo tháng. Các gói này có giới hạn sử dụng mềm: user sử dụng nhiều sẽ được chuyển sang model nhỏ hơn thay vì bị chặn.
- Spend-based rate tiers: Khi tổng chi tiêu tăng theo thời gian, tài khoản sẽ mở khóa các giới hạn tốc độ API cao hơn. Quyền truy cập tăng theo lịch sử thanh toán.
Điều gì tạo nên sự độc đáo
Bốn đặc điểm khiến mô hình thanh toán của OpenAI hiệu quả đối với các dịch vụ AI:- Credit định danh bằng fiat: Credit được tính bằng dollar Mỹ nên tạo cảm giác như tiền thật. Developer có thể đọc trực tiếp giá của một request.
- Thời hạn dài: Credit đã mua có hiệu lực trong một năm, giúp giảm áp lực “dùng hoặc mất”. User sẽ thoải mái nạp các khoản lớn hơn.
- Đo lường đa chiều: Token đầu vào và đầu ra được theo dõi riêng nhưng cùng khấu trừ từ một số dư. OpenAI có thể định giá token đầu ra tốn kém cao hơn token đầu vào.
- Trust tier: Giới hạn tốc độ tăng theo tổng chi tiêu, vừa tưởng thưởng khách hàng lâu năm vừa khuyến khích họ tiếp tục sử dụng.
Lợi thế chiến lược
Mô hình này tự củng cố. Chi phí gia nhập thấp thu hút developer. Credit trả trước tạo dòng tiền ngay lập tức. Định giá dựa trên mức sử dụng đồng nghĩa OpenAI kiếm được nhiều hơn khi developer thành công. Subscription bổ sung nguồn doanh thu ổn định từ những người không phải developer.Xây dựng mô hình này với Dodo Payments
Bạn có thể xây dựng mô hình thanh toán của OpenAI bằng Dodo Payments. Sử dụng Credit-Based Billing cho phần API và các subscription tiêu chuẩn cho phần ChatGPT Plus.1
Create a Fiat Credit Entitlement
Trong dashboard Dodo Payments, đi đến Products → Credits và nhấp vào Create Credit. Credit này là số dư trung tâm cho từng user.
- Credit Type: Fiat Credits, với Unit Currency được đặt là USD
- Credit Expiry: Custom, 365 ngày (khớp với thời hạn một năm của OpenAI), hoặc Never
- Rollover: Không cần thiết (credit không reset sau mỗi chu kỳ)
- Allow Overage: Disabled
2
Create Top-Up Products
Tạo các sản phẩm thanh toán một lần cho những gói credit khác nhau, chẳng hạn $5, $10, $50 và $100. Gắn fiat credit vào từng sản phẩm.Đặt số credit được phát hành bằng giá trị dollar của gói. Gói $50 sẽ phát hành 50 credit.
3
Create Usage Meters
Tạo hai meter để theo dõi mức sử dụng token:
llm.input_tokens: Sum aggregation trên thuộc tínhtokens.llm.output_tokens: Sum aggregation trên thuộc tínhtokens.
Tính Meter units per credit
Để khớp với mức giá GPT-4o của OpenAI, hãy tính xem cần bao nhiêu token cho $1, tương đương một fiat credit:- Input Tokens: 1,000,000 token / $2.50 = 400,000 token cho mỗi $1.
- Output Tokens: 1,000,000 token / $10.00 = 100,000 token cho mỗi $1.
4
Send Usage Events
Sau mỗi LLM request, hãy gửi mức sử dụng đến Dodo Payments. Một request có thể chứa cả event input và output. Đoạn snippet này sử dụng lại
client từ bước trước.5
Handle Balance Depletion
Kiểm tra số dư của user trước khi xử lý API request. Nếu số dư bằng zero hoặc âm, hãy từ chối request, chẳng hạn bằng status
402.Xử lý Low Balance Webhooks
Thông báo cho user trước khi số dư đạt $0. Đặt Low Balance Threshold khi gắn credit, sau đó gửi email hoặc thông báo trong ứng dụng khi webhookcredit.balance_low đến.6
Build the ChatGPT Subscription Side (Optional)
Để cung cấp subscription plan như ChatGPT Plus, hãy tạo một subscription product riêng trong Dodo Payments. Sản phẩm này không cần credit entitlement.Đối với gói Team, hãy sử dụng seat-based billing: một add-on theo seat có quantity bằng số user.
Triển khai giới hạn mềm
Để xây dựng giới hạn mềm, hãy theo dõi mức sử dụng của user subscription bằng các meter tương tự nhưng không liên kết chúng với credit. Trong ứng dụng, kiểm tra mức sử dụng trong billing period hiện tại.Tăng tốc với LLM Ingestion Blueprint
Các bước trên xây dựng và gửi usage event thủ công. LLM Ingestion Blueprint thay vào đó bọc OpenAI client của bạn và tự động theo dõi token.inputTokens, outputTokens và totalTokens từ mọi API response rồi gửi chúng cùng với model dưới dạng event metadata. Đặt Over Property của meter thành token key mà bạn muốn tính phí.
Triển khai Spend-Based Rate Tiers
Rate tier của OpenAI quản lý capacity dựa trên trust. Để xây dựng tính năng này, hãy theo dõi tổng chi tiêu của từng customer trong suốt vòng đời.- Theo dõi tổng chi tiêu: Lắng nghe webhook
payment.succeededvà cộng số tiền thanh toán vào một fieldtotal_spendcủa customer đó trong database. Số tiền được tính bằng đơn vị tiền tệ nhỏ nhất, vì vậy 5000 tương đương $50.00. - Xác định tier: Ánh xạ các mức chi tiêu với rate limit:
- Tier 1: Chi tiêu $0 - $50 -> 3 RPM
- Tier 2: Chi tiêu $50 - $250 -> 10 RPM
- Tier 3: Chi tiêu từ $250 trở lên -> 50 RPM
- Áp dụng giới hạn: Trong API middleware, tra cứu tier của customer và áp dụng rate limit tương ứng.
Ví dụ triển khai đầy đủ: API Proxy
Trong môi trường production, một API proxy thường nằm giữa user và LLM provider. Proxy xác thực request, kiểm tra credit và báo cáo mức sử dụng. Handler bên dưới triển khai proxy:Xử lý các trường hợp đặc biệt
Một billing system như của OpenAI có một số trường hợp đặc biệt cần được lập kế hoạch.Race Condition
User có số dư thấp có thể gửi nhiều request cùng lúc và vượt quá số dư trước khi bất kỳ event nào được xử lý. Để ngăn điều này, hãy duy trì một buffer nhỏ hoặc giữ distributed lock trên số dư của customer trong mỗi request.Độ trễ khi tiếp nhận event
Dodo Payments khấu trừ credit không đồng bộ. Một background worker xử lý event mới khoảng một lần mỗi phút, vì vậy việc khấu trừ có thể chậm hơn API call. Để thực thi nghiêm ngặt theo thời gian thực, hãy duy trì local cache về số dư của từng user và cập nhật cache khi bạn phục vụ request.Xử lý hoàn tiền
Việc hoàn tiền cho một giao dịch mua credit pack không xóa số credit đã cấp. Khi hoàn tiền, hãy tự khấu trừ số credit đó bằng debit: sử dụng Apply Credit/Debit trong tab Credits của customer hoặc API Create Ledger Entry. Sau đó cập nhật cách ứng dụng của bạn hiển thị số dư để user không thể tiêu số credit mà họ không còn.Hỗ trợ nhiều model
Để hỗ trợ nhiều model có mức giá khác nhau, hãy chọn một trong hai tùy chọn:- Separate Meters: Tạo một bộ meter cho mỗi model, chẳng hạn
gpt-4o.input_tokensvàgpt-4o-mini.input_tokens, mỗi meter có Meter units per credit riêng. - Weighted Events: Sử dụng một meter và nhân
tokensvới một weight trước khi gửi event. Ví dụ, nếu GPT-4o có giá cao gấp 10 lần GPT-4o-mini, hãy gửi số token gấp 10 lần cho các request GPT-4o.
Tổng quan kiến trúc
Vòng lặp bên dưới cho thấy prepaid flow từ lúc mua đến khi các lệnh gọi bị chặn: Các meter theo dõi token và khấu trừ giá trị dollar của chúng khỏi số dư credit của user theo các rate bạn đã cấu hình. Ứng dụng của bạn chặn các lệnh gọi khi số dư đạt zero.Kết luận
Với Dodo Payments, bạn có thể kết hợp usage-based billing với tính dễ dự đoán của prepaid credit, giống như OpenAI. Customer thanh toán trước, sử dụng dần và nạp thêm khi cần. Các thành phần tương tự có thể được sử dụng cho một nền tảng LLM lớn hoặc một công cụ AI nhỏ: một fiat credit, các sản phẩm top-up, token meter và kiểm tra số dư trước mỗi request.Các tính năng chính của Dodo được sử dụng
Các tính năng Dodo Payments sau đây hỗ trợ việc triển khai:Credit-Based Billing
Quản lý fiat credit trả trước và entitlement cho user.
Usage-Based Billing
Theo dõi mức sử dụng chi tiết như token và tính phí cho mức sử dụng đó.
One-Time Payments
Bán credit pack và top-up thông qua checkout.
Event Ingestion
Gửi dữ liệu usage volume cao đến Dodo Payments.
Webhooks
Luôn cập nhật về các thay đổi số dư credit và cảnh báo số dư thấp.
LLM Ingestion Blueprint
Tự động theo dõi token cho OpenAI và các LLM provider khác.