Juhend ja ülevaade

Tehke AI API arveldusraamat: hinnapakkumine, reserveerimine, arveldamine ja vastavusse viimine iga mudelikõne

Praktiline arvelduse kontrolli muster mitme mudeliga lüüside jaoks: hinnake kulusid enne päringut, reserveerige rentniku eelarve, normaliseerige teenusepakkuja kasutust, arveldage tegelikud tasud ja kooskõlastage arved ilma ainult pakkuja töötlemata vastustele tuginemata.

Kliendile suunatud AI API arveldamine ei saa olla teenusepakkuja töötlemata kasutuse igakuine eksport. Kui lüüs avaldab üürnikele, meeskondadele või partneritele mitu mudelit, peab arveldamine enne arve olemasolu vastama raskemale küsimusele: kas see taotlus peaks olema praegu lubatud ja kuidas selle maksumust hiljem selgitatakse?

Praktiline muster on arveldusraamat, millel on neli etappi: pakkumine, reserveerimine, arveldamine ja vastavusse viimine. Enne päringut märkige tõenäoline maksumus. Reserveerige piisavalt üürniku eelarvet, et katta lubatud halvimal juhul. Arveldage tegelik maksumus pärast seda, kui kasutus on teada. Võrrelge lüüsi pearaamat teenusepakkujapoolsete kirjetega, et arved oleksid kaitstud.

Selles artiklis kirjeldatakse seda mitme mudeli API-lüüsi juhtimisahelat. See on kasulik, kas lüüs esitab arveid sisemeeskondadele, ettemaksuklientidele, agentuuri klientidele või alljärgnevatele partneritele.

Arveldusprobleem: teenusepakkuja kasutamine ei ole kliendi arve

Fakt: suured tehisintellekti pakkujad ei avalda üht universaalset märgiloendurit ega üht universaalset hinda. OpenAI avaldab mudelipõhised hinnad eraldi sisendi, vahemällu salvestatud sisendi ja väljundi lubade määradega. OpenAI viipade vahemällu salvestamise aruanded vahemällu salvestatud loa kasutamise kohta API vastuse kasutamise väljal. Antroopsed dokumendid eraldavad loendurid tavaliste sisendmärkide, vahemälu loomise sisendmärkide, vahemälu lugemise sisendmärkide ja väljundmärkide jaoks. Kaksikute hinnakujundus eristab sisendi, väljundi ja muid märgikategooriaid, sealhulgas modaalsuspõhist kasutust, nagu helimärgid.

See tähendab, et lüüs ei saa turvaliselt arvet esitada, korrutades total_tokens ühe hinnaga. See vajab pakkuja-spetsiifilisi adaptereid pakkuja-neutraalse arveldusskeemi taga.

Probleem muutub nähtavamaks järgmistes olukordades:

  • Ettemakstud krediit: peab lüüs taotlused tagasi lükkama, enne kui üürnik kulutab alla nulli.
  • Partneri juurdehindlused: partner vajab oma kliendile suunatud arvet, mitte teenusepakkuja arve koopiat.
  • Voogesitus: vastus algab enne, kui loa lõplik kasutus on teada.
  • Viiba vahemällu salvestamine: vahemällu salvestatud sisend võib olla odavam kui vahemällu salvestamata sisend, kuid ainult siis, kui seda mõõdetakse eraldi.
  • Põhjendus ja tööriistakasutus: mõned mudelid pakuvad täiendavaid kasutusmõõtmeid, peidetud väljundklasse või meediumiühikuid.
  • Pakkuja hinnamuudatused: eelmise kuu arve peab olema ka pärast hinnakaardi muutumist reprodutseeritav.

Soovitus: käsitlege arveldust ainult lisatava finantsreskontra, mitte armatuurlaua päringuna päringulogide üle.

Tuumiarhitektuur

Usaldusväärsel arveldusarhitektuuril on kuus komponenti:

  1. Üürniku konto: klient, tööruum, edasimüüja klient või sisemine kulukeskus.
  2. Hinnakaardi teenus: teenusepakkuja, mudeli, arveldusklassi, valuuta ja juurdehindlusreegli versioonide hinnad.
  3. Hindaja: arvutab päringu parameetrite ja mudeli poliitika põhjal esituse pakkumise.
  4. Broneeringuraamat: hoiab eelarvet enne teenusepakkuja kõne algust.
  5. Kasutuse normaliseerija: teisendab teenusepakkujapõhised kasutusväljad sisemisteks arveldusüksusteks.
  6. Arveldus- ja lepitustööd: viimistlege tasud ja võrrelge neid teenusepakkujapoolsete kirjetega.

