Cómo usar ChatGPT para escribir código

Usar ChatGPT para código

Uno de los descubrimientos más intrigantes sobre ChatGPT es que puede escribir código bastante bueno. Probé esto en febrero cuando le pedí que escribiera un plugin de WordPress que mi esposa pudiera usar en su sitio web. Lo hizo muy bien, pero era un proyecto muy sencillo.

Cómo usar ChatGPT para escribir: Currículums | Fórmulas de Excel | Ensayos | Cartas de presentación

¿Cómo puedes usar ChatGPT para escribir código como parte de tu práctica diaria de programación? Eso es lo que vamos a explorar aquí.

¿En qué tipos de programación se desempeña bien ChatGPT?

Hay dos hechos importantes sobre ChatGPT y la programación. El primero es que, de hecho, puede escribir código útil. El segundo es que puede perderse por completo, caer en el agujero del conejo, perseguir su propia cola y producir basura absolutamente inutilizable.

También: Estoy usando ChatGPT para ayudarme a corregir código más rápido, pero ¿a qué costo?

Descubrí esto de la manera difícil. Después de terminar el plugin de WordPress, decidí ver hasta dónde podía llegar ChatGPT. Escribí una descripción muy detallada de una aplicación de Mac, incluyendo descripciones detalladas de los elementos de la interfaz de usuario, las interacciones, lo que se proporcionaría en la configuración, cómo funcionarían, y así sucesivamente. Luego se lo pasé a ChatGPT.

ChatGPT respondió con un flujo de texto y código. Luego se detuvo a mitad del código. Cuando le pedí que continuara, vomitó aún más código y texto. Solicité continuaciones una y otra vez y siguió soltando más y más código. Pero… ninguno de ellos era utilizable. No identificó dónde debía ir el código, cómo construir el proyecto y, cuando examiné detenidamente el código producido, omitió operaciones importantes que solicité, dejando simples descripciones de texto que decían “aquí va la lógica del programa”.

También: Vale, ChatGPT acaba de depurar mi código. En serio

Después de repetir varias pruebas, quedó claro para mí que si le pides a ChatGPT que entregue una aplicación completa, fallará. Una consecuencia de esta observación es que si no sabes nada de programación y quieres que ChatGPT te construya algo, también fallará.

Donde ChatGPT tiene éxito, y lo hace muy bien, es en ayudar a alguien que ya sabe cómo programar a construir rutinas específicas y completar tareas específicas. No pidas una aplicación que se ejecute en la barra de menú. Pero si le pides a ChatGPT una rutina para poner un menú en la barra de menú, y luego pegas eso en tu proyecto, funcionará bastante bien.

También: Cómo usar ChatGPT para crear una aplicación

También, ten en cuenta que aunque ChatGPT parece tener una enorme cantidad de conocimiento específico de dominio (y a menudo lo tiene), carece de sabiduría. Como tal, puede escribir código, pero no podrá escribir código que contenga los matices para problemas muy específicos o complejos que requieren una experiencia profunda para entender.

Usa ChatGPT para demostrar técnicas, escribir algoritmos pequeños y producir subrutinas. Incluso puedes hacer que ChatGPT te ayude a descomponer un proyecto más grande en partes más pequeñas, y luego puedes pedirle que te ayude a codificar esas partes.

Entonces, teniendo eso en cuenta, veamos algunos pasos específicos sobre cómo usar ChatGPT para escribir código.

Cómo ChatGPT puede ayudarte a escribir código

1. Reduce y afina tu solicitud

El primer paso es decidir qué le vas a pedir a ChatGPT, pero aún no le pidas nada. Decide qué quieres que haga tu función o rutina, o qué quieres aprender para incorporarlo a tu código. Decide los parámetros que vas a pasar a tu código y lo que quieres obtener. Y luego analiza cómo lo vas a describir.

También: Cómo escribir mejores indicaciones para ChatGPT

Imagina que estás pagando a un programador humano para hacer esto. ¿Le estás dando suficiente información a esa persona para que pueda trabajar en tu tarea? ¿O eres demasiado vago y es más probable que la persona que estás pagando haga preguntas o entregue algo completamente diferente a lo que quieres?

Aquí tienes un ejemplo. Digamos que quiero poder resumir cualquier página web. Quiero alimentarle algo como este artículo y obtener un resumen corto que esté bien considerado y sea apropiado. Como entrada, especificaré una URL de página web. Como salida, obtendré un bloque de texto con un resumen.

2. Utilizar ChatGPT para explorar bibliotecas y recursos

Continuando con el ejemplo anterior, una forma muy antigua de extraer datos de una página web era encontrar el texto entre las etiquetas de párrafo de HTML.

Pero con el surgimiento de herramientas de inteligencia artificial, tiene más sentido utilizar una biblioteca de IA para hacer una extracción y resumen inteligentes. Uno de los puntos fuertes de ChatGPT (y también es un área que puedes verificar fácilmente para evitar su patrón de comportamiento autoritario pero incorrecto) es encontrar bibliotecas y recursos.

También: Cómo hacer que ChatGPT proporcione fuentes y citas

OpenAI (el creador de ChatGPT) vende acceso a la API de los motores GPT-3 y GPT-4 que harán exactamente lo que queremos. Pero en el caso de este ejemplo, supongamos que no queremos pagar tarifas de transacción.

Entonces, veamos cómo interactuar con ChatGPT para descubrir cómo usar una herramienta así, de forma gratuita, con un proyecto que se ejecuta en PHP.

Comencé con una indicación diseñada para obtener información sobre qué bibliotecas proporcionarían la funcionalidad que deseaba. Una biblioteca (para aquellos de ustedes que no son programadores) es un conjunto de código al que un programador puede acceder que hace gran parte del trabajo pesado para un propósito específico. Gran parte de la programación moderna consiste en encontrar y elegir las bibliotecas adecuadas. Así que este es un buen punto de partida.

También: Usé ChatGPT para escribir la misma rutina en 12 de los principales lenguajes de programación. Así es cómo lo hizo

En este caso, estoy buscando bloques de código escritos por otras personas que resumirán texto. Aquí está mi primera indicación:

Describe diez bibliotecas de inteligencia artificial de código abierto diferentes (y los lenguajes con los que funcionan) que puedo usar para generar un resumen de los contenidos principales de cualquier página web, ignorando cualquier anuncio o material incrustado.

Esto me dio exactamente lo que quería, incluida una mención de las ofertas de OpenAI. Creo que OpenAI sería genial aquí, pero para este proyecto hipotético, no quiero presupuestar tarifas de API. Así que voy a acotar la pregunta.

¿Alguna de estas es gratuita?

ChatGPT se cubrió las apuestas con su respuesta. Esto es lo que dijo: “Sí, las diez bibliotecas de inteligencia artificial son de código abierto y gratuitas de usar. Sin embargo, algunas de ellas pueden tener límites de uso o requerir pago para acceder a características o recursos adicionales”. Así que, en base a eso, aclaré mi consulta.

¿Cuáles de estas bibliotecas no tienen límites de uso y no requieren ningún pago o licencia adicional?

Observa cómo esto es muy similar a una conversación. No tengo que volver a hacer la pregunta original. Solo estoy profundizando de la misma manera en que lo haría si tuviera un experto a mano y buscara aclaraciones. En este caso, ChatGPT me dio ocho opciones de bibliotecas, pero ninguna de ellas mencionaba el lenguaje PHP en el que planeaba programar. Así que, aquí está la siguiente indicación:

De esas 8 bibliotecas, ¿puedo usar alguna con PHP?

Devuelve tres bibliotecas, pero no estaba seguro de lo que hace cada una. Así que otra pregunta:

¿Cuál es la diferencia entre Sumy, Gensim y NLTK?

Todavía no estaba seguro, así que aclaré mi plan de uso y luego pregunté:

Si quiero crear resúmenes de artículos de noticias de páginas web, ¿qué biblioteca funcionaría mejor?

La respuesta que obtuve fue clara y prometedora: “Sumy está diseñada específicamente para la resumición de texto, que es la tarea de crear un resumen que capture la información más importante de un texto”. Así que, ahora era el momento de ver qué implicaba usarlo con PHP. Hice mi última pregunta para esta parte del proyecto:

¿Puedes explicar cómo usar Sumy desde PHP?

Sientete libre de seguir en tu computadora y pegar estos comandos en tu instancia de ChatGPT. Observa que, en el paso 1, decidí qué módulo de programa iba a obtener ayuda. Luego, en este paso, tuve una conversación con ChatGPT para decidir qué biblioteca usar y cómo integrarla en mi proyecto.

También: Los mejores chatbots de IA: ChatGPT y otras alternativas interesantes para probar

Eso puede no parecer programación, pero te aseguro que lo es. Programar no es solo escribir líneas de código en una página. Programar es descubrir cómo integrar todos los diversos recursos y sistemas juntos, y cómo comunicarse con todos los componentes de tu solución. Aquí, ChatGPT me ayudó a realizar ese análisis de integración.

Por cierto, estaba curioso de si Bard de Google podría ayudar de la misma manera. Bard no puede escribir código en realidad, pero proporcionó algunas ideas adicionales sobre el aspecto de planificación de la programación en comparación con las respuestas de ChatGPT. Así que no dudes en utilizar múltiples herramientas para obtener las respuestas que deseas. Aquí está esa historia: Bard vs. ChatGPT: ¿Puede Bard ayudarte a programar? Desde que escribí ese artículo, Google agregó algunas capacidades de codificación a Bard, pero no son tan buenas. Puedes leer al respecto aquí: Probé las nuevas habilidades de codificación de Google Bard. No fue bien.

La programación viene después.

3. Pide a ChatGPT que escriba código de ejemplo

De acuerdo, hagamos una pausa aquí. Este artículo se titula “Cómo usar ChatGPT para escribir código”. ¡Y lo hará! Pero realmente estamos pidiendo a ChatGPT que escriba código de ejemplo. ¿Espera, qué?

También: ¿Qué es GPT-4? Aquí tienes todo lo que necesitas saber

Seamos claros. A menos que estés escribiendo una función muy pequeña (como el clasificador/aleatorizador de líneas que ChatGPT escribió para mi esposa), ChatGPT no podrá escribir tu código final. Primero, tendrás que mantenerlo. ChatGPT es terrible modificando código ya escrito. Terrible, en el sentido de que no lo hace. Así que para obtener un código nuevo, debes pedirle a ChatGPT que genere algo nuevo. Como descubrí anteriormente, incluso si tu indicación es prácticamente idéntica, ChatGPT puede cambiar lo que te da de formas muy inesperadas.

Entonces, en resumen: ChatGPT no puede mantener tu código, ni siquiera modificarlo.

Eso significa que tienes que hacerlo tú mismo. Como sabemos, el primer borrador de un código rara vez es el código final. Así que incluso si esperaras que ChatGPT generara código final, realmente sería un punto de partida, donde debes llevarlo a la finalización, integrarlo en tu proyecto más grande, probarlo, mejorarlo, depurarlo, y así sucesivamente.

También: Le pedí a ChatGPT que escribiera un episodio corto de Star Trek. En realidad tuvo éxito

Pero eso no significa que el código de ejemplo no tenga valor. Muy por el contrario. Veamos un ejemplo de indicación que escribí basado en el proyecto que describí anteriormente. Aquí está la primera parte:

Escribe una función PHP llamada resumir_articulo.

Como entrada, resumir_articulo recibirá una URL a un artículo en un sitio relacionado con noticias como ENBLE.com o Reuters.com.

Le estoy diciendo a ChatGPT el lenguaje de programación que debe usar. También le estoy indicando la entrada, pero al hacerlo, proporciono dos sitios como ejemplos para ayudar a ChatGPT a comprender el estilo del artículo. Sinceramente, no estoy seguro de si ChatGPT ignoró esa parte de la guía. A continuación, le diré cómo hacer la mayor parte del trabajo:

Dentro de resumir_articulo, recupera el contenido de la página web en la URL proporcionada. Utilizando la biblioteca Sumy desde PHP y cualquier otra biblioteca necesaria, extrae el cuerpo principal del artículo, ignorando cualquier anuncio o material incrustado, y resumelo a aproximadamente 50 palabras. Asegúrate de que el resumen consista en oraciones completas. Puedes exceder las 50 palabras para terminar la última oración, si es necesario.

Esto es muy similar a cómo instruiría a un empleado. Querría que esa persona supiera que no solo está limitada a Sumy. Si necesitaba otra herramienta, quería que la usara.

También: Cómo obtener una coincidencia de rostro perfecta utilizando Midjourney AI

También especifiqué un número aproximado de palabras para establecer límites de lo que quería como resumen. Una versión posterior de la rutina podría tomar ese número como parámetro. Luego terminé diciendo lo que quería como resultado:

Una vez que se complete el procesamiento, code summarize_article para que devuelva el resumen en texto plano.

El código resultante es bastante simple. ChatGPT llamó a otra biblioteca (Goose) para recuperar el contenido del artículo. Luego pasó eso a Summy con un límite de 50 palabras y luego devolvió el resultado. Eso es todo. Pero una vez que se escriben los conceptos básicos, es solo cuestión de programación volver y agregar ajustes, personalizar lo que se pasa a las dos bibliotecas y entregar los resultados.

Un punto interesante a tener en cuenta. ChatGPT creó una llamada de muestra a la rutina que escribió, utilizando una URL posterior a 2021 (cuando termina el conjunto de datos de ChatGPT).

https://www.reuters.com/business/retail-consumer/teslas-musk-says-fremont-california-factory-may-be-sold-chip-shortage-bites-2022-03-18/

Verifiqué esa URL tanto en el sitio de Reuters como en la Wayback Machine, y no existe. ChatGPT simplemente la inventó.

Preguntas frecuentes

¿Reemplaza ChatGPT a los programadores?

No ahora, o al menos, aún no. ChatGPT programa al nivel de un talentoso estudiante de programación de primer año, pero es perezoso (como ese estudiante de primer año). Podría reducir la necesidad de programadores de nivel básico, pero en su nivel actual, creo que simplemente facilitará la vida de los programadores de nivel básico (e incluso de programadores con más experiencia) para escribir código y buscar información. Definitivamente ahorra tiempo, pero hay pocos proyectos de programación que pueda hacer por sí mismo, al menos por ahora. ¿En 2030? Quién sabe.

¿Cómo obtengo respuestas de codificación en ChatGPT?

Solo pregúntale. Viste arriba cómo usé un diálogo de discusión interactiva para acotar las respuestas que quería. Cuando estés trabajando con ChatGPT, no esperes que una sola pregunta haga todo el trabajo por ti. Pero usa ChatGPT como un ayudante y recurso, y te dará mucha información muy útil. Por supuesto, prueba esa información, porque, como dice John Schulman, cofundador de OpenAI, “Nuestra mayor preocupación era la veracidad, porque al modelo le gusta fabricar cosas”.

¿Qué tan confiable es ChatGPT para la codificación? ¿Puedo confiar en el código que genera?

Oh, ni de broma. Pero tampoco puedes confiar en el código que escriben los programadores humanos. Ciertamente, no confío en ningún código que yo escribo. El código que sale del proceso de creación de código es increíblemente defectuoso. Siempre hay errores. Antes de lanzar, necesitas probar, probar y probar nuevamente. Luego prueba alfa con algunas víctimas elegidas. Luego prueba beta con tu comunidad de usuarios más amplia. Incluso después de todo eso, habrá errores. Solo porque una IA juegue con esto de la codificación no significa que pueda hacer código sin errores. No confíes. Siempre verifica. Y aún así no lo tendrás completamente sin errores. Así es la naturaleza del universo.

Si uso ChatGPT para escribir mi código, ¿quién es el propietario?

Resulta que aún no hay muchos casos legales para responder definitivamente esta pregunta. Estados Unidos, Canadá y el Reino Unido requieren que algo que esté protegido por derechos de autor haya sido creado por manos humanas, por lo que el código generado por una herramienta de IA puede no ser protegible por derechos de autor. También hay problemas de responsabilidad basados en de dónde provino el código de entrenamiento y cómo se utiliza el código resultante. ENBLE hizo una investigación exhaustiva sobre este tema, habló con expertos legales y produjo los siguientes tres artículos. Si te preocupa este problema (y si estás usando IA para ayudar con el código, deberías), te recomiendo que los leas.

  • ¿Quién es el propietario del código? Si la IA de ChatGPT ayuda a escribir tu aplicación, ¿todavía te pertenece a ti?
  • Si usas código generado por IA, ¿cuál es tu exposición a la responsabilidad?
  • Una pregunta espinosa: ¿Quién es el propietario del código, las imágenes y las narrativas generadas por IA?

¿Qué lenguajes de programación conoce ChatGPT?

La mayoría de ellos. Me desvié mucho intentando esto. Probé lenguajes modernos comunes, como PHP, Python, Java, Kotlin, Swift, C# y más. Pero luego tuve que escribir código en lenguajes oscuros y obsoletos como COBOL, Fortran, Forth, LISP, ALGOL, RPG (el generador de programas de informe, no el juego de rol) e incluso el lenguaje ensamblador IBM/360.

Como guinda del pastel, le di esta instrucción:

Escribe una secuencia que muestre ‘Hola, mundo’ en luces de parpadeo ASCII en el panel frontal de un PDP 8/e.

El PDP 8/e fue mi primera computadora y ChatGPT realmente me dio instrucciones para ingresar un programa usando interruptores en el panel frontal. Quedé impresionado, contento y ligeramente asustado.

También: Cómo usar ChatGPT para resumir un libro, artículo o documento de investigación

¿Cuál es la conclusión? ChatGPT puede ser una herramienta muy útil. Solo que no le atribuyas superpoderes. Aún.


Puedes seguir las actualizaciones de mi proyecto día a día en las redes sociales. Asegúrate de seguirme en Twitter en @DavidGewirtz, en Facebook en Facebook.com/DavidGewirtz, en Instagram en Instagram.com/DavidGewirtz y en YouTube en YouTube.com/DavidGewirtzTV.