sábado, 24 de agosto de 2024

Seguientes pasos - Claves - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? III

 
Este artículo es el tercero de una series acerca de  De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el principio si quieres.



¿Cuáles serían los siguientes pasos?


Lo que más me incomoda es que mi token de la API de Spotify esté visible en el código. Se me ocurre mover esos valores a un vault de secretos o, al menos, a variables de entorno, para que no estén visibles en GitHub. Pero, ¿por qué no preguntárselo a nuestro chatbot?


¿Cómo puedo hacer para que la variable TU_CLIENT_SECRET no esté en claro en el código?



El código que me genera ChatGPT utiliza una librería para trabajar con variables de entorno, python-dotenv. Esta librería coloca las variables en un archivo .env, y luego hay que asegurarse de que este archivo no se suba al repositorio añadiéndolo al .gitignore. Pero, ¿es esta la mejor opción? Una de las características de estos modelos es que, para una misma pregunta, no siempre generan la misma respuesta. De hecho, puedes “volver a generar” la respuesta usando el ícono de las dos flechas circulares.



La segunda respuesta es muy parecida: misma estrategia, misma librería. Al final de la respuesta, ChatGPT pregunta: "¿Esta respuesta fue mejor o peor?". Respondí que era igual de buena, porque me parece que no hay nada nuevo. Así estamos ayudando a entrenar el modelo. Sin embargo, como es prácticamente lo mismo, decido volver a generar otra respuesta. Y una vez más, la tercera opción utiliza la misma estrategia. Me pregunto, ¿es esta la solución más extendida en la comunidad y por eso siempre devuelve lo mismo? ¿O ChatGPT simplemente reescribe la respuesta con otras palabras? En lo que respecta al código, los cambios son cosméticos. En las tres veces que he regenerado la respuesta, solo cambiaron los comentarios del código y el orden de una librería. Concluyo que, al volver a generar los resultados, al menos en este caso, la respuesta no cambia sustancialmente. Dejo los resultados en GitHub.
En los ejemplos anteriores, el código generado es muy sencillo. Cuando estás aprendiendo, esto seguramente sea una ventaja, pero está dejando fuera aspectos fundamentales de la programación, elementos necesarios para escribir buen código. Por ejemplo, echo de menos una clase Canción y más fundamentos de programación orientada a objetos. Veamos si nos puede ayudar:


¿Puedes reescribir el anterior código pero con una programación orientada a objetos?, ¿puedes incluir una clase canción?



El código generado sigue siendo sencillo, pero ahora veo dos clases: Cancion y SpotifyRockTracks. La clase Cancion tiene un método __init__ y otro __str__, lo cual me agrada; parece seguir convenciones de código que ya he visto en otros lenguajes, y, al investigar un poco, confirmo que es así.

Pruebo a ejecutar el código, y funciona sin errores nuevamente. Parece que la cosa funciona.

No hay comentarios: