Navigimi kryesor

Çfarë mësuam nga publikimi me ChatGPT Apps SDK

Mësimet praktike nga publikimi me ChatGPT Apps SDK tregojnë kur përshtatet arkitektura e tij dhe ku nevojitet më shumë kontroll.

Përmbledhje ekzekutive

  • Apps SDK është një zgjedhje praktike nëse ju duhet së shpejti një rrjedhë pune në ChatGPT ose nëse doni t’i provoni mjetet tuaja aty përpara se të investoni në një infrastrukturë të personalizuar agjenti. Nëse ju duhet të kontrolloni çdo hap të sjelljes së agjentit, zakonisht nuk është zgjedhja e duhur.

  • Zgjidhni Apps SDK kur ChatGPT duhet të jetë ndërfaqja kryesore dhe doni mjete bashkë me disa elemente të vogla të ndërfaqes, pa ndërtuar një produkt të plotë bisede. Zgjidhni infrastrukturën tuaj të agjentit kur ju duhet kontroll i rreptë mbi rrjedhën, memorien, kërkesat dhe operacionet e shkrimit.

  • Apps SDK u përshtatet produkteve që ndërthurin bisedën me disa hapa të shkurtër në ndërfaqe. E publikoni më shpejt, por hiqni dorë nga një pjesë e kontrollit.

  • Për ne funksionuan mjetet e qarta, sjellja e qartë e miniaplikacioneve dhe hapat e ardhshëm të përcaktuar qartë. Për përcaktimin e rrjedhës u mbështetëm tek ato, jo te LLM-ja. Modeli ishte më i dobishëm kur shpjegonte rezultatet që sistemi i kishte zgjedhur tashmë.

  • Më poshtë: si të zgjidhni dhe më pas çfarë funksionoi e çfarë jo.

Shumica e ekipeve ende kryejnë projekte pilot me IA ose e përdorin atë për raste dytësore me raport të ulët rrezik-përfitim. Pak prej tyre publikojnë një produkt kritik për biznesin që përdoruesit e përdorin çdo javë. ChatGPT Apps SDK është një mënyrë për ta ngushtuar këtë hendek nëse synoni të integroheni në ChatGPT, në vend që ta ndërtoni vetë të gjithë asistentin.

Pse përdorëm Apps SDK

Mësimet tona vijnë nga një angazhim me një klient, ku kërkesat përcaktonin ChatGPT si ndërfaqen kryesore dhe kërkonin një rrugë të shpejtë që nuk e detyronte klientin të financonte një produkt bisede plotësisht të personalizuar.

Për këto kërkesa, Apps SDK ishte zgjedhja e duhur, sepse klientit i nevojitej:

  • Asnjë produkt i posaçëm bisede për t’u ndërtuar dhe hostuar—kërkonin shtrirje brenda ChatGPT, jo një tjetër ndërfaqe asistenti më vete.

  • Bisedë dhe ndërfaqe e vogël, e përshtatur për detyrën—disa hapa të përqendruar me miniaplikacione, jo një produkt i dytë i plotë brenda rrjedhës së punës.

  • Sjellje e sistemit backend e ofruar përmes mjeteve MCP—thirrje standarde mjetesh, jo një mjedis i personalizuar ekzekutimi agjenti, i menaxhuar nga fillimi në fund.

  • Zbulueshmëri brenda ChatGPT—përdoruesit duhet ta gjejnë rrjedhën e punës aty ku punojnë tashmë.

Këto zgjedhje i vërtetuam me klientin gjatë procesit të zhvillimit. Kompromisi mbetet: kur ChatGPT hoston sesionin, mjedisi i jashtëm i ekzekutimit nuk kontrollohet nga ju. Ju e orientoni, por nuk e kontrolloni plotësisht.

Çfarë ju ofron Apps SDK

Një aplikacion Apps SDK lidh tri gjëra:

  1. Mjedisin e ekzekutimit të agjentit të ChatGPT

  2. Mjetet tuaja MCP

  3. Ndërfaqen e miniaplikacionit tuaj

Rrjedha në praktikë:

  1. Përdoruesi i kërkon diçka ChatGPT.

  2. ChatGPT mund të thërrasë një nga mjetet tuaja MCP.

  3. Serveri juaj kthen një rezultat të strukturuar të mjetit.

  4. ChatGPT e lexon rezultatin dhe vendos hapin e ardhshëm: më shumë thirrje mjetesh, një përgjigje për përdoruesin ose të dyja. Nëse i keni bashkëngjitur një miniaplikacion atij mjeti, ai mund të shfaqet në këtë radhë.

  5. Përdoruesi vazhdon në bisedë ose në miniaplikacion (me tekst vijues, një zgjedhje ose një thirrje mjeti të nisur nga miniaplikacioni). Kjo përditëson bashkëbisedimin; ChatGPT kryen një radhë tjetër dhe hapat 2–4 përsëriten derisa detyra të përfundojë.

Thelbi është pikërisht kjo ndërthurje e bisedës, veprimeve backend dhe hapave të shkurtër në ndërfaqe. Kjo do të thotë gjithashtu se pjesët më delikate janë kalimet mes bisedës, mjeteve dhe ndërfaqes.

Nuk e rindërtoni nga e para ndërfaqen e bisedës, lidhjen e mjeteve, modelet e autentikimit apo strukturën e miniaplikacionit. Për shumë produkte, kjo shkurton ndjeshëm kohën e zhvillimit, që të përqendroheni te logjika e fushës dhe masat mbrojtëse.

Të zhvillosh brenda ChatGPT nuk është njësoj si të përdorësh agjentin tënd. Pjesa e vështirë e projektit nuk ishin truket me kërkesat. Ishte përcaktimi aq i qartë i mjeteve, miniaplikacioneve dhe hapave vijues, sa modeli dhe ndërfaqja të mbeteshin në një linjë.

Si të zgjidhni

Apps SDK i jep produktit një formë ndryshe nga frontend-i juaj i zakonshëm, por është e rëndësishme të dini se për cilët skenarë është ideal.

Përdorni Apps SDK kur doni të

  • Publikoni shpejt një rrjedhë pune në ChatGPT.

  • Lejoni ChatGPT të hostojë bisedën.

  • Ndërthurni gjuhën natyrore me disa hapa të përqendruar në ndërfaqe.

  • Shmangni ndërtimin e ndërfaqes suaj të bisedës, kontejnerit të agjentit dhe mekanizmit të zbulimit.

Pika e fundit ka rëndësi kur përdoruesit tuaj tashmë punojnë në ChatGPT.

Ndërtoni agjentin tuaj kur ju duhet

  • Një rrjedhë fikse hap pas hapi, të cilën mund ta zbatoni detyrimisht në kod.

  • Një ndërfaqe dhe proces konfirmimi të personalizuar, që i kontrolloni nga fillimi në fund.

  • Modelin tuaj të memories dhe gjendjes.

  • Sjellje që duhet të jetë e parashikueshme në çdo ekzekutim.

  • Gjurmime, regjistra dhe metrika për agjentin.

Nëse planifikuesi, kërkesat e sistemit dhe e gjithë rrjedha e punës janë produkti juaj, një infrastrukturë e personalizuar është zakonisht zgjedhja më e mirë.

Kompromiset me një vështrim

Pyetja

ChatGPT Apps SDK

Agjentët tuaj

Ku ofrohet përvoja?

Brenda ChatGPT

Në produktin tuaj

Kush i drejton hapat e bisedës?

ChatGPT, i orientuar nga mjetet dhe ndërfaqja juaj

Sistemi juaj me agjentë

Sa ndërfaqe ndërtoni?

Miniaplikacione të përqendruara në bisedë

Aq sa ju nevojitet

Sa kontroll keni mbi kërkesat?

Të tërthortë

Të plotë

Sa të lehta janë rrjedhat fikse dhe të përsëritshme?

Kërkojnë projektim të kujdesshëm

Zbatohen më lehtë përmes kodit

Koha deri në publikimin e parë

Shpesh më e shkurtër

Shpesh më e gjatë në fillim

Puna në platformë që menaxhoni ju

Më pak

Më shumë

Mundësia për të ndryshuar drejtim më vonë

Më pak

Më shumë

Gjatë angazhimit tonë, fjala që përsëritej vazhdimisht ishte kontrolli: nga njëra anë shpejtësia dhe një platformë e njohur; nga ana tjetër kontrolli i pjesshëm mbi mjedisin e ekzekutimit. Ky ishte kompromisi që pranoi klienti kur i dha përparësi takimit me përdoruesit në ChatGPT, në vend të kontrollit mbi të gjithë infrastrukturën.

Ku shfaqen vështirësitë

