Menu

Plantillas de prompts: ejemplos y cómo crear una

Una plantilla de prompt es un prompt que ya probaste, con huecos para las partes que cambian cada vez. Copia plantillas listas con campos para rellenar y luego convierte tu mejor prompt en una plantilla en cinco pasos.

Puedes editar cada prompt de esta página y abrirlo después en ChatGPT, Claude u otra app de IA.

Una plantilla de prompt es un prompt con huecos. El texto fijo lleva todo lo que aprendiste sobre cómo conseguir una buena respuesta para un tipo de tarea: el rol, el formato, los límites. Los huecos llevan lo que cambia cada vez: el tema, el lenguaje, el texto con el que trabajar. Rellenar tres huecos es más rápido que escribir un prompt, y te da respuestas con una calidad y una forma constantes.

La plantilla de abajo explica cualquier concepto de programación a tu nivel. Escribe tus propios valores en los campos, desactiva una parte para ver qué aporta y luego cópiala o ábrela en una app de chat.

Explicar un concepto a mi nivel
Fill in
Parts
Eres un tutor paciente para programadores autodidactas.
Explica los closures en JavaScript.
Ya conozco las variables, las funciones y los arrays. Aprendo mejor con un ejemplo pequeño que pueda ejecutar yo mismo.
Responde en tres partes con etiquetas en negrita: la idea en una frase, un ejemplo corto de código con un comentario en la línea clave y un error común.
Que no pase de 150 palabras. Si necesitas un término que no esté en mi lista de cosas que conozco, explícalo en pocas palabras.
Try it
Example replyReplies vary between models and runs.

La idea: un closure es una función que recuerda las variables del lugar donde se creó, incluso después de que la función exterior haya terminado de ejecutarse.

Ejemplo:

function makeCounter() {
  let count = 0;
  return function () {
    count += 1; // still sees count from makeCounter
    return count;
  };
}

const next = makeCounter();
console.log(next()); // 1
console.log(next()); // 2

Error común: esperar que dos contadores compartan un mismo total. Cada llamada a makeCounter() crea un count nuevo, así que cada contador lleva el suyo.

Qué hace buena a una plantilla

Una plantilla solo es tan buena como el prompt del que salió, así que el texto fijo debe ser un prompt que ya ejecutaste y te gustó. Tres decisiones separan una plantilla útil de un formulario que produce respuestas mediocres más rápido.

Deja como hueco solo lo que cambia. Si siempre quieres la respuesta en menos de 150 palabras, escribe 150 en el texto fijo. Cada hueco es una decisión que tienes que volver a tomar en cada uso, y una plantilla con diez huecos se tarda más en rellenar que escribir el prompt de nuevo.

Dale a cada hueco un nombre claro y un valor por defecto sensato. {{conocido}} te dice qué escribir; {{x}} no. Un valor por defecto muestra el tipo de valor esperado y te deja ejecutar la plantilla una vez sin escribir nada.

Una plantilla por trabajo. Una plantilla que explica conceptos, revisa código y escribe preguntas de examen según un hueco hace las tres cosas peor que tres plantillas separadas. Cuanto más concreto es el texto fijo, más puede decir sobre el formato y el estándar.

Las seis partes de cómo escribir un prompt son una buena lista de comprobación para el texto fijo: rol, tarea, contexto, entrada, formato y restricciones. Los huecos suelen caer en la tarea, el contexto y la entrada.

Ejemplos de plantillas de prompts

Estas tres cubren trabajos comunes del día a día. Cada una tiene campos con nombre para rellenar. Para una colección más grande de prompts listos, consulta ejemplos de prompts.

Resumir para un lector concreto
Fill in
Resume el texto que está dentro de las etiquetas <text> para un gerente que tiene dos minutos. Usa como máximo 3 viñetas. Empieza por cualquier decisión o acción que deba tomar el lector y deja fuera el contexto que no necesita. <text> Pega aquí el texto </text>
Try it
Escribir una función pequeña
Fill in
Escribe una función en Python que reciba una lista de números y devuelva la mediana. Usa anotaciones de tipo si el lenguaje las tiene. Si la entrada está vacía, lanza un ValueError. Después de la función, añade tres llamadas de ejemplo con sus resultados esperados como comentarios. Devuelve solo el código.
Try it
Example replyReplies vary between models and runs.
def median(numbers: list[float]) -> float:
    if not numbers:
        raise ValueError("median() needs at least one number")
    ordered = sorted(numbers)
    middle = len(ordered) // 2
    if len(ordered) % 2 == 1:
        return ordered[middle]
    return (ordered[middle - 1] + ordered[middle]) / 2


# median([3, 1, 2])     returns 2
# median([4, 1, 3, 2])  returns 2.5
# median([])            raises ValueError
Responder a un mensaje
Fill in
Escribe una respuesta al mensaje que está dentro de las etiquetas <message>. Objetivo: rechazar con amabilidad y proponer una fecha del mes que viene. Tono: cercano y breve. Que no pase de 80 palabras y no añadas datos que no estén en el mensaje ni en el objetivo. <message> ¡Hola! ¿Podrías dar una charla corta sobre tu proyecto en nuestro meetup del día 14? </message>
Try it
Example replyReplies vary between models and runs.

¡Hola! Gracias por la invitación, me alegra que hayan pensado en mí. Por desgracia, el día 14 no puedo. ¿Les vendría bien una fecha del mes que viene? Con gusto hablaría del proyecto entonces.

Saludos, [Tu nombre]

Las etiquetas alrededor del texto pegado tienen un motivo. El texto que rellenas puede contener frases que parecen instrucciones, y los delimitadores evitan que el modelo confunda las instrucciones de tu plantilla con el material con el que debe trabajar.

Cómo crear tu propia plantilla

  1. Parte de un prompt que funcionó. Toma una conversación en la que la respuesta salió bien y reúne la versión final del prompt, incluidas las correcciones que tuviste que añadir en mensajes posteriores. Esas correcciones son la parte más valiosa, porque arreglan lo que la primera versión hizo mal.
  2. Marca lo que cambiaría la próxima vez. Lee el prompt y subraya cada palabra que editarías para el siguiente uso. Normalmente son de dos a cuatro cosas: un tema, un público, una extensión, una entrada pegada.
  3. Sustituye cada una por un hueco con nombre. Escribe el hueco como lo espera tu herramienta, por ejemplo [publico] para un prompt que pegas a mano o {audience} para código.
  4. Prueba con tres valores distintos. Usa un caso típico, una entrada muy corta o muy larga y un caso poco habitual. Si uno falla, el texto fijo todavía da algo por supuesto sobre el primer uso. Cambia una frase a la vez, como se describe en iterar sobre prompts.
  5. Guárdala donde la encuentres. Un archivo de notas, un expansor de texto o un gestor de fragmentos sirven. Una plantilla que tienes que buscar es una plantilla que dejarás de usar.

Plantillas en código

En un programa, una plantilla es una cadena con campos con nombre. El método str.format() de Python los rellena:

SUMMARY_TEMPLATE = """Summarize the text inside the <text> tags for {audience}.
Use at most {bullets} bullet points and lead with any action the reader must take.

<text>
{text}
</text>"""

with open("notes.txt", encoding="utf-8") as f:
    meeting_notes = f.read()

prompt = SUMMARY_TEMPLATE.format(
    audience="a manager who has two minutes",
    bullets=3,
    text=meeting_notes,
)

Con str.format(), cada llave literal de la plantilla se tiene que escribir dos veces ({{ y }}), lo que importa cuando la plantilla incluye un ejemplo JSON. Las llaves dentro de los valores que pasas, como código en meeting_notes, no necesitan escaparse. Algunas bibliotecas para crear apps de IA tienen sus propias clases de plantilla, pero hacen el mismo trabajo que una cadena de formato con funciones extra alrededor.

Cuando los valores vienen de usuarios, recuerda que la plantilla le envía su texto al modelo. Mantenlo entre delimitadores y no le des al modelo herramientas ni datos que una entrada maliciosa pueda aprovechar.

Plantilla o prompt de sistema

Una plantilla y un prompt de sistema resuelven problemas distintos. El prompt de sistema contiene reglas que se aplican a todos los mensajes de una conversación o de una app: el personaje, el tono, lo que el asistente nunca debe hacer. Una plantilla contiene una tarea con huecos. En una app sueles usar las dos: un prompt de sistema fijo que marca las reglas del juego y una plantilla que construye cada mensaje del usuario.

Preguntas frecuentes

¿Qué es una plantilla de prompt?

Una plantilla de prompt es un prompt reutilizable con marcadores de posición, como [tema] o {language}, para las partes que cambian de un uso a otro. El texto fijo contiene las instrucciones que ya probaste; rellenas los huecos cada vez en lugar de escribir el prompt desde cero.

¿Cómo hago mi propia plantilla de prompt?

Parte de un prompt que ya te dio una buena respuesta. Marca las palabras que cambiarías para el siguiente uso, sustituye cada una por un hueco con nombre y prueba la plantilla con tres valores distintos, incluido un caso poco habitual. Conserva tal cual las instrucciones que hicieron buena la primera respuesta.

¿Dónde guardo mis plantillas de prompts?

En cualquier sitio desde el que puedas copiar rápido: un archivo de notas, un expansor de texto o un gestor de fragmentos. Las apps de chat también tienen lugares para el texto que reutilizas, como las instrucciones personalizadas y de proyecto, que encajan mejor con reglas que se aplican a todos los mensajes que con tareas puntuales con huecos.

¿Cómo uso una plantilla de prompt en Python?

Guarda la plantilla como una cadena con campos con nombre y rellénala con str.format() o con una f-string. Con str.format(), escribe dos veces cualquier llave literal de la plantilla ({{ y }}), por ejemplo cuando la plantilla contiene un ejemplo JSON. Pon el texto que aportan los usuarios entre delimitadores para que quede separado de las instrucciones.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR