Autor: Alan Sastre
Curso práctico de Prompt Engineering orientado a desarrolladores. Aprende a diseñar, versionar y desplegar prompts de calidad profesional usando LangSmith como Prompt Registry y herramienta de trazabilidad.
LangSmith se utiliza como:
- Prompt Registry: almacén centralizado de prompts versionados
- Trazabilidad: monitorización de llamadas a LLMs, latencias, tokens, etc.
- Regístrate en smith.langchain.com (gratis para uso individual)
- Crea un API Key en Settings → API Keys
- Si estás en la UE, usa el endpoint europeo:
https://eu.api.smith.langchain.com
Para ejecutar modelos en local sin coste:
- Descarga Ollama
- Instala un modelo:
ollama pull qwen3:1.7b
Si prefieres usar modelos de OpenAI en lugar de Ollama, necesitarás una API Key de OpenAI.
Los notebooks contienen diagramas Mermaid que requieren una extensión para visualizarse correctamente:
- Usa VS Code o Cursor como editor
- Instala la extensión Quarto
Sin esta extensión, los diagramas aparecerán como bloques de código en lugar de gráficos renderizados.
# Instalar uv (gestor de proyectos Python moderno)
# Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Linux/Mac:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clonar el repositorio
git clone https://github.com/alansastre/genai-prompt-engineering.git
cd genai-prompt-engineering
# Instalar Python y crear entorno virtual
uv python install 3.13
uv venv --python 3.13Activar entorno virtual:
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activateInstalar dependencias:
uv add -r requirements.txtCopia el archivo de ejemplo y configura tus credenciales:
cp .env.example .envEdita .env con tus valores:
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://eu.api.smith.langchain.com # Solo si usas EU
LANGSMITH_API_KEY=lsv2_pt_xxx...
OPENAI_API_KEY=sk-xxx... # Opcional si usas Ollama├── 01-fundamentos/ # Fundamentos de prompt engineering
│ ├── 01-fundamentos.ipynb
│ ├── 02-entorno-langsmith-playground.ipynb
│ ├── 03-entorno-langsmith-python.ipynb
│ ├── 04-prompt-registry.ipynb
│ ├── 05-anatomia-prompt.ipynb
│ ├── 06-template-variables.ipynb
│ ├── 07-system-prompt.ipynb
│ ├── 08-jerarquia-autoridad.ipynb
│ └── 09-formato-y-delimitadores.ipynb
│
├── 02-tecnicas/ # Técnicas avanzadas de prompting
│ ├── 01-tecnicas-overview.ipynb
│ ├── 02-zero-one-few-shot.ipynb
│ ├── 03-structured-output.ipynb
│ ├── 04-chain-of-thought.ipynb
│ ├── 04-tree-of-thought.ipynb
│ ├── 05-self-consistency.ipynb
│ ├── 06-reflection.ipynb
│ ├── 07-prompt-chaining.ipynb
│ └── 08-meta-prompt.ipynb
│
└── 03-proyecto/ # Proyecto demo: API de análisis de reseñas
├── main.py # FastAPI + LangSmith
├── requirements.txt
└── .env.example
El proyecto en 03-proyecto/ es una API REST que analiza reseñas de productos usando:
- FastAPI como framework web
- LangSmith como Prompt Registry (pull de prompts versionados)
- Ollama (qwen3:1.7b) como LLM local
- Structured Output para respuestas tipadas
cd 03-proyecto
# Instalar dependencias
uv venv --python 3.13
.venv\Scripts\activate # Windows
uv add -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales
# Ejecutar servidor
fastapi dev main.py| Método | Ruta | Descripción |
|---|---|---|
| GET | /health |
Health check |
| POST | /analizar |
Analiza una reseña y devuelve sentimiento, aspectos, puntuación y resumen |
curl -X POST http://localhost:8000/analizar \
-H "Content-Type: application/json" \
-d '{"reseña": "El producto llegó rápido pero la calidad es mediocre para el precio"}'Respuesta:
{
"sentimiento": "neutro",
"aspectos": ["envío", "calidad", "precio"],
"puntuacion": 3,
"resumen": "Entrega rápida pero relación calidad-precio mejorable"
}| Tecnología | Versión | Uso |
|---|---|---|
| Python | 3.13 | Lenguaje principal |
| LangChain | ≥1.2 | Framework para LLMs |
| LangSmith | ≥0.6 | Prompt Registry + Trazabilidad |
| FastAPI | ≥0.129 | Framework web (proyecto demo) |
| Ollama | - | LLMs en local |
| Jupyter | - | Notebooks del curso |
MIT