Водич и увид

АИ АПИ капије са свешћу о ограничењу брзине: РПМ облика, ТПМ, бурстови и праведност станара пре него што је погодио 429с

Практична архитектура мрежног пролаза за спречавање каскадних ЛЛМ АПИ 429: нормализујте ограничења провајдера, процените притисак токена пре слања, резервишите квоту по закупцу, глатке саобраћајне рампе и омогућите контролу пригушења.

<п>429 од ЛЛМ провајдера није само сигнал за поновни покушај. У продукцији, то је често доказ да је ваша апликација већ изгубила контролу над пријемом, праведношћу закупца, кашњењем или обрачуном квоте специфичним за добављача. <п>Уобичајено решење – експоненцијално повлачење – је неопходно, али непотпуно. Бацкофф реагује након што провајдер одбије саобраћај. <стронг>АИ АПИ капија која је свесна ограничења брзине би требало да обликује саобраћај пре него што захтеви напусте ваш систем: процени притисак на токене, резервише квоту, изолује станаре, стави у ред прави посао, одбаци погрешан посао и прилагоди се када се промене ограничења добављача. <п>Овај чланак описује практичан гејтвеј гувернер квоте за тимове који шаљу производна оптерећења вишеструким ЛЛМ провајдерима преко обједињеног АПИ-ја. <х2>Проблем читача: 429 су вишедимензионалне <п>Многи тимови третирају ограничења стопе као да су један број захтева у минути. Та претпоставка се брзо прекида са ЛЛМ АПИ-јима. <п><стронг>Чињенице из актуелне документације добављача: <ул> <ли>ОпенАИ документи чија ограничења могу да се примењују на краће временске периоде од оглашеног ограничења по минути, тако да кратки низови могу да не успеју чак и када просечни минут изгледа безбедно. <ли>Азуре ОпенАИ квота се додељује према претплати, региону, моделу и типу примене у токенима по минуту. Додељивање ТПМ-а примени такође одређује ограничења броја обртаја у минути принудног закључивања, а односи РПМ-то-ТПМ варирају у зависности од модела. <ли>Азуре ОпенАИ такође напомиње да се прорачуни токена ограничења стопе процењују када се захтев прими и да нису исти као коначни број токена за обрачун. <ли>Антропски документи одвајају ограничења за захтеве-по-минути, улазне-жетоне-по-минути и излазне-токене-по-минути. Прекорачење ограничења враћа 429 са заглављем за поновни покушај. <ли>Антропик упозорава да нагло повећање саобраћаја може да достигне границе убрзања и препоручује постепено повећање. <ли>За већину Цлауде модела, Антхропиц документи који кеш читају улазне токене се не рачунају у ограничења улазних токена по минути, што значи да брзо кеширање може да промени ефективни простор. <ли>Ограничења стопа Гоогле Гемини АПИ-ја су везана за нивое коришћења пројекта, са вишим нивоима у зависности од подешавања обрачуна, кумулативне потрошње и протеклог времена након прекретница плаћања. <п>Оперативна лекција је јасна: облик захтева компатибилан са ОпенАИ не подразумева понашање квоте компатибилно са ОпенАИ. Мрежни пролаз са више провајдера треба интерни модел квоте који је богатији од „поново покушај ако 429.“ <х2>Циљ дизајна: учинити контролу приступа одговорношћу пролаза <п>Гејтвеј који је свестан ограничења брзине треба да одговори на пет питања пре него што пошаље захтев: <ол> <ли>Који добављач, модел, примену, регион, пројекат или радни простор ће примити захтев? <ли>Колики капацитет захтева, улазног токена, излазног токена и капацитета истовремености може да потроши? <ли>Којем закупцу, тиму, АПИ кључу, клијенту или класи радног оптерећења треба наплатити дељени капацитет? <ли>Да ли би захтев требало да се прихвати сада, да се накратко стави у ред чекања, да се врати на старију верзију, да се преусмери негде другде или да се одбије? <ли>Како треба усагласити резервацију након што добављач врати стварну употребу? <п>Гатеваи постаје гувернер квоте. Не замењује ограничења провајдера. То чини ограничења добављача видљивим, предвидљивим и поштеним унутар вашег система. <х2>Изградите нормализовани модел квоте <п>Почните тако што ћете дефинисати унутрашње димензије ограничавача које могу представљати главне добављаче, а да их не приморавате да уђу у једну обмањујућу групу. <х3>Препоручене димензије граничника <ул> <ли><стронг>РПМ: захтева по минуту. <ли><стронг>Унос ТПМ: токени упита, поруке, алатке и контекста у минути. <ли><стронг>ТПМ излаза: токени завршетка у минути, резервисани одвојено за стримовање и дуге генерације. <ли><стронг>Укупни ТПМ: корисно за добављаче или примене које излажу комбиновани притисак на токене. <ли><стронг>Упоредност: активни захтеви, активни стримови или послови током лета. <ли><стронг>Трајање стримовања: дуговечни стримови могу да заузму простор за везу и излазни токен чак и када је број обртаја у минути низак. <ли><стронг>Опсег специфичан за добављача: Азуре претплата/регион/примена, антропски радни простор/класа модела, Гоогле пројекат/ниво или ОпенАИ организација/пројекат/група модела. <п>Не сакривајте димензије специфичне за добављача. Нормализујте их у заједничку шему, али сачувајте довољно детаља да касније објасните одбијање. <пре><цоде>{ "провидер": "провидер_а", "модел_профиле": "брзо ћаскање", "провидер_сцопе": { "пројекат": "прод", "регион": "ус-исток", "распоређивање": "цхат-ларге-01" }, "ограничења": { "рпм": 1200, "инпут_тпм": 800000, "оутпут_тпм": 250000, „истовременост“: 200 } }<п>Овај интерни објекат треба да буде експлицитно конфигурисан, а не да се закључује само из назива модела. Контролне табле добављача, нивои налога, регионалне примене и подешавања радног простора могу да промене ефективни капацитет исте породице модела. <х2>Процените притисак токена пре слања <п>Ограничавање стопе на страни добављача се често дешава пре него што се сазна коначно коришћење обрачуна. Ваш мрежни пролаз би требало да направи исту врсту конзервативне процене пре слања саобраћаја. <х3>Уноси резервације пре лета <ул> <ли>Серијализовани упит и дужина поруке. <ли>Токенизација специфична за модел и додатни трошкови за улоге, алате, слике или структурирана излазна упутства. <ли><цоде>мак_цомплетион_токенс или еквивалентно ограничење излаза. <ли>Историјски однос завршетка за ову крајњу тачку, закупца, профил модела и класу захтева. <ли>Очекивани токени за читање кеша ако је брзо кеширање доступно и мерљиво. <ли>Ознака за стримовање и очекивано трајање стрима. <п>За почетак је често довољно једноставно правило резервације: <пре><цоде>естиматед_инпут_токенс = токенизе(рекуест_мессагес) + модел_оверхеад процењени_излазни токени = мин( мак_цомплетион_токенс, п95_хисторицал_оутпут_токенс_фор_роуте ) резервисани_укупни_токени = процењени_улазни_токени + процењени_излазни_токени <п>За непознате руте користите конзервативно подразумевано. За стабилне производне руте, стално ажурирајте процене на основу стварне употребе. <х3>Резервирајте, па помирите <п>Резервације квота не би требало да постану трајне накнаде. Третирајте их као држање: <ол> <ли><стронг>Цитат: процените улазни и излазни притисак. <ли><стронг>Резерва: одбијте од релевантних токена пре слања. <ли><стронг>Решите се: замените процену употребом коју је пријавио добављач када је доступна. <ли><стронг>Рефундирање или задуживање: вратите неискоришћени резервисани капацитет или наплатите вишак у следећи прозор ако је потребно. <п>Ово је најважније за дуге и стримовање позива. Ако проверите само улазни ТПМ пре слања, ток може успешно да почне, а затим касније налети на притисак излазног токена. Засебно резервисање излазне висине смањује ризик од квара на средини тока и застоја. <х2>Користите хијерархијске сегменте токена за правичност закупаца <п>Један глобални лимитер штити налог добављача, али не штити станаре једни од других. Један скупни посао дугог контекста може да потроши дељени ТПМ и да изазове неуспех интерактивних захтева других тимова. <п>Користите хијерархијске сегменте токена: <пре><цоде>организација └── станар └── тим └── апи_кеи └── модел_профиле └── провидер_деплоимент <п>Захтев мора да прође сваки релевантни сегмент. Ово вам омогућава да примените неколико смерница одједном: <ул> <ли>Организација не може да премаши капацитет добављача. <ли>Закупац не може да троши више од свог уговореног удела. <ли>АПИ кључ не може премашити предвиђено окружење или ограничење апликације. <ли>Профил серије модела не може да изглади профил интерактивног модела. <ли>Примена добављача не може бити преоптерећена чак и ако друга примена има резервну квоту. <х3>Поштено дељење у односу на коришћење <п><стронг>Препорука: користите пондерисано фер дељење са контролисаним брзим задуживањем. <п>Строге ограничења по закупцу је лако објаснити, али могу довести до неискоришћеног капацитета. Бурст позајмљивање побољшава искоришћеност дозвољавајући закупцу да привремено користи неактивну квоту из заједничког скупа. Компромис је сложеност: контролне табле морају показати шта је гарантовано, шта је позајмљено и када је позајмљивање опозвано. <п>Практично правило: <ул> <ли>Дајте сваком закупцу загарантовану основу. <ли>Дозволи брзо позајмљивање из неискоришћеног заједничког капацитета. <ли>Повратите позајмљени капацитет када се појави већи приоритет или загарантовани саобраћај. <ли>Никада не дозволите да позајмљени саобраћај креира 429 на нивоу добављача за гарантовани саобраћај. <х2>Одвојите саобраћајне класе пре него што се боре <п>Не заслужују сви захтеви исто понашање у реду. Ставите саобраћај у профиле модела са одвојеним редовима и скуповима квота. <табле> <тхеад> <тр> <тх>Класа саобраћаја <тх>Типична политика <тх>Зашто <тбоди> <тр> <тд>Интерактивно ћаскање <тд>Кратак ред, буџет са малим кашњењем, брза грешка или компатибилна резервна опција <тд>Корисници брзо примећују кашњење репа <тр> <тд>Агентски токови посла <тд>Умерени ред, буџети свесни алата, излазни простор <тд>Позиви у више корака могу појачати притисак на токен <тр> <тд>Батцх послови <тд>Дужи ред, планирано изглађивање, нижи приоритет <тд>Уобичајено толерантно на кашњење и тежак токен <тр> <тд>Евалс<тд>Намјенска квота, пауза током инцидената <тд>Може да створи изненадне вештачке скокове <тр> <тд>Сажетак позадине <тд>Чекај у реду или одложи, строго ТПМ ограничење <тд>Корисно, али ретко хитно <п>Чекање у реду побољшава стопу успеха, али повећава кашњење репа. Гатеваи би требало да тај компромис учини експлицитним. На пример, интерактивни захтев може да чека до 300 милисекунди на квоту, а затим да се врати или не успе. Ноћни групни посао може да сачека 20 минута и још увек се сматра успешним. <х2>Нормализујте 429 у једну шему грешке <п>Чак и уз добру контролу пријема, провајдер 429 ће се и даље јављати. Ограничења могу да се промене, процене добављача могу да се разликују од ваших, а саобраћај може да стиже у оштријим налетима него што се очекивало. <п>Нормализујте сваког добављача 429 у објекат грешке мрежног пролаза: <пре><цоде>{ "грешка": { "типе": "рате_лимитед", "лимитер": "оутпут_тпм", "провидер": "провидер_а", "модел_профиле": "брзо ћаскање", "провидер_модел": "модел-к", "ретри_афтер_мс": 2400, "тенант_ид": "тенант_123", "апи_кеи_ид": "кеи_456", "рекуест_цласс": "интерактиван", "естиматед_инпут_токенс": 4200, "естиматед_оутпут_токенс": 800, "гатеваи_децисион": "адмиттед_тхен_провидер_рејецтед", "фаллбацк_алловед": нетачно, "траце_ид": "траце_абц" } } <п>Кључно поље је <цоде>гатеваи_децисион. 429 након што је мрежни пролаз прихватио захтев се разликује од захтева који је мрежни пролаз локално одбио пре слања. Први указује на проблем калибрације лимитера. Други означава намерну заштиту. <х2>Прилагодите се из заглавља добављача, али не зависите од њих <п>Неки провајдери враћају корисна заглавља као што су индикатори поновног покушаја или индикатори преосталог капацитета. Користите их када су доступни. <п><стронг>Препорука: заглавља добављача треба да подешавају вашег локалног гувернера, а не да га замењују. <п>Разлози: <ул> <ли>Доступност заглавља се разликује у зависности од добављача и крајње тачке. <ли>Заглавља можда неће открити сваку димензију ограничења. <ли>Ретри-афтер вам говори када да покушате поново, а не који закупац би следећи требало да добије капацитет. <ли>Процене токена на страни добављача могу да се разликују од вашег обрачуна или интерног рачуноводства. <п>Робусна имплементација ажурира стопе допуњавања локалних касета и времена хлађења на основу заглавља, док и даље примењује ограничења закупца, АПИ кључа, класе саобраћаја и провајдера унутар мрежног пролаза. <х2>Додајте регулаторе рампи за миграције и заказане послове <п>Многи инциденти са ограничењем брзине се дешавају током планираних промена: прелазак са једног модела на други, промена добављача, омогућавање новог тока посла агента или покретање планираног покретања евалуације. <п><стронг>Препорука: Третирајте раст саобраћаја као контролисано увођење. <ул> <ли>Миграције модела са ознаком функције према закупцу, рути или проценту саобраћаја. <ли>Поставите горње границе раста у минути за примену нових добављача. <ли>Загревајте саобраћај постепено током сати уместо да одмах мењате сав саобраћај. <ли>Паузирајте увођење када стопа 429, стопа на ниже верзије, дубина чекања или кашњење п95 пређу граничну вредност. <ли>Задржите руту за хитно враћање назад са политиком компатибилности, а не само са резервним моделом. <п><стронг>Предвиђање: како режими рутирања добављача, нивои приоритета и контроле на нивоу радног простора постану све чешћи, управљање рампом ће постати стандардна функција мрежног пролаза, а не скрипта за одговор на инцидент. <х2>Замена је одлука политике, а не само одлука о капацитету <п>Када један провајдер врати 429, рутирање до другог провајдера може бити прави одговор. Такође може бити небезбедно. <п>Замена се може променити: <ул> <ли>Квалитет излаза и праћење инструкција. <ли>Дужина контекста. <ли>Понашање при позивању алатки. <ли>Поузданост структурираног излаза. <ли>Задржавање података и боравак. <ли>Цена и кашњење. <п>Гувернер квоте треба да пита слој компатибилности да ли је резервни дозвољени за ову класу захтева. Ако није, требало би да чека на чекању или да не успе са јасним одговором на локално ограничење брзине, уместо да тихо мења семантику. <х2>Откријте контролне табле квота које објашњавају одлуке <п>Систем квота који нико не може да разуме биће заобиђен. Направите контролне табле око оперативних питања: <ул> <ли>Који закупци троше највише РПМ, ТПМ улаза и ТПМ излаза? <ли>Који профили модела су у реду чекања, одбијају се или се враћају? <ли>Који опсег добављача је уско грло: пројекат, регион, примену, радни простор, класа модела или ниво налога? <ли>Колико се често процене мрежног пролаза разликују од коришћења провајдера? <ли>Шта је дистрибуција поновног покушаја по добављачу и типу ограничавача? <ли>Колико ефикасног простора стварају брза кеш читања?<ли>Које класе саобраћаја позајмљују бурст капацитет? <п>За производе окренуте клијентима или партнерима, изложите безбедне контроле: <ул> <ли>Ограничења брзине по кључу. <ли>Ограничења рафала по тиму. <ли>Дневна ограничења по кориснику. <ли>Хитна пауза за станара или кључ. <ли>Упозорења за 429 скокова, раст реда и ненормалан притисак на токен. <ли>Партнер АПИ крајње тачке за управљање квотама препродавца. <п>Ово претвара ограничавање брзине од мистериозне грешке добављача у део управљања тимским АПИ-јем који се може ревидирати. <х2>Контролна листа имплементације <х3>Фаза 1: посматрајте и класификујте <ул> <ли>Добављач евиденције, модел, примену, регион, радни простор, пројекат, закупац, АПИ кључ и класа захтева за сваки позив. <ли>Снимите провајдер 429 са поновним покушајем и необрађеним метаподацима о грешци. <ли>Забележите процењене и стварне улазне/излазне токене одвојено. <ли>Одвојите интерактивни, групни, евал и позадински саобраћај у телеметрији. <х3>Фаза 2: локална контрола приступа <ул> <ли>Креирајте интерне граничне објекте за РПМ, улазни ТПМ, излазни ТПМ, укупан ТПМ и конкурентност. <ли>Додајте процену токена пре објављивања. <ли>Резервишите квоту пре слања и ускладите након што провајдер дође до коришћења. <ли>Одбијте локално када захтев не може да стане у сегмент закупца или добављача. <х3>Фаза 3: правичност и редови <ул> <ли>Додајте хијерархијске сегменте од организације до имплементације добављача. <ли>Доделите гарантоване уделе закупца и контролисано брзо задуживање. <ли>Креирајте засебне редове према класи саобраћаја. <ли>Подесите максимално време чекања за одређену класу и резервна правила. <х3>Фаза 4: адаптација и операције <ул> <ли>Користите заглавља добављача да бисте прилагодили хлађење и претпоставке за поновно пуњење. <ли>Додајте регулаторе рампи за миграције и заказане послове. <ли>Откријте контролне табле и упозорења о квотама. <ли>Прегледајте грешку у процени и насукану квоту сваке недеље. <х2>Закључак који се може применити <п>Ако ваш мрежни пролаз само поново покуша 429, он ради након грешке. Продукцијски <стронг>АИ АПИ капија би требало да спречи већину грешака у ограничењу брзине тако што ће одлучити коме је дозвољено да шаље шта, када и према квоти које провајдере. <п>Почните са нормализованим моделом лимитера, резервацијом токена пре лета и редовима за класе саобраћаја. Затим додајте хијерархијску праведност закупаца, прилагођавање заглавља добављача и регулаторе рампе. Резултат није само мање 429. То је јаснија алокација капацитета, предвидљивија латенција, безбедније миграције и понашање на ограничењу брзине које ваши тимови за инжењеринг, финансије и корисничку подршку заправо могу да објасне.<х2>Сродно читање<ул><ли><а хреф="хттпс://модел-гате.цом/ен/блог/аи-апи-биллинг-ледгер-цитте-сеттле-1">1> усклађивање резервација и коришћења<ли><а хреф="хттпс://модел-гате.цом/ен/блог/промпт-цацхе-цонтрол-мулти-модел-апи-гатеваи-15/">брзо обрачунавање кеша и аналитика кеш-хитова<ли><а хреф="хттпс://модел-гате.цом/ен/блог/релиабле-ллм-апи-роутинг-тимеоутс-ретриес-модел-фаллбацкс-3/">компатибилне смернице резервног рутирања
FAQ

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

