Creació d’un ChatGPT personalitzat (agent GPT)

Introducció

Des de l’aparició de la versió 4 de ChatGPT si tens un compte de ChatGPT plus (la subscripció val uns 20€ al més) pots crear el teu propi agent, que no es més que una instancia de ChatGPT a la que configures/entrenes per a que faci una/es tasca/ques millor del que faria el ChatGPT “general”. Aquesta característica es molt necessària ja que el ChatGPT que fem servir de forma general oblida tota la personalització cada cop que tanques la xerrada. Per exemple si li has dit que et doni les respostes en vers, ho faran fins que acabi la conversa o en comenci una de nova. Els agents venen a cobrir aquesta “deficiència” i a més inclouen les “accions” que no són més que l’habilitat de poder interactuar amb qualsevol servei que disposi d’un sistema de comunicació http/https (webservice de qualsevol tipus).

Cal aclarir que el fet de que personalitzis un agent (de ChatGPT) per realitzar una/es tasca/ques concreta/és no vol dir que deixi de poder fer tot allò que fa fantàsticament bé la instancia general, simplement estàs complementant el seu funcionament de manera que t’ajudi millor en certes tasques que necessites.

Dintre d’uns mesos OpenAI (l’empresa creadora de ChatGPT) alliberara tota la potència del seu nou model ChatGPT 4o que entre moltes i fantàstiques capacitats tindrà la d’escoltar i parlar, de manera que podràs mantenir una conversa amb ell de forma natural, sense haver d’escriure el que vols. Això aproparà moltíssim el tenir el teu propi assistent personal que t’acompanyi en qualsevol moment del dia (no només quan puguis estar pendent del teu dispositiu mòbil). Només hauràs de desbloquejar el mòbil i preguntar-li el que se’t passi pel cap en aquell moment e inclús li podràs ensenyar el que necessitis amb la càmera del mòbil.

Així doncs començar a configurar el teu propi agent és una tasca que proporcionara molta utilitat.

Objectiu

Com segurament explicaré en un altre article (que vinc ajornant massa temps), he domotitzat forces parts del pis on visc (llums, cortines, alarma, TV, equip de música…). L’assistent de veu que incorpora el sistema domòtic (Home Assitant) té algunes carències i la més molesta és que si no dic exactament alguna de les ordres que té configurades o no les pronuncio de forma pausada i clara (poc natural), s’equivoca i no sap què ha de fer.

Així doncs la primera utilitat pràctica que li he trobat als agents de ChatGPT és la de suplir l’assistent que pots tenir en el sistema domòtic de casa.

La meva intenció és combinar tota la potència de la domòtica (Home Assistant és el millor sistema domòtic que conec) i tota la potència del millor model LLM (fins a dia d’avui) per crear l’assistent personal “definitiu” (m’he engrescat una mica massa, oi? 😉 )

Però en aquest article em centraré en explicar com configurar un agent de ChatGPT i deixaré per un altre article tota la configuració que s’ha hagut de fer pel cas particular de volen controlar la domòtica de casa.

Requisits

Aquesta subscripció a ChatGPT plus no només us dona la possibilitat de crear agents (que no és poc) sinó que us permet moltes més interaccions amb ChatGPT que el compte bàsic (amb el que més d’un cop he hagut d’esperar una estona per seguir utilitzant-lo perquè ja havia arribat al limit). També us permet prova-les funcionalitats dels nous models abans que sense la subscripció.

Imatge 1: Cal tenir un compte ChatGPT plus

Per altra banda també necessitem tenir accés a algun tipus de servei que proporcioni una interfase http/https amb el que interactuar. En el cas de l’exemple tinc la meva instal·lació de Home Assistant que permet la comunicació via WebHooks i API Rest però podria servir, per exemple, un servei obert de meteorologia, de resultats esportius, etc.

Creació de l’agent

Imagino que amb el temps l’interfase web del ChatGPT canviara i aquestes indicacions deixaran de ser vàlides, però com els lectors son molt espavilats estic segur que ho sabran trobar igualment ;-).

A dia d’avui haureu d’entrar a “Examina els GPT”

Allí trobareu un buscador d’agents GPT que han publicat altres persones. En podeu trobar de tots els “colors”. Podeu buscar si n’hi ha cap altre que us pugui ser útil, com per exemple el “SQL Expert”, però el que ens interessa és crear-ne un de personal, per tant farem clic en el botó de la cantonada superior dreta (al costat del vostre avatar)