Juhtimisvoog näeb välja selline:

kliendi taotlus
  -> autentige üürnik ja võti
  -> valige mudel ja hinnakaardi versioon
  -> hinnangu sisend ja maksimaalne väljundkulu
  -> üürniku reservjääk
  -> kõne pakkuja
  -> normaliseerige tagastatud kasutus
  -> arveldada tegelikud kulud
  -> vabasta kasutamata broneering
  -> väljastada arvevalmis pearaamatu sündmus

Oluline disainivalik on see, et taotlust ei peetaks lihtsalt järgi. Seda kontrollitakse rahaliselt enne ja pärast täitmist.

1. toiming: hinnapakkumine enne teenusepakkuja kõnet

Eelarve hinnapakkumine peaks olema piisavalt pessimistlik, et eelarvet jõustada, kuid piisavalt seletatav, et seda klientidele või partneritele näidata.

Sisendite hulka kuuluvad tavaliselt:

  • üürniku ID ja arveldusplaan;
  • API võtme ID või projekti ID;
  • pakkuja ja mudeli ID pärast marsruutimisreeglite rakendamist;
  • hinnangulised vahemällu salvestamata sisendmärgid;
  • teatud vahemällu salvestatud sisendi sobivus, kui see on saadaval;
  • max_tokens, max_output_tokens või samaväärne väljundpiirang;
  • tööriista, pildi, heli või muud modaalsuse parameetrid;
  • partneri juurdehindlus, allahindlus või edasimüüja hinnareegel;
  • valuuta- ja ümardamispoliitika.

Lihtne tsitaadi valem teksti genereerimiseks võib olla järgmine:

hinnanguline_kulu =
  hinnangulised_vahemälustamata_sisendmärgid * sisendi_määr
+ hinnangulised_vahemällu salvestatud_sisendi_märgid * vahemällu salvestatud_sisendi_määr
+ max_väljundi_märgid * väljundkiirus+ taotluse_tasu
+ partneri_märgistus

Soovitus: kui väljundi lõplik pikkus pole teada, tehke reserv konfigureeritud maksimaalse väljundi vastu. Kui rakendus jätab väljundi piiri piiramata, peaks lüüs rakendama rentniku või mudeli vaikeseadet. Eelarve jõustamine ei saa olla deterministlik, kui puudub maksimaalne vastutus.

See võib tagasi lükata mõned taotlused, mis oleksid praktikas olnud odavad. See on kompromiss. Ettemakstud süsteemide puhul on turvalisem vaikimisi pessimistlik broneerimine, kus kasutamata raha vabastatakse pärast arveldamist. Arve saanud äriklientidele võivad meeskonnad lubada pehmeid ülehindlusi ja kasutada pakkumist peamiselt hoiatuste jaoks.

2. samm: reserveerige üürniku eelarve

Broneering kaitseb üürniku kontot lubatud saldost suuremate kulutuste eest. See peaks olema tühine: broneerimine õnnestub ja teenusepakkuja kõne võib alata või taotlus lükatakse tagasi enne, kui teenusepakkuja kulud tekivad.

Broneeringu kirje võib sisaldada järgmist:

kood>{ "reservation_id": "res_01J...", "üürniku_id": "üürnik_123", "api_key_id": "key_456", "request_id": "req_789", "provider": "example_provider", "mudel": "mudel-a", "rate_card_version": "2026-08-01", "quoted_amount": "0,032100", "currency": "USD", "status": "reserveeritud", "expires_at": "2026-08-11T12:05:00Z" }

Kasutage võrgutõrgete ja kliendi katkestuste korral lühikesi broneeringu aegumisi. Puhastustöö peaks vabastama aegunud broneeringud, mis ei jõudnud lahenduseni. Kuid ärge vabastage broneeringut lihtsalt seetõttu, et klient katkestas ühenduse; teenusepakkuja kõne võib siiski lõppeda ja sellega kaasnevad kulud. Jälgige teenusepakkuja taotluse olekut eraldi.