Да ли АИ АПИ гатеваи поново покуша да доведе до грешке 429?
Да, али поновни покушаји би требало да буду последњи слој, а не главна контрола. Користите експоненцијална заглавља за повлачење и поновни покушај када су доступна, али и додајте контролу приступа на страни пролаза тако да се преоптерећени саобраћај ставља у ред чекања, обликује, усмерава или одбија пре него што створи каскадне провајдере 429.
Зашто одвојено пратити улазни ТПМ и излазни ТПМ?
Неки провајдери излажу одвојена ограничења улазних и излазних токена, а дуге генерације могу да исцрпе излазни капацитет чак и када је улазни капацитет доступан. Одвојено праћење помаже у спречавању успешног покретања токова, а затим заустављања или неуспеха како притисак излазног токена расте.
Да ли је процена локалног токена довољно прецизна за ограничавање брзине?
Не мора бити савршено. Мора да буде довољно конзервативан да спречи преоптерећење и да се стално усклађује са стварном употребом провајдера. Претерано конзервативне процене могу недовољно искористити квоту, тако да би производни системи требало да мере грешку у процени и брзо рефундирају неискоришћене резервације.
Када би ред на мрежном пролазу требало да падне брзо?
Радови који су толерантни на кашњење у реду као што су групни послови, евалуације и позадинска обрада. За интерактивне захтеве, користите кратак буџет за ред чекања, а затим или јасно не успете или се вратите само ако заменски модел задовољава захтеве компатибилности руте, цене и политике.