Liwati menyang isi utama
OpenAI

13 Februari 2026

Rekayasa

Ngluwihi rate limits: ngembangake akses menyang Codex lan Sora

Dening Jonah Cohen, Anggota Staf Teknis

Lagi dimuat…

Ing setaun kepungkur, Codex lan Sora padha ndeleng adopsi sing cepet, kanthi panggunaan sing kanthi cepet ngluwihi sing biyen kita kira. Kita ndeleng pola sing konsisten: pangguna langsung nyoba, nemokake nilai nyata, banjur nabrak rate limits.

Rate limits bisa mbantu ngratakan panjaluk lan njamin akses sing adil; nanging, nalika pangguna entuk manfaat, ketemu mandheg total bisa nggawe frustasi. Kita pengin ana cara supaya pangguna bisa nerusake, nalika tetep nglindhungi kinerja sistem lan kapercayan pangguna marang pendekatan kita.

Kanggo ngrampungake iki, kita mbangun mesin akses real-time sing ngitung panggunaan. Salah siji lapisan ing mesin kuwi yaiku kemampuan tuku credits. Nalika pangguna ngluwihi rate limits, credits ngidini dheweke terus nggunakake produk kita kanthi nyuda saldo credit sing diduweni.

Ing baliké iki ana sistem rumit sing nyawijèkaké limits, pelacakan panggunaan real-time, lan saldo credit ing siji model akses. Tulisan iki nerangake kenapa ngembangake Codex lan Sora mbutuhake mikir maneh kontrol akses, kepiye sistem real-time sing kabukten bener nggabungake rate limits lan credits saben request, lan kepiye pondasi kuwi saiki mbukak akses tambahan kanggo loro produk kasebut.

Kenapa model akses sing wis ana kurang nyukupi

Yen dideleng luwih jembar, model akses tradisional biasane meksa milih:

  • Rate limits bisa migunani ing awal, nanging ninggalake pengalaman ala nalika wis entek: “balik maneh mengko”
  • Tagihan adhedhasar panggunaan fleksibel, nanging nggawe pangguna mbayar saka token pisanan—ora becik kanggo ndhukung eksplorasi awal

Kanggo Codex lan Sora, loro-lorone ora cukup yen dhewe-dhewe. Yen kita mung ngunggahake rate limits, kita bakal kelangan kontrol penting kanggo ngratakan panjaluk lan njaga keadilan, lan bakal kekurangan kapasitas kanggo nglayani kabeh wong. Yen kita gumantung kabeh marang tagihan panggunaan asinkron, kita bakal ngenalake lag, overage, utawa masalah rekonsiliasi—pas masalah kaya iki sing paling katon nalika pangguna lagi paling aktif.

Sing dibutuhake yaiku siji sistem hibrida sing nggabungake limits real-time karo akses bayar miturut panggunaan:

UI dashboard kanthi rong tombol bertulisan “Rate-limits” lan “Credits,” lan kertu ing ngisoré kanthi judhul “Rate-Limit with Credit Fallback.”

Sistem iki kudu bisa:

  • Nglakokaké rate limits nganti tekan watesé
  • Pindhah kanthi mulus menyang credits ing request sing padha
  • Nggawe keputusan kasebut ing real-time
  • Presisi banget lan bisa diaudit nalika nglacak konsumsi credit

Akses minangka waterfall, dudu gerbang

Salah siji owah-owahan konsep penting sing kita lakoni yaiku nggawe model akses minangka waterfall keputusan. Tinimbang takon “apa iki diidini?”, kita takon “pira sing diidini, lan saka endi?” Nalika ngitung panggunaan, sistem ngliwati urutan kaya ing ngisor iki:

Wit keputusan kanggo ngevaluasi akses menyang fitur kita

Model iki nggambarake cara pangguna sejatine ngrasakake produk. Rate limits, tingkatan gratis, credits, promosi, lan hak enterprise kabeh mung lapisan ing tumpukan keputusan sing padha. Saka sudut pandang pangguna, dheweke ora “ganti sistem”—mung terus nggunakake Codex lan Sora. Kuwi sebabé credits krasa ora katon: mung unsur liyane ing waterfall.

Kenapa kita mbangun iki dhewe

Kita ngevaluasi platform tagihan panggunaan lan metering pihak katelu kanggo nangani konsumsi credit. Platform-platform kuwi cocog kanggo invoicing lan reporting, nanging ora nyukupi loro syarat kritis:

Kabeneran real-time

Nalika pangguna tekan limit lan isih nduweni credits sing kasedhiya, sistem kudu ngerti langsung. Penghitungan best-effort utawa telat bakal katon minangka blok sing ngagetake, saldo sing ora konsisten, lan biaya sing salah. Kanggo produk interaktif kaya Codex lan Sora, kegagalan iki dadi katon lan ngganggu.

Rekonsiliasi lan kapercayan

Kita uga kudu nyedhiyakake transparansi kanggo saben asil:

  • Kenapa sawijining request diidini utawa diblokir
  • Pira panggunaan sing dikonsumsi
  • Limits utawa saldo endi sing ditrapake

Kemampuan iki kudu terintegrasi rapet ing waterfall keputusan kita, dudu dirampungake dhewekan ing platform tagihan panggunaan kapisah sing mung weruh siji bagéan saka sing kedadeyan. Supaya pangguna bisa ngakses produk kita tanpa ngorbanake kapercayan, kita butuh kontrol penuh marang kabeneran, wektu, lan observabilitas. Kuwi sing ndorong kita menyang solusi internal.

Mbangun sistem panggunaan lan saldo skala gedhe

Kanggo ndhukung iki, kita mbangun sistem panggunaan lan saldo terdistribusi sing dirancang khusus kanggo keputusan akses sinkron.