Soovitus: muutke broneering idempotentseks päringu ID või idempotentsuse võtme abil. Klientide, lüüside või töötajate korduskatsed ei tohiks luua sama loogilise päringu jaoks mitut eelarvepiirangut.

3. samm: normaliseerige teenusepakkuja kasutus

Pakkuja vastused tuleks teisendada väikeseks siseskeemiks. Hoidke see stabiilsena isegi siis, kui pakkujad lisavad uusi kasutusvälju.

Praktiline normaliseeritud kasutusskeem:

kood>{ "input_uncached_tokens": 1200, "input_cached_tokens": 800, "cache_write_tokens": 0, "output_tokens": 650, "reasoning_or_hidden_output_tokens": 0, "tool_or_media_units": [], "request_fee_units": 1, "provider_request_id": "prov_abc", "usage_source": "provider_response", "on_hinnatud": vale }

See skeem ei ole tahtlikult identne ühegi teenusepakkuja vastusega. See salvestab arveldusmõõtmed, mida arved vajavad, säilitades samal ajal teenusepakkujapõhiste üksuste evakuatsiooniluugid.

Vahemällu salvestatud märgid vajavad oma rida

Fakt: viipe vahemällu salvestamise hind võib erineda vahemällu salvestamata sisendi hinnast. Kui vahemällu salvestatud märgid liidetakse sisendtunnuste koguarvuks, võidakse kliendilt võtta üle tasu või lüüs võib teenusepakkuja kulusid alahinnata. Vahemällu salvestatud sisend peaks ilmuma nii pearaamatus kui ka arvel oma arveldusklassina.

Vahemälu kirjutamine ja vahemälu lugemine ei ole alati samad

Mõned pakkujad eristavad vahemälu kirjete loomist ja vahemälust lugemist. Normaliseerija ei tohiks eeldada, et vahemällu salvestatud sisend tähendab alati ühte arveldusmäära. Kui pakkujal on vahemällu kirjutamise ja vahemälu lugemise märgid, kaardistage need eraldi või säilitage need pakkujaspetsiifiliste allüksustena.

Põhjendused ja varjatud väljund vajavad poliitikat

Mõned mudelid paljastavad arutluskäiguga seotud kasutuse või peidetud väljundloendurid. Kui teenusepakkuja esitab nende üksuste eest arveid, peab lüüs otsustama, kas näidata neid otse, koondada need väljundkategooriasse või loetleda need eraldi arve reana.

Soovitus: klientidele esitatud arvetel tuleks kasutada lihtsat keelt. Näiteks: "arutlusväljundi märgid" on selgem kui töötlemata pakkuja välja nimi. Hoidke töötlemata väljad auditi jaoks kättesaadavaks, kuid ärge sundige iga klienti tarnija sisemisi asju mõistma.

4. toiming: tasuge tegelikud kulud

Arveldus teisendab normaliseeritud kasutuse pearaamatu lõppkirjeteks. See peaks olema ainult lisatav ja viitama taotluses kasutatud hinnakaardi versioonile.

Lõpetatud sündmus võib välja näha järgmine:

kood>{ "ledger_event_id": "led_01J...", "event_type": "asula", "üürniku_id": "üürnik_123", "request_id": "req_789", "reservation_id": "res_01J...", "provider": "example_provider", "mudel": "mudel-a", "rate_card_version": "2026-08-01", "jooned": [ { "billing_class": "input_uncached_tokens", "kogus": 1200, "ühik": "märk", "ühiku_hind": "0,00000250", "summa": "0,003000" }, { "billing_class": "input_cached_tokens", "kogus": 800, "ühik": "märk", "ühiku_hind": "0,00000125", "summa": "0,001000" }, { "billing_class": "output_tokens", "kogus": 650, "ühik": "märk","ühiku_hind": "0,00001000", "summa": "0,006500" } ], "total_amount": "0,010500", "currency": "USD", "staatus": "arveldatud" }

Kui taotlus oli reserveeritud väärtusele 0,032100 ja arveldati väärtusega 0,010500, vabastab pearaamat 0,021600 vaba saldo juurde.

