Preskočite na glavno vsebino
OpenAI

13. februar 2026

Tehnologija

Onkraj omejitev dostopa: širitev dostopa do Codexa in Sore

Jonah Cohen, član tehničnega osebja

Nalaganje …

V preteklem letu sta bila tako Codex kot Sora hitro sprejeta, pri čemer je uporaba hitro presegla naša prvotna pričakovanja. Opazili smo dosleden vzorec: uporabniki se poglobijo, najdejo resnično vrednost, nato pa naletijo na omejitve hitrosti.

Omejitve hitrosti lahko pomagajo izravnati povpraševanje in zagotoviti pravičen dostop; vendar pa je lahko, ko uporabniki pridobivajo vrednost in naletijo na udarno zaustavitev frustrirajoč. Želeli smo omogočiti uporabnikom, da nadaljujejo, hkrati pa zaščititi delovanje sistema in zaupanje uporabnikov v naš pristop.

Da bi to rešili, smo razvili mehanizem za dostop v realnem času, ki beleži uporabo. Ena od plasti v tem mehanizmu je možnost nakupa kreditov. Ko uporabniki presežejo svoje omejitve hitrosti, jim krediti omogočajo nadaljnjo uporabo naših izdelkov z zmanjševanjem stanja na njihovem kreditnem računu.

Pod tem je zapleten sistem, ki združuje omejitve, sledenje uporabi v realnem času in stanje dobroimetja v enoten model dostopa. Ta objava pojasnjuje, zakaj je bilo pri skaliranju Codexa in Sore treba na novo premisliti nadzor dostopa, kako dokazljivo pravilen sistem v realnem času združuje omejitve hitrosti in kredite na zahtevo ter kako ta temelj zdaj omogoča dodaten dostop za oba izdelka.

Zakaj obstoječi modeli dostopa niso izpolnili pričakovanj

Če pogledamo širše, tradicionalni modeli dostopa običajno prisilijo k izbiri:

  • Omejitve hitrosti so sprva lahko koristne, vendar uporabnikom pustijo slabo izkušnjo, ko jih dosežejo: “vrnite se pozneje”
  • Zaračunavanje na podlagi uporabe je prilagodljivo, vendar uporabniki plačujejo že od prvega žetona—kar ni idealno za podporo zgodnjemu raziskovanju

Codex in Sora, nobeden od njiju ni bil zadosten sam po sebi. Če bi preprosto zvišali omejitve hitrosti, bi izgubili pomembne mehanizme za uravnavanje povpraševanja in pravičnosti ter bi nam zmanjkalo zmogljivosti, da bi zagotovili storitve za vse Če bi se v celoti zanašali na asinhrono obračunavanje uporabe, bi uvedli zamik, prekoračitve ali težave z usklajevanjem—prav takšne težave, ki jih uporabniki opazijo, ko so najbolj angažirani.

Namesto tega smo potrebovali en sam hibridni sistem, ki združuje omejitve v realnem času z dostopom po sistemu go:

Uporabniški vmesnik nadzorne plošče z dvema gumboma z oznakama “Omejitve hitrosti” in “Krediti” ter kartico spodaj z naslovom “Omejitev hitrosti z nadomestnim kreditom”.

Ta sistem je moral:

  • Uveljavljajte omejitve hitrosti, dokler niso dosežene
  • Nemoteno preidite na kredite znotraj iste zahteve
  • Sprejmite to odločitev v realnem času
  • Bodite natančni in omogočite revizijo pri spremljanju porabe kreditov.

Dostop kot slap, ne kot vrata

Eden od ključnih konceptualnih premikov, ki smo jih naredili, je bilo modeliranje dostopa kot slapa odločitev. Namesto da bi spraševali “ali je to dovoljeno?”, sprašujemo se “koliko je dovoljeno, in od kod?” Ko sistem šteje uporabo, sledi naslednjemu zaporedju:

Odločitveno drevo za oceno dostopa do naših funkcij

