Prompt Engineering para desarrolladores

Prompt Engineering para desarrolladores

Prompt Engineering para desarrolladores

Los modelos generativos han llegado a un punto donde no solo nos ayudan a escribir código, sino que también pueden generar respuestas detalladas, depurar, optimizar, o incluso sugerir mejoras a nuestro trabajo
Los modelos generativos han llegado a un punto donde no solo nos ayudan a escribir código, sino que también pueden generar respuestas detalladas, depurar, optimizar, o incluso sugerir mejoras a nuestro trabajo

En el mundo de la inteligencia artificial, una de las habilidades que más ha ganado relevancia es el Prompt Engineering. Al principio, nos parecía algo sencillo: simplemente le decíamos a la IA lo que queríamos y listo. Pero a medida que las herramientas como GPT-4, Cohere o incluso las capacidades avanzadas de modelos de machine learning han ido mejorando, nos damos cuenta de que escribir un buen prompt es casi un arte.

Los modelos generativos han llegado a un punto donde no solo nos ayudan a escribir código, sino que también pueden generar respuestas detalladas, depurar, optimizar, o incluso sugerir mejoras a nuestro trabajo. Sin embargo, esto solo ocurre si sabemos cómo formular nuestras peticiones de manera precisa y efectiva.

Cuando empecé a trabajar con IA generativa, lo primero que me di cuenta es que el modelo no tiene idea de lo que está buscando si no se le explica correctamente. Si solo le dices “hazme un script”, vas a obtener un script, pero no necesariamente el que necesitas, por lo menos una gran mayoría de veces. En cambio, si eres específico y claro, la IA puede convertirse en una verdadera extensión de tu capacidad como desarrollador, haciendo más eficientes y fluidos tus procesos de programación.

La clave del éxito aquí radica en aprender a estructurar bien las solicitudes. Así que, en este artículo, te invito a que descubramos juntos cómo pasar de las solicitudes simples a las más avanzadas, explorando los diferentes matices y trucos que harán que tus interacciones con la IA sean mucho más efectivas. Y claro, todo esto sin perder el sentido del humor, porque en el mundo tech, si no te ríes un poco, ¡te vuelves un poco loco!

Prompt Engineering para desarrolladores

El problema de los prompts genéricos

Lo primero que debes saber es que los prompts genéricos no funcionan. Y si no me crees, prueba esto: ¿cuántas veces has escrito “hazme un script en Python para X” y la respuesta ha sido un poco… bueno, imprecisa por decirlo de alguna manera. A veces la IA entiende lo básico, pero le falta el toque fino. Esto se debe a que, al igual que cualquier otro ser, la IA necesita contexto para funcionar correctamente. No es magia (aunque lo parezca a veces), es simplemente que, como cualquier herramienta, depende mucho de cómo la uses.

Piensa en el prompt como una receta de cocina: si solo le das los ingredientes sin instrucciones claras, el plato no va a salir bien. Un “hazme un script para automatizar algo” es como decir “hazme una receta con tomates”. ¿Qué tipo de receta? ¿Sopa, ensalada, salsa? ¿Qué estilo de cocina? ¿Mediterráneo o asiático? Si no aclaras esto, el resultado será… una mezcla confusa de cosas.

Esto es exactamente lo que pasa con los prompts genéricos. Estás dejando que la IA adivine lo que realmente necesitas, sin indicarle bien qué deseas lograr ni cómo lo prefieres. Puede ser que te devuelva un script, sí, pero probablemente no sea lo que tenías en mente. Es como pedir una pizza y esperar que te traigan sushi. Aunque ambos son deliciosos, no van a cumplir el mismo propósito, ¿verdad?

La clave aquí es ser específico y claro. Piensa en el prompt como una conversación. Imagina que le pides algo a un amigo. Si tu amigo no sabe si prefieres un script en Python, Node.js, o incluso en Bash, ¿cómo va a saber qué proporcionarte? Si no le das todos los detalles (el lenguaje de programación, el contexto del problema, las variables a tener en cuenta), lo más probable es que recibas una respuesta que no se ajuste a lo que realmente necesitas.

EJEMPLO:, en lugar de decir “hazme un script para procesar datos”, podrías especificar: “Escribe un script en Python usando pandas que procese un archivo CSV con datos de ventas y genere un gráfico de barras para comparar los ingresos mensuales”. Ahí ya estás guiando al modelo con el lenguaje, la herramienta, la estructura y el resultado que esperas.

IA LLM

Estructura de un buen prompt técnico 

Un buen prompt técnico tiene varias características esenciales, y entender cómo estructurarlo puede marcar la diferencia entre obtener algo útil o perder tiempo. Los ingredientes básicos para escribir un buen prompt son:

  1. Contexto claro: Primero, debes situar a la IA en el escenario adecuado. ¿En qué contexto se va a usar el código? Piensa en esto como cuando das instrucciones a un compañero de trabajo: si le pides que haga algo sin darle toda la información, probablemente no será lo que esperabas. Si estás pidiendo un script para interactuar con una API, menciona qué API es, qué tipo de datos necesitas y para qué los vas a usar. Por ejemplo, si estás trabajando con datos financieros de una API de mercado de valores, menciona específicamente las variables y el formato de datos que esperas.
  1. Objetivo concreto: El siguiente paso es ser específico en lo que quieres lograr. Si pides un script, evita frases vagas como “haz esto de manera eficiente” porque la IA no tiene forma de saber qué significa “eficiente” para ti. ¿Qué es eficiente? ¿Es rápido, es fácil de leer, consume pocos recursos? Sé más preciso. Un buen ejemplo sería: “Hazme un script que obtenga datos de esta API y los ordene por fecha”. Eso da una dirección clara, mientras que “hazlo eficiente” deja demasiada interpretación abierta.
  1. Lenguaje adecuado: El lenguaje y las convenciones que utilices también son importantes. Si tienes un estilo o estructura preferida para el código (por ejemplo, usar clases en lugar de funciones sueltas, o definir un tipo de variable específico), no dudes en mencionarlo. La IA puede generar código de muchas formas, pero no sabe tus preferencias a menos que se las indiques. Así que si quieres un enfoque orientado a objetos o alguna técnica de optimización, simplemente inclúyelo en el prompt. Esto te ayudará a obtener el código más alineado con lo que necesitas.

EJEMPLO: Escribe un script en Python que se conecte a la API de GitHub, obtenga los repositorios públicos de un usuario, y los liste ordenados por la fecha de creación

 

– Aquí le has dado a la IA todo lo que necesita saber: el lenguaje (Python), la herramienta (API de GitHub), la tarea (obtener repositorios) y el orden que debe seguir (por fecha de creación). Además, no hay espacio para malentendidos, porque has sido claro y directo.

La IA no tiene el contexto del mundo real. No puede adivinar lo que estás pensando, así que cuanto más claro y específico seas, mejor será la respuesta que obtendrás.

Prompts condicionales y encadenados

¿Alguna vez te has encontrado con un escenario en el que necesitas que tu IA realice una serie de pasos, pero solo bajo ciertas condiciones o en un flujo de trabajo secuencial? Ahí es donde los prompts condicionales y encadenados se convierten en herramientas súper útiles.

Prompts condicionales

Los prompts condicionales son aquellos que le indican a la IA que debe realizar una tarea solo si se cumple una determinada condición. Esto es ideal cuando quieres que el script o proceso no sea ejecutado de forma arbitraria, sino que dependa de un valor o situación específica.

Por ejemplo, si tienes una variable llamada estado, y solo quieres que el script haga una solicitud HTTP si su valor es “activo”, podrías escribir algo así:

“Escribe un script en Python que, si la variable estado es igual a ‘activo’, haga una solicitud GET a una API y procese la respuesta.”

Este tipo de prompt le dice a la IA: “Sólo haz esto si se cumple esta condición”. Es como decirle a alguien: “Hazlo solo si la luz está verde”, lo que hace que el flujo sea mucho más controlado y preciso. Y lo mejor es que no tienes que escribir varios prompts o instrucciones; solo agregas la condición y todo fluye sin complicaciones.

Ahora, imagina que la condición cambia. Si estado se convierte en “inactivo”, no debería ejecutarse el código. Este tipo de control condicional permite crear flujos mucho más flexibles, adaptados a diferentes escenarios.

Prompts encadenados

Los prompts encadenados son ideales cuando tu tarea se divide en varias etapas que dependen unas de otras. En otras palabras, el proceso es un flujo continuo de pasos interdependientes, donde cada etapa prepara el camino para la siguiente.

Es como una receta de cocina: no puedes empezar a mezclar los ingredientes sin haber preparado las bases, ¿verdad? Lo mismo ocurre con los prompts encadenados.

Por ejemplo, si tienes que leer un archivo CSV, filtrar datos específicos y luego guardar el resultado en un nuevo archivo, podrías estructurarlo así:

  1. “Escribe un script en Python que lea un archivo CSV.”
  2. “Ahora, filtra los datos del archivo CSV donde la columna ‘Edad’ sea mayor a 18.”
  3. “Finalmente, guarda los datos filtrados en un nuevo archivo CSV.”

Aquí, cada paso es independiente, pero depende del anterior. La IA no necesita saber todo el proceso de inmediato, solo necesita saber qué hacer a continuación, según el estado actual. Así, no tienes que darle todo el contexto de una vez. Solo le das el primer paso, y luego le dices lo que debe hacer con los resultados.

¿Por qué es útil esto?

Estos enfoques son poderosos porque permiten modularizar el flujo de trabajo. En lugar de dar todo el contexto desde el principio o escribir múltiples prompts independientes, puedes construir un proceso paso a paso, donde la IA se encarga de cada fase de manera secuencial, con un flujo natural que permite ejecutar tareas complejas sin sobrecargarla con información.

Imagina que estás creando un bot que realiza múltiples acciones: cada vez que el bot termina una tarea, el siguiente paso está condicionado a que se haya completado correctamente la etapa anterior. Esto es fundamental para tareas más complejas que no pueden ejecutarse de una sola vez.

EJEMPLO

Si estás trabajando con un conjunto de datos y quieres hacer un análisis en varias fases, como limpiar los datos, analizarlos y luego visualizarlos, los prompts encadenados te permitirán dividir todo el proceso en etapas, de modo que cada una dependa de la anterior para tener un flujo de trabajo más organizado.

 

En resumen, usar prompts condicionales y encadenados te permite tomar el control de tareas complejas y asegurarte de que se realicen de manera correcta y eficiente, sin la necesidad de manejar todo el proceso en un solo bloque. Así que, si tienes una tarea larga o complicada, ¡no dudes en dividirla en partes más pequeñas y darle a la IA lo que necesita paso a paso!

PROMPT GENERICOS

Cómo enseñar contexto y estilo propio 

Una de las grandes maravillas de los modelos de IA actuales es que no solo puedes pedirles que hagan algo, sino que también puedes enseñarles tu estilo personal y tus preferencias.

EJEMPLO: si eres de los que prefieren un código con comentarios detallados para que cualquier desarrollador que lo lea sepa qué está pasando, simplemente puedes indicárselo a la IA. Puedes decir algo como: “Escribe un script en Python que esté bien comentado en cada paso, explicando las decisiones y los procesos que realiza.” De esta manera, la IA generará el código con un enfoque más detallado, adecuado a tus necesidades.

Otra posible preferencia es si quieres priorizar el rendimiento por encima de la legibilidad del código. Por ejemplo, si estás trabajando en un proyecto donde la optimización es crucial, podrías pedir: “Genera un código eficiente en términos de uso de memoria y tiempo de ejecución, incluso si eso afecta a la legibilidad del código.” Esto permite que la IA ajuste su enfoque de acuerdo a tus necesidades, lo que no solo te ahorra tiempo en la revisión, sino que hace que el código generado se acerque más a tus estándares desde el inicio.

Casos prácticos: APIs, front-end, DevOps, tests

Ahora que ya sabes cómo puedes enseñar tu estilo a la IA, es hora de ver cómo todo esto se aplica a situaciones cotidianas en el desarrollo de software. Los prompts pueden variar dependiendo de la tarea que estés realizando, y lo genial es que puedes hacerlos tan específicos como quieras.

  1. APIs: Las APIs son una parte esencial en muchos proyectos. Si estás interactuando con ellas, un buen prompt podría ser: “Escribe un script en Python que haga una solicitud POST a esta API, enviando los parámetros requeridos y manejando los errores de manera eficiente. Asegúrate de que el script valide las respuestas y registre cualquier error para futuras depuraciones.” Aquí le estás pidiendo a la IA no solo que haga la solicitud, sino que también se ocupe de las respuestas y errores, asegurando que el código sea robusto.
  1. Front-end: Si estás trabajando en una aplicación web y necesitas algo en el front-end, como una interfaz en React, podrías pedir algo como: “Genera un componente funcional en React que reciba una lista de objetos y los muestre en una tabla con paginación. Además, asegúrate de que la tabla sea responsive y se ajuste a diferentes tamaños de pantalla.” Este tipo de prompt no solo le da a la IA el objetivo claro, sino que también le enseña a crear una solución escalable y adaptable.
  1. DevOps: Cuando se trata de DevOps, el enfoque es más hacia la automatización y la infraestructura. Un ejemplo de prompt sería: “Escribe un script en Terraform que cree una instancia de EC2 en AWS con estos parámetros específicos, asegúrate de configurar adecuadamente los grupos de seguridad y que la instancia se inicie correctamente.” Aquí no solo estás pidiendo un script, sino también que se siga una estructura para automatizar el proceso de forma segura y eficiente.
  1. Tests: En el mundo del testing, generar pruebas unitarias es una práctica común. Si estás trabajando con JavaScript y quieres generar pruebas para una función, un buen prompt podría ser: “Genera un test unitario en Jest para esta función, asegurándote de que cubra casos donde la entrada sea nula o inválida, y que los resultados sean los esperados.” Este tipo de prompt asegura que la IA no solo cree el test, sino que también tenga en cuenta los casos borde y la validación de entradas.
PROMPT GENERAICO

Conclusiones 

El Prompt Engineering no es solo para gurús de la IA con pizarras llenas de fórmulas imposibles. Es para ti, para mí, y para cualquier developer que alguna vez haya gritado internamente: “Pero eso no era lo que te pedí” mientras la IA te genera un script que parece sacado de otra dimensión.

Porque seamos honestos: escribir “hazme un script en Python” y esperar magia, es como decirle a un barista “hazme algo rico” y que te sirva… sopa, por poner un ejemplo.

Con unos ajustes, un poco de contexto y una pizca de práctica, puedes lograr que la IA deje de comportarse como ese compi que siempre entrega todo a última hora y lo haga como ese colega proactivo que te lee la mente (pero bien, no como los anuncios de Instagram).

Y no te preocupes si al principio la IA te responde cosas raras. Todos hemos pasado por ahí. Lo importante es que aprendas a hablar su idioma, sin necesidad de hacer un máster. Con un buen prompt, puedes convertir a la IA en tu sidekick tecnológico: no vuela ni lanza rayos, pero sí te ahorra horas de trabajo y te da tiempo para irte a por un café… o dos.

Así que, la próxima vez que necesites generar código, automatizar algo o simplemente impresionar al de al lado, recuerda: un buen prompt no lo es todo… ¡pero casi!

Haz que la IA trabaje para ti. Que para algo no se cansa ni pide vacaciones.

PROMPT ADVANCED

Cuando la única kriptonita que te detiene es un error de sintaxis

Comparte esta noticia si crees que puede ser interesante. Gracias por leernos.

Entradas relacionadas

HERRAMIENTAS AI RED TEAMING PROMPT HACKING

Glosario de términos de AI Red Teaming

En esta guía te ofrecemos un glosario claro y simplificado, en español, con definiciones y ejemplos fáciles de entender. Tanto si eres profesional técnico como si te estás iniciando en la ciberseguridad de IA.