Skenari ideal duket i thjeshtë: përdoruesi pyet, mjeti ekzekutohet, të dhënat kthehen dhe miniaplikacioni shfaqet kur duhet bërë një zgjedhje.

Në praktikë, problemi ishin kalimet. Miniaplikacioni nuk është zbukurim. Pasi shfaqet në ekran, ai ndryshon atë që modeli sheh dhe bën më pas. Trajtojini veprimet e miniaplikacionit si ngjarje të emërtuara, jo si bisedë të lirë.

Infrastruktura e përdorur gjatë angazhimit ishte e thjeshtë: FastMCP, Pydantic, React, TypeScript. Integrimi i tyre shkoi mirë. Puna e vërtetë ishte që modeli, mjetet dhe ndërfaqja të pajtoheshin për atë që ndodh më pas.

Çfarë funksionoi

Bëjeni të qartë çdo kalim

Nuk i trajtuam më rezultatet e mjeteve si payload-e të papërpunuara të backend-it. Çdo përgjigje u bë një kalim.

Një rezultat i mirë i mjetit:

  • I jep miniaplikacionit gjithçka që i duhet për t’u paraqitur.

  • I jep ChatGPT fakte të strukturuara mbi të cilat të bazojë përgjigjen.

  • Kur rrjedha e kërkon, tregon çfarë duhet të ndodhë më pas, që modeli të mos ketë nevojë të hamendësojë.

Veprimet e miniaplikacionit nuk duhet të dërgojnë tekst të paqartë në bashkëbisedim. Ato duhet të tregojnë çfarë bëri përdoruesi dhe çfarë duhet të ndodhë më pas.

Besueshmëria u rrit pasi kalimet u bënë të qarta.

Modeli ndjek udhëzime të shkurtra e të qarta kur ato përfshihen në outputin e mjetit dhe në veprimet e miniaplikacionit.

Më poshtë është një strukturë e vogël Pydantic që përdorëm. Fusha output përmban të dhënat e strukturuara që i duhen miniaplikacionit kur shfaqet, si dhe faktet që ChatGPT duhet të përdorë gjatë sesionit. Fusha agent_directions përmban një rresht të shkurtër që tregon çfarë duhet të bëjë asistenti më pas. Reason është opsionale.

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

Mbajini miniaplikacionet të vogla

Miniaplikacionet që funksionuan trajtonin një vendim dhe më pas e kthenin kontrollin. Listat e shkurtra, konfirmimet ose një ekran i përmbledhur shqyrtimi funksionuan më mirë sesa shndërrimi i miniaplikacionit në një miniaplikacion të plotë. Pak logjikë brenda miniaplikacionit, si vërtetimi i thjeshtë ose një hap vijues fiks, na ndihmoi kur donim një rrjedhë më përcaktuese.

Veta e tretë në mesazhet e miniaplikacionit

Nuk i shkruam më mesazhet vijuese të miniaplikacionit si bisedë nga përdoruesi («I selected…», «I confirmed…»). I shkruam si raporte të shkurtra për atë që bëri përdoruesi («The user selected…», «The user confirmed…»). E provuam këtë qasje sepse ChatGPT po i shtonte mesazhet e miniaplikacionit si mesazhe mjeti dhe jo si mesazhe përdoruesi.

Veprime të drejtpërdrejta kur hapi vijues është i qartë

Nëse një buton nënkupton qartë thirrjen e radhës të mjetit, funksionoi më mirë që miniaplikacioni ta niste drejtpërdrejt, në vend që të detyronim një radhë tjetër bisede. Kjo vlen vetëm nëse thirrja e radhës e mjetit nuk kërkon të dhëna hyrëse nga ChatGPT.

Kjo ndihmoi në zbatimin e rrjedhave përcaktuese dhe uli vonesën duke shmangur një radhë tjetër bisede.

Trajtimi i gabimeve

Kur një thirrje mjeti dështonte, kthenim kodet e duhura të gabimit MCP dhe mesazhe të shkurtra e të qarta nga mjeti. Kështu, në thirrjet e dështuara ChatGPT kishte informacion konkret për të lexuar, që të mund t’ia shpjegonte problemin përdoruesit dhe/ose të zgjidhte një hap vijues të arsyeshëm.

Menaxhimi i kontekstit të mjeteve

