574 - Tu propio experto en Python
Combinar #chatgpt o cualquier otro modelo de lenguaje natural con #python y #telegram te pueden ayudar a aprender #python o lo que tu necesites
Desde que el otro día hice el experto en Bash, Fish y Shell, he continuado trabajando para hacer otros expertos, pero con la particularidad de que fueran completamente independientes, y ahora te explico de que va esto de la independencia, y el objetivo que buscaba. Pero, todo ello, me ha llevado a crear otro experto, en este caso tienes la posibilidad de tener tu propio experto en Python. Así, en este episodio te hablaré sobre las peculiaridades del nuevo sistema de expertos y de que hace este experto en Python.
Tu propio experto en Python
Un paseo por el pasado
Por si te has perdido alguno de los anteriores episodios del podcast, contarte que esto de los expertos, no es ni mas ni menos que un bot de Telegram, que de vez en cuando publica algún truco, idea o sugerencia de la cual es experto.
Para hacer esto he combinado la API de Telegram, con la API de ChatGPT y con una sencilla base de datos SQLite, de forma que a ChatGPT le paso sobre lo que tiene que hablar y el devuelve el mensaje que posteriormente se publica en Telegram. Y todo ello aderezado con Sanic, que es un framework que permite hacer una API de forma sencilla.
Así, por ejemplo, en el caso del experto en Shell, lo que hay guardado en la base de datos son cientos de comandos.
Sobre el funcionamiento
Con Sanic tengo expuesta la API que llamo desde otro contenedor que tiene un cron implementado. Este llamada pasa por parámetros al experto que quiero que llame, el identificador del chat donde tiene que publicar y en su caso el hilo en el que quiero que lo publique, y esto está programado mediante ese cron, a determinadas horas.
Cuando se recibe la llamada desde el cron a la API, este elige de forma aleatoria en la base de datos alguno de los comandos que todavía no se han publicado. Lo envía a ChatGPT junto con las instrucciones de lo que quiero que devuelva.
Con la respuesta de ChatGPT, se crea la publicación en Telegram, y se marca como publicado en la base de datos, para que no exista la posiblidad de que se repita. Porque esto es una de los problemas que tuve inicialmente. Si dejo, que sea ChatGPT el que elija el comando, lo cierto, es que se repite mas que el ajo.
El experto en Python
Una vez conoces Python, te das cuenta que necesitas mas información. Existen miles de módulos disponibles, tanto los built in como los desarrollados por terceros. Hay muchas opciones y posibilidades para hacer cualquier cosa, pero es necesario conocer esos módulos.
Llegados a este punto se me ocurrió, porque no hacer un experto que me hable cada día de uno de estos módulos. Pues dicho y hecho.
En este caso lo que he hecho ha sido construir un tabla adicional en la base de datos con mas de cuatrocientos modulos de Python. Tanto los built in como otros módulos, algunos mas conocidos y otros menos. Así, cada día tienes tu píldora sobre módulos de Python.
En este caso, lo que he hecho es que explique las posibilidades del módulo del día, las funciones mas importantes, así como las clases y que por supuesto, haga un script mas o menos avanzado utilizando la clase mas importante.
Me pareció una forma mas que interesante de profundizar en el conocimiento de Python, y por lo menos tener un hilo de donde tirar.
Los entresijos del experto
He modificado el código para que la carga de los expertos sea de forma completamente dinámica. ¿A que me refiero?
En el archivo de configuración donde defino cada uno de los expertos, indico, el módulo y la clase donde está implementado el experto. Esto me permite que los expertos puedan ser completamente personalizables. Así, por ejemplo el de shell, utiliza una sola tabla, pero otros, como puede ser el de Python, pueden utilizar varias tablas, o tener cualquier tipo de comportamiento.
Por otro lado, tanto los comandos del experto en Shell, como los módulos del experto en Python se cargan inicialmente, y están disponibles directamente en el propio repositorio. De forma que este trabajo no es necesario repetirlo.
Me parece super padre todo eso que haces lo unico malo es que no vemos como se hace estaria genial que todos podamos tener un amigo python hasta para platicar, jajajaja saludos y excelente trabajo