Uelekezaji mkuu

Tulichojifunza tulipozindua kwa ChatGPT Apps SDK

Mafunzo ya vitendo ya kuzindua kwa ChatGPT Apps SDK yanaonyesha wakati usanifu wake unafaa na pale udhibiti zaidi unapohitajika.

Muhtasari mkuu

  • Apps SDK ni chaguo linalofaa ikiwa unahitaji mtiririko wa kazi katika ChatGPT hivi karibuni, au ukitaka kujaribu zana zako humo kabla ya kuwekeza katika mfumo maalum wa wakala. Ikiwa unahitaji kudhibiti kila hatua ya tabia ya wakala, kwa kawaida si chaguo linalofaa.

  • Chagua Apps SDK ikiwa ChatGPT inapaswa kuwa kiolesura kikuu na unataka zana pamoja na vipengele vidogo vya UI bila kuunda bidhaa kamili ya gumzo. Chagua mfumo wako wa wakala unapohitaji udhibiti thabiti wa mtiririko, kumbukumbu, maagizo na uandikaji wa data.

  • Apps SDK inafaa bidhaa zinazochanganya gumzo na hatua chache fupi za UI. Unazindua haraka zaidi, lakini unapoteza kiasi fulani cha udhibiti.

  • Kilichotufaa ni zana zilizoeleweka, tabia wazi ya wijeti na hatua zinazofuata zilizo wazi. Tulitegemea mambo hayo kubainisha mtiririko, wala si LLM. Muundo ulifaa zaidi ulipoeleza matokeo ambayo mfumo ulikuwa tayari umechagua.

  • Hapa chini: jinsi ya kuchagua, kisha kilichofanya kazi na ambacho hakikufanya kazi.

Timu nyingi bado zinaendesha majaribio ya AI au kuitumia katika shughuli za pembeni zenye hatari na manufaa madogo. Ni chache zinazozindua bidhaa muhimu kwa biashara ambayo watumiaji hutumia kila wiki. ChatGPT Apps SDK ni njia mojawapo ya kuziba pengo hilo ikiwa lengo lako ni kufanya kazi ndani ya ChatGPT badala ya kuunda msaidizi mzima mwenyewe.

Kwa nini tulitumia Apps SDK

Mafunzo yetu yalitokana na mradi wa mteja ambao mahitaji yake yalielekeza ChatGPT iwe kiolesura kikuu na yakaonyesha haja ya njia ya haraka isiyomlazimu kufadhili bidhaa kamili ya gumzo iliyobuniwa mahususi.

Kwa kuzingatia mahitaji hayo, Apps SDK ilifaa kwa sababu mteja alihitaji:

  • Kutohitaji kuunda na kupangisha bidhaa maalum ya gumzo—alitaka kuwafikia watumiaji ndani ya ChatGPT, si kuunda kiolesura kingine cha msaidizi kinachojitegemea.

  • Gumzo pamoja na UI ndogo mahususi kwa kazi—hatua chache maalum za wijeti, si bidhaa nyingine kamili ndani ya mtiririko wa kazi.

  • Tabia za seva ya nyuma zinazopatikana kupitia zana za MCP—uitaji wa kawaida wa zana, si mazingira maalum ya kuendeshea wakala yanayomilikiwa kutoka mwanzo hadi mwisho.

  • Ugunduzi ndani ya ChatGPT—watumiaji wanapaswa kukutana na mtiririko wa kazi mahali wanapofanyia kazi tayari.

Tulithibitisha chaguo hizo pamoja na mteja tulipokuwa tukiunda. Bado kuna maridhiano: ChatGPT inapopangisha kipindi, humiliki mazingira ya nje ya utekelezaji. Unayaelekeza, lakini huyadhibiti kikamilifu.

Unachopata kutoka Apps SDK

Programu ya Apps SDK huunganisha mambo matatu:

  1. Mazingira ya ChatGPT ya kuendeshea wakala

  2. Zana zako za MCP

  3. UI ya wijeti yako

Mtiririko katika matumizi halisi:

  1. Mtumiaji anaiomba ChatGPT jambo fulani.

  2. ChatGPT inaweza kuita mojawapo ya zana zako za MCP.

  3. Seva yako hurejesha matokeo ya zana yaliyopangwa.

  4. ChatGPT husoma matokeo hayo na kuamua hatua inayofuata: kuita zana zaidi, kumjibu mtumiaji au kufanya yote mawili. Ikiwa uliambatisha wijeti kwenye zana hiyo, inaweza kuonekana katika zamu hii.

  5. Mtumiaji huendelea katika gumzo au wijeti (kwa maandishi ya ufuatiliaji, chaguo au uitaji wa zana unaoanzishwa na wijeti). Hilo husasisha mazungumzo; ChatGPT huendesha zamu nyingine na hatua ya 2–4 hurudiwa hadi kazi ikamilike.

Lengo hasa ni mchanganyiko huo wa gumzo, vitendo vya seva ya nyuma na hatua fupi za UI. Pia inamaanisha sehemu dhaifu ni makabidhiano kati ya gumzo, zana na UI.

Huhitaji kuunda upya UI ya gumzo, miunganisho ya zana, mifumo ya uthibitishaji au kiunzi cha wijeti kuanzia mwanzo. Kwa bidhaa nyingi, hilo hupunguza sana muda wa uundaji ili uweze kuzingatia mantiki ya sekta na vizuizi vya usalama.

Kuunda ndani ya ChatGPT si sawa na kuendesha wakala wako mwenyewe. Sehemu ngumu ya mradi haikuwa mbinu za maagizo. Ilikuwa ni kufanya zana, wijeti na hatua zinazofuata ziwe wazi vya kutosha ili muundo na UI ziendelee kuoana.

Jinsi ya kuchagua

Apps SDK huleta muundo wa bidhaa ulio tofauti na mfumo wako wa kawaida wa upande wa mtumiaji, lakini ni muhimu kujua hali zinazoufaa zaidi.

Tumia Apps SDK unapotaka

  • Kuzindua haraka mtiririko wa kazi wa ChatGPT.

  • Kuruhusu ChatGPT ipangishe mazungumzo.

  • Kuchanganya lugha ya kawaida na hatua chache maalum za UI.

  • Kuepuka kuunda kiolesura chako cha gumzo, mazingira ya wakala na mfumo wa ugunduzi.

Hoja hiyo ya mwisho ni muhimu ikiwa watumiaji wako tayari hutumia sana ChatGPT.

Unda wakala wako mwenyewe unapohitaji

  • Mtiririko thabiti wa hatua kwa hatua unaoweza kutekeleza kupitia msimbo.

  • UI maalum na mchakato wa uthibitishaji unaomiliki kutoka mwanzo hadi mwisho.

  • Muundo wako wa kumbukumbu na hali.

  • Tabia inayopaswa kutabirika kila wakati mfumo unapoendeshwa.

  • Rekodi za ufuatiliaji, kumbukumbu na vipimo vya wakala.

Ikiwa kipanga hatua, maagizo ya mfumo na mtiririko mzima wa kazi ndivyo bidhaa yako, kwa kawaida mfumo maalum unafaa zaidi.

Muhtasari wa maridhiano

Swali

ChatGPT Apps SDK

Mawakala wako mwenyewe

Uzoefu unapatikana wapi?

Ndani ya ChatGPT

Katika bidhaa yako

Nani huendesha hatua za mazungumzo?

ChatGPT, ikiongozwa na zana na UI yako

Mfumo wako wa kiwakala

Unaunda UI kwa kiwango gani?

Wijeti maalum ndani ya gumzo

Kiasi chochote unachohitaji

Una udhibiti kiasi gani wa maagizo?

Usio wa moja kwa moja

Kamili

Ni rahisi kiasi gani kuunda mitiririko thabiti inayojirudia?

Inahitaji usanifu makini

Ni rahisi zaidi kuitekeleza kupitia msimbo

Muda hadi uzinduzi wa kwanza

Mara nyingi ni haraka zaidi

Mara nyingi ni polepole zaidi mwanzoni

Kazi ya jukwaa unayomiliki

Chache

Nyingi

Uwezo wa kubadili mwelekeo baadaye

Chache

Nyingi

Katika mradi wetu, jambo lililojirudia lilikuwa udhibiti: upande mmoja kulikuwa na kasi na jukwaa linalofahamika; upande mwingine, umiliki wa sehemu tu ya mazingira ya utekelezaji. Hayo ndiyo maridhiano ambayo mteja alikubali alipotanguliza kuwafikia watumiaji katika ChatGPT badala ya kumiliki mfumo mzima.

Sehemu ambayo mambo huwa magumu

Mtiririko unaotarajiwa unaonekana rahisi: mtumiaji anaomba, zana inaendeshwa, data inarejeshwa, kisha wijeti inaonekana inapohitajika kufanya chaguo.

Katika matumizi halisi, changamoto ilikuwa makabidhiano. Wijeti si pambo. Inapoonekana kwenye skrini, hubadilisha kile ambacho muundo huona na kufanya baadaye. Chukulia vitendo vya wijeti kama matukio yenye majina, si gumzo lisilo na muundo.

Teknolojia za mradi zilikuwa za moja kwa moja: FastMCP, Pydantic, React na TypeScript. Kuziunganisha hakukuwa na tatizo. Kazi halisi ilikuwa kuhakikisha muundo, zana na UI zinakubaliana kuhusu hatua inayofuata.

Kilichofanya kazi

Fanya kila kabidhiano lieleweke

Tuliacha kuchukulia matokeo ya zana kama data ghafi kutoka seva ya nyuma. Kila jibu likawa kabidhiano.

Matokeo bora ya zana:

  • Huipa wijeti kile inachohitaji ili kuonyesha maudhui.

  • Huipa ChatGPT taarifa zilizopangwa za kutegemeza jibu lake.

  • Mtiririko unapohitaji, hueleza kinachopaswa kufanyika baadaye ili muundo usilazimike kukisia.

Vitendo vya wijeti havipaswi kurejesha maelezo yasiyoeleweka katika mazungumzo. Vinapaswa kueleza alichofanya mtumiaji na kinachopaswa kufanyika baadaye.

Uaminifu uliongezeka makabidhiano yalipokuwa wazi.

Muundo hufuata maagizo mafupi na yaliyo wazi yanapopatikana katika matokeo ya zana na vitendo vya wijeti.

Hapa chini kuna muundo mdogo wa Pydantic tuliotumia. Sehemu ya output huhifadhi data iliyopangwa ambayo wijeti inahitaji inapoonyeshwa, pamoja na taarifa ambazo ChatGPT inapaswa kutumia katika kipindi. Sehemu ya agent_directions huhifadhi mstari mfupi unaoeleza kile ambacho msaidizi anapaswa kufanya baadaye. Reason si lazima.

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

Weka wijeti ndogo

Wijeti zilizofanya kazi zilishughulikia uamuzi mmoja, kisha zikarejesha udhibiti. Orodha fupi, uthibitishaji au skrini fupi ya ukaguzi zilifanya kazi vizuri kuliko kugeuza wijeti kuwa programu ndogo. Mantiki kidogo katika wijeti, kama uthibitishaji rahisi au hatua maalum inayofuata, bado ilisaidia tulipotaka mtiririko uwe na matokeo yanayotabirika zaidi.

Nafsi ya tatu katika ujumbe wa wijeti

Tuliacha kuandika ujumbe wa ufuatiliaji wa wijeti kama gumzo la mtumiaji (“I selected…,” “I confirmed…”). Tuliandika kama ripoti fupi kuhusu alichofanya mtumiaji (“The user selected…,” “The user confirmed…”). Tulijaribu mbinu hii kwa sababu ChatGPT ilikuwa ikiongeza ujumbe wa wijeti kama ujumbe wa zana badala ya ujumbe wa mtumiaji.

Vitendo vya moja kwa moja wakati hatua inayofuata iko wazi

Ikiwa kitufe kinaonyesha wazi uitaji unaofuata wa zana, kuruhusu wijeti kuuanzishe moja kwa moja kulifanya kazi vizuri kuliko kulazimisha zamu nyingine ya gumzo. Hii inafaa tu ikiwa uitaji unaofuata wa zana hauhitaji data kutoka ChatGPT.

Hili lilisaidia kutekeleza mitiririko yenye matokeo thabiti na pia likapunguza ucheleweshaji kwa kuepuka zamu nyingine ya gumzo.

Ushughulikiaji wa hitilafu

Uitaji wa zana uliposhindwa, tulirejesha misimbo sahihi ya hitilafu ya MCP na ujumbe mfupi na rahisi kutoka kwenye zana. Hivyo, ChatGPT ilikuwa na taarifa halisi ya kusoma uitaji uliposhindwa ili iweze kumweleza mtumiaji tatizo na/au kuchagua hatua inayofuata inayofaa.

Usimamizi wa muktadha wa zana

Tulihifadhi hali ya kipindi kwenye seva yetu. ChatGPT hutuma muktadha wa kipindi pamoja na miito ya zana; katika FastMCP tuliipa kila zana kigezo cha Context ili kishughulikiaji kiweze kusoma na kusasisha hali hiyo.

  • Vitambulisho thabiti na matokeo ya awali yalihifadhiwa katika kipindi badala ya kuiomba ChatGPT iyatume tena kama hoja za zana katika kila uitaji.

  • Mizunguko ya miito ya zana ilipotokea, tuliweza kugundua miito iliyorudiwa na kurejesha hitilafu iliyo wazi kupitia matokeo ya zana.

  • Kumbukumbu za kipindi zilibaki upande wetu kwa ajili ya utatuzi na usaidizi.

Ambacho hakikufanya kazi

Kudhani muundo ungebaini hatua inayofuata

Mwanzoni tulionyesha wijeti, tukadhani muundo “umeelewa,” kisha tukasubiri uitaji sahihi wa zana wa ufuatiliaji. Wakati mwingine ilitokea. Mara nyingi haikutokea.

Bila kabidhiano lililo wazi, ChatGPT ingeweza kutoa muhtasari tulipotaka ichukue hatua, kumwomba mtumiaji arudie chaguo au kuendelea kupanga ilipopaswa kusimama.

Suluhisho lilikuwa kueleza hatua inayofuata wazi katika matokeo yaliyopangwa na data za wijeti, badala ya kutumaini kuwa muundo ungeibaini.

Kusambaza maana katika safu mbalimbali

Tulijaribu mbinu ya kugawanya majibu kati ya matokeo ya zana, metadata iliyofichwa na maandishi ya gumzo kulingana na hati za Apps SDK. Hata hivyo, hatukuweza kusoma metadata iliyofichwa katika wijeti. Kwa hiyo, hatukuweza kutumia mbinu hii.

Kuficha zana kutoka kwa muundo

Hati za Apps SDK zinaeleza zana unazoweza kuondoa kwenye orodha ya zana za wakala ili asizichague, huku zikiendelea kuitwa kutoka kwenye wijeti. Tulipoweka mwonekano kuwa app-only, zana hizo ziliacha kupatikana kutoka kwenye wijeti pia, si kutoka kwa wakala pekee. Hatukuwahi kupata usanidi ambapo wakala hakuweza kuona zana lakini wijeti iliweza kuiona.

Hitilafu zisizoeleweka

Ukimya au ujumbe wa jumla wa “imefaulu” wakati hakuna jambo muhimu lililotokea ulikuwa mbaya kuliko hitilafu ya moja kwa moja. Kwa hiyo, tulichukulia kushindwa kwa zana na wijeti kama matokeo muhimu: ikiwa hatua haingeweza kuendelea, tulieleza hivyo kwa lugha rahisi na kurejesha hitilafu iliyo wazi, badala ya kuwaacha watumiaji wakitazama wijeti iliyoonekana lakini isiyowasaidia kuendelea. Hili liliboresha urahisi wa kutumia mfumo na kufanya tabia ya muundo iaminike zaidi.

Mawazo ya mwisho

Ikiwa lengo lako ni kuwa na mtiririko wa kazi katika ChatGPT huku ukipunguza kazi maalum ya jukwaa, Apps SDK ni njia inayofaa ya kulifikia. Unakubali kupunguza kiasi fulani cha udhibiti ili kupata kasi na kuwafikia watumiaji mahali wanapofanyia kazi tayari.

Ikiwa unahitaji kumiliki kila tawi la mtiririko, UI na uamuzi wa kila hatua, panga kutumia mfumo wako wa wakala tangu mwanzo. Huenda hatimaye ukahitaji kupanuka zaidi ya kuunda ndani ya ChatGPT pekee.

Pia unaweza kutumia Apps SDK kuendesha seva yako ya MCP ndani ya ChatGPT kabla ya kuunda mwenyewe gumzo, uthibitishaji na miundombinu ya wakala, kisha uhamie kwenye mfumo wako bidhaa inapouhitaji.

Hatua inayofuata kwa timu zilizo katika hali sawa: chagueni mtiririko mmoja wa kazi wenye matokeo wazi, andikeni makabidhiano kati ya gumzo, zana na wijeti, kisha jaribuni kwa kina marudio na hitilafu kabla ya kutumia muda mwingi kuboresha maagizo.

Mwandishi

Malan Evans