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 în domeniu, 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 imagine reconciliată care poate sprijini bugete, alocare și rambursare.
Acest articol prezintă o arhitectură practică pentru echipele care utilizează mai mult de o IA API, 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 înregistrările de utilizare și înregistrările costurilor finale s-ar putea să nu se împace perfect din cauza reducerilor, creditelor, facturării întârziate, prețurilor de angajament, ratelor batch, prețurilor în cache sau ajustărilor facturilor.
- Granițele administrative native, cum ar fi proiectele, spațiile de lucru, conturile de servicii, API cheile sau directorii IAM pot ajuta la atribuirea cheltuielilor, 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.
Recomandarea
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 politicii.
Obiectivul este de a produce două vederi conexe: un registru estimat pe cerere pentru operațiuni și un registru zilnic reconciliat pentru finanțare.
Acesta este un element de bază comun în AI API controlul costurilor, 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 consumă API.
- 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.
- customer_segment: segmente de întreprindere, de mijloc, de încercare gratuită, interne, de parteneri 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 de echipă intern, nu din antetele cererilor arbitrare.
Detalii de implementare
Reprezentați dimensiunile ca un contract cu versiune. 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 grupă de carantină denumită în mod clar, care este revizuită zilnic.
{
"schema_version": "2025-01",
"team_id": "platform-ai",
"product_id": "support-assistant",
"environment": "production",
"workload": "summarization",
"customer_segment": "enterprise",
"budget_owner": "cost-center-4812",
"request_class": "interactive"
}
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 autentificare, finanțele nu pot atribui cu încredere cheltuielile, iar echipele de platformă nu pot dezactiva un singur volum de lucru fără a afecta sistemele care nu au legătură.
Folosiți acreditările în domeniu ori de câte ori este posibil:
- Un cont cheie sau 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ă corect 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
CheileAPI ș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ări î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 simboluri. 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-ul solicitării 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.
- Clasă 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, păstrare ș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 costuri
Încercarea ca un singur tabel să servească tuturor scopurilor creează de obicei confuzie. Creați 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_idprovider_request_idtimestampteam_idproduct_idenvironmentworkloadprovidermodelbillable_unitsrate_card_versionestimated_cost_usdlatency_msstatus_coderetry_countfallback_usedcache_status
Costul estimat trebuie 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 tarif 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:
billing_dateproviderinvoice_accountproject_or_workspaceteam_idproduct_idenvironmentestimated_cost_usdprovider_reported_cost_usdallocated_adjustment_usdreconciled_cost_usdvariance_reason
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 continuu evenimente din registru 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ârziată, prețuri pentru token-ul stocat î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 bugete și comenzi 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 controale 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 lot, proprietar explicit al bugetului, data expirării.
- Producție: alerte soft, flux de lucru de escaladare, cale de creștere a limitei de urgență.
- Utilizarea partenerului sau a clientului API: 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 stricte sunt de obicei mai ușor de justificat.
Pasul 7: Detectați anomaliile dincolo de cheltuielile totale
Cheltuielile zilnice totale sunt un semnal întârziat. 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 de ieșire-token în comparație cu valoarea de referință istorică.
- Rata de reîncercare în funcție de furnizor, model și serviciu.
- Frecvența de rezervă de la modele mai ieftine la modele mai scumpe.
- Celtuiți viteza în ora curentă.
- Scăderea ratei de accesare a memoriei cache pentru sarcinile de lucru care se estimează că vor beneficia de memorarea în cache.
- Cheltuieli non-producție în afara programului de lucru.
- Solicitări care lipsesc parametri de cost necesari.
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 indicative de ieșire normale după o implementare.
Secvența 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 captură de metadate gateway sau bibliotecă client.
- Creați registrul contabil 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 abilitatea 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 dimensiunilor 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 dreptului de proprietate real.
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-ul central versus instrumentație distribuită: un gateway oferă o aplicare consecventă între furnizori, dar devine o infrastructură critică. O bibliotecă client partajată este mai ușor de adoptat în unele medii, dar mai greu de aplicat.
Auditabilitate versus confidențialitate: înregistrarea în jurnal de conținut poate ajuta la investigații, dar înregistrarea numai cu metadate este adesea cea prestabilită mai sigură.
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 echipei, 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 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 automate mai târziu.
Concluzie acționabilă
Construiți registrul în jurul răspunderii, 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, capturarea metadatelor, costurile 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ă.