Ing tingkat dhuwur, sistem iki:

  • Nglacak panggunaan saben pangguna lan saben fitur
  • Njaga jendhela rate-limit
  • Njaga saldo credit real-time
  • Ngurangi saldo kanthi idempoten liwat prosesor async streaming

Saben request liwat siji jalur evaluasi sing nggawe keputusan real-time babagan pira panggunaan sing diidini kanthi ngonsumsi saka rate limits kanthi sinkron lan, yen perlu, verifikasi credits sing cukup; banjur mbalekake siji asil definitif nalika ngrampungake debit credit kanthi asinkron. Iki njamin prilaku sing konsisten ing antarproduk lan ngilangi logika duplikat antar tim.

Sistem akses: Nggabungake rate-limits real-time lan pelacakan credit & balance asinkron.

Sistem tagihan sing kabukten bener

Salah siji prinsip desain utama sistem iki yaiku kita kudu bisa mbuktekake yen tagihan kita bener. Iki nggambarake asal-usul dhukungan credit kita, sing wiwitane saka pelanggan enterprise. Ing diagram sistem ing ndhuwur, kita nduweni telung dataset kapisah sing saling nyambung:

  • Acara panggunaan produk: Apa sing sejatine ditindakake pangguna
  • Acara monetisasi: Apa sing kita tagihake marang pangguna kanggo panggunaan kasebut
  • Pembaruan saldo: Pira kita nyetel saldo credit pangguna lan kenapa

Dataset iki dudu mung produk sampingan biasa; sejatiné dataset-dataset iki sing nyurung sistem, lan saben dataset micu dataset sabanjure. Misahake apa sing kedadeyan, biaya sing gegandhengan, lan apa sing kita debit ngidini kita mriksa audit, muter maneh, lan ngrekonsiliasi saben lapisan kanthi mandiri. Iki kompromi sing disengaja, ing ngendi kita luwih milih kabeneran sing bisa dibuktekake, sanajan akibaté pembaruan saldo credit dadi rada telat. Cara kita nggayuh iki:

  • Acara panggunaan produk diterbitake kanggo kabeh aktivitas pangguna, apa iku nyebabake konsumsi credit utawa ora. Iki nyedhiyakake jejak audit kanggo aktivitas pangguna lan ngidini kita nerangake kenapa kita ngisi, utawa ora ngisi, credits.
  • Saben acara nggawa kunci idempotensi sing stabil, supaya retry, replay, utawa restart worker ora bakal bisa ngedebit saldo kaping pindho, sing nyegah tagihan dobel. Iki uga ngidini kita mbukak rekonsiliasi batch kanggo verifikasi asil kerja kita kanthi offline.
  • Kita nindakake pembaruan saldo kanthi asinkron (nanging isih meh real-time) tinimbang sinkron kanggo nggawe jejak audit. Kita nampa telat cilik nalika nganyari saldo pangguna supaya kita bisa mbuktekake yen sistem mlaku kanthi bener lan njamin marang pangguna yen kita ora salah ngetagih. Nalika telat cekak iki nyebabake saldo credit pangguna dadi kebacut digunakake, kita otomatis mbalekake; kita milih kabeneran sing bisa dibuktekake lan kapercayan pangguna tinimbang penegakan sing ketat.
  • Kita nyuda Credit Balance lan nglebokake cathetan Balance Update ing siji transaksi database atomik. Pembaruan saldo diserialisasi saben akun, supaya request sing kedadeyan bebarengan ora bisa balapan kanggo mbuwang credits sing padha. Cathetan Balance Update ngemot jumlah debit uga atribusi bali menyang acara monetisasi sing micu pembaruan kasebut; mbungkus iki ing siji transaksi database njamin kita nduweni jejak audit kanggo saben penyesuaian saldo credit.

Kabeh ketelitian iki ndhukung siji tujuan: nggawe akses dadi prasaja lan aman. Nalika wong lagi nggawe utawa nulis kode, dheweke ora kudune mikir apa request bakal lolos, apa bakal ketagih kakehan, utawa apa saldone akurat. Kanthi nggawe panggunaan, tagihan, lan saldo kabukten bener, kita menehi pangguna sistem sing ora ngganggu pengalamané. Kuwi sing ngidini kita ngganti mandheg total dadi akses terus-terusan—lan kuwi sing nggawe credits bisa digunakake ing tengah karya nyata, dudu mung ing invoice.

Arsitektur kanggo njaga momentum

Prinsip utama ing balik pendekatan kita yaiku nglindhungi momentum pangguna. Saben keputusan arsitektural nyambung menyang asil sing dirasakake pangguna: saldo real-time nyegah gangguan sing ora perlu, konsumsi atomik nyegah tagihan dobel, lan logika akses sing manunggal njamin prilaku sing bisa diprediksi. Asilé, wong bisa kerja luwih suwe, njelajah luwih jero, lan nggawa proyek luwih adoh tanpa ngadhepi mandheg total utawa owah-owahan rencana sing kesusu.

Nalika pangguna lagi aktif, sistem kudune mbantu dheweke nerusake, dudu ngalangi. Limits lan credits ilang menyang latar mburi.

Mbangun pengalaman kaya ngono mbutuhake mikir maneh akses, panggunaan, lan tagihan minangka siji sistem lan mbangun infrastruktur sing nganggep kabeneran minangka fitur produk kelas siji. Pondasi sing padha bisa ditambahi menyang luwih akeh produk saka wektu ke wektu; Codex lan Sora mung wiwitan.

Pangarang

Jonah Cohen

Ucapan terima kasih

Matur nuwun khusus kanggo kabeh tim FinEng sing mbangun credits.