Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Prompt engineering para programación, Unidad 1 — IA como asistente de programación, 1.1 — Qué puede y qué no puede hacer ·

Generar código plausible

Generar código plausible

Introducción

En la era de la inteligencia artificial (IA), los desarrolladores se encuentran con nuevas formas de colaborar con las máquinas para generar, refactorizar y depurar código. Sin embargo, este proceso no es sencillo, ya que las Lenguajes de Modelos de Modelado (LLMs) tienen limitaciones significativas en su capacidad para producir código confiable sin el contexto adecuado. Esta guía explora cómo generar código plausible utilizando prompts efectivos y ofrece consejos prácticos para evitar errores comunes.

Explicación principal con ejemplos

La generación de código plausible por parte de LLMs se basa en la capacidad de estos modelos para interpretar texto y producir respuestas que parecen pertenecer a un lenguaje de programación. Sin embargo, esta funcionalidad tiene limitaciones notables.

Ejemplo de prompt simple

Supongamos que queremos generar una función que sume dos números. Podríamos escribir el siguiente prompt:

def suma(a, b):
    # [LLM genera código aquí]

Un LLM puede producir algo como esto:

def suma(a, b):
    return a + b

Este es un ejemplo sencillo y funcional. Sin embargo, es importante entender que la generación de código por parte de los LLMs no garantiza una solución perfecta o segura.

Ejemplo con contexto adicional

Para obtener mejores resultados, podemos proporcionar más detalles al prompt:

def suma(a, b):
    # a y b son números enteros
    # Devuelve la suma de ambos parámetros

La respuesta del LLM podría ser:

def suma(a, b):
    return a + b

Aunque sigue siendo una función válida, es importante recordar que el LLM puede hacer suposiciones y puede no respetar todas las restricciones proporcionadas.

Errores típicos / trampas

  1. Suposiciones implícitas: Los LLMs pueden hacer suposiciones sobre los tipos de datos o la funcionalidad esperada basándose en el contexto general, lo que puede llevar a comportamientos inesperados.
  1. Manejo de errores y excepciones: Un LLM puede generar código sin manejar posibles errores, lo que resulta en un programa más vulnerable.
  1. Optimización innecesaria: Los modelos pueden optimizar el código de formas que no son necesarias o incluso perjudiciales para la legibilidad del código.

Ejemplo de suposiciones implícitas

Un prompt como este:

def factorial(n):
    # [LLM genera código aquí]

Podría resultar en:

def factorial(n):
    return math.factorial(n)

Sin embargo, si no se importó el módulo math, el código resultará en un error.

Ejemplo de manejo de errores

Un prompt como este:

def leer_archivo(ruta):
    # [LLM genera código aquí]

Podría resultar en:

def leer_archivo(ruta):
    return open(ruta, 'r').read()

Sin manejar excepciones para el caso de que la ruta no exista.

Ejemplo de optimización innecesaria

Un prompt como este:

def sumar_numeros(num1, num2):
    # [LLM genera código aquí]

Podría resultar en:

def sumar_numeros(num1, num2):
    return num1 + num2  # Optimización innecesaria al no usar una estructura de control

Checklist accionable

Para generar código plausible utilizando LLMs de manera efectiva y segura, sigue estos pasos:

  1. Proporciona contexto explícito: Incluye detalles sobre los tipos de datos, la funcionalidad esperada y las restricciones técnicas.
  2. Importa módulos necesarios: Asegúrate de que todos los módulos requeridos para el código generado estén correctamente importados.
  3. Maneja errores e excepciones: Incluye bloques try-except en tus prompts para manejar posibles fallos.
  4. Optimiza con moderación: Evita optimizaciones innecesarias que puedan afectar la legibilidad del código.
  5. Verifica el contexto al final: Si se generó un prompt largo, verifica si todos los detalles proporcionados fueron respetados en la respuesta.

Cierre

La generación de código plausible por parte de LLMs es una herramienta valiosa para los desarrolladores, pero requiere un uso cuidadoso y consciente. Al seguir estos consejos, puedes maximizar el valor de estas herramientas mientras minimizas los riesgos asociados.

Siguientes pasos

  • Revisión manual: Siempre revisa el código generado por las LLMs antes de usarlo en producción.
  • Documentación: Documenta todos los prompts utilizados para generar, refactorizar y depurar código.
  • Pruebas automatizadas: Implementa pruebas unitarias y de integración para asegurarte de que el código generado funciona correctamente.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).