Ta model odraža, kako uporabniki izdelek dejansko doživljajo. Omejitve hitrosti, brezplačne stopnje, krediti, promocije in pravice za podjetja so le plasti v istem odločitvenem skladu. Z vidika uporabnika ne 'preklapljajo sistemov'—preprosto še naprej uporabljajo Codex in Sora. Zato se krediti zdijo nevidni: so le še en element v slapu.

Zakaj smo to razvili v lastni režiji

Ocenili smo platforme za obračunavanje in merjenje uporabe tretjih oseb za upravljanje porabe dobropisa. Primerni so za izdajanje računov in poročanje, vendar niso izpolnili dveh ključnih zahtev:

Pravilnost v realnem času

Ko uporabnik doseže omejitev in ima na voljo kredite, mora sistem to vedeti takoj. Najboljše možno ali zakasnjeno štetje se pokaže kot nepričakovani bloki, nedosledna stanja in nepravilni stroški. Pri interaktivnih izdelkih, kot sta Codex in Sora, te napake postanejo vidne in moteče.

Možnost usklajevanja in zaupanje

Prav tako smo morali za vsak rezultat zagotoviti preglednost:

  • Zakaj je bila zahteva dovoljena ali blokirana
  • Koliko je bilo porabe
  • Katere omejitve ali ravnotežja so bila uporabljena

To funkcionalnost je bilo treba tesno integrirati v naš odločitveni proces, namesto da bi jo rešili ločeno v samostojni platformi za obračunavanje uporabe, ki je zaznala le del dogajanja. Da bi uporabnikom omogočili dostop do naših izdelkov, ne da bi pri tem ogrozili zaupanje, smo potrebovali popoln nadzor nad pravilnostjo, časovno usklajenostjo in opazovanjem. To nas je usmerilo k rešitvi, razviti znotraj podjetja.

Vzpostavitev sistema za uporabo in uravnoteženje v velikem obsegu

Za pogon tega smo zgradili porazdeljen sistem uporabe in stanja, zasnovan posebej za sinhrone odločitve o dostopu.

Na splošni ravni sistem:

  • Spremlja uporabo po uporabniku in po funkciji
  • Vzdržuje okna za omejevanje hitrosti
  • Vzdržuje kreditna stanja v realnem času
  • Enako močno bremeni stanja prek pretočnega asinhronega procesorja.

Vsaka zahteva prehaja skozi enotno pot ocenjevanja, ki v realnem času sprejme odločitev o dovoljenem obsegu uporabe, tako da sinhrono črpa iz omejitev hitrosti in po potrebi preveri zadostnost kreditov; nato vrne en dokončen rezultat, medtem ko morebitne bremenitve kreditov poravna asinhrono. To zagotavlja dosledno delovanje med izdelki in odpravlja podvojeno logiko med ekipami.

Sistem dostopa: Združevanje omejitev hitrosti v realnem času in asinhronega sledenja kreditom in stanju.

Dokazljivo pravilen sistem za obračunavanje

Eden od ključnih načel zasnove tega sistema je, da moramo biti sposobni dokazati, da je naše obračunavanje pravilno. To odraža korenine naše kreditne podpore, ki izvirajo iz poslovnih strank. V zgornjem sistemskem diagramu imamo tri ločene nabore podatkov, ki so vsi povezani med seboj.

  • Dogodki uporabe izdelka: Kaj je uporabnik dejansko storil
  • Dogodki monetizacije: Kaj zaračunamo uporabniku za njegovo uporabo
  • Posodobitve stanja: Koliko smo prilagodili uporabnikovo stanje dobroimetja in zakaj

Ti zbirke podatkov niso naključen stranski produkt; dejansko poganjajo sistem, pri čemer vsak nabor podatkov sproži naslednjega. Ločevanje dogodkov, povezanih stroškov in bremenitev nam omogoča neodvisno revizijo, ponovitev in uskladitev vsake plasti. To je namerna kompromisna odločitev, kjer dajemo prednost dokazljivi pravilnosti, na račun rahle zamude pri posodobitvah stanja kredita. Kako smo to dosegli:

  • Dogodki uporabe izdelka se objavljajo za vse dejavnosti uporabnikov, ne glede na to, ali vodijo do porabe kreditov ali ne. To zagotavlja revizijsko sled za dejavnosti uporabnikov in nam omogoča, da pojasnimo, zakaj smo kredite zaračunali ali nismo zaračunali.
  • Vsak dogodek nosi stabilen enako močan ključ, zato ponovni poskusi, ponovitve ali ponovni zagoni delavca nikoli ne morejo dvakrat bremeniti stanja, kar preprečuje dvojno zaračunavanje. To nam omogoča tudi izvedbo paketnega usklajevanja, da lahko brez povezave preverimo svoje delo.
  • Izvajamo asinhrone (vendar še vedno skoraj v realnem času) posodobitve stanja namesto sinhronih posodobitev, da ustvarimo revizijsko sled. Dopuščamo majhno zamudo pri posodabljanju stanja uporabnika, da lahko dokažemo, da sistem deluje, in zagotovimo našim uporabnikom, da jim napačno ne zaračunavamo. Ko ta kratek zamik povzroči, da prekoračimo uporabnikovo stanje kreditov, jih samodejno povrnemo; izberemo dokazljivo pravilnost in zaupanje uporabnikov pred strogim uveljavljanjem.
  • Zmanjšamo kreditno stanje in vstavimo zapis posodobitve stanja v eni sami atomski transakciji baze podatkov. Posodobitve stanja so serijsko obdelane za vsak račun, zato se sočasne zahteve nikoli ne morejo prehiteti pri porabi istih kreditov. Zapis Balance Update vsebuje tako znesek bremenitve kot tudi pripis k dogodku monetizacije, ki je sprožil posodobitev; vključitev tega v eno samo transakcijo podatkovne baze zagotavlja revizijsko sled za vsako prilagoditev stanja dobroimetja.

Vsa ta strogost podpira en cilj: omogočiti preprost in varen dostop. Ko ljudje ustvarjajo ali programirajo, se ne bi rabili spraševati, ali bo zahteva šla skozi, ali bodo preveč zaračunani in ali je njihovo stanje pravilno. Z zagotavljanjem, da so uporaba, obračunavanje in stanja dokazljivo pravilni, uporabnikom omogočamo sistem, ki njihove izkušnje ne moti. To je tisto, kar nam omogoča, da udarne zaustavitve zamenjamo z neprekinjenim dostopom— in to je tisto, zaradi česar so krediti uporabni sredi dejanskega dela, ne le na računu.

Arhitektura v službi napredka

Vodilno načelo našega pristopa je zaščita uporabniškega zagona. Vsaka arhitekturna odločitev se preslika v rezultat, ki je viden uporabniku: stanja v realnem času preprečujejo nepotrebne prekinitve, atomska poraba preprečuje dvojno zaračunavanje, enotna logika dostopa pa zagotavlja predvidljivo obnašanje. Rezultat je, da lahko ljudje delajo dlje, raziskujejo bolj poglobljeno in projekte peljejo dlje, ne da bi naleteli na trde omejitve ali prezgodnje spremembe načrtov.

Ko so uporabniki vključeni, jim mora sistem pomagati nadaljevati, ne pa jih ovirati. Omejitve in krediti se umaknejo v ozadje.

Izgradnja te izkušnje je zahtevala ponoven premislek o dostopu, uporabi in obračunavanju kot o enotnem sistemu ter izgradnjo infrastrukture, ki pravilnost obravnava kot ključno lastnost produkta. Ista osnova se lahko sčasoma razširi na več izdelkov; Codex in Sora sta šele začetek.

Avtor

Jonah Cohen

Zahvala

Posebna zahvala celotni ekipi FinEng, ki je ustvarila kredite.