Cum să construiți un registru de costuri LLM pe echipă în mai multe API-uri AI
O arhitectură practică pentru alocarea cheltuielilor LLM în funcție de echipă, produs, mediu sau client prin mai multe API-uri AI, folosind chei definite, metadate de solicitare, date de facturare a furnizorilor și reconcilierea zilnică.
Tablourile de bord ale furnizorilor vă pot spune cât a cheltuit o organizație. Rareori răspund la întrebarea la care echipele financiare și de platformă au nevoie de răspuns: ce echipă, produs, mediu, volum de muncă sau segment de clienți a cauzat cheltuielile și dacă acea cheltuială era așteptată.
Modelul durabil nu este un alt tablou de bord. Este un registru intern al costurilor: un sistem de înregistrare care combină metadatele cererii la nivelul aplicației, cheile API definite, datele de utilizare ale furnizorului și totalurile de facturare la nivel de factură. Registrul oferă echipelor de inginerie vizibilitate operațională aproape în timp real, oferind, în același timp, finanțelor o viziune reconciliată care poate sprijini bugetele, alocarea și rambursarea.
Acest articol prezintă o arhitectură practică pentru echipele care utilizează mai mult de o API AI, inclusiv contractul de etichetare, fluxul de solicitări, tabele, procesul de reconciliere, controale și compromisuri.
Problema: facturarea furnizorului este exactă, dar nu este întotdeauna alocabilă
Majoritatea furnizorilor de AI expun o combinație de tablouri de bord de utilizare, API-uri de utilizare, exporturi de facturare, proiecte, spații de lucru, conturi de servicii sau API-uri de cost. Aceste instrumente sunt utile, dar nu toate funcționează la același nivel de detaliu.
Fapte
- Unele puncte finale de cost ale furnizorului sunt concepute pentru raportarea financiară și pot defalca cheltuielile în funcție de elementele rând de factură, proiecte sau perioade de facturare.
- API-urile de utilizare oferă adesea detalii operaționale, dar este posibil ca înregistrările de utilizare și înregistrările costurilor finale să nu se reconcilieze perfect din cauza reducerilor, creditelor, facturării întârziate, prețurilor de angajament, ratelor batch, prețurilor în cache sau ajustărilor facturilor.
- Delimitările administrative native, cum ar fi proiectele, spațiile de lucru, conturile de servicii, cheile API sau directorii IAM pot contribui la cheltuirea atributului, dar capabilitățile exacte diferă în funcție de furnizor.
- Pentru unele platforme, metadatele pe solicitare apar mai degrabă în jurnalele de invocare decât în rapoartele de alocare a costurilor. Echipele trebuie să cumuleze jurnalele și să aplice tarife pentru a estima costul la nivel de solicitare.
Recomandare
Tratați datele furnizorului ca o intrare, nu întregul sistem. Creați un registru intern care poate răspunde atât la întrebări operaționale, cât și la întrebări financiare, apoi reconciliați-l cu sursele de cost ale furnizorului în fiecare zi.
Arhitectura Ledger
Un registru de costuri are cinci componente principale:
- O schemă stabilă a dimensiunilor de cost.
- Acreditările și regulile de rutare stabilite.
- Captură de metadate la nivel de solicitare.
- Utilizarea furnizorului și asimilarea costurilor.
- Reconcilierea zilnică și aplicarea politicilor.
Scopul este de a produce două vederi conexe: un registru estimat per cerere pentru operațiuni și un registru zilnic reconciliat pentru finanțare.
Acesta este un element de bază comun în controlul costurilor AI API mai amplu, deoarece conectează telemetria de inginerie la responsabilitatea financiară fără a depinde de modelul de raportare al unui singur furnizor.
Pasul 1: definiți dimensiunile costurilor înainte de a crea tablouri de bord
Începeți cu dimensiunile pe care echipele financiare, de inginerie, de produs și de securitate le vor folosi în mod constant. Faceți acest lucru înainte de a selecta diagrame sau de a scrie lucrări de asimilare.
O schemă practică include de obicei:
- team_id: echipa de inginerie sau de afaceri proprietară.
- product_id: produsul, zona de caracteristici sau platforma internă care utilizează API-ul.
- mediu: producție, punere în scenă, dezvoltare, sandbox, demonstrație sau testare.
- sarcina de lucru: chat, rezumare, extragere, clasificare, generare de cod, evaluare, încorporare, reclasificare sau procesare în lot.
- segment_client: întreprindere, mijlocul pieței, versiune de încercare gratuită, internă, partener sau alte segmente aprobate.
- budget_owner: persoana, echipa sau centrul de cost responsabil pentru cheltuieli.
- furnizor: furnizorul AI API utilizat pentru solicitare.
- model: modelul exact sau identificatorul de implementare.
- request_class: interactiv, fundal, lot, reîncercare, alternativ, evaluare sau administrator.
Păstrați schema suficient de mică pentru ca inginerii să o completeze efectiv. Adăugați guvernare pentru a preveni deplasarea textului liber. De exemplu, team_id ar trebui să provină dintr-un registru intern de echipă, nu din anteturi de solicitare arbitrare.
Detalii de implementare
Reprezentați dimensiunile ca un contract cu versiuni. O solicitare care nu are etichetele de producție necesare ar trebui să eșueze închisă la gateway sau să fie direcționată într-o găleată de carantină denumită în mod clar, care este revizuită zilnic.
{
"schema_version": "2025-01",
"team_id": "platform-ai",
"product_id": "asistent-asistență",
„mediu”: „producție”,
"workload": "rezumat",
"customer_segment": "întreprindere",
"budget_owner": "centrul de costuri-4812","request_class": "interactiv"
}
Pasul 2: Emiteți cheile definite în funcție de echipă și mediu
Cheile API monolitice partajate fac alocarea costurilor fragilă. Dacă fiecare serviciu folosește aceeași acreditări, finanțele nu pot atribui cu încredere cheltuielile, iar echipele platformei nu pot dezactiva un singur volum de lucru fără a afecta sistemele care nu au legătură.
Utilizați acreditările definite oriunde este posibil:
- O singură cheie sau cont de serviciu pentru fiecare echipă și mediu.
- Acreditări separate pentru sarcinile de lucru de producție și non-producție.
- Acreditări separate pentru experimente, evaluări și joburi cu risc ridicat.
- Proiecte sau spații de lucru native ale furnizorului atunci când se corelează cu proprietatea internă.
Aceasta nu înseamnă că fiecare microserviciu are nevoie de un cont unic de furnizor. Prea multe granițe creează o suprasarcină operațională. Unitatea utilă este limita în care proprietatea, bugetul și răspunsul operațional diferă.
Notă de securitate
Cheile API și indicativele de securitate nu trebuie trimise în adrese URL, deoarece adresele URL sunt de obicei capturate în jurnale, proxy, instrumente de analiză și istoricul browserului. Puneți acreditările în anteturi sau în depozite secrete gestionate, rotiți-le printr-un proces automat și înregistrați evenimentele cheie ale ciclului de viață pentru răspunsul la incident.
Pasul 3: Capturați metadatele cererii la nivelul gateway-ului sau al aplicației
Registrul are nevoie de mai mult decât de numărări de jetoane. Are nevoie de suficient context pentru a explica de ce au avut loc cheltuielile și dacă au fost utile.
Pentru fiecare apel LLM, capturați:
- ID de solicitare intern și ID de urmărire distribuit.
- ID de solicitare a furnizorului când este returnat.
- Furnizor, model, regiune și punct final.
- Echipă, produs, mediu, volum de muncă, segment de clienți și proprietar de buget.
- Jetoane de intrare, jetoane de ieșire, jetoane stocate în cache, jetoane de raționament, unități de încorporare, unități de imagine sau alte unități facturabile, atunci când sunt disponibile.
- Latența, numărul de reîncercări, calea de rezervă, starea de expirare și codul de eroare.
- Înregistrați în cache.
- Clasa de solicitare: producție, evaluare, reîncercare, lot sau experiment.
Un gateway central facilitează acest lucru, deoarece fiecare apel de la furnizor trece printr-un singur punct de aplicare. Dacă un gateway central nu este fezabil, utilizați o bibliotecă client partajată și solicitați ca serviciile să emită același format de eveniment.
Nu înregistrați totul în mod implicit
Conținutul de solicitare și de ieșire poate ajuta la depanare și auditabilitate, dar creează și obligații de confidențialitate, reținere și control al accesului. Pentru multe echipe, implicit ar trebui să fie metadatele, numărul de simboluri, identificatorii de model și ID-urile de urmărire. Stocați conținutul prompt și ieșit numai conform unei politici explicite cu limite de păstrare și controale de acces.
Pasul 4: Mențineți două tabele de cost
Încercarea de a face ca un singur tabel să servească fiecărui scop creează de obicei confuzie. Construiește două registre cu sarcini diferite.
Registrul contabil estimat pe solicitare
Acest tabel acceptă operațiuni aproape în timp real. Este granulară, rapidă și aproximativă.
Coloanele utile includ:
request_idfurnizor_request_idmarca temporalăteam_idcodul_produsuluimediusarcina de lucrufurnizormodelunități_facturabilerate_card_versionestimated_cost_usdlatency_mscodul_stareretry_countrecuperare_utilizatăcache_status
Costul estimat ar trebui calculat pe baza celor mai bune date disponibile pentru unități facturabile și a unui tarif intern cu versiune. Păstrați versiunea cardului de tarife pe fiecare rând, astfel încât estimările istorice să poată fi explicate mai târziu.
Registrul zilnic reconciliat cu factură
Acest tabel acceptă raportarea financiară. Este mai puțin granular, mai lent și mai aproape de realitatea finală a facturării.
Coloanele utile includ:
data_facturarefurnizorinvoice_accountproiect_sau_spațiu de lucruteam_idcodul_produsuluimediuestimated_cost_usdprovider_reported_cost_usdallocated_adjustment_usdreconcilied_cost_usdvariance_motiv
Tabelul reconciliat ar trebui să păstreze variația în loc să o ascundă. Dacă costul raportat de furnizor este mai mic din cauza creditelor sau mai mare din cauza debitului furnizat, înregistrați acea diferență în mod explicit.
Pasul 5: reconciliați zilnic, nu manual la sfârșitul lunii
Reconcilierea zilnică păstrează surprizele mici. Procesul poate fi simplu la început:
- Ingerați în mod continuu evenimentele registrului la nivel de solicitare.
- Ingerați înregistrările privind utilizarea furnizorului și costurile într-un program.
- Grupați estimările interne în funcție de furnizor, proiect sau spațiu de lucru, model, dată și dimensiuni de alocare cunoscute.
- Comparați estimările interne cu costurile totale raportate de furnizor.
- Alocați diferențele folosind o politică documentată.
- Scrieți motivele variației și starea reconcilierii.
Categorii de variații obișnuite includ reduceri negociate, credite de la furnizori, înregistrări de utilizare întârziate, prețuri pentru token-uri în cache, prețuri pe lot, debit asigurat, conversie valutară, taxe minime și metadate lipsă.
Exemplu de politică de reconciliere
Dacă un proiect de furnizor se mapează la exact o echipă și un mediu, atribuiți costul zilnic complet raportat de furnizor acelei echipe și înregistrați estimarea internă ca detaliu de sprijin. Dacă un proiect de furnizor conține mai multe echipe, alocați totalul raportat de furnizor proporțional cu costul estimat intern, apoi înregistrați ajustarea pe fiecare rând de echipă.
Această politică nu este perfectă, dar este explicabilă. Explicabilitatea contează mai mult decât precizia falsă.
Pasul 6: atașați bugetele și controalele la dimensiunile registrului contabil
Odată ce cheltuielile sunt atribuite, controalele devin mai utile. O singură limită la nivelul întregii organizații este prea clară pentru majoritatea echipelor.
Utilizați comenzi diferite pentru diferite sarcini de lucru:
- Sandbox: limite stricte zilnice sau săptămânale, oprire automată, prag scăzut de aprobare.
- Dezvoltare: alerte soft plus limite rigide modeste.
- Evaluare: ferestre de lot, proprietar explicit al bugetului, data de expirare.
- Producție: alerte soft, flux de lucru de escaladare, cale de creștere a limitei de urgență.
- Utilizarea API-ului pentru parteneri sau clienți: alocarea la nivel de client, aplicarea cotelor și monitorizarea abuzurilor.
Limitele stricte previn facturile eliberate, dar pot întrerupe fluxurile de lucru de producție. Folosiți-le cu atenție în producție și asociați-le cu reguli de escaladare. Pentru sarcinile care nu sunt de producție, limitele dure sunt de obicei mai ușor de justificat.
Pasul 7: Detectați anomaliile dincolo de cheltuielile totale
Cheltuielile zilnice totale sunt un semnal de întârziere. Alertele mai bune folosesc câmpurile operaționale ale registrului.
Verificările utile pentru anomalii includ:
- Cost pe cerere reușită în funcție de volumul de lucru.
- Raportul output-token în comparație cu valoarea de referință istorică.
- Rata de reîncercare în funcție de furnizor, model și serviciu.
- Frecvența de retragere de la modele mai ieftine la modele mai scumpe.
- Cheltuiți viteza în ora curentă.
- Scăderea ratei de accesare a memoriei cache pentru sarcinile de lucru care se estimează că vor beneficia de stocarea în cache.
- Cheltuieli de non-producție în afara programului de lucru.
- Solicitări care lipsesc dimensiunile de cost necesare.
O alertă care spune că cheltuielile sunt mari este mai puțin utilă decât o alertă care spune că solicitările de rezumare a producției de la un serviciu generează de trei ori mai multe simboluri de ieșire normale după o implementare.
Secvență de implementare recomandată
Nu încercați să construiți arhitectura completă într-o singură versiune. O secvență practică este:
- Definiți schema dimensiunilor de cost și registrul de proprietate.
- Împărțiți datele de conectare ale furnizorului în funcție de echipă și mediu pentru a obține cele mai mari cheltuieli de lucru.
- Adăugați o captură de metadate a gateway-ului sau a bibliotecii client.
- Creați registrul estimat pe solicitare.
- Adăugați o carte de tarif cu versiunea pentru furnizorii și modelele utilizate.
- Ingerați datele privind costurile furnizorului într-un tabel de raportare zilnică.
- Implementați reconcilierea zilnică și urmărirea variațiilor.
- Adăugați politici bugetare, alerte și fluxuri de lucru de aprobare.
- Examinați metadatele lipsă și cheltuielile nealocate în fiecare săptămână.
Prima etapă utilă nu este rambursarea perfectă. Este capacitatea de a răspunde, în decurs de o zi lucrătoare, care echipă și volumul de muncă au cauzat o schimbare materială a cheltuielilor.
Compartimente pentru a decide în mod explicit
Tablourile de bord ale furnizorilor versus registrul intern: tablourile de bord ale furnizorilor sunt mai rapid de adoptat, dar rareori se potrivesc cu dimensiunile costurilor interne ale echipelor, produselor, mediilor și clienților.
Granularitatea versus cheltuielile operaționale: mai multe chei, proiecte, spații de lucru și etichete îmbunătățesc atribuirea, dar măresc munca de guvernare. Folosiți limite care corespund proprietății reale.
Costul estimat versus costul facturii: estimările la nivel de solicitare sunt oportune și utile pentru operațiuni, dar nu reflectă automat creditele, prețurile negociate sau ajustările de facturare.
Gateway central versus instrumente distribuite: un gateway oferă o aplicare consecventă între furnizori, dar devine o infrastructură critică. O bibliotecă client partajată este mai ușor de adoptat în anumite medii, dar mai greu de aplicat.
Auditabilitate versus confidențialitate: înregistrarea conținutului poate ajuta la investigații, dar înregistrarea numai cu metadate este adesea cea mai sigură prestabilită.
Predicție: registrele de costuri vor deveni parte a guvernării platformei AI
Directia probabilă este că raportarea furnizorului nativ se va îmbunătăți, dar alocarea între furnizori va necesita în continuare context intern. Furnizorii nu pot cunoaște structura echipelor, taxonomia produselor, segmentarea clienților, fluxul de lucru de aprobare sau politica de rambursare a fiecărei companii.
Pe măsură ce utilizarea AI se răspândește de la proiectele pilot în fluxurile de lucru de producție, registrele de costuri vor deveni parte din guvernanța obișnuită a platformei, alături de controlul accesului, rotația cheilor, înregistrarea în jurnal de audit, limitele ratelor și analiza utilizării. Echipele care își definesc taxonomia costurilor devreme vor avea un timp mai ușor să adauge bugete, alocare la nivel de client și controale automatizate mai târziu.
Concluzie acționabilă
Construiți registrul în jurul responsabilității, nu diagramelor. Începeți cu dimensiuni stabile, acreditări definite și solicitați metadate. Mențineți o estimare rapidă la fiecare cerere pentru operațiunile de inginerie și un registru zilnic reconciliat pentru finanțare. Reconciliați mai degrabă decât forțați estimările să pară exacte și păstrați variația, astfel încât reducerile, angajamentele, creditele și întârzierile de facturare să rămână vizibile.
O primă versiune utilă poate fi restrânsă: un furnizor, primele trei sarcini de lucru, chei delimitate în funcție de echipă și mediu, captura de metadate, costuri estimate și o comparație zilnică cu totalurile raportate de furnizor. Odată ce funcționează, extindeți același contract între furnizori și atașați politici bugetare dimensiunilor care contează.