Soovitus: ärge kunagi arvutage vanu arve ridu praegusest hinnatabelist ümber. Salvestage muutumatud hinnakaardi versioonid ja lisage versiooni ID igale hinnapakkumisele, broneeringule ja arveldussündmusele. Vastasel juhul võib pärast teenusepakkuja mudelihindade värskendamist muutuda võimatuks arve taasesitamine.

Voogesitustaotlused: kõigepealt broneerige, arveldage hiljem

Voogesitus muudab arveldamise keerulisemaks, kuna kasutaja hakkab väljundit vastu võtma enne, kui lüüs saab teada lõplikust kasutusest. Vastus on see, et ärge jätke lennueelseid kontrolle vahele. Lüüs peaks enne voo avamist reserveerima.

Kasutage seda töövoogu:

  1. Hinnangu sisendmärgid ja maksimaalne väljundkulu.
  2. Reserveerige üürniku eelarve.
  3. Avage teenusepakkuja voog.
  4. Edastage osad kliendile.
  5. Jäädvustage lõppkasutus, kui teenusepakkuja selle saadab või kui on saadaval järelkasutuskirje.
  6. Arveldage tegelik hind ja vabastage kasutamata broneering.

Kui lõppkasutus pole saadaval, märkige arveldus hinnanguliseks, mitte ei teeskle, et see on täpne:

"usage_source": "gateway_estimate",
"is_estimated": tõsi,
"reconciliation_status": "ootel"

Soovitus: igapäevane kooskõlastamine peaks seadma esikohale hinnangulised voogesituse sündmused, ebaõnnestunud taotlused, ajalõpud ja korduskatsed. Need on valdkonnad, mis tekitavad kõige tõenäolisemalt erinevusi lüüsikirjete ja pakkuja arvete vahel.

Hinnakaardi versiooni- ja märgistamisreeglid

Hinnakaart peaks olema versioonidega objekt, mitte muutuv arvutustabel.

Minimaalsed väljad:

  • pakkuja;
  • mudeli ID;
  • arveldusklass;
  • üksus, näiteks luba, päring, pilt, helisekund või tööriistaüksus;
  • ühiku hind;
  • valuuta;
  • efektiivsed alguse ja lõpu ajatemplid;
  • ümardamispoliitika;
  • üürniku plaan või partneri märgistusreegel;
  • allikaviide ja kinnituse metaandmed.

Märgistusreeglid peaksid olema selged. Näiteks:

  • Kulu pluss: teenusepakkuja kulu pluss 20%.
  • Fikseeritud jaemüük: üürnik maksab fikseeritud tunnushinna sõltumata teenusepakkuja hinnast.
  • Tasmeline: kõigepealt 10 miljonit märki ühe määraga, seejärel madalama määraga.
  • Kaasatud krediit: kulutab igakuine hüvitis enne ülearveldamise algust.

Mõiste: hinnakaardi versioonide koostamine lisab operatiivset tööd, kuid takistab arvevaidluste muutumist arheoloogiaks. Klienditoe agent peaks suutma selgitada, miks 3. augustil esitatud taotluse eest arveldati kindla määraga, ilma tänast teenusepakkuja hinnakujundust kontrollimata.

Eraldage arveldusraamat analüütikast

Analüütikal ja arveldamisel on erinevad tolerantsid. Analyticsit saab koondada, viivitada, võtta valimeid või parandada. Arveldamine peab olema täielik, tõhus, auditeeritav ja seletatav.

Kasutage analüütikat selliste küsimuste puhul nagu:

  • Millised meeskonnad kasutavad kõige rohkem märke?
  • Millised mudelid kasvavad kõige kiiremini?
  • Kus saab kiire vahemällu salvestamine kulusid vähendada?
  • Millised võtmed esitavad ebatavaliselt kulukaid taotlusi?

Kasutage arveldusraamatut selliste küsimuste korral nagu:

  • Kas see taotlus autoriseeriti üürniku saldo arvelt?
  • Milline hinnakaardi versioon selle tasu tekitas?
  • Kas kasutamata broneering vabastati?
  • Kas kliendi arve vastab arveldatud kasutusviisile?
  • Kas lüüsi kasutus vastab pakkujapoolsele kasutusele?

Fakt: OpenTelemetry GenAI semantilised kokkulepped hõlmavad loa kasutamise atribuute, nagu sisend- ja väljundmärgid. See on kasulik jälgitavuse ja kulusündmustega jälgede ühendamise jaoks. Kuid telemeetria atribuudid ei asenda hinnakaarte, broneeringuid, arveldust, ümardamist ega arve olekut.

Igapäevase vastavusse viimise töövoog

Komplekteerimisel võrreldakse lüüsi arveldatud pearaamatut teenusepakkujapoolse kasutusega. Eesmärk ei ole täiuslik kokkulepe igal vaheväljal. Eesmärk on tuvastada materjali erinevus piisavalt varakult, et arveid, hinnakaarte või adaptereid parandada.

Praktiline igapäevatöö:

  1. Grupeerige lüüsi pearaamatu sündmused pakkuja, mudeli, rentniku või API võtme, arveldusklassi ja UTC päeva järgi.
  2. Tooge pakkujapoolne kasutus, mis on rühmitatud saadaolevate dimensioonide (nt API võtme ID, mudeli ja päeva) alusel.
  3. Võimalusel normaliseerige pakkuja eksportimine sama adapterkoodi kaudu, mida kasutatakse päringu vastuste jaoks.
  4. Võrdlege koguseid ja kulusid arveldusklasside kaupa.
  5. Märgistage lävedest suurem dispersioon, näiteks 0,5% koguseline erinevus või mis tahes suur absoluutkulude erinevus.
  6. Klassifitseerige dispersiooni põhjused: voogesituse prognoosid, korduskatsed, ebaõnnestunud päringud, vahemälu arvestus, mudeli pseudonüümi muudatused, viivitatud pakkuja kirjed või puuduvad päringu ID-d.
  7. Vanade arveldussündmuste muutmise asemel loo korrigeerimissündmusi.

Soovitus: kasutage teenusepakkuja API võtmeid rentniku kohta, kui see on operatiivselt teostatav, kuna see lihtsustab kooskõlastamist. Kui see tekitab liiga palju võtmehalduskulusid, vastendage sisemised rentniku ID-d pakkuja metaandmetega, kus neid toetatakse, ja säilitage usaldusväärne päringu ID-sild.

Klientidele arusaadavad arve read

Kliendile suunatud arve ei tohiks peegeldada pakkuja JSON-i. See peaks selgitama arvet stabiilsetes äritingimustes.

Kasulikud arveveerud:

  • kuupäevavahemik;
  • üürniku, projekti või API võtme silt;
  • mudel või mudeliprofiil;
  • taotluste arv;
  • vahemällu salvestamata sisendmärgid;
  • vahemällu salvestatud sisendmärgid;
  • väljundmärgid;
  • kandja- või tööriistaüksused, kui need on olemas;
  • allahindlused, krediidid või juurdehindlused;
  • kogusumma ja valuuta.

Partneride puhul lisage nii hulgi- kui ka jaehind ainult siis, kui ärimudel seda nõuab. Paljudel edasimüüjate arvetel tuleks näidata ainult jaekasutust, samas kui partnerite armatuurlauad võivad marginaali näidata eraldi.

Komppror: ühtne arveskeem parandab loetavust, kuid teenusepakkujapõhised arveldusandmed vajavad siiski turvaluuke. Hoidke arve read vaikimisi lihtsad ja pakkuge eksporti edasijõudnud klientidele, kes vajavad üksikasjalikke auditivälju.

Rakendamise kontroll-loend

Enne käivitamist

  • Määratlege normaliseeritud arveldusklassid kõigi toetatud pakkujate jaoks.
  • Looge kehtivuskuupäevadega muutumatuid hinnakaardi versioone.
  • Nõuge väljundpiiranguid või rakendage lüüsi vaikeseadeid.
  • Rakendage aatomireservatsioonid idempotentsusvõtmetega.
  • Määrake iga valuuta jaoks ümardamisreeglid.
  • Otsustage, kuidas esitada arveid vahemällu salvestatud žetoonide, arutlusmärkide, meediumiühikute ja tasude taotlemise kohta.
  • Testi korduskatsed, ajalõpud, kliendi katkestused ja pakkuja vead.
  • Ehitatud sündmuste muutmise asemel looge korrigeerimissündmuste mehhanism.

