Стримовање побољшава уочено кашњење, али може да прекине аналитику коришћења АИ и наплату ако мрежни пролаз само прокси бајтове. Ево практичног шаблона државног строја за снимање коначне употребе, прекинутих токова, грешака провајдера и делимичних одговора.
1 мин читањаModel Gate Editorial Team
<п>Стримовање ЛЛМ одговора је лако прокси и тешко је правилно наплатити. Ако <стронг>АИ АПИ мрежни пролазстронг> прослеђује догађаје које шаље сервер клијенту, али третира прве делове као запис о коришћењу, анализа закупца ће се мењати. Промена се обично појављује у споровима као што су: „корисник је видео само половину одговора“, „провајдер је наплатио више него што показује наша контролна табла“, „квота је прерано пуштена“ или „испрекидано време је произвело токене, али није било фактуре.п>
<п>Основни проблем је у томе што стримовани позиви нису један догађај. Они су низ: захтев је прихваћен, узводни ток отворен, бајтови испоручени, пријављена коначна употреба, провајдер заустављен, клијент искључен, временско ограничење мрежног пролаза је истекло и наплата је измирена. Поуздан мрежни пролаз би требало да експлицитно моделује та стања уместо да претпоставља да је завршен ХТТП одговор једини успешан пут.п>
<х2>Режим грешке: стримовање сакрива границе обрачунах2>
<п>Довршавања без стримовања обично враћају један објекат одговора са метаподацима о коришћењу. Мрежни пролаз може да нормализује ту употребу, упише ред књиге, ажурира квоту и емитује аналитику у једном пролазу.п>
<п>Стримовање мења границу. Кориснички доживљај је инкременталан, али истина о обрачуну може стићи на крају, у коначном догађају специфичном за добављача, у кумулативној делти, кроз збирни одговор СДК-а или касније кроз АПИ-је за извештавање добављача. Ако клијент прекине везу пре коначног догађаја коришћења, мрежни пролаз је можда испоручио само део одговора док је провајдер још увек генерисао и наплатио више токена.п>
<п><стронг>Чињеница:стронг> ОпенАИ документује да позиваоци који стримују позиве који желе податке о коришћењу треба да подесе <цоде>стреам_оптионсцоде> са <цоде>инцлуде_усагецоде>. ОпенАИ такође обезбеђује крајње тачке коришћења и трошкова на нивоу организације, уз напомену да употреба и трошкови можда нису увек савршено усклађени у финансијске сврхе.п>
<п><стронг>Чињеница:стронг> Антропски стриминг користи догађаје које шаље сервер као што су <цоде>мессаге_стартцоде>, <цоде>цонтент_блоцк_делтацоде>, <цоде>мессаге_делтацоде> и <цоде>мессаге_стопцоде>. Његове информације о коришћењу <цоде>мессаге_делтацоде> су кумулативне, тако да мрежни пролаз не сме да додаје сваку делту коришћења заједно.п>
<п><стронг>Чињеница:стронг> АПИ-ји за стримовање у Гемини и Вертек стилу могу да изложе инкременталне делове, док СДК-ови такође могу да обезбеде обједињени објекат одговора. За мрежне пролазе, та обједињена путања може бити бољи извор за довршено коришћење него само видљиви делови.п>
<х2>Користите машину стања тока, а не логичку ознаку успехах2>
<п>Стримовани захтев треба да има трајни запис о коришћењу пре него што започне упстреам позив. Тај запис би требало да се креће кроз експлицитна стања. Практични минимум је:п>
<ул>
<ли><цоде>прихваћеноцоде>: мрежни пролаз је потврдио аутентичност кључа, приписао закупца и направио отворен ред главне књиге.ли>
<ли><цоде>фирст_бите_сентцоде>: најмање један излазни догађај је стигао до доњег клијента.ли>
<ли><цоде>провидер_цомплетедцоде>: упстреам провајдер је емитовао нормалан сигнал за заустављање или завршен објекат одговора.ли>
<ли><цоде>цлиент_абортедцоде>: довнстреам соцкет затворен пре нормалног завршетка мрежног пролаза.ли>
<ли><цоде>провидер_еррорцоде>: упстреам провајдер је вратио грешку након што је стрим почео или пре него што је стигла коначна употреба.ли>
<ли><цоде>гатеваи_тимеоутцоде>: мрежни пролаз је применио свој буџет за кашњење и завршио захтев.ли>
<ли><цоде>решеноцоде>: мрежни пролаз је конвертовао коришћење у трошкове станара и потрошњу квота.ли>
<ли><цоде>усаглашеноцоде>: каснији подаци о коришћењу или трошковима добављача су потврђени или кориговани у реду.ли>
ул>
<п>Овај модел спречава уобичајену аналитичку грешку: означавање сваког стрима који је произвео текст као „успешан и тачан“. Стрим може да буде користан кориснику, непотпун од добављача, процењен за обрачун и истовремено чека на усаглашавање.п>
<х3>Препоручена поља књигех3>
<п>Нека ред за време захтева буде мали, али изричит:п>
<пре><цоде>{
"рекуест_ид": "гв_рек_...",
"тенант_ид": "тенант_123",
"апи_кеи_ид": "кеи_456",
"провидер": "опенаи|антропиц|гемини|...",
"провидер_рекуест_ид": нулл,
"модел": "провидер-модел-ид",
"стање": "прихваћено",
"стреам": истина,
"инпут_токенс": нулл,
"оутпут_токенс_билед": нулл,
"оутпут_токенс_деливеред_естимате": 0,
"провидер_усаге_соурце": нулл,
"биллинг_статус": "пендинг_рецонцилиатион",
"цлиент_аборт_ат": нулл,
"провидер_цомплетед_ат": нулл,
"сеттлед_ат": нулл,
"еррор_цласс": нулл
}цоде>пре>
<п>Важно раздвајање је <цоде>оутпут_токенс_биледцоде> у односу на <цоде>оутпут_токенс_деливеред_естиматецоде>. Корисницима је важно шта је стигло до њихове апликације. Финансије занима шта је провајдер наплатио. Ти бројеви могу да се разликују након прекида везе, токова позива алата, скривених токена за образложење, кешираних токена, сигурносних заустављања или временских ограничења мрежног пролаза.п>
<х2>Правила снимања специфична за добављачах2><п>Провајдер неутралан <стронг>АПИ компатибилан са ОпенАИстронг> је користан за програмере апликација, али су адаптеру мрежног пролаза и даље потребна рачуноводствена правила специфична за провајдера.п>
<х3>Стримовање компатибилно са ОпенАИх3>
<п>За ОпенАИ руте, изложите опцију мрежног пролаза која омогућава извештавање о коришћењу узводно тамо где је то подржано. Уобичајени образац је прихватање подразумеваних вредности на нивоу мрежног пролаза као што су:п>
<пре><цоде>{
"стреам": истина,
"стреам_оптионс": {
"инцлуде_усаге": тачно
}
}цоде>пре>
<п>Ако га низводни позивалац изостави, мрежни пролаз може одлучити да ли ће га увести за руте где је то компатибилно. Документујте ово понашање јер неки клијенти очекују тачну компатибилност жица, а неки модели или узводни модели можда неће подржавати коначну употребу на исти начин.п>
<п><стронг>Препорука:стронг> немојте измиривати трошкове станара из раних делова. Држите ред књиге отвореним све док се не ухвати последњи догађај коришћења, док се одговор добављача не заврши без коришћења или док стрим не уђе у грешку или путању за отказивање.п>
<х3>Антропски стримовањех3>
<п>Антхропицова кумулативна употреба захтева другачије правило. Ако мрежни пролаз види три догађаја <цоде>мессаге_делтацоде> са излазним токеном од 10, 25 и 40, излазни број је 40, а не 75.п>
<пре><цоде>лет латестУсаге = нулл;
за чекање (константни догађај антхропицСтреам-а) {
иф (евент.типе === "мессаге_делта" && евент.усаге) {
иф (латестУсаге && евент.усаге.оутпут_токенс < латестУсаге.оутпут_токенс) {
емит("цумулативе_усаге_регрессед", рекуестИд);
}
латестУсаге = евент.усаге;
}
форвардТоЦлиент(догађај);
}
сеттлеФромЛатестЦумулативеУсаге(латестУсаге);цоде>пре>
<п><стронг>Препорука:стронг> снимите најновију кумулативну вредност коришћења и емитујте догађај видљивости ако се регресира. Регресија може указивати на грешке парсера, дуплиране догађаје, промене добављача или мешане токове.п>
<х3>Стримовање у Близанцима и Вертек стилух3>
<п>Близанци подржавају делове за стримовање да би смањили уочено кашњење. У СДК-овима у стилу Вертек-а, стриминг може да изложи и асинхронизовани ток и обједињени објекат одговора. Гејтвеј би требало да сачува ту обједињену путању када је доступна.п>
<пре><цоде>цонст стреамингРесулт = аваит модел.генератеЦонтентСтреам(рекуест);
за чекање (константни комад стреамингРесулт.стреам) {
форвардЦхунк(комад);
цоунтДеливередБитесОрТект(цхунк);
}
цонст аггрегатед = чекај стреамингРесулт.респонсе;
сеттлеФромАггрегатедУсаге(аггрегатед);цоде>пре>
<п><стронг>Препорука:стронг> избегавајте прављење целокупног рачуноводства од видљивих делова ако СДК даје комплетан запис одговора. Комадићи су за кашњење. Коначни објекат је често бољи за обрачун и аналитику.п>
<х2>Обради прекида везе клијената као првокласне рачуноводствене догађајех2>
<п>Прекиди везе клијената су места где многи гејтвеји губе новац или пренаплаћују клијенте. Картица прегледача се затвара, мобилна мрежа испада или апликација отказује захтев. Мрежни пролаз примећује да је улазни прикључак затворен, али узводни провајдер можда још увек генерише.п>
<п>Гатеваи треба да направи експлицитни избор смерница:п>
<ул>
<ли><стронг>Одмах откажи узводно:стронг> смањује изгубљену производњу и трошкове добављача, али може да прекине токове посла где је позадинском делу и даље потребан резултат након што се кориснички интерфејс прекине.ли>
<ли><стронг>Наставите узводно у позадини:стронг> може сачувати рад за кориснике на страни сервера, али корисник можда неће видети све токене генерисане и наплаћене.ли>
<ли><стронг>Понашање зависно од руте:стронг> откажите за интерактивно ћаскање, наставите за токове посла који су слични пословима и учините подешавање видљивим закупцима.ли>
ул>
<п>Практично подразумевано за интерактивни стриминг је да откажете узводно када се клијент на нижем току прекине, а затим означи ред књиге као <цоде>цлиент_абортедцоде>. Ако коначна употреба дође током отказивања, намирите се из те ауторитативне употребе. Ако није, означите ред <цоде>процењеноцоде> или <цоде>пендинг_рецонцилиатионцоде> уместо да се претварате да је тачан.п>
<пре><цоде>довнстреам.он("цлосе", асинц () => {
иф (!провидерЦомплетед) {
ледгер.маркЦлиентАбортед(рекуестИд);
аваит упстреам.аборт().цатцх(() => {
ледгер.емит("упстреам_цанцел_фаилед", рекуестИд);
});
}
});цоде>пре>
<п><стронг>Препорука:стронг> разоткријте транспарентне ознаке обрачуна као што су <цоде>финалцоде>, <цоде>провидер_рецонциледцоде>, <цоде>процењенацоде>, <цоде>одустављенацоде> или <цоде>пендинг_рецонцилиатионцоде>. Ово је боље одбранити него да се сваки стримовани позив приказује као одмах тачан.п>
<х2>Примена квоте током стримах2>
<п>Тачан обрачун обично зависи од коначног коришћења добављача, али спровођење квоте не може увек да чека до краја. Закупцу са чврстим буџетом не би требало дозволити да стримује на неодређено време јер тачна употреба није доступна у току лета.п>
<п>Користите два механизма заједно:п>
<ол><ли><стронг>Резервација пре објављивања:стронг> резервишите процењени максимум на основу модела, захтеваног максималног броја токена, смерница закупца и тренутног стања.ли>
<ли><стронг>Провере притиска стримовања:стронг> процените испоручени излаз током стрима и зауставите се ако захтев пређе конфигурисану безбедносну границу.ли>
ол>
<п>Ово је контролни механизам, а не коначни рачун. Добављачи могу да броје кеширане токене, токене за образложење, мултимодалне токене или скривене токене другачије од процене мрежног пролаза.п>
<п><стронг>Компром:стронг> Процене у реалном времену помажу у спровођењу буџета, али могу да одступе од токена које наплаћује добављач. Завршно поравнање би требало да користи ауторитативно коришћење добављача када је доступно, а помирење би требало да прилагоди процене касније.п>
<х2>Догађаји уочљивости који хватају грешке у рачуноводствух2>
<п>Лакше је отклонити грешке при стримовању обрачуна када мрежни пролаз емитује циљане догађаје уместо само генеричких евиденција захтева. Додајте догађаје као што су:п>
<ул>
<ли><цоде>финал_усаге_миссингцоде>: стрим је завршен без ауторитативног коришћења.ли>
<ли><цоде>цумулативе_усаге_регресседцоде>: кумулативни број токена је померен уназад.ли>
<ли><цоде>стреам_ендед_витхоут_стоп_евентцоде>: није примећен нормалан маркер заустављања добављача.ли>
<ли><цоде>абортед_афтер_провидер_цомплетионцоде>: провајдер је завршио, али је низводни клијент затворен пре него што је мрежни пролаз завршио прослеђивање.ли>
<ли><цоде>сеттлед_фром_естиматецоде>: књига станара је користила процену јер је коначно коришћење било недоступно.ли>
<ли><цоде>рецонцилиатион_адјустед_усагецоде>: извештавање добављача је касније променило ред.ли>
ул>
<п><стронг>Чињеница:стронг> Семантичке конвенције ОпенТелеметри ГенАИ препоручују коришћење информација о коришћењу које је вратио провајдер за стримовање одговора када су доступне и упозоравају на извештавање о метрикама коришћења ако се број токена не може ефикасно или тачно добити.п>
<п>За <стронг>аналитику коришћења АИстронг>, то значи да контролне табле треба да подржавају нивое поверења. Графикон који комбинује коначне, процењене и усаглашене вредности без ознака може да изгледа чисто, али да обмањује тимове за финансије и подршку.п>
<х2>Тестови усклађености за стримовање рачуноводствах2>
<п>Не ослањајте се на ручно тестирање са упитом за ћаскање са срећним путем. Сваки адаптер добављача треба да има тестове усаглашености за случајеве који покваре књиге:п>
<ул>
<ли><стронг>Нормални ток:стронг> стиже коначно коришћење, примећен је догађај заустављања, књига се поставља као <цоде>коначнацоде>.ли>
<ли><стронг>Стрим позива алатке:стронг> Делта позива алата се прослеђује, употреба се бележи, структурирани метаподаци не ометају бројање токена.ли>
<ли><стронг>Сигурносно заустављање или заустављање због одбијања:стронг> добављач престаје да се користи, а употреба се и даље одвија исправно.ли>
<ли><стронг>Принудно прекидање везе са клијентом:стронг> низводно се затвара након делимичног излаза; узводно се отказује или наставља у складу са смерницама.ли>
<ли><стронг>Усвод 5кк након делимичног излаза:стронг> мрежни пролаз бележи делимичну испоруку и не означава захтев као чист успех.ли>
<ли><стронг>Временско ограничење мрежног пролаза пре коначног коришћења:стронг> ред постаје процењен или чека на усаглашавање.ли>
<ли><стронг>Недостаје завршни догађај:стронг> адаптер емитује <цоде>финал_усаге_миссингцоде> и избегава тачне ознаке обрачуна.ли>
ул>
<п>Ови тестови треба да потврде прелазе стања, поља књиге, емитоване догађаје видљивости и понашање низводно. Компатибилност бајт-за-бајт тока није довољна; рачуноводствени нежељени ефекти су део уговора.п>
<х2>Контролна листа за практичну имплементацијух2>
<ул>
<ли>Креирајте ред књиге коришћења пре него што пошаљете претходни захтев.ли>
<ли>Идентификаторе закупца, кључа, корисника, модела, руте, добављача и захтева сачувајте у тренутку захтева.ли>
<ли>Омогућите коначно извештавање о коришћењу добављача тамо где је подржано, као што је <цоде>стреам_оптионс.инцлуде_усагецоде> компатибилан са ОпенАИ.ли>
<ли>За кумулативне добављаче, сачувајте најновију вредност коришћења уместо сумирања догађаја.ли>
<ли>Сачувајте обједињене објекте одговора када их пакети за развој софтвера обезбеде.ли>
<ли>Пратите испоручени излаз одвојено од коришћења које наплаћује провајдер.ли>
<ли>Приликом прекида везе, откажите узводно у складу са смерницама руте и означите <цоде>цлиент_абортедцоде>.ли>
<ли>Користите транспарентне статусе обрачуна: коначан, процењен, на чекању усаглашавања, помирен добављач или одустао.ли>
<ли>Емитовање догађаја уочљивости специфичних за рачуноводство.ли>
<ли>Помирите касније са извештајима о коришћењу добављача или трошковима када су доступни, уз очување приписивања закупца у време захтева.ли>
ул>
<х2>Шта показати станаримах2>
<п>Станари не требају сваки интерни догађај, али им требају поштене етикете. Корисна табела коришћења може да прикаже:п>
<ул>
<ли><стронг>Статус:стронг> коначан, процењен или усаглашен.ли>
<ли><стронг>Исход захтева:стронг> завршен, клијент је прекинут, грешка добављача или временско ограничење мрежног пролаза.ли><ли><стронг>Испоручени излаз:стронг> приближан текст или бајтови послати клијенту.ли>
<ли><стронг>Наплаћени токени:стронг> коришћење нормализовано од добављача који се користи за трошкове.ли>
<ли><стронг>Прилагођавање:стронг> свака каснија делта усаглашавања.ли>
ул>
<п>Овај дизајн смањује двосмисленост подршке. Ако је корисник видео само део одговора, контролна табла може да објасни да ли је провајдер већ завршио, да ли је мрежни пролаз отказан узводно и да ли је наплата коначна или процењена.п>
<х2>Препоруке у односу на предвиђањах2>
<п><стронг>Препоруке:стронг> третирајте стримоване захтеве као државне машине, сачекајте ауторитативно коначно коришћење пре тачног обрачуна, одвојите испоручени излаз од наплаћеног коришћења и поштено означите процењене редове. Адаптери добављача треба да кодирају семантику коришћења специфичну за провајдера, а не да слажу сваки ток у генерички прокси бајт.п>
<п><стронг>Предвиђање:стронг> стриминг рачуноводство ће постати важније како модели откривају више скривеног посла: токене за размишљање, попусте на кеширане токене, мултимодалну обраду, трагове употребе алата и безбедносне стопе. Мрежни пролази који већ одвајају коришћење које наплаћује добављач од излаза видљивог клијента ће се лакше прилагодити од мрежних пролаза који броје само стримовани текст.п>
<х2>Закључак који се може применитих2>
<п>Ако ваш мрежни пролаз подржава стримовање, извршите ревизију једне путање данас: присилите клијента да прекине везу након првих неколико делова и прегледајте ред књиге. Ако пише „успех“ са тачним бројем токена, ваша аналитика вероватно лаже.п>
<п>Решење је да се не напусти стримовање. Задржите брзо корисничко искуство, али довршите стрим, отказивање, грешке добављача, недостајућу коначну употребу и усаглашавање експлицитних рачуноводствених стања. То тимовима производа даје резултате који реагују, финансијским тимовима оправдане трошкове, а тимовима за подршку довољно доказа да објасне делимичне одговоре без нагађања.п><х2>Повезано читањех2><ул><ли><а хреф="хттпс://модел-гате.цом/ен/блог/аи-апи-биллинг-ледгер-куоте-ресерве-сеттле-14/рецон" је водио сваки модел иза биллинг-сеттле-рецон" позива>ли><ли><а хреф="хттпс://модел-гате.цом/ен/блог/ллм-обсервабилити-мулти-модел-апи-гатеваи-трацес-токен-ледгерс-сафе-промпт-логгинг-9/">придруживање трагова, књига токена и аналитике безбедног коришћењаа>ли><ли хреф="хттпс://модел-гате.цом/ен/блог/мигратинг-опенаи-цомпатибле-апи-гатеваи-цомпатибилити-цонтрацт-13/">израда уговора о компатибилности мрежног пролаза компатибилног са ОпенАИа>ли>ул>
FAQ
Често постављана питања
Да ли би гејтвеј рачун требало да преноси одговоре из процењеног броја токена?
Користите процене за заштиту квоте у реалном времену када је то потребно, али поравнајте тачне трошкове закупца из коришћења које враћа провајдер када је то доступно. Ако недостаје коначна употреба, означите ред као процењен или чека на усаглашавање.
Зашто се испоручени излазни токени могу разликовати од наплаћених токена?
Клијент може да прекине везу, мрежни пролаз може да истекне, провајдер може да броји скривено образложење или мултимодалне токене, или провајдер може да заврши генерисање након што корисник престане да прима бајтове. Пратите испоручени излаз одвојено од коришћења које наплаћује провајдер.
Која је најчешћа рачуноводствена грешка Антхропиц стримовања?
Сумирање кумулативних догађаја коришћења. Бројеви коришћења антропских порука_делта су кумулативни, тако да би мрежни пролаз требало да чува најновију вредност уместо да додаје сваки догађај.
Шта би требало да се деси када прегледач прекине везу током стрима?
За интерактивне руте, практично подразумевано је да се откаже претходни захтев, означи ред главне књиге као цлиент_абортед и да се измири само на основу коришћења овлашћеног провајдера ако стигне. У супротном означите ред који је процењен или чека на усаглашавање.
We use essential technologies to operate and secure the website. With your permission, we also use optional analytics technologies. See our Cookie Policy.