Gjendjen e sesionit e ruajtëm në serverin tonë. ChatGPT dërgon kontekstin e sesionit me thirrjet e mjeteve; në FastMCP i dhamë çdo mjeti një parametër Context, që handler-i ta lexonte dhe përditësonte atë gjendje.

  • ID-të e qëndrueshme dhe rezultatet e mëparshme ruheshin në sesion, në vend që t’i kërkonim ChatGPT t’i dërgonte sërish si argumente mjeti në çdo thirrje.

  • Kur shfaqeshin cikle thirrjesh të mjeteve, mund t’i kapnim thirrjet e përsëritura dhe të kthenim një gabim të qartë përmes rezultatit të mjetit.

  • Regjistrat e sesioneve mbetën në anën tonë për diagnostikim dhe mbështetje.

Çfarë nuk funksionoi

Supozimi se modeli do ta nxirrte vetë hapin vijues

Në fillim shfaqnim një miniaplikacion, supozonim se modeli «e kuptoi» dhe prisnim thirrjen e duhur vijuese të mjetit. Ndonjëherë ndodhte. Shpesh nuk ndodhte.

Pa një kalim të qartë, ChatGPT mund të përmblidhte kur ne donim një veprim, t’i kërkonte përdoruesit të përsëriste një zgjedhje ose të vazhdonte planifikimin kur duhej të ndalonte.

Zgjidhja ishte përcaktimi i qartë i hapit vijues në outputet e strukturuara dhe payload-et e miniaplikacionit, jo shpresa se modeli do ta nxirrte vetë.

Shpërndarja e kuptimit nëpër shtresa

U përpoqëm të tregoheshim të sofistikuar duke i ndarë përgjigjet mes outputit të mjetit, metadatave të fshehura dhe tekstit të bisedës, sipas dokumentacionit të Apps SDK. Por nuk mund t’i lexonim metadatat e fshehura në miniaplikacione. Prandaj, nuk mund ta përdornim këtë qasje.

Fshehja e mjeteve nga modeli

Dokumentacioni i Apps SDK përshkruan mjete që mund t’i mbani jashtë listës së mjeteve të agjentit, që ai të mos i zgjedhë, por që mund të thirren sërish nga miniaplikacioni. Kur dukshmërinë e caktuam si app-only, ato mjete nuk ishin më të disponueshme as nga miniaplikacioni, jo vetëm nga agjenti. Nuk arritëm kurrë një konfigurim ku agjenti nuk mund ta shihte një mjet, por miniaplikacioni po.

Gabime të paqarta

Heshtja ose një mesazh i përgjithshëm «sukses» kur nuk kishte ndodhur asgjë e dobishme ishte më keq se një gabim i drejtpërdrejtë. Prandaj, dështimet e mjeteve dhe miniaplikacioneve i trajtuam si outpute parësore: nëse një hap nuk mund të vazhdonte, e thoshim qartë dhe kthenim një gabim të përcaktuar, në vend që t’i linim përdoruesit përballë një miniaplikacioni që shfaqej, por nuk i çonte përpara. Kjo përmirësoi përdorshmërinë dhe e bëri sjelljen e modelit më të besueshme.

Mendime përmbyllëse

Nëse synoni një rrjedhë pune në ChatGPT me më pak zhvillim të personalizuar të platformës, Apps SDK është një mënyrë praktike për ta realizuar. Hiqni dorë nga një pjesë e kontrollit për të fituar shpejtësi dhe për t’i takuar përdoruesit aty ku punojnë tashmë.

Nëse duhet të kontrolloni çdo degë të rrjedhës, ndërfaqen dhe se kush vendos për çdo hap, planifikoni që në fillim infrastrukturën tuaj të agjentit. Me gjasë, zhvillimi vetëm brenda ChatGPT nuk do t’ju mjaftojë për shumë kohë.

Mund ta përdorni Apps SDK edhe për të ekzekutuar serverin tuaj MCP brenda ChatGPT, përpara se të ndërtoni vetë bisedën, autentikimin dhe lidhjet e agjentit, e më pas të kaloni në infrastrukturën tuaj kur produkti ta kërkojë.

Hapi i ardhshëm për ekipet në të njëjtën situatë: zgjidhni një rrjedhë pune me rezultat të qartë, dokumentoni kalimet mes bisedës, mjeteve dhe miniaplikacioneve, pastaj testoni rreptësisht riprovimet dhe gabimet përpara se të shpenzoni shumë kohë me optimizimin e kërkesave.

Autor

Malan Evans