La següent pantalla veureu que és divideix en dos columnes. A l’esquerra la part de configuració de l’agent (nom, imatge, descripció, instruccions…) i a la part dreta podreu provar com reaccionara a les vostres ordres la configuració que li heu donat.

La utilitat de la foto i del nom és obvia i no calen gaires explicació. En la descripció haureu de resumir la funcionalitat que li donareu al agent.

El següent camp (Instruccions) és més molt important. Heu d’explicar detalladament com s’ha de comportar l’agent, quin rol té i també que ha de fer en funció de les vostre ordres.

Heu de ser el més específics possible, però no patiu perquè l’agent és capaç d’aprendre per sí mateix. De fet, a mesura que aneu parlant amb ell, el propi agent anirà afegint indicacions en aquest camp per tal de poder recordar-les més endavant, però si voleu configurar-lo de forma ràpida i tenir un bon punt de partida podeu detallar-li vosaltres.

Si us fixeu, en el final del text li estic indicant que l’entitat que conté la temperatura del meu despatx és “climate.despatx_nau”. Com ho té guardat en aquest text sempre que li demani quelcom relacionat amb la temperatura del meu despatx ja sap que ho ha de relacionar amb aquesta entitat del Home assistant.

Interpretació de les intencions

Com us comentava, un altre punt important és la capacitat de ChatGPT és la d’interpretar les teves intencions. Com veureu en el text de la imatge anterior li he configurat que si li dono la instrucció de “vaig a dormir” ha d’executar l’acció “anarADormirPerAssistent” però realment no cal dir-li la instrucció literal, com si fos una ordre. Si li dic quelcom semblant amb llenguatge natural també és capaç de relacionar la meva intenció amb alguna de les instruccions que té configurades.

Aprenentatge

Els agents GPT són capaços d’aprendre que ha de fer segons les instruccions que li facilitis. Per exemple, en la imatge 6, en la segona línia de les instruccions li he comentat el que ha de fer quan li indiqui que estic sortint de casa.
Tant si desitjo donar-li una instrucció nova, com si vull modificar el que ha de fer li puc dir en llenguatge natural i ell mateix canviara el text que el configura a si mateix (les instruccions) per reflectir el que li estàs explicant.

Accions

Les accions és un altre punt molt important d’un agent ja que són les que permeten interactuar amb serveis externs al agent. És la part mes potent i a la vegada la part més tècnica i complicada de la configuració d’un agents. Requereix conèixer el funcionament del webservice del servei al que volem accedir des de l’agent GPT.

Fixeu-vos en la imatge 5. Per a que l’agent pugui interactuar amb un servei extern s’ha de marcar la casella de “Navegació web” i posteriorment configurar les accions, fent clic en el botó “Crear nova acció”.

Per exemple, si mirem la documentació de la API REST de Home Assistant (el software que gestiona la domòtica de casa), veurem que per consultar el valor d’un sensor haig de fer una petició a l’adreça https://<nom_del_domini>/api/states/<nom_de_la_entitat> i que a més a més, en la capçalera de la petició hem de posar el token.

El token és una cadena alfanumèrica que ens ha de facilitar el proveidor del servei que volem que interactuï amb el nostre agent (en aquest cas la nostra instal·lació de Home Assistant).

Per tant el primer pas serà revisar és el mecanisme de seguretat que ens demana el webservice que volem que el nostre agent utilitzi.

En aquest aspecte les opcions de chatGPT són força completes i no haurien de tenir problemes per configurar-ho correctament.

Així doncs, un cop tinguem clar quins requisits de seguretat ens exigeix el webservice que hem de consultar, farem clic en el boto de “Crear nova acció” (imatge 5) i en la pantalla que ens aparegui, a la dreta de la casella on posem el nom de l’acció , farem clic en la icona de la roda dentada per a que ens aparegui la finestra de la imatge següent

Imatge 11: Configuració de seguretat per accedir a un webservice extern

El següent camp que veurem ens demana l’esquema. En aquest camp li haurem de passar l’esquema dels tipus de peticions que voldrem realitzar, en format Open API. Com és una estructura relativament nova sinó sabeu com s’ha de crear, podreu utilitzar una altre agent GPT per a que us generi el codi necessari.

Per fer-ho heu d’entrar a la secció de “Examina els GPT” (imatge 2) i busqueu un GPT especialitzat en configurar les accions d’agents de GPT i demaneu-li que us crei l’estructura en OPEN API de la crida que hagueu de fer servir.

Ara només us queda copiar el codi que us ha generat dins del camp “esquema” de l’acció. Si l’estructura és correcte veureu que us apareix el nom i un botó en la part inferior per tal que puguem provar la petició

I ara ja ho teniu tot:
– En la imatge 6 podeu veure que en les instruccions ja li havia dit que l’entitat que mesura la temperatura del meu despatx és diu “climate.despatx_nau” per tant ja sap quina entitat consultar.
– Acabem de configurar-li l’acció que serveix per veure l’estat d’una entitat.

Ara ve la prova de foc… Com és veu en la imatge següent, li demano que hem digui la temperatura que hi ha en el meu despatx i em respon correctament

Si volguéssiu afegir més “operacions” a l’acció només hauríeu de saber com és realitza la petició i demanar-li al agent que ens ha creat abans l’estructura en Open API que us afegeixi a l’estructura que ens ha proporcionat, el nou tipus de petició, i substituir el codi que us va proporcionant en el camp “Esquema” del vostre agent.

Conclusions

A dia d’avui, quan hi ha moltíssims serveis al núvol que disposen d’algun tipus de webservice que permet comunicar serveis entre si, el poder configurar un assistent amb la potencia de chatGPT per interactuar-hi ens obre un univers de possibilitats.

Per exemple, utilitzant el webservice de Booking podríem crear un agent que no només ens crei una ruta turística per visitar alguna zona en N dies, sinó que seria capaç de reservar-nos els hotels que compleixin amb els nostres criteris. També podria resultar útil crear un agent que ens digui els esdeveniments culturals a la nostre zona i ens compri les entrades fent servir el webservice de TicketMaster. Potser encara necessitem poder navegar per les webs d’aquests serveis per tenir una idea més clara del que volem però si ja la tenim, podríem reservar l’estança o l’entrada per un espectacle sense haver de perdre el temps buscant el que necessitem en una pantalla de mòbil.

Per exemple podríem estar en un bar amb els amics i coincidir en voler veure una pel·lícula junts. Si tinguéssim configurat un agent amb les nostres preferències (ciutat, cinemes preferits i entre quines hores i/o files ens agrada veure les pel·lícules…) i dir-li per veu que busqui cinemes on projectin la pel·lícula comentada per dissabte que ve. L’agent podria fer la cerca gracies a algun dels serveis configurats i preguntar-te si desitges reservar el seient i en cas afirmatiu realitzar la reserva (si la plataforma ho permet) i crear-nos els esdeveniment als calendaris dels assistents per a que no s’oblidin.

I el que és millor, com és poden configurar tantes accions com és desitgi en un mateix agent, podríem crear un “super assistent” que fes les dues anteriors (reserva d’hotels i d’esdeveniments).

Algunes d’aquestes possibilitats ja les teníem disponibles amb els assistents tradicionals (Alexa i Google) utilitzant “skins”, però si els heu provat, us haureu donat compte de que són molt limitats, ja que no són capaços ni d’aprendre ni de entendre les vostres intencions si no fas servir algunes de les instruccions preconfigurades. Quants de vosaltres teniu un Alexa i en el millors dels casos la feu servir únicament per saber l’estat de les vostres compres d’Amazon, la climatologia i posar música?

Ara per ara prefereixo seguir controlant la domòtica utilitzant la veu amb els assistents que t’ofereix el Home Assistant ja que son capaços d’executar les instruccions molt més ràpid que l’agent GPT (pendent d’investigar si potser hi ha alguna configuració de xarxa que estigui afectant) tot i que li hagi de repetir la instrucció un parell de vegades. Potser cap a l’octubre/novembre de 2024 quan ja estiguin disponibles les noves característiques de veu de ChatGPT 4o sigui més eficient i faci el canvi.

Òbviament aquest tipus d’automatismes requereixen tenir present la seguretat ja que estàs delegant una tasca que depenent amb els serveis que interactuí pot comporta força problemes, per tant és aconsellable que els configureu per a que abans d’executar una acció us informi de forma detallada del que és disposa a fer i que configureu únicament serveis externs de confiança i que implementin mecanismes d’autentificació segurs.

Espero que us hagi resultat interessant i si necessiteu alguna aclariment no dubteu en deixar un comentari.

Leave a comment

Your email address will not be published. Required fields are marked *