Navigazzjoni prinċipali

Dak li tgħallimna mit-tnedija bl-Apps SDK ta’ ChatGPT

Tagħlimiet prattiċi mit-tnedija bl-Apps SDK ta’ ChatGPT juru meta l-arkitettura tiegħu hija adattata u fejn hemm bżonn aktar kontroll.

Sommarju eżekuttiv

  • L-Apps SDK huwa għażla prattika jekk dalwaqt teħtieġ fluss tax-xogħol f’ChatGPT, jew jekk trid tipprova l-għodod tiegħek hemmhekk qabel tinvesti fi stack personalizzat għall-aġent. Normalment mhuwiex adattat jekk trid tikkontrolla kull pass tal-imġiba tal-aġent.

  • Agħżel l-Apps SDK meta ChatGPT għandu jkun l-interfaċċa ewlenija u trid għodod flimkien ma’ elementi żgħar tal-UI, mingħajr ma tibni prodott sħiħ taċ-chat. Agħżel stack tal-aġent tiegħek stess meta teħtieġ kontroll strett fuq il-fluss, il-memorja, il-prompts u l-operazzjonijiet ta’ kitba.

  • L-Apps SDK huwa adattat għal prodotti li jgħaqqdu ċ-chat ma’ ftit passi qosra tal-UI. Tniedi aktar malajr, iżda ċċedi ftit mill-kontroll.

  • Dak li ħadem għalina kien li jkollna għodod ċari, imġiba ċara tal-widget u passi li jmiss ċari. Striħajna fuqhom biex niddeterminaw il-fluss, mhux fuq l-LLM. Il-mudell kien l-aktar utli meta spjega r-riżultati li s-sistema kienet diġà għażlet.

  • Hawn taħt: kif tagħżel, imbagħad x’ħadem u x’ma ħadimx.

Il-biċċa l-kbira tat-timijiet għadhom imexxu proġetti pilota tal-IA jew jużawha għal skopijiet sekondarji b’riskju u benefiċċju baxxi. Ftit iniedu prodott kritiku għan-negozju li l-utenti jużaw kull ġimgħa. L-Apps SDK ta’ ChatGPT huwa mod wieħed kif tnaqqas dik id-differenza jekk l-għan tiegħek hu li tidħol f’ChatGPT minflok tibni l-assistent kollu int stess.

Għaliex użajna l-Apps SDK

Dak li tgħallimna ġej minn proġett ma’ klijent li r-rekwiżiti tiegħu indikaw lil ChatGPT bħala l-interfaċċa ewlenija u rotta rapida li ma kinitx teħtieġ finanzjament għal prodott taċ-chat kompletament personalizzat.

L-Apps SDK kien jaqbel ma’ dawn ir-rekwiżiti għax il-klijent kellu bżonn:

  • L-ebda prodott taċ-chat apposta x’jibni u jospita—ried jilħaq lill-utenti f’ChatGPT, mhux joħloq qoxra oħra ta’ assistent indipendenti.

  • Chat flimkien ma’ UI żgħira u speċifika għall-kompitu—ftit passi ffukati f’widgets, mhux prodott sħiħ ieħor fil-fluss tax-xogħol.

  • Imġiba tal-backend esposta permezz ta’ għodod MCP—sejħiet standard tal-għodod, mhux ambjent personalizzat tal-aġent ikkontrollat mill-bidu sat-tmiem.

  • Skoperta f’ChatGPT—l-utenti għandhom isibu l-fluss tax-xogħol fejn diġà jaħdmu.

Ivvalidajna dawk l-għażliet mal-klijent waqt li konna nibnu. Il-kompromess jibqa’: meta ChatGPT jospita s-sessjoni, l-ambjent estern ta’ eżekuzzjoni ma jkunx taħt il-kontroll tiegħek. Tista’ tiggwidah, iżda mhux tikkontrollah għalkollox.

X’joffrilek l-Apps SDK

App tal-Apps SDK tgħaqqad tliet elementi:

  1. L-ambjent ta’ eżekuzzjoni tal-aġent ta’ ChatGPT

  2. L-għodod MCP tiegħek

  3. Il-UI tal-widget tiegħek

