Направите слој компатибилности АПИ-ја одговора у АИ АПИ мрежном пролазу
Мрежни пролаз АПИ-ја за одговоре није само прокси за завршавање ћаскања са новом рутом. Сачувајте ставке одговора, стање, позиве алата, токове, континуитет закључивања, приписивање коришћења и понашање на ниже нивое са првокласним слојем компатибилности.
1 мин читањаModel Gate Editorial Team
<п>Не имплементирајте <цоде>/в1/респонсесцоде> тако што ћете сваки захтев превести у <цоде>/в1/цхат/цомплетионсцоде> и надајући се да је облик довољно близу. Тај адаптер може да врати текст, али може тихо да изгуби делове до којих је програмерима стало: ставке одговора, стање на страни сервера, позиве алата, континуитет резоновања, догађаје животног циклуса стрима, семантику отказивања и приписивање коришћења на нивоу ставке.п>
<п>Практични циљ је слој компатибилности који третира Респонсес АПИ као богатији протокол. Задржите подршку за довршавање ћаскања за постојеће клијенте, али изградите одговоре као сопствену површину мрежног пролаза са сопственим моделом стања, нормализатором тока, књигом позива алата, матрицом могућности и резервним правилима.п>
<х2>Шта је чињеница, шта је политика, а шта предвиђање?х2>
<п><стронг>Чињенице:стронг> ОпенАИ описује Респонсес АПИ као обједињујуће могућности које су раније биле подељене на довршавање ћаскања и помоћнике, укључујући подршку за алатке као што су веб претрага, претрага датотека и коришћење рачунара. АПИ излаже поља као што су <цоде>превиоус_респонсе_идцоде>, стримовање, избор алата и уграђене алатке. Документација СДК-а показује да <цоде>превиоус_респонсе_идцоде> може да обезбеди континуитет разговора, док се претходна упутства не преносе аутоматски унапред и морају се поново послати када би и даље требало да се примењују. ОпенАИ референца за стримовање укључује различите животне циклусе одговора и излазне догађаје, а не само делте токена.п>
<п><стронг>Препоруке:стронг> Гејтвеј би требало да сачува ову семантику уместо да их подразумевано изравнава. Требало би да одбије или експлицитно поништи захтеве када циљни добављач не може да подржи захтевано понашање.п>
<п><стронг>Предвиђање:стронг> Више оптерећења агента ће зависити од структуре ставке одговора, трагова извршавања алата и контекста резоновања са стањем. Мрежне пролазе који сада моделирају те концепте биће лакше проширити од мрежних пролаза који одговоре третирају као козметичку крајњу тачку.п>
<х2>Дефинишите посебан уговор о компатибилности за одговорех2>
<п>Прва грешка у примени је претпоставка да ОпенАИ компатибилан значи једну универзалну шему захтева и одговора. У пракси, <цоде>/в1/цхат/цомплетионсцоде> и <цоде>/в1/респонсесцоде> би требало да буду засебни уговори о компатибилности.п>
<п>Задржите заједнички слој за потврду идентитета, обрачун, квоту и рутирање, али одвојите слој протокола:п>
<ул>
<ли><стронг>Површина завршетка ћаскања:стронг> поруке, избори, делте, позиви алатки у формату ћаскања, застарело понашање клијента.ли>
<ли><стронг>Површина одговора:стронг> ставке улаза, излазне ставке, ИД-ови одговора, претходне референце одговора, богатији догађаји алата, догађаји тока животног циклуса, поља у вези са образложењем и коначно стање одговора.ли>
ул>
<п>Ова подела је важна за тестове усаглашености. Адаптер добављача који прође тестове ћаскања и даље може да не успе у тестовима одговора јер не може да сачува <цоде>превиоус_респонсе_идцоде>, редослед ставки, структуру одбијања, метаподатке хостоване алатке или имена догађаја стримовања.п>
<п>Минимални уговор о компатибилности треба да одговори:п>
<ул>
<ли>Која поља захтева се прихватају, одбијају, трансформишу или игноришу?ли>
<ли>Који типови ставки одговора су сачувани?ли>
<ли>Које врсте алата су подржане по добављачу и моделу?ли>
<ли>Да ли провајдер може да одржава стање разговора или га гејтвеј мора да одржава?ли>
<ли>Шта се дешава када се захтева <цоде>сторе=фалсецоде>?ли>
<ли>Који догађаји стрима су загарантовани?ли>
<ли>Како се евидентирају отказивање, временско ограничење и делимично коришћење?ли>
ул>
<п>Ако већ имате <а хреф="/ен/">АИ АПИ мрежни пролаза>, третирајте подршку за одговоре као проширење протокола, а не као псеудоним руте.п>
<х2>Користите канонски модел ставке одговорах2>
<п>АПИ за одговоре враћа више од једне поруке помоћника. Може представљати различите излазне ставке и догађаје. Вашем мрежном пролазу је потребан интерни канонски модел пре него што се повеже са било којим добављачем.п>
<п>Практична интерна шема ставке може почети овако:п>
<пре><цоде>{
"гатеваи_респонсе_ид": "гв_респ_...",
"провидер_респонсе_ид": "одговор_...",
"тенант_ид": "тен_123",
"кеи_ид": "кеи_456",
"модел_алиас": "агент-дефаулт",
"провајдер": "опенај",
"итемс": [
{
"итем_ид": "итем_1",
"тип": "текст",
"улога": "помоћник",
"цонтент": [{ "типе": "оутпут_тект", "тект": "..." }],
"статус": "завршено"
},
{
"итем_ид": "итем_2",
"типе": "фунцтион_цалл",
"цалл_ид": "цалл_абц",
"наме": "лоокуп_ордер",
"аргументс_јсон": "{\"ордер_ид\":\"123\"}",
"статус": "завршено"
}
],
"употреба": {
"инпут_токенс": 0,
"оутпут_токенс": 0,
"реасонинг_токенс": нулл,
"тоол_унитс": []
},
"статус": "завршено"
}цоде>пре>
<п>Укључите типове ставки чак и пре него што сваки добављач може да их произведе. Корисне категорије укључују:п>
<ул>
<ли>Излаз текстали>
<ли>Одбијањали><ли>Позиви функцијали>
<ли>Излази функције које је доставила апликацијали>
<ли>Сажеци образложења или метаподаци у вези са образложењем где су доступнили>
<ли>Референце датотекали>
<ли>Претрага веба, претрага датотека, употреба рачунара или други догађаји хостованих алаткили>
<ли>Метаподаци о коначном коришћењу и обрачунули>
ул>
<п>Поента није да се власничка шема изложи корисницима. Поента је у томе да мрежни пролаз не одбацује информације пре него што их може ревидирати, наплатити, стримовати, поново репродуковати или трансформисати.п>
<х2>Направите државну књигу у власништву мрежног пролазах2>
<п><цоде>превиоус_респонсе_идцоде> је поље које највише открива разлику између проксија за ћаскање без статуса и компатибилности одговора. Ако клијент референцира претходни одговор, мрежни пролаз мора да зна шта тај ИД значи, да ли је закупцу дозвољено да га користи и да ли провајдер може да настави са њим.п>
<п>Креирајте државну књигу са кључем закупца и ИД-ом одговора:п>
<пре><цоде>{
"гатеваи_респонсе_ид": "гв_респ_789",
"провидер_респонсе_ид": "респ_провидер_789",
"превиоус_гатеваи_респонсе_ид": "гв_респ_456",
"тенант_ид": "тен_123",
"усер_ид": "усер_999",
"кеи_ид": "кеи_456",
"модел": "гпт-...",
"провајдер": "опенај",
"сторе_моде": "провајдер|гатеваи|нема",
"ретентион_полици": "стандард|зеро_ретентион|цустом_30д",
"инструцтионс_хасх": "сха256:...",
"тоол_полици_ид": "тоолс_реадонли_в3",
"цреатед_ат": "...",
"екпирес_ат": "...",
"делетед_ат": нулл
}цоде>пре>
<п>Важно правило: немојте аутоматски емулирати <цоде>превиоус_респонсе_идцоде> тако што ћете поново репродуковати целу историју ћаскања осим ако закупац није изричито дозволио такво понашање задржавања и трошкова. Поновна репродукција може повећати цену токена, променити положај приватности и променити понашање модела. Сигурније је вратити јасну грешку у могућности него тихо послати сачувани садржај конверзације за који апликација није очекивала да ћете га задржати или поново користити.п>
<х3>Режими управљања стањемх3>
<ул>
<ли><стронг>Стање добављача:стронг> Упстреам добављач складишти довољно контекста, а мрежни пролаз пресликава ИД-ове одговора мрежног пролаза у ИД-ове одговора добављача.ли>
<ли><стронг>Стање мрежног пролаза:стронг> Гејтвеј чува неопходне претходне ставке и реконструише контекст када је дозвољено.ли>
<ли><стронг>Без стања:стронг> Захтев користи <цоде>сторе=фалсецоде> или смернице закупца забрањују задржавање. <цоде>превиоус_респонсе_идцоде> треба одбити осим ако добављач не може да испуни захтев без задржавања мрежног пролаза и смернице то дозвољавају.ли>
ул>
<п>Такође имајте на уму да ће клијент можда морати поново да пошаље претходна упутства када би требало да наставе да се примењују. Гејтвеј не би требало да измишља скривена упутства за компензацију осим ако то понашање није део експлицитне политике закупца.п>
<х2>Провери алате пре слањах2>
<п>Одговори чине коришћење алата централнијим. Слој компатибилности треба да обрађује две широке категорије:п>
<ул>
<ли><стронг>Апликациони алати:стронг> Дефиниције функција које обезбеђује клијент, извршавају се ван добављача модела, са излазним подацима који се враћају АПИ-ју.ли>
<ли><стронг>Алатке хостованог добављача:стронг> Веб претрага, претрага датотека, коришћење рачунара, извршавање кода, уземљење или сличне алатке које извршава провајдер или инфраструктура коју контролише мрежни пролаз.ли>
ул>
<п>На улазу, проверите шеме алата пре рутирања:п>
<ул>
<ли>Прерано одбијте неважећу ЈСОН шему.ли>
<ли>Примени максималну величину шеме и дубину угнежђења.ли>
<ли>Проверите називе алата за компатибилност добављача.ли>
<ли>Примените опсеге закупца, кључа, корисника и окружења.ли>
<ли>Захтевају капије за одобрење за алатке које пишу податке, троше новац, приступају осетљивим системима или позивају спољне конекторе.ли>
ул>
<п>За позивање функције апликације, захтевајте стабилан ИД позива. Модел емитује позив функције са <цоде>цалл_идцоде>; апликација шаље излаз алата који упућује на тај ИД; гејтвеј оба бележи у истом трагу. Без тог кључа за придруживање, евиденције ревизије и поновни покушаји постају двосмислени.п>
<п>За хостоване алате, резервишите буџет пре слања и поравнајте трошкове након тога. Хостовани алати могу да додају трошкове ван обичног обрачуна токена, па повежите књигу алата са <а хреф="/ен/топицс/унифиед-аи-апи-биллинг/">обједињеним АИ АПИ обрачунома> уместо да сакривате те трошкове унутар генеричког укупног броја позива модела.п>
<х2>Нормализујте стримовање као догађаје, а не токен текстх2>
<п>Прокси за ћаскање често може да се извуче са делтама токена за прослеђивање. Мрежни пролаз за одговоре не може. Стрим има значење животног циклуса: одговор може да почне, излазне ставке могу да почну и заврше, текст може да стигне у делтама, позиви алата могу да се састављају постепено, употреба може да стигне на крају или током стрима, а одговор може да не успе или да буде отказан.п>
<п>Дефинишите шему догађаја мрежног пролаза, а затим мапирајте сваки ток добављача у њу:п>
<пре><цоде>догађај: респонсе_стартед
подаци: { "респонсе_ид": "гв_респ_123", "статус": "у_прогресс" }
догађај: оутпут_итем_стартедподаци: { "итем_ид": "итем_1", "типе": "тект" }
догађај: текст_делта
подаци: { "итем_ид": "итем_1", "делта": "Здраво" }
догађај: тоол_цалл_делта
подаци: { "итем_ид": "итем_2", "цалл_ид": "цалл_абц", "аргументс_делта": "{\"ордер" }
догађај: усаге_делта
подаци: { "оутпут_токенс": 12 }
догађај: завршен
подаци: { "респонсе_ид": "гв_респ_123", "усаге": { ... } }цоде>пре>
<п>Препоручени нормализовани догађаји:п>
<ул>
<ли><цоде>респонсе_стартедцоде>ли>
<ли><цоде>оутпут_итем_стартедцоде>ли>
<ли><цоде>оутпут_итем_цомплетедцоде>ли>
<ли><цоде>текст_делтацоде>ли>
<ли><цоде>одбијање_делтацоде>ли>
<ли><цоде>тоол_цалл_делтацоде>ли>
<ли><цоде>тоол_ресулт_рецеиведцоде>ли>
<ли><цоде>усаге_делтацоде>ли>
<ли><цоде>завршеноцоде>ли>
<ли><цоде>отказаноцоде>ли>
<ли><цоде>неуспешноцоде>ли>
ул>
<п>Када клијент прекине везу, пропагирајте отказивање узводно ако га провајдер подржава. Забележите стање делимичног одговора на било који начин. Ако провајдер касније врати коначну употребу путем одложеног повратног позива или коначног дела, ускладите књигу. Компатибилност стриминга се односи на рачуноводство и животни циклус колико и на кашњење.п>
<х2>Креирајте матрицу могућности добављачах2>
<п>Мулти-модел рутирање је корисно само када мрежни пролаз разуме шта може безбедно да се усмери. Додајте могућности специфичне за одговоре у свој каталог модела:п>
<пре><цоде>{
"модел_алиас": "агент-дефаулт",
"руте": [
{
"провајдер": "опенај",
"модел": "...",
"суппортс_респонсес": тачно,
"суппортс_превиоус_респонсе_ид": тачно,
"суппортс_сторе_фалсе": тачно,
"суппортс_буилтин_веб_сеарцх": истина,
"суппортс_фунцтион_цаллинг": тачно,
"суппортс_стреам_лифецицле_евентс": тачно,
"суппортс_реасонинг_цонтект_цонтинуити": тачно,
"мак_тоол_сцхема_битес": 65536
},
{
"провидер": "провидер_б",
"модел": "...",
"суппортс_респонсес": нетачно,
"цхат_адаптер_аваилабле": тачно,
"лосс_профиле": ["но_превиоус_респонсе_ид", "но_хостед_тоолс", "флаттенед_стреам"]
}
]
}цоде>пре>
<п>Замена треба да буде свесна губитка. Ако захтев захтева уграђену веб претрагу и резервни провајдер не може да га изврши, не одговарајте тихо без претраге. Ако захтев зависи од очуваног контекста расуђивања и резервна рута не може да га сачува, вратите грешку могућности или одговор на нижи ниво који је клијент експлицитно изабрао.п>
<п>Корисна опција захтева је:п>
<пре><цоде>{
"модел": "агент-дефаулт",
"улаз": "...",
"фаллбацк_полици": {
"аллов_лосси": нетачно,
"алловед_лоссес": []
}
}цоде>пре>
<п>За мање осетљиве случајеве коришћења, закупци могу да дозволе одређене снижавања са губицима:п>
<пре><цоде>{
"фаллбацк_полици": {
"аллов_лосси": истина,
"алловед_лоссес": ["флаттенед_стреам", "но_реасонинг_суммари"]
}
}цоде>пре>
<п>Гатеваи би требало да евидентира резервну одлуку у сваком случају. То омогућава касније отклањање грешака када се агент понаша другачије након прекида рада провајдера или преусмеравања модела.п>
<х2>Коришћење атрибута на нивоу одговора и ставкех2>
<п>Позиви одговора могу да коштају више од еквивалентних завршетака ћаскања јер могу да укључују извршавање алата, дужи контекст, токене за образложење, претрагу датотека, претрагу веба или поновљена упутства. Један збирни број токена није довољан за <а хреф="/ен/топицс/аи-апи-усаге-аналитицс-дасхбоард/">контролну таблу за анализу употребе АПИ-јаа>.п>
<п>Снимање коришћења на два нивоа:п>
<ул>
<ли><стронг>Ниво одговора:стронг> закупац, кључ, корисник, модел, добављач, кашњење, коначни статус, улазни токени, излазни токени, токени образложења где су пријављени, укупни трошкови и резервни пут.ли>
<ли><стронг>Ниво ставке/алатке:стронг> назив алатке, ИД позива, хостоване јединице алата, ИД-ови датотека, број упита за претрагу ако је доступан, кашњење алата, цена алата и резултат смерница за одобрење.ли>
ул>
<п>Ово омогућава програмерима да одговоре на конкретна питања:п>
<ул>
<ли>Да ли су се трошкови повећали због дужег стања, напора у размишљању, позивања алатки или резервног?ли>
<ли>Који закупац или АПИ кључ генерише трошкове хостоване алатке?ли>
<ли>Који одговор није успео након позива алатке, али пре коначног текста?ли>
<ли>Који отказани стримови су још увек били коришћени узводно?ли>
ул>
<х2>Управљајте нултим задржавањем и брисањем као првокласним понашањемх2>
<п>Стање на страни сервера је корисно, али мења обавезе задржавања мрежног пролаза. Уградите политику у слој протокола уместо да је третирате као подешавање евиденције.п>
<п>За сваки захтев за одговоре решите:п>
<ул>
<ли>Политика задржавања станарали>
<ли>Подешавање <цоде>продавницецоде> на нивоу захтевали>
<ли>Компатибилност задржавања добављачали>
<ли>Да ли је дозвољена поновна репродукција мрежног пролазали>
<ли>Да ли се улази и излази алата могу чуватили>
<ли>Понашање истека и брисања за стање одговорали>
ул><п>Ако је задржавање онемогућено, мрежни пролаз може и даље задржати минималне оперативне метаподатке: временске ознаке, ИД-ове, статус, број токена, трошкове и одлуке о смерницама. Избегавајте да чувате необрађене упите, комплетне излазне податке алата или реконструисану историју осим ако смернице то не дозвољавају.п>
<х2>Додавање усклађености пре лансирањах2>
<п>Не ослањајте се на ручне тестове срећног пута. Додајте инструменте који верификују понашање протокола на директним ОпенАИ рутама, рутама прилагођеним провајдерима и резервним сценаријима.п>
<х3>Минимални скуп тестовах3>
<ул>
<ли><стронг>Основни одговор:стронг> текстуална ставка се враћа са стабилним ИД-ом одговора и употребом.ли>
<ли><стронг>Стање са више окрета:стронг> референце другог захтева <цоде>превиоус_респонсе_идцоде>; гејтвеј потврђује власништво станара и режим стања.ли>
<ли><стронг>Поновљена упутства:стронг> проверите да мрежни пролаз не измишља изостављене инструкције.ли>
<ли><стронг>Функција повратног позива:стронг> модел емитује ИД позива; апликација подноси излаз; коначни одговор спаја оба записа.ли>
<ли><стронг>Смернице за хостоване алатке:стронг> неовлашћена уграђена алатка је блокирана пре слања.ли>
<ли><стронг>Редослед стримовања:стронг> почетак одговора, почетак ставке, делте, завршетак ставке, употреба и завршетак се емитују у важећем редоследу.ли>
<ли><стронг>Отказивање стрима:стронг> прекидање везе клијента покреће узводно отказивање где је подржано и бележи делимичну употребу.ли>
<ли><стронг>Резервно одбијање:стронг> добављач без потребне семантике одговора враћа грешку могућности.ли>
<ли><стронг>Омогућавање замене са губитком:стронг> захтев са дозвољеним губицима добија експлицитни маркер на ниже верзије.ли>
<ли><стронг>Режим нултог задржавања:стронг> понављање стања и задржавање упита на страни мрежног пролаза су блокирани.ли>
ул>
<х2>Препоручени редослед увођењах2>
<ол>
<ли><стронг>Откријте бета руту.стронг> Додајте <цоде>/в1/респонсесцоде> без промене постојећег понашања ћаскања.ли>
<ли><стронг>Примените прво пролаз за добављаче са подршком за изворне одговоре.стронг> Сачувајте ИД-ове, ставке, стримове, употребу и грешке.ли>
<ли><стронг>Додајте државну књигу.стронг> Мапирајте ИД-ове пролаза са ИД-овима добављача и примените власништво станара.ли>
<ли><стронг>Додајте канонске ставке.стронг> Сачувајте метаподатке ставке потребне за ревизију, обрачун и реконструкцију стрима.ли>
<ли><стронг>Додајте управљање алаткама.стронг> Потврдите шеме, примените опсеге и забележите спајања позива на алатку.ли>
<ли><стронг>Додајте нормализацију стримовања.стронг> Конвертујте стримове специфичне за добављача у догађаје животног циклуса мрежног пролаза.ли>
<ли><стронг>Додајте рутирање засновано на могућностима.стронг> Подразумевано дозволи само безбедне резерве.ли>
<ли><стронг>Додајте аналитику и обрачун обрачуна.стронг> Засебно наведите токен, образложење и употребу алата.ли>
<ли><стронг>Објавите белешке о компатибилности.стронг> Реците програмерима која поља су изворна, емулирана, неподржана или са губицима.ли>
ол>
<х2>Закључак који се може спровестих2>
<п>Слој компатибилности АПИ-ја Респонсес треба да сачува значење протокола, а не само да враћа веродостојан текст. Направите га око пет трајних објеката: канонског модела ставке одговора, књиге стања разговора, књиге позива алата, нормализатора догађаја стримовања и матрице могућности добављача.п>
<п>Најсигурнија подразумевана је строга компатибилност: ако рута не може да сачува тражено стање, алате, контекст размишљања, догађаје стрима или понашање задржавања, вратите јасну грешку могућности. Додајте резервни резервни део са губитком само када програмери схвате шта ће бити одбачено. Тај приступ се може чинити мање погодним од аутоматског изравнавања, али спречава најгори режим неуспеха: апликацију која изгледа компатибилна док тихо губи семантику због које је уопште користила Респонсес АПИ.п><х2>Повезано читањех2><ул><ли><а хреф="/ен/блог/стреаминг-токен-аццоунтинг-аи-стреаминг-аццоунтинг-аи-стреаминг цанцеллатион-аццоунтинг-аи-апи-апи руковањеа>ли>ул>
FAQ
Често постављана питања
Може ли мрежни пролаз да имплементира АПИ за одговоре тако што ће све превести у Довршетак ћаскања?
Само за уски подскуп са губицима. Основно генерисање текста може да функционише, али стање, ставке одговора, хостовани алати, контекст у вези са образложењем, структура одбијања, догађаји животног циклуса тока и употреба на нивоу ставке могу бити изгубљени. Производни мрежни пролаз треба да изложи одговоре као засебну површину за компатибилност.
Да ли би мрежни пролаз требало да поново репродукује сачувану историју ћаскања да би емулирао претходни_респонсе_ид?
Не подразумевано. Репродукција мења понашање задржавања, цену, а понекад и понашање модела. Закупац треба изричито да дозволи задржавање стања на страни мрежног пролаза и поновну репродукцију пре него што мрежни пролаз користи ту стратегију.
Шта би требало да се деси када резервни добављачи не могу да подрже семантику одговора?
Најсигурније подразумевано је грешка у могућностима. Ако се закупац одлучи за резервни повратак са губитком, мрежни пролаз треба да врати експлицитни маркер на ниже нивое и запише која семантика је избачена.
Зашто бележити употребу на нивоу ставке одговора?
Позиви одговора могу укључивати позиве алата, хостоване трошкове алата, токене за образложење, делимичне токове и резервно понашање. Коришћење на нивоу ставке чини наплату, отклањање грешака и анализу закупаца објашњивим.
We use essential technologies to operate and secure the website. With your permission, we also use optional analytics and advertising technologies. See our Cookie Policy.