Taotluse käsitlemise ajal

  • Autentige üürnik ja võti.
  • Lasendage lõplik mudel pärast marsruutimist ja varupoliitikat.
  • Valige õige hinnakaardi versioon.
  • Pakkuge halvimal juhul kulu.
  • reserveerige saldo või lükake taotlus tagasi.
  • Salvestage pakkuja päringu ID, kui see on saadaval.
  • Normaliseerige kasutus vastusest.
  • Arveldage, vabastage kasutamata broneering ja edastage arvevalmis sündmused.

Pärast päringu käsitlemist

  • Käitage igapäevast vastavusseviimist pakkuja, võtme, mudeli, arveldusklassi ja päeva järgi.
  • Vaadake üle hinnangulised voogesituse arveldused.
  • Märgistage mudeli kasutamine puuduvate hinnakaardi kirjetega.
  • Jälgige vahemällu salvestatud märgiarvestuse põhjustatud dispersiooni.
  • Loo enne lõplikku arveldamist kliendi arvete eelvaateid.

Prognoosid, mida plaanida

Prognoos: AI API arveldamine muutub mitmemõõtmelisemaks, mitte vähem. Tõenäoliselt laienevad märgiklassid, vahemäluklassid, meediumiüksused, tööriistade täitmine ja arutluskäiguga seotud loendurid mudeli võimaluste muutudes.

Prognoos: kliendid ootavad kasutusselgitusi taotluse, võtme, projekti ja arve tasemel. Igakuine kogusumma ilma jälgitavate reaüksusteta ei ole API-juurdepääsu edasimüümise või ettemakstud eelarvete jõustamiseks piisav.

Prognoos: lüüsid, mis juba eraldavad hinnapakkumise, broneerimise, arvelduse ja kooskõlastamise, kohanduvad kiiremini uute hinnakujundusmudelitega, kuna need saavad lisada arveldusklasse ilma kogu arvesüsteemi ümber kirjutamata.

Tehtitav järeldus

Kui paljastate ühe lüüsi kaudu mitu tehisintellekti pakkujat, koostage arveldusraamat, enne kui arveldusvaidlused probleemi sunnivad. Alustage nelja garantiiga:

  1. Igale arveldatavale taotlusele esitatakse lennueelne hinnapakkumine.
  2. Igal ettemakstud või piiratud üürnikul on eelarve reserveeritud enne teenusepakkuja kõne algust.
  3. Iga pakkuja vastus normaliseeritakse stabiilseteks arveldusklassideks.
  4. Iga arvet saab võrrelda teenusepakkujapoolse kasutamise ja sel ajal kasutatud täpse hinnakaardi versiooniga.

See juhtimisahel muudab ühtse AI API arveldamise klientidele arusaadavaks, ettemakstud krediitidele jõustatavaks, partnerite juurdehindluste jaoks paindlikuks ja auditeeritavaks, kui teenusepakkuja hinnakujundus või kasutusvormingud muutuvad.

Seotud lugemine

FAQ

Korduma kippuvad küsimused

Miks mitte esitada arveid otse teenusepakkuja arvetelt?
Pakkuja arved on vastavusseviimiseks kasulikud, kuid need saabuvad pärast kasutamist ega jõusta üürniku eelarveid nõudmise ajal. Lüüsi arveldusreskontra abil saate pakkumisi teha, reserveerida ja arveldada iga päringu enne, kui teenusepakkuja igakuine arve on saadaval.
Kas vahemällu salvestatud märke tuleks klientidele näidata?
Tavaliselt jah, vähemalt eraldi kokkuvõtliku arve reana. Vahemällu salvestatud lubade hind võib erineda vahemällu salvestamata sisendi hinnast, nii et nende eraldamine muudab allahindluste ja tasude selgitamise lihtsamaks.
Kuidas tuleks voogesituse taotluste eest arveldada?
Reserveerige eelarve enne voogesituse algust maksimaalse väljundpiirangu alusel. Kui lõppkasutus on saadaval, arveldage tegelik maksumus ja vabastage kasutamata broneering. Kui lõppkasutus puudub, märkige sündmus hinnanguliseks ja viige see hiljem vastavusse.
Kas analüütika armatuurlauad võivad asendada arveldusraamatu?
Ei. Analyticsit saab koondada või viivitada, kuid arveldamine vajab täielikke, ideaalseid ja ainult lisatavaid kirjeid, mis on seotud hinnakaardi versioonide, broneeringute, arveldussündmuste ja arve olekuga.