Водич и увид

Стреаминг токен Аццоунтинг ин АИ АПИ Гатеваи: Коначна употреба, отказивања и делимични одговори

Стримовање побољшава уочено кашњење, али може да прекине аналитику коришћења АИ и наплату ако мрежни пролаз само прокси бајтове. Ево практичног шаблона државног строја за снимање коначне употребе, прекинутих токова, грешака провајдера и делимичних одговора.

<п>Стримовање ЛЛМ одговора је лако прокси и тешко је правилно наплатити. Ако <стронг>АИ АПИ мрежни пролаз прослеђује догађаје које шаље сервер клијенту, али третира прве делове као запис о коришћењу, анализа закупца ће се мењати. Промена се обично појављује у споровима као што су: „корисник је видео само половину одговора“, „провајдер је наплатио више него што показује наша контролна табла“, „квота је прерано пуштена“ или „испрекидано време је произвело токене, али није било фактуре. <п>Основни проблем је у томе што стримовани позиви нису један догађај. Они су низ: захтев је прихваћен, узводни ток отворен, бајтови испоручени, пријављена коначна употреба, провајдер заустављен, клијент искључен, временско ограничење мрежног пролаза је истекло и наплата је измирена. Поуздан мрежни пролаз би требало да експлицитно моделује та стања уместо да претпоставља да је завршен ХТТП одговор једини успешан пут. <х2>Режим грешке: стримовање сакрива границе обрачуна <п>Довршавања без стримовања обично враћају један објекат одговора са метаподацима о коришћењу. Мрежни пролаз може да нормализује ту употребу, упише ред књиге, ажурира квоту и емитује аналитику у једном пролазу. <п>Стримовање мења границу. Кориснички доживљај је инкременталан, али истина о обрачуну може стићи на крају, у коначном догађају специфичном за добављача, у кумулативној делти, кроз збирни одговор СДК-а или касније кроз АПИ-је за извештавање добављача. Ако клијент прекине везу пре коначног догађаја коришћења, мрежни пролаз је можда испоручио само део одговора док је провајдер још увек генерисао и наплатио више токена. <п><стронг>Чињеница: ОпенАИ документује да позиваоци који стримују позиве који желе податке о коришћењу треба да подесе <цоде>стреам_оптионс са <цоде>инцлуде_усаге. ОпенАИ такође обезбеђује крајње тачке коришћења и трошкова на нивоу организације, уз напомену да употреба и трошкови можда нису увек савршено усклађени у финансијске сврхе. <п><стронг>Чињеница: Антропски стриминг користи догађаје које шаље сервер као што су <цоде>мессаге_старт, <цоде>цонтент_блоцк_делта, <цоде>мессаге_делта и <цоде>мессаге_стоп. Његове информације о коришћењу <цоде>мессаге_делта су кумулативне, тако да мрежни пролаз не сме да додаје сваку делту коришћења заједно. <п><стронг>Чињеница: АПИ-ји за стримовање у Гемини и Вертек стилу могу да изложе инкременталне делове, док СДК-ови такође могу да обезбеде обједињени објекат одговора. За мрежне пролазе, та обједињена путања може бити бољи извор за довршено коришћење него само видљиви делови. <х2>Користите машину стања тока, а не логичку ознаку успеха <п>Стримовани захтев треба да има трајни запис о коришћењу пре него што започне упстреам позив. Тај запис би требало да се креће кроз експлицитна стања. Практични минимум је: <ул> <ли><цоде>прихваћено: мрежни пролаз је потврдио аутентичност кључа, приписао закупца и направио отворен ред главне књиге. <ли><цоде>фирст_бите_сент: најмање један излазни догађај је стигао до доњег клијента. <ли><цоде>провидер_цомплетед: упстреам провајдер је емитовао нормалан сигнал за заустављање или завршен објекат одговора. <ли><цоде>цлиент_абортед: довнстреам соцкет затворен пре нормалног завршетка мрежног пролаза. <ли><цоде>провидер_еррор: упстреам провајдер је вратио грешку након што је стрим почео или пре него што је стигла коначна употреба. <ли><цоде>гатеваи_тимеоут: мрежни пролаз је применио свој буџет за кашњење и завршио захтев. <ли><цоде>решено: мрежни пролаз је конвертовао коришћење у трошкове станара и потрошњу квота. <ли><цоде>усаглашено: каснији подаци о коришћењу или трошковима добављача су потврђени или кориговани у реду. <п>Овај модел спречава уобичајену аналитичку грешку: означавање сваког стрима који је произвео текст као „успешан и тачан“. Стрим може да буде користан кориснику, непотпун од добављача, процењен за обрачун и истовремено чека на усаглашавање. <х3>Препоручена поља књиге <п>Нека ред за време захтева буде мали, али изричит: <пре><цоде>{ "рекуест_ид": "гв_рек_...", "тенант_ид": "тенант_123", "апи_кеи_ид": "кеи_456", "провидер": "опенаи|антропиц|гемини|...", "провидер_рекуест_ид": нулл, "модел": "провидер-модел-ид", "стање": "прихваћено", "стреам": истина, "инпут_токенс": нулл, "оутпут_токенс_билед": нулл, "оутпут_токенс_деливеред_естимате": 0, "провидер_усаге_соурце": нулл, "биллинг_статус": "пендинг_рецонцилиатион", "цлиент_аборт_ат": нулл, "провидер_цомплетед_ат": нулл, "сеттлед_ат": нулл, "еррор_цласс": нулл } <п>Важно раздвајање је <цоде>оутпут_токенс_билед у односу на <цоде>оутпут_токенс_деливеред_естимате. Корисницима је важно шта је стигло до њихове апликације. Финансије занима шта је провајдер наплатио. Ти бројеви могу да се разликују након прекида везе, токова позива алата, скривених токена за образложење, кешираних токена, сигурносних заустављања или временских ограничења мрежног пролаза. <х2>Правила снимања специфична за добављача<п>Провајдер неутралан <стронг>АПИ компатибилан са ОпенАИ је користан за програмере апликација, али су адаптеру мрежног пролаза и даље потребна рачуноводствена правила специфична за провајдера. <х3>Стримовање компатибилно са ОпенАИ <п>За ОпенАИ руте, изложите опцију мрежног пролаза која омогућава извештавање о коришћењу узводно тамо где је то подржано. Уобичајени образац је прихватање подразумеваних вредности на нивоу мрежног пролаза као што су: <пре><цоде>{ "стреам": истина, "стреам_оптионс": { "инцлуде_усаге": тачно } } <п>Ако га низводни позивалац изостави, мрежни пролаз може одлучити да ли ће га увести за руте где је то компатибилно. Документујте ово понашање јер неки клијенти очекују тачну компатибилност жица, а неки модели или узводни модели можда неће подржавати коначну употребу на исти начин. <п><стронг>Препорука: немојте измиривати трошкове станара из раних делова. Држите ред књиге отвореним све док се не ухвати последњи догађај коришћења, док се одговор добављача не заврши без коришћења или док стрим не уђе у грешку или путању за отказивање. <х3>Антропски стримовање <п>Антхропицова кумулативна употреба захтева другачије правило. Ако мрежни пролаз види три догађаја <цоде>мессаге_делта са излазним токеном од 10, 25 и 40, излазни број је 40, а не 75. <пре><цоде>лет латестУсаге = нулл; за чекање (константни догађај антхропицСтреам-а) { иф (евент.типе === "мессаге_делта" && евент.усаге) { иф (латестУсаге && евент.усаге.оутпут_токенс < латестУсаге.оутпут_токенс) { емит("цумулативе_усаге_регрессед", рекуестИд); } латестУсаге = евент.усаге; } форвардТоЦлиент(догађај); } сеттлеФромЛатестЦумулативеУсаге(латестУсаге); <п><стронг>Препорука: снимите најновију кумулативну вредност коришћења и емитујте догађај видљивости ако се регресира. Регресија може указивати на грешке парсера, дуплиране догађаје, промене добављача или мешане токове. <х3>Стримовање у Близанцима и Вертек стилу <п>Близанци подржавају делове за стримовање да би смањили уочено кашњење. У СДК-овима у стилу Вертек-а, стриминг може да изложи и асинхронизовани ток и обједињени објекат одговора. Гејтвеј би требало да сачува ту обједињену путању када је доступна. <пре><цоде>цонст стреамингРесулт = аваит модел.генератеЦонтентСтреам(рекуест); за чекање (константни комад стреамингРесулт.стреам) { форвардЦхунк(комад); цоунтДеливередБитесОрТект(цхунк); } цонст аггрегатед = чекај стреамингРесулт.респонсе; сеттлеФромАггрегатедУсаге(аггрегатед); <п><стронг>Препорука: избегавајте прављење целокупног рачуноводства од видљивих делова ако СДК даје комплетан запис одговора. Комадићи су за кашњење. Коначни објекат је често бољи за обрачун и аналитику. <х2>Обради прекида везе клијената као првокласне рачуноводствене догађаје <п>Прекиди везе клијената су места где многи гејтвеји губе новац или пренаплаћују клијенте. Картица прегледача се затвара, мобилна мрежа испада или апликација отказује захтев. Мрежни пролаз примећује да је улазни прикључак затворен, али узводни провајдер можда још увек генерише. <п>Гатеваи треба да направи експлицитни избор смерница: <ул> <ли><стронг>Одмах откажи узводно: смањује изгубљену производњу и трошкове добављача, али може да прекине токове посла где је позадинском делу и даље потребан резултат након што се кориснички интерфејс прекине. <ли><стронг>Наставите узводно у позадини: може сачувати рад за кориснике на страни сервера, али корисник можда неће видети све токене генерисане и наплаћене. <ли><стронг>Понашање зависно од руте: откажите за интерактивно ћаскање, наставите за токове посла који су слични пословима и учините подешавање видљивим закупцима. <п>Практично подразумевано за интерактивни стриминг је да откажете узводно када се клијент на нижем току прекине, а затим означи ред књиге као <цоде>цлиент_абортед. Ако коначна употреба дође током отказивања, намирите се из те ауторитативне употребе. Ако није, означите ред <цоде>процењено или <цоде>пендинг_рецонцилиатион уместо да се претварате да је тачан. <пре><цоде>довнстреам.он("цлосе", асинц () => { иф (!провидерЦомплетед) { ледгер.маркЦлиентАбортед(рекуестИд); аваит упстреам.аборт().цатцх(() => { ледгер.емит("упстреам_цанцел_фаилед", рекуестИд); }); } }); <п><стронг>Препорука: разоткријте транспарентне ознаке обрачуна као што су <цоде>финал, <цоде>провидер_рецонцилед, <цоде>процењена, <цоде>одустављена или <цоде>пендинг_рецонцилиатион. Ово је боље одбранити него да се сваки стримовани позив приказује као одмах тачан. <х2>Примена квоте током стрима <п>Тачан обрачун обично зависи од коначног коришћења добављача, али спровођење квоте не може увек да чека до краја. Закупцу са чврстим буџетом не би требало дозволити да стримује на неодређено време јер тачна употреба није доступна у току лета. <п>Користите два механизма заједно: <ол><ли><стронг>Резервација пре објављивања: резервишите процењени максимум на основу модела, захтеваног максималног броја токена, смерница закупца и тренутног стања. <ли><стронг>Провере притиска стримовања: процените испоручени излаз током стрима и зауставите се ако захтев пређе конфигурисану безбедносну границу. <п>Ово је контролни механизам, а не коначни рачун. Добављачи могу да броје кеширане токене, токене за образложење, мултимодалне токене или скривене токене другачије од процене мрежног пролаза. <п><стронг>Компром: Процене у реалном времену помажу у спровођењу буџета, али могу да одступе од токена које наплаћује добављач. Завршно поравнање би требало да користи ауторитативно коришћење добављача када је доступно, а помирење би требало да прилагоди процене касније. <х2>Догађаји уочљивости који хватају грешке у рачуноводству <п>Лакше је отклонити грешке при стримовању обрачуна када мрежни пролаз емитује циљане догађаје уместо само генеричких евиденција захтева. Додајте догађаје као што су: <ул> <ли><цоде>финал_усаге_миссинг: стрим је завршен без ауторитативног коришћења. <ли><цоде>цумулативе_усаге_регрессед: кумулативни број токена је померен уназад. <ли><цоде>стреам_ендед_витхоут_стоп_евент: није примећен нормалан маркер заустављања добављача. <ли><цоде>абортед_афтер_провидер_цомплетион: провајдер је завршио, али је низводни клијент затворен пре него што је мрежни пролаз завршио прослеђивање. <ли><цоде>сеттлед_фром_естимате: књига станара је користила процену јер је коначно коришћење било недоступно. <ли><цоде>рецонцилиатион_адјустед_усаге: извештавање добављача је касније променило ред. <п><стронг>Чињеница: Семантичке конвенције ОпенТелеметри ГенАИ препоручују коришћење информација о коришћењу које је вратио провајдер за стримовање одговора када су доступне и упозоравају на извештавање о метрикама коришћења ако се број токена не може ефикасно или тачно добити. <п>За <стронг>аналитику коришћења АИ, то значи да контролне табле треба да подржавају нивое поверења. Графикон који комбинује коначне, процењене и усаглашене вредности без ознака може да изгледа чисто, али да обмањује тимове за финансије и подршку. <х2>Тестови усклађености за стримовање рачуноводства <п>Не ослањајте се на ручно тестирање са упитом за ћаскање са срећним путем. Сваки адаптер добављача треба да има тестове усаглашености за случајеве који покваре књиге: <ул> <ли><стронг>Нормални ток: стиже коначно коришћење, примећен је догађај заустављања, књига се поставља као <цоде>коначна. <ли><стронг>Стрим позива алатке: Делта позива алата се прослеђује, употреба се бележи, структурирани метаподаци не ометају бројање токена. <ли><стронг>Сигурносно заустављање или заустављање због одбијања: добављач престаје да се користи, а употреба се и даље одвија исправно. <ли><стронг>Принудно прекидање везе са клијентом: низводно се затвара након делимичног излаза; узводно се отказује или наставља у складу са смерницама. <ли><стронг>Усвод 5кк након делимичног излаза: мрежни пролаз бележи делимичну испоруку и не означава захтев као чист успех. <ли><стронг>Временско ограничење мрежног пролаза пре коначног коришћења: ред постаје процењен или чека на усаглашавање. <ли><стронг>Недостаје завршни догађај: адаптер емитује <цоде>финал_усаге_миссинг и избегава тачне ознаке обрачуна. <п>Ови тестови треба да потврде прелазе стања, поља књиге, емитоване догађаје видљивости и понашање низводно. Компатибилност бајт-за-бајт тока није довољна; рачуноводствени нежељени ефекти су део уговора. <х2>Контролна листа за практичну имплементацију <ул> <ли>Креирајте ред књиге коришћења пре него што пошаљете претходни захтев. <ли>Идентификаторе закупца, кључа, корисника, модела, руте, добављача и захтева сачувајте у тренутку захтева. <ли>Омогућите коначно извештавање о коришћењу добављача тамо где је подржано, као што је <цоде>стреам_оптионс.инцлуде_усаге компатибилан са ОпенАИ. <ли>За кумулативне добављаче, сачувајте најновију вредност коришћења уместо сумирања догађаја. <ли>Сачувајте обједињене објекте одговора када их пакети за развој софтвера обезбеде. <ли>Пратите испоручени излаз одвојено од коришћења које наплаћује провајдер. <ли>Приликом прекида везе, откажите узводно у складу са смерницама руте и означите <цоде>цлиент_абортед. <ли>Користите транспарентне статусе обрачуна: коначан, процењен, на чекању усаглашавања, помирен добављач или одустао. <ли>Емитовање догађаја уочљивости специфичних за рачуноводство. <ли>Помирите касније са извештајима о коришћењу добављача или трошковима када су доступни, уз очување приписивања закупца у време захтева. <х2>Шта показати станарима <п>Станари не требају сваки интерни догађај, али им требају поштене етикете. Корисна табела коришћења може да прикаже: <ул> <ли><стронг>Статус: коначан, процењен или усаглашен. <ли><стронг>Исход захтева: завршен, клијент је прекинут, грешка добављача или временско ограничење мрежног пролаза.<ли><стронг>Испоручени излаз: приближан текст или бајтови послати клијенту. <ли><стронг>Наплаћени токени: коришћење нормализовано од добављача који се користи за трошкове. <ли><стронг>Прилагођавање: свака каснија делта усаглашавања. <п>Овај дизајн смањује двосмисленост подршке. Ако је корисник видео само део одговора, контролна табла може да објасни да ли је провајдер већ завршио, да ли је мрежни пролаз отказан узводно и да ли је наплата коначна или процењена. <х2>Препоруке у односу на предвиђања <п><стронг>Препоруке: третирајте стримоване захтеве као државне машине, сачекајте ауторитативно коначно коришћење пре тачног обрачуна, одвојите испоручени излаз од наплаћеног коришћења и поштено означите процењене редове. Адаптери добављача треба да кодирају семантику коришћења специфичну за провајдера, а не да слажу сваки ток у генерички прокси бајт. <п><стронг>Предвиђање: стриминг рачуноводство ће постати важније како модели откривају више скривеног посла: токене за размишљање, попусте на кеширане токене, мултимодалну обраду, трагове употребе алата и безбедносне стопе. Мрежни пролази који већ одвајају коришћење које наплаћује добављач од излаза видљивог клијента ће се лакше прилагодити од мрежних пролаза који броје само стримовани текст. <х2>Закључак који се може применити <п>Ако ваш мрежни пролаз подржава стримовање, извршите ревизију једне путање данас: присилите клијента да прекине везу након првих неколико делова и прегледајте ред књиге. Ако пише „успех“ са тачним бројем токена, ваша аналитика вероватно лаже. <п>Решење је да се не напусти стримовање. Задржите брзо корисничко искуство, али довршите стрим, отказивање, грешке добављача, недостајућу коначну употребу и усаглашавање експлицитних рачуноводствених стања. То тимовима производа даје резултате који реагују, финансијским тимовима оправдане трошкове, а тимовима за подршку довољно доказа да објасне делимичне одговоре без нагађања.<х2>Повезано читање<ул><ли><а хреф="хттпс://модел-гате.цом/ен/блог/аи-апи-биллинг-ледгер-куоте-ресерве-сеттле-14/рецон" је водио сваки модел иза биллинг-сеттле-рецон" позив<ли><а хреф="хттпс://модел-гате.цом/ен/блог/ллм-обсервабилити-мулти-модел-апи-гатеваи-трацес-токен-ледгерс-сафе-промпт-логгинг-9/">придруживање трагова, књига токена и аналитике безбедног коришћења<ли хреф="хттпс://модел-гате.цом/ен/блог/мигратинг-опенаи-цомпатибле-апи-гатеваи-цомпатибилити-цонтрацт-13/">израда уговора о компатибилности мрежног пролаза компатибилног са ОпенАИ
FAQ

Често постављана питања

Да ли би гејтвеј рачун требало да преноси одговоре из процењеног броја токена?
Користите процене за заштиту квоте у реалном времену када је то потребно, али поравнајте тачне трошкове закупца из коришћења које враћа провајдер када је то доступно. Ако недостаје коначна употреба, означите ред као процењен или чека на усаглашавање.
Зашто се испоручени излазни токени могу разликовати од наплаћених токена?
Клијент може да прекине везу, мрежни пролаз може да истекне, провајдер може да броји скривено образложење или мултимодалне токене, или провајдер може да заврши генерисање након што корисник престане да прима бајтове. Пратите испоручени излаз одвојено од коришћења које наплаћује провајдер.
Која је најчешћа рачуноводствена грешка Антхропиц стримовања?
Сумирање кумулативних догађаја коришћења. Бројеви коришћења антропских порука_делта су кумулативни, тако да би мрежни пролаз требало да чува најновију вредност уместо да додаје сваки догађај.
Шта би требало да се деси када прегледач прекине везу током стрима?
За интерактивне руте, практично подразумевано је да се откаже претходни захтев, означи ред главне књиге као цлиент_абортед и да се измири само на основу коришћења овлашћеног провајдера ако стигне. У супротном означите ред који је процењен или чека на усаглашавање.