Il-fluss fil-prattika:

  1. L-utent jitlob xi ħaġa lil ChatGPT.

  2. ChatGPT jista’ jsejjaħ waħda mill-għodod MCP tiegħek.

  3. Is-server tiegħek jirritorna riżultat strutturat tal-għodda.

  4. ChatGPT jaqra dak ir-riżultat u jiddeċiedi l-pass li jmiss: aktar sejħiet tal-għodod, tweġiba lill-utent, jew it-tnejn. Jekk waħħalt widget ma’ dik l-għodda, dan jista’ jidher f’dan il-messaġġ.

  5. L-utent ikompli fiċ-chat jew fil-widget (b’test ta’ segwitu, għażla jew sejħa ta’ għodda attivata mill-widget). Dan jaġġorna l-konverżazzjoni; ChatGPT iwettaq pass ieħor u l-passi 2–4 jirrepetu ruħhom sakemm jitlesta l-kompitu.

Dan it-taħlit ta’ chat, azzjonijiet tal-backend u passi qosra tal-UI huwa l-qofol. Dan ifisser ukoll li l-partijiet fraġli huma t-tranżizzjonijiet bejn iċ-chat, l-għodod u l-UI.

M’għandekx għalfejn terġa’ tibni mill-bidu l-UI taċ-chat, il-konnessjonijiet tal-għodod, il-mudelli tal-awtentikazzjoni jew il-qoxra tal-widget. Għal ħafna prodotti, dan inaqqas ħafna l-ħin tal-iżvilupp biex tkun tista’ tiffoka fuq il-loġika tad-dominju u l-miżuri ta’ protezzjoni.

Li tibni ġewwa ChatGPT mhuwiex l-istess bħal li tħaddem l-aġent tiegħek stess. Il-parti diffiċli tal-proġett ma kinitx xi teknika bil-prompts. Kienet li nagħmlu l-għodod, il-widgets u l-passi li jmiss ċari biżżejjed biex il-mudell u l-UI jibqgħu allinjati.

Kif tagħżel

L-Apps SDK joffri struttura ta’ prodott differenti mill-frontend tas-soltu tiegħek, iżda importanti tkun taf għal liema xenarji huwa ideali.

Uża l-Apps SDK meta trid

  • Tniedi malajr fluss tax-xogħol f’ChatGPT.

  • Tħalli lil ChatGPT jospita l-konverżazzjoni.

  • Tgħaqqad il-lingwa naturali ma’ ftit passi ffukati tal-UI.

  • Tevita li tibni l-interfaċċa taċ-chat, il-kontenitur tal-aġent u s-sistema ta’ skoperta tiegħek stess.

Dan l-aħħar punt huwa importanti meta l-utenti tiegħek diġà jqattgħu ħinhom f’ChatGPT.

Ibni l-aġent tiegħek stess meta teħtieġ

  • Fluss fiss pass pass li tista’ tinforza fil-kodiċi.

  • UI u proċess ta’ konferma personalizzati li tikkontrolla mill-bidu sat-tmiem.

  • Il-mudell tiegħek għall-memorja u l-istat.

  • Imġiba li trid tkun prevedibbli f’kull eżekuzzjoni.

  • Traċċi, logs u metriċi għall-aġent.

Jekk il-pjanifikatur, il-prompts tas-sistema u l-fluss tax-xogħol kollu huma l-prodott tiegħek, stack personalizzat normalment ikun aktar adattat.

Il-kompromessi f’daqqa t’għajn

Mistoqsija

Apps SDK ta’ ChatGPT

L-aġenti tiegħek stess

Fejn isseħħ l-esperjenza?

Ġewwa ChatGPT

Fil-prodott tiegħek

Min imexxi l-passi tal-konverżazzjoni?

ChatGPT, iggwidat mill-għodod u l-UI tiegħek

Is-sistema aġentika tiegħek

Kemm tibni mill-UI?

Widgets iffukati fiċ-chat

Kulma teħtieġ

Kemm għandek kontroll fuq il-prompts?

Indirett

Sħiħ

Kemm huma faċli l-flussi fissi u ripetibbli?

Jeħtieġu disinn bir-reqqa

Aktar faċli biex jiġu infurzati fil-kodiċi

Żmien sal-ewwel tnedija

Spiss aktar malajr

Spiss aktar bil-mod fil-bidu

Xogħol tal-pjattaforma taħt il-kontroll tiegħek

Anqas

Aktar

Flessibbiltà biex tibdel id-direzzjoni aktar tard

Anqas

Aktar

Fil-proġett tagħna, il-kelma li baqgħet titfaċċa kienet kontroll: veloċità u pjattaforma familjari fuq naħa; kontroll parzjali tal-ambjent ta’ eżekuzzjoni fuq l-oħra. Dan kien il-kompromess li aċċetta l-klijent meta ta prijorità biex jilħaq lill-utenti f’ChatGPT minflok jikkontrolla l-istack kollu.

Fejn jibdew id-diffikultajiet

Il-fluss ideali jidher faċli: l-utent jistaqsi, l-għodda taħdem, tasal id-data u jidher widget meta tkun meħtieġa għażla.

Fil-prattika, il-problema kienet it-tranżizzjonijiet. Widget mhuwiex dekorazzjoni. Malli jidher fuq l-iskrin, ibiddel dak li jara l-mudell u dak li jagħmel wara. Ittratta l-azzjonijiet tal-widget bħala avvenimenti b’isem, mhux bħala chat vag.

L-istack tal-proġett kien sempliċi: FastMCP, Pydantic, React u TypeScript. L-integrazzjoni tagħhom ma kinitx problema. Ix-xogħol kien li niżguraw li l-mudell, l-għodod u l-UI jaqblu dwar x’jiġri wara.

Dak li ħadem

Agħmel kull tranżizzjoni ovvja

Ma bqajniex nittrattaw ir-riżultati tal-għodod bħala payloads mhux ipproċessati tal-backend. Kull riżultat sar tranżizzjoni.

Riżultat tajjeb tal-għodda:

  • Jagħti lill-widget dak li jeħtieġ biex jintwera.

  • Jagħti lil ChatGPT fatti strutturati li fuqhom jibbaża t-tweġiba.

  • Meta jkun meħtieġ mill-fluss, jindika x’għandu jiġri wara biex il-mudell ma jkollux għalfejn jaqta’.

L-azzjonijiet tal-widget m’għandhomx jibagħtu test vag lura fil-konverżazzjoni. Għandhom jindikaw x’għamel l-utent u x’għandu jiġri wara.

L-affidabbiltà żdiedet meta t-tranżizzjonijiet saru ċari.

Il-mudell isegwi struzzjonijiet qosra u ċari meta jkunu fir-riżultat tal-għodda u fl-azzjonijiet tal-widget.

Hawn taħt hemm struttura żgħira ta’ Pydantic li użajna. Il-field output iżomm id-data strutturata li jeħtieġ il-widget meta turi wieħed, kif ukoll il-fatti li ChatGPT għandu juża fis-sessjoni. Il-field agent_directions iżomm linja qasira li tindika x’għandu jagħmel wara l-assistent. Reason huwa fakultattiv.

Python

from typing import Generic, TypeVar
from pydantic import BaseModel
T = TypeVar("T")
class AgentDirections(BaseModel): assistant_instruction: str reason: str | None = None
class ToolResults(BaseModel, Generic[T]): agent_directions: AgentDirections output: T

Żomm il-widgets żgħar

Il-widgets li ħadmu ttrattaw deċiżjoni waħda u mbagħad irritornaw il-kontroll. Listi qosra, konfermi jew skrin iffukat ta’ rieżami ħadmu aħjar milli l-widget jinbidel f’app żgħira. Ftit loġika fil-widget, bħal validazzjoni sempliċi jew pass fiss li jmiss, xorta għenet meta ridna fluss aktar deterministiku.

It-tielet persuna fil-messaġġi tal-widget

Ma bqajniex niktbu s-segwiti tal-widget bħallikieku kienu chat mill-utent (“I selected…,” “I confirmed…”). Ktibniehom bħala rapporti qosra dwar dak li għamel l-utent (“The user selected…,” “The user confirmed…”). Ippruvajna dan l-approċċ għax ChatGPT kien qed iżid il-messaġġi tal-widget bħala messaġġi tal-għodda minflok tal-utent.

Azzjonijiet diretti meta l-pass li jmiss ikun ovvju

Jekk buttuna tindika b’mod ċar is-sejħa li jmiss tal-għodda, kien aħjar li l-widget jattivaha direttament milli jimponi pass ieħor fiċ-chat. Dan japplika biss jekk is-sejħa li jmiss tal-għodda ma teħtieġx inputs minn ChatGPT.

Dan għen biex ninfurzaw flussi deterministiċi u naqqas ukoll il-latenza billi evita pass ieħor fiċ-chat.

Ġestjoni tal-iżbalji

Meta sejħa ta’ għodda falliet, irritornajna l-kodiċijiet tal-iżball MCP korretti u messaġġi qosra u ċari mill-għodda. B’hekk, ChatGPT kellu informazzjoni reali x’jaqra dwar sejħiet falluti biex ikun jista’ jispjega l-problema lill-utent u/jew jagħżel pass sensibbli li jmiss.

Ġestjoni tal-kuntest tal-għodod

Żammejna l-istat tas-sessjoni fuq is-server tagħna. ChatGPT jibgħat kuntest marbut mas-sessjoni mas-sejħiet tal-għodod; f’FastMCP tajna parametru Context lil kull għodda biex il-handler ikun jista’ jaqra u jaġġorna dak l-istat.

  • L-IDs stabbli u r-riżultati preċedenti nżammu fis-sessjoni minflok tlabna lil ChatGPT jgħaddihom mill-ġdid bħala argumenti tal-għodda f’kull sejħa.

  • Meta dehru loops fis-sejħiet tal-għodod, stajna naqbdu sejħiet duplikati u nirritornaw żball ċar permezz tar-riżultat tal-għodda.

  • Il-logs tas-sessjoni baqgħu għandna għad-debugging u l-appoġġ.

Dak li ma ħadimx

Li nassumu li l-mudell se jiddeduċi l-pass li jmiss

Fil-bidu wrejna widget, assumejna li l-mudell “fehem,” u stennejna s-sejħa ta’ segwitu korretta tal-għodda. Xi drabi ġara hekk. Spiss ma ġarax.

Mingħajr tranżizzjoni ċara, ChatGPT seta’ jiġbor fil-qosor meta ridna azzjoni, jitlob lill-utent jirrepeti għażla, jew ikompli jippjana meta kellu jieqaf.

Is-soluzzjoni kienet li niddikjaraw il-pass li jmiss b’mod ċar fl-outputs strutturati u fil-payloads tal-widgets, mhux li nittamaw li l-mudell jiddeduċih.

It-tqassim tat-tifsira bejn diversi saffi

Ippruvajna nqassmu r-risposti b’mod sofistikat bejn ir-riżultat tal-għodda, metadata moħbija u t-test taċ-chat, kif deskritt fid-dokumentazzjoni tal-Apps SDK. Iżda ma stajniex naqraw il-metadata moħbija fil-widgets. Għalhekk ma stajniex nużaw dan l-approċċ.

Il-ħabi tal-għodod mill-mudell

Id-dokumentazzjoni tal-Apps SDK tiddeskrivi għodod li tista’ tħalli barra mil-lista tal-għodod tal-aġent biex ma jagħżilhomx, filwaqt li xorta ssejħilhom mill-widget. Meta ssettjajna l-viżibbiltà għal app-only, dawk l-għodod ma baqgħux disponibbli lanqas mill-widget, mhux biss mill-aġent. Qatt ma rnexxielna noħolqu konfigurazzjoni fejn l-aġent ma setax jara għodda iżda l-widget seta’.

Żbalji mhux ċari

Is-skiet jew messaġġ ġeneriku ta’ “suċċess” meta ma jkun ġara xejn utli kien agħar minn żball ċar. Għalhekk ittrattajna l-fallimenti tal-għodod u l-widgets bħala outputs ewlenin: jekk pass ma setax ikompli, għedna dan b’lingwaġġ sempliċi u rritornajna żball espliċitu, minflok ħallejna lill-utenti jħarsu lejn widget li deher iżda ma wassalhomx ’il quddiem. Dan tejjeb l-użabbiltà u għamel l-imġiba tal-mudell aktar affidabbli.

Ħsibijiet tal-aħħar

Jekk l-għan tiegħek hu fluss tax-xogħol f’ChatGPT b’anqas xogħol personalizzat fuq il-pjattaforma, l-Apps SDK huwa mod prattiku biex tasal hemm. Tissagrifika ftit kontroll biex tikseb aktar veloċità u tilħaq lill-utenti fejn diġà jaħdmu.

Jekk trid tikkontrolla kull fergħa tal-fluss, il-UI u min jiddeċiedi kull pass, ippjana mill-bidu li tuża stack tal-aġent tiegħek stess. X’aktarx li maż-żmien ma jibqax biżżejjed li tibni biss ġewwa ChatGPT.

Tista’ wkoll tuża l-Apps SDK biex tħaddem is-server MCP tiegħek ġewwa ChatGPT qabel tibni int stess iċ-chat, l-awtentikazzjoni u l-konnessjonijiet tal-aġent, u mbagħad tmur għall-istack tiegħek meta l-prodott ikun jeħtieġu.

Il-pass li jmiss għal timijiet fl-istess pożizzjoni: agħżlu fluss tax-xogħol wieħed b’riżultat ċar, iddokumentaw it-tranżizzjonijiet bejn iċ-chat, l-għodod u l-widgets, imbagħad ittestjaw bir-reqqa it-tentattivi mill-ġdid u l-iżbalji qabel tqattgħu ħafna ħin tirfinaw il-prompts.

Awtur

Malan Evans