domingo, 29 de septiembre de 2024

Code Tutor and Logs - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? VI

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

 

Code Tutor and Logs


A medida que un proyecto avanza, la complejidad se incrementa. Ahora tengo tres módulos distintos; uno de ellos, el principal, utiliza los otros dos. Me he dado cuenta de que los logs han dejado de funcionar en el principal. Intuyo que esto se debe a que tengo configurados los logs de forma independiente en todos ellos, y como algunos se importan en otros, las configuraciones se están mezclando.

Este es un problema de mayor nivel que los que hemos tenido hasta ahora. Me parece una buena oportunidad para utilizar el Code Tutor de ChatGPT. Pero, ¿qué es Code Tutor? En sus propias palabras:


"Code Tutor" es una guía diseñada para ayudarte a aprender a programar. En lugar de darte respuestas directamente, su enfoque es ayudarte a razonar, entender los conceptos de programación y desarrollar habilidades para resolver problemas por ti mismo.



Para utilizarlo, hay que ir al menú de la izquierda y pulsar en "Explorar GPT":

En la sección de "Educación" veremos el "Code Tutor". Una vez abierto, aparecerá en el menú de la izquierda.

Voy a probar el mismo prompt tanto aquí como en Gemini y en el chatbot de ChatGPT para poder compararlos:

Tengo un programa con varios archivos de Python, y algunos de ellos importan a los otros, ¿cuál es la mejor estrategia para tener un sistema de log único y consistente que abarque todos los archivos/scripts de Python?

Las tres respuestas me parecen útiles. Me voy a quedar con la del Code Tutor, ya que es más sencilla y directa. Todas me proporcionan código, pero la de Gemini es más completa y va un paso más allá, sugiriendo el uso de frameworks como loguru y structlog, que ofrecen funcionalidades más avanzadas, como la rotación de logs.

Lo que no me gusta del Code Tutor es que no guarda el historial de consultas, algo que uso mucho en su chatbot hermano. Sin embargo, las sensaciones son buenas.

¿Es mejor el Code Tutor que usar directamente el chatbot? En teoría, está optimizado para ayudar al programador, pero en mi experiencia, los resultados del chatbot son muy buenos. Quizás las respuestas del chatbot son más directas. En mi opinión, depende del nivel del usuario: para principiantes, el Code Tutor puede ser mejor; para programadores más experimentados, probablemente sea mejor un chatbot, para entender mejor las diferencias, estoy preparando un artículo acerca de la Inteligencia Artificial Generativa, por el momento decir que la respuesta ofrecida por Code Tutor para preguntas básicas de programación, como por ejemplo:


Cuales son las naming conventions para ficheros de codigo .py y para clases en python


Para estas, será mejor utilizar el Code Tutor.


sábado, 21 de septiembre de 2024

Cuáles serían los resultados con otros LLM - Gemini - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? V

Este artículo es el quinto 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 resultados con otros LLM como Gemini



Sin duda, ChatGPT está siendo de gran ayuda como asistente de programación, pero ChatGPT no es el único "juguete" que tenemos hoy en día. Puede que sea el chatbot más famoso basado en LLM, y puede que sea el que más relevancia ha alcanzado entre el público general, pero hay otros. Seguramente, el segundo en notoriedad es Gemini de Google, conocido anteriormente como Google Bard, lanzado en marzo de 2023.

La prueba que voy a realizar es la misma, pero en lugar de usar la API de Spotify, usaré la de Blogger, que es otra herramienta de Google, por lo que espero obtener buenos resultados.

¿Me puedes escribir código en Python para publicar un artículo en Blogger usando la API de Blogger?

La respuesta me deja estupefacto, pues estaba esperando código y comentarios sobre el código, y lo que me encuentro es:

"Solo soy un modelo de lenguaje, así que no puedo hacer lo que me pides."

Superada la impresión inicial, le replico:

"Pero ChatGPT puede."

Y la respuesta ya es más parecida a lo que esperaba. Me resulta muy gracioso, porque hasta que no le mencioné a la competencia no se puso en movimiento. Eso sí, en ese caso lo primero que hace es disculparse:

"¡Tienes toda la razón! Como modelo de lenguaje, puedo ayudarte a generar código Python para publicar un artículo en Blogger utilizando la API de Blogger."


 

La respuesta es parecida a la de ChatGPT; el estilo es similar. Como se puede ver en la imagen, ofrece tres versiones: la primera es la misma que cuando pregunté directamente, pero la segunda es la buena.

Para hacer que este código funcione, hay un paso previo: integrarse con la autenticación y autorización de Google. El paso número 1 es, obtener las credenciales de la API:

  1. Accede a la Google Cloud Platform y crea un proyecto.
  2. Habilita la API de Blogger.
  3. Crea un cliente OAuth 2.0 y descarga las credenciales JSON.

Este es el paso que con diferencia, me ha dado más problemas. Por más detalles que le pedí a Gemini, no me dio una forma fácil de hacerlo. Incluso probé con ChatGPT y tampoco tuve suerte, así que tuve que volver a los viejos métodos de siempre:

  • Leer documentación.
  • Usar buscadores tradicionales.
  • Buscar tutoriales, incluso en YouTube.
  • Y mucho ensayo y error.

La verdad es que esa parte de la API de Google es muy poco intuitiva. Los mensajes de error son muy genéricos y no proporcionan información clara sobre el problema. En situaciones como estas, los chatbots son poco útiles.

Una vez superado ese escollo hago la prueba de que me complete el código. En el siguiente prompt ya intento que me den todas las mejoras básicas de golpe:

¿Puedes escribir el código en inglés, añadir pydoc, tratamiento de excepciones y logs?

En mi opinión, aquí es donde estas herramientas realmente lucen, aumentando la eficiencia de cualquier programador.

Pero, a la pregunta: "¿Con cuál de los dos chatbots te quedarías?", yo, por el momento, me quedo con ChatGPT. No solo porque me gusta más la interfaz, sino porque para mí, las respuestas son mejores.

En cualquier caso, no son los únicos chatbots que usan LLM. Hoy en día hay mucha variedad, y yo recomendaría utilizar herramientas como artificialanalysis, donde puedes comparar las diferentes opciones en términos de calidad, precio y velocidad.


domingo, 15 de septiembre de 2024

Siguientes pasos - Análisis de Seguridad -- ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? IV

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



Análisis de seguridad

 


Podemos empezar preguntándole a ChatGPT si el código generado es seguro. Es una pregunta trampa, ya que el código ha sido generado por el mismo ChatGPT, pero veamos si es capaz de hacer un buen análisis. El prompt sería:

¿Puedes analizar este código desde el punto de vista de seguridad?

ChatGPT se ha fijado en seis puntos clave:

  1. Manejo de credenciales
  2. Control de excepciones
  3. Validación de datos
  4. Logging
  5. Dependencias externas
  6. Autenticación y sesiones

Para cada uno de estos puntos, ha identificado un riesgo y varias acciones de mitigación. En su conclusión final, indica que no ha encontrado problemas graves. Sin embargo, sugiere literalmente:

validaciones adicionales, asegurando los logs, gestionando las dependencias cuidadosamente, y almacenando las credenciales de forma más segura utilizando un vault de secretos.

Esto es justo lo que quería comprobar. Sugiere efectivamente el uso de un vault de secretos, por lo que, para mí, ha pasado la prueba.