TechLead
Lección 1 de 8

Introducción a la Ingeniería de Prompts

Qué es la ingeniería de prompts, por qué importa y cómo interpretan los LLM los prompts

¿Qué es la ingeniería de prompts?

La ingeniería de prompts es el arte y la ciencia de crear entradas (prompts) para comunicarse eficazmente con modelos de lenguaje de IA. Un prompt bien diseñado puede mejorar drásticamente la calidad, precisión y utilidad de las respuestas.

Piensa en ello como aprender a hablar el idioma de la IA. Así como formularías una pregunta de forma distinta a un niño que a un experto, la manera en que formulas los prompts influye significativamente en la respuesta que obtienes.

🎯 Por qué importa la ingeniería de prompts

  • Mejores resultados: Los prompts bien construidos producen respuestas más precisas, relevantes y útiles.
  • Eficiencia de costos: Los prompts efectivos reducen el uso de tokens y la necesidad de preguntas de seguimiento.
  • Consistencia: Los buenos prompts generan salidas confiables y reproducibles.
  • Desbloquea capacidades: El prompting avanzado revela capacidades que no sabías que tenía el modelo.

Cómo interpretan los LLM los prompts

Los modelos de lenguaje grandes (LLM) como GPT-4, Claude y Gemini se entrenan con enormes cantidades de texto. Predicen el siguiente token más probable según patrones aprendidos durante el entrenamiento.

// The model sees your prompt as a sequence of tokens
"Write a function to calculate fibonacci" →
["Write", " a", " function", " to", " calculate", " fib", "onacci"]

// Then it predicts what tokens should come next
// based on patterns from its training data

// This is why context matters:
"Write a fibonacci function" 
// Could be Python, JavaScript, or any language

"Write a fibonacci function in TypeScript with memoization"
// Much more specific, better result!

Comprender esto te ayuda a escribir prompts que guíen al modelo hacia el resultado deseado proporcionando contexto claro y restricciones.

Prompt básico vs prompt diseñado

// ❌ Basic Prompt (vague)
"Tell me about JavaScript"

// Response: Long, unfocused explanation covering history,
// syntax, use cases, etc. May not be what you need.

// ✅ Engineered Prompt (specific)
"Explain JavaScript closures to a developer who knows 
Python but is new to JavaScript. Include:
1. A simple definition
2. A practical code example
3. Common use cases in React
Keep the explanation under 200 words."

// Response: Focused, relevant explanation tailored to
// the reader's background with practical examples.

Los elementos de un buen prompt

📝 Instrucciones claras

Dile al modelo exactamente qué quieres que haga. Sé específico con la tarea.

📚 Contexto relevante

Aporta la información de fondo necesaria para que el modelo responda con relevancia.

📋 Ejemplos

Muestra cómo se ve una buena salida con uno o más ejemplos.

⚠️ Restricciones

Define límites: longitud, formato requerido y qué evitar.

Ejemplo práctico: prompt de revisión de código

// ❌ Basic Prompt
"Review this code: [code]"

// ✅ Engineered Prompt
"You are a senior TypeScript developer performing a code review.

Review the following code for:
1. Potential bugs or edge cases
2. Performance issues
3. TypeScript best practices
4. Readability improvements

For each issue found:
- Explain the problem
- Show the problematic code
- Provide a corrected version

Code to review:
```typescript
function fetchUser(id) {
  const response = fetch('/api/users/' + id)
  return response.json()
}
```

Format your response as a numbered list."

Errores comunes en ingeniería de prompts

❌ Error ✅ Solución
Instrucciones vagas Sé específico sobre lo que quieres
Sin contexto Proporciona antecedentes relevantes
Asumir conocimiento Explica términos del dominio
Sin guía de formato Especifica el formato de salida deseado
Demasiadas tareas a la vez Divide en prompts más pequeños
No iterar Refina los prompts según los resultados

Ingeniería de prompts para desarrolladores

// Use AI as a coding assistant effectively

// 1. Code Generation
"Write a React custom hook that:
- Fetches data from an API endpoint
- Handles loading, error, and success states
- Supports automatic refetching
- Uses TypeScript with proper types
Include JSDoc comments."

// 2. Debugging
"I'm getting this error: [error message]
Here's my code: [code]
Here's what I've tried: [attempts]
What's causing this and how do I fix it?"

// 3. Code Explanation
"Explain this code line by line. I'm a junior developer
learning about [concept]. Focus on why each part is needed:
[code]"

// 4. Refactoring
"Refactor this code to:
- Use modern ES6+ syntax
- Follow SOLID principles
- Improve testability
Explain each change you make."

✅ Consejos para empezar

  • • Comienza con una tarea o pregunta clara y específica
  • • Añade contexto sobre tu situación y objetivos
  • • Especifica el formato que quieres (lista, código, JSON, etc.)
  • • Incluye restricciones (longitud, estilo, qué evitar)
  • • Itera y refina según las respuestas que obtienes
  • • Guarda los prompts que funcionen bien para reutilizarlos