Mostrando entradas con la etiqueta chatbots. Mostrar todas las entradas
Mostrando entradas con la etiqueta chatbots. Mostrar todas las entradas

domingo, 22 de diciembre de 2024

Cursor: La integración de inteligencia artificial en el desarrollo

En el artículo previo vimos cómo utilizar chatbots en línea como asistentes en la programación. Sin embargo, este método se basa principalmente en cortar y pegar, lo cual puede ser problemático. No solo es tedioso usar constantemente Ctrl+C y Ctrl+V, sino que también dificulta que el modelo tenga en cuenta el contexto. Para proyectos grandes, esta técnica resulta poco útil y solo sirve en casos específicos, como micro mejoras en el código.

Teniendo esto en cuenta, era cuestión de tiempo que surgieran herramientas para solucionar estos problemas y mejorar el flujo de trabajo. Hoy hablaremos de Cursor, un entorno de desarrollo integrado (IDE) que integra modelos de lenguaje de última generación y que, actualmente, es uno de los más populares.

¿Qué es Cursor?

En el contexto de una herramienta de desarrollo basada en inteligencia artificial (IA), como Cursor, se puede definir como:

Cursor es un entorno de desarrollo integrado (IDE) impulsado por inteligencia artificial que mejora la productividad de los programadores. Utiliza modelos de lenguaje avanzados para ofrecer funcionalidades como autocompletado de código, generación de funciones o scripts, explicación de código existente, depuración asistida y sugerencias contextuales en tiempo real. Además, integra herramientas como búsqueda inteligente y análisis de código para optimizar el flujo de trabajo en el desarrollo de software.

La siguiente captura de pantalla pertenece al tutorial de bienvenida de la herramienta. Es útil para introducir Cursor, ya que muestra muy bien las funcionalidades principales que ofrece.

Tutorial de bienvenida de Cursor

Prompt and Edit (Editar con un Prompt)

Con la combinación de teclas Ctrl+K, se abre un diálogo directamente en el código, permitiendo utilizar prompts relacionados con el mismo, realizar refactorizaciones específicas, entre otras acciones.

Diálogo de edición en Cursor

En el diálogo que se abre, en la esquina inferior derecha, aparece un desplegable donde se puede seleccionar el modelo utilizado, como gpt-4o. Tras pulsar Enter, se genera la respuesta y la herramienta crea el nuevo código, que aparece destacado en verde. Si nos convence, debemos aprobar los cambios para que se guarden.

Código generado por Cursor

Chat with your Codebase

Mediante Ctrl+L, se abre una nueva pestaña en el lado derecho. Esta funcionalidad permite ampliar el contexto al especificar los archivos que queremos que el modelo tenga en cuenta, o incluso indicar que considere todo el código, utilizando @codebase.

Chat con la base de código en Cursor

Otra ventaja de esta funcionalidad es que explica los cambios propuestos directamente en la ventana, ayudando a entender mejor las modificaciones antes de aprobarlas.

Explicación de cambios en Cursor

En cualquier caso, estas son propuestas que deben ser aceptadas o descartadas manualmente para asegurarse de que se adapten a nuestras necesidades.




Autocompletado y Errores


También ofrece consultas a modelos para arreglar errores:



E incluso para autocompletado como Code Copilot, pero esta funcionalidad viene con limitaciones, al los pocos intentos me encontré con este mensaje y tuve que deshabilitarlo:

 





domingo, 27 de octubre de 2024

Problemas de usar IA Generativa como asistente a la programación - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? X

Este artículo es el décimo de una series acerca de  De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el primer artículo.




 Los problemas de los chatbots basados en IA generativa no se limitan a uno solo, pero en esta captura de pantalla se resumen los más destacados:

Me atrevería a decir que incluso pueden ser incorrectas o tener poco que ver con la realidad. Estas "alucinaciones" de la IA se notan especialmente en preguntas como "¿Cuál es el/la X más antiguo/a de X?", para las cuales es mejor acudir a Wikipedia. Estas herramientas a veces inventan datos o, si no han sido entrenadas con información fiable, pueden producir información de dudosa calidad. Sabemos que internet es una fuente invaluable, pero no siempre es completamente fiable, y estos modelos de lenguaje han sido en gran parte entrenados con contenido de internet.

¿Es esto tan relevante a la hora de generar código?

En mi opinión, no tanto. Quizás no siempre obtengas el mejor código, pero suele ser una versión útil para prototipar. Claro, tendrás que revisarlo, probarlo y, en ocasiones, adaptarlo o optimizarlo. Aun así, considero que es un punto de partida suficientemente sólido, probablemente mejor que otros códigos que podrías encontrar buscando en Google. Por tanto, para mí este problema no es tan grave como el siguiente.

Confidencialidad

Nos advierten que el código que copiemos en herramientas como ChatGPT podría usarse en futuras versiones. Esto ya es más serio, pues el código es propiedad intelectual y, para muchas empresas, uno de sus activos más importantes. En contextos comunes como la revisión de código, generación de tests unitarios, o control de excepciones, estaríamos cediendo código a terceros. Esto podría no ser un problema para algunas empresas, sobre todo si su software no les da una ventaja competitiva, o si publican código en fuentes abiertas. Pero para quienes esto representa un riesgo, sigue habiendo opciones.

¿Qué podemos hacer?

Primero, educar a los empleados. Todos deben conocer las implicaciones de usar estas herramientas, especialmente evitando copiar código o datos sensibles como los protegidos por la LOPD. Además, es clave configurar estas herramientas para desactivar el uso de las consultas en el entrenamiento o el almacenamiento del historial.

Segundo, usar tecnologías de seguridad en la nube, como Netskope, que pueden evitar la pérdida de información bloqueando la copia o el pegado de código en estos contextos.

Perder estas herramientas también significa perder sus ventajas. Y no es cuestión de sacrificar eficiencia por seguridad; está claro que las IA llegaron para quedarse, y las empresas que no las adopten pueden quedar rezagadas. Como ya se dice: "La IA no va a quitar empleos, pero quienes la usen sí se los quitarán a quienes no lo hagan".

Tercero, en lugar de usar chatbots en línea, se pueden desplegar modelos localmente o en una nube privada, accesibles solo para quienes designemos. Hablaré más de esta opción en otro artículo.

Otros problemas menores

Ejecución en tiempo real: Aunque los chatbots generan y comprenden código, no pueden ejecutarlo o probarlo en tiempo real. Esto significa que el código generado debe validarse en un IDE como VSCode. Existen otros flujos e IDEs específicos, de los cuales también hablaré en otro artículo.

Conocimiento estático: ChatGPT no tiene acceso a internet ni a actualizaciones recientes de lenguajes de programación o bibliotecas, por lo que su conocimiento se limita a los datos con los que fue entrenado. Esto puede dar lugar a sugerencias obsoletas o incompatibles con versiones actuales de un lenguaje, aunque no es común.

Falta de contexto prolongado: En una conversación extensa, los chatbots puede perder el contexto, lo que resulta en respuestas incoherentes o repetitivas.

Ambigüedad en las preguntas: Es fundamental proporcionar instrucciones claras, razón por la cual la "ingeniería de prompts" está en auge. Sin instrucciones precisas, los chatbots pueden generar código que no se ajusta a la necesidad real.

Limitaciones de personalización: Modelos generales como ChatGPT no pueden adaptarse a un estilo de programación específico o a las preferencias de un equipo en particular, algo que solo se lograría entrenando un modelo con código propio, lo cual requiere gran cantidad de datos. Esto es más viable para grandes empresas con una larga trayectoria en estándares de calidad.

Lenguajes menos populares: Los chatbots pueden no ser muy útiles en lenguajes poco conocidos o específicos, aunque no debería ser un problema para lenguajes populares como Python. Nos interesa, además de un lenguaje popular, que tenga una gran base de código histórico para entrenar a estos modelos.

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.

sábado, 31 de agosto de 2024

Siguientes pasos - Test Unitarios - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? IV

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

 

Test Unitarios


¿Puedes crear test unitarios en un nuevo fichero?


Genera el código rápidamente, luego una sección explicando el código y otra sección con el comando para ejecutar los test unitarios.

Me gusta cómo está estructurado el código. Primero, tiene un método setUp para inicializar todo lo necesario antes de correr los tests, incluidos los mocks. Luego, presenta test unitarios para las funciones del código a probar, tanto para casos positivos como negativos, e incluso para el control de excepciones.

Tuve que renombrar algunos archivos para que los nombres coincidieran, pero todo ha funcionado como se esperaba. La mala noticia es que, de los ocho tests generados, uno falla, lo que me lleva a pensar que hay una discrepancia entre el código generado y los tests. Para evitar esto, intenté generar los tests nuevamente, esta vez copiando y pegando el código que iba a ejecutar, para asegurarme de que los tests no se generaran para un código que estaba en la conversación y que no coincidiera exactamente con el que tenía en el editor de texto. Sin embargo, el resultado fue el mismo. Al fin y al cabo, nadie es perfecto, pero si quiero solucionar este error tendré que hacerlo a la antigua usanza: examinando y depurando el código. La dificultad aquí es que yo no he escrito el código, lo que añade una barrera, pero como el objetivo final es aprender el lenguaje de programación, seguro que me será útil.

Lo primero que me llama la atención es que se está importando MagicMock de unittest.mock. Mi primer contacto con mocking frameworks fue en 2005, cuando estaba utilizando Extreme Programming y por extensión TDD. Desde entonces, y viniendo del mundo Java, he visto pasar muchos frameworks para construir mocks. Me pregunto por qué ha elegido MagicMock en particular. En otra época, habría buscado información en Google, investigando alternativas, investigando qué framework es más maduro o aceptado según Google Trends, pero ahora tenemos chatbots para ayudarnos, así que le hago tres preguntas encadenadas para ver cómo responde:


  1. ¿Por qué has elegido unittest.mock y MagicMock como framework para fabricar los mocks?
  2. ¿Hay alternativas? ¿Qué otras opciones hay?
  3. ¿Podrías reescribir los tests con pytest y pytest-mock?

Para la primera pregunta, devuelve una respuesta bastante completa con seis puntos a favor de esta opción.

En la segunda, ofrece seis alternativas, explicando cuáles son los puntos fuertes de cada una. Incluso menciona una, mockito, que ya conocía del mundo Java. La que más me convence es la primera: pytest con pytest-mock. De ahí surge la tercera pregunta; no solo me reescribió el código de los tests, sino también el código que quería testear. Sin embargo, se quedó colgado generando el código de los tests, y tuve que pedirle que lo generara de nuevo. No es la primera vez que me pasa esto, que se quede a mitad de camino; me imagino que es lo que sucede bajo condiciones excepcionales, pero yo esperaría un mensaje de error, al menos para saber que no pudo terminar.

Con pytest, la forma de ejecutar los tests es distinta. Al probarlo, me da un error, así que le pregunto otra vez:

Cuando ejecuto "pytest", me da el error:


pytest : The term 'pytest' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

¿Sabes cuál es el problema?

 

En esta ocasión, me vuelve a generar dos respuestas, me gusta más la primera, es un poco más directa, y me sugiere ejecutar los test como un comando de python: python -m pytest.

Y ahora si, es capaz de ejecutar los test, las malas noticias es que falla en el mismo punto que con la versión anterior.


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.

sábado, 17 de agosto de 2024

Generación de Código - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? II


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



Generación de Código




¡Comencemos!. Eso si, por algo sencillo, por ejemplo creando un pequeño programa en python, que usando la API de spotify nos devuelva una lista de las canciones rock más escuchadas durante el mes pasado. El prompt que he utilizado es casi literal:


¿me puedes escribir código en python para sacar una lista de las canciones rock más escuchadas en spotify durante el mes pasado, usando la api de spotify?


Nota: ChatGPT te permite compartir una conversación generando un enlace, puedes ver toda la conversación aquí.



Hasta ahora, todo va bien. ChatGPT genera todo el código y lo explica claramente. Ya podemos observar ciertas características del lenguaje, cómo utilizar librerías y cómo definir funciones. Sin embargo, si eres una persona de acción, lo que probablemente quieras ahora es ver el código en funcionamiento. Por eso, la siguiente pregunta qué le haría es:

¿Cómo puedo ejecutar este código?

La respuesta generada no está mal, e incluso recomienda algunos IDEs para la edición del código. No obstante, asume que ya tengo un entorno de desarrollo configurado o que, al menos, ya tengo Python instalado, lo cual podría no ser el caso. Lo primero que nos indica es que instalemos la librería con “pip install spotipy”. Si no tienes Python instalado, esto devolverá un error:


'pip' is not recognized as an internal or external command,

operable program or batch file.


En este tipo de casos, aunque el mensaje de error es bastante claro, lo habitual es buscar la solución en algún buscador. Ese es el primer impulso de quienes hemos programado durante las últimas décadas. Sin embargo, como estamos probando ChatGPT, deberíamos resistirnos a ese impulso y… ¿por qué no preguntárselo directamente a él? Una de las características que más me gustan de estos bots conversacionales es precisamente esa: que puedes tener una conversación continua con ellos. Esta sería la tercera pregunta que le hago en el mismo diálogo, por lo que no necesito dar más contexto. Bastaría con decirle que me ha dado un error y añadir el mensaje de error.

Una vez más, la respuesta no está nada mal. Me gusta que ofrezca diferentes opciones para distintos sistemas operativos. El enlace generado para descargar la última versión de Python funciona, y los pasos son bastante claros. Después de cinco minutos, ya lo tengo todo instalado. Conseguir el ID de proyecto en Spotify y el token para poder usar la API me lleva un poco más de tiempo, pero al final ya lo tengo todo funcionando. La pregunta es:

¿Me ha hecho más eficiente ChatGPT?

En otras palabras, ¿he ahorrado tiempo? ¿Se han cimentado mejor los conocimientos que estoy intentando aprender? Mi impresión personal es que sí, pero aún queda mucho camino por recorrer. Estos son solo los primeros pasos. ¿Me servirá para aprender conceptos más avanzados del lenguaje? ¿Es correcto el código? ¿Es el mejor código posible? ¿Qué implicaciones de seguridad hay que tener en cuenta?

sábado, 10 de agosto de 2024

¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje?

Mi primer contacto serio aprendiendo lenguajes de programación fué en la Universidad, estudiando Ingeniería Informática, antes de eso hice algo con Visual Basic, pero de aquellas no sabía ni por dónde empezar, comencé mis estudios en 1996, ni que decir tiene que en esa época todo lo relacionado con la informática era diferente, y sobre todo aprender un lenguaje de programación, en primer curso ya teníamos una clase que se llamaba justo así, “Programación I”, recuerdo que aprendimos Pascal, un lenguaje muy elegante, y fue el profesor el que nos condujo por los distintos elementos que componen un lenguaje como Pascal, Sintaxis, Semántica, Tipos de datos, Variables, Operadores, Estructuras de Control y un largo etcétera. Por supuesto el examen era escribir un programa, pero con la dificultad añadida de que había que escribirlo en papel, sin compilador!, sólo de pensarlo ahora me parece aterrador, no tener feedback inmediato de lo que estás escribiendo es por lo menos sintácticamente correcto me asusta.

Para otras asignaturas aprendí otros lenguajes, generalmente porque pedían las prácticas en esos lenguajes, Cobol para “Calidad del Software”, C++ para Bases de Datos y Teoría de Autómatas y Lenguajes formales, Eiffel, Ensamblador, etc, para estos últimos el alumno ya tenía que buscarse la vida, a veces los profesores ponían a disposición de la clase un manual, pero a esas alturas ya sabíamos que lo más útil era conseguir un libro de programación, por ejemplo el mítico "The C++ Programming Language" por Bjarne Stroustrup.

Cuando terminé el Ciclo superior de Ingeniería Informática, decidí hacer el proyecto de fin de carrera sobre un motor de búsqueda que despuntaba en aquella época, Google, quería aprender más de tecnologías web, que ya por aquel entonces eran omnipresentes, elegí Java, sobre todo porque en aquella época parecía que iba a ser un lenguaje de programación útil en el futuro, y de qué manera lo fué, la mayor parte de mi vida profesional ha sido una constante, cuando has programado tanto y tienes tanto dominio sobre un lenguaje las metas son distintas, ya nos centramos más en sutilezas, y este tipo de cosas se aprenden mejor con tus compañeros, haciendo y recibiendo revisiones de código, o incluso mejor, haciendo programación pareada (pair programing), para ir más lejos puedes leer libros de programación especializados.

El caso es cuando ya tienes un nivel muy alto en un lenguaje de programación y quieres aprender otro, un curso básico de programación en ese lenguaje te va a resultar muy aburrido, porque la mayoría de los conceptos ya los tienes, seguramente sea mejor comprar un libro que te sirva de referencia y empezar un pequeño proyecto para irte familiarizando con el nuevo lenguaje, y es aquí donde yo creo que las nuevas herramientas de Inteligencia artificial pueden jugar un papel importante. Hoy en día todo está colgado en internet, puedes encontrar miles de tutoriales sobre lo que buscas, millones de ejemplos, stackoverflow te va a ayudar con los errores, los buscadores tradicionales como google serán tu puerta de entrada, pero estos buscadores ya no devuelven información tan buena como antes, los intereses económicos se han hecho con ellos, ya no tienen nada que ver con la teoría de recuperación de información, ya hay que hacer mucho scroll para saltar los anuncios y llegar a los resultados de verdad, y de estos resultados ya tampoco te puedes fiar por las razones anteriores.

¿Por qué ahora?


ChatGPT ha estado en funcionamiento durante varios años, pero la versión ChatGPT-4 fue lanzada el 14 de marzo de 2023. El año pasado, realicé un ejercicio similar al que estoy haciendo ahora. Mi objetivo era automatizar un proceso mediante la creación de un script que, utilizando la API de TestRail (una herramienta de gestión de pruebas), quería extraer todos los datos de los casos de prueba para poder realizar análisis estadísticos y generar gráficos. Sin embargo, los resultados no fueron tan satisfactorios como esperaba. Aunque ChatGPT me ayudó con la estructura, al final preferí utilizar la solicitud que capturé con el navegador (F12 -> Pestaña Network). El navegador permite copiar la solicitud en varios formatos; yo opté por cURL para poder probarla sin el navegador, de forma aislada, eliminando todo lo innecesario y luego traduciéndola a Python. Para esto, incluso hay herramientas que automatizan la conversión.

Mi conclusión en ese momento fué que ChatGPT te puede hacer más productivo, ayudar en momentos puntuales, pero que no era un “Game Changer” como nos lo estaban vendiendo. Entre las mejoras que openAI incorpora en ChatGPT-4, destaca:

Mejora en la Generación de Código: GPT-4 muestra una mayor competencia en la generación y corrección de código, lo que lo hace más útil para desarrolladores y programadores.

A mi me gustaría investigar cómo de grande es esta mejora.