Skip to content

OpenWebinarsNet/genai-prompt-engineering

 
 

Repository files navigation

Prompt Engineering para Developers con LangSmith

Python LangChain LangSmith FastAPI Jupyter Ollama License

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.

Requisitos previos

1. Crear cuenta en LangSmith

LangSmith se utiliza como:

  • Prompt Registry: almacén centralizado de prompts versionados
  • Trazabilidad: monitorización de llamadas a LLMs, latencias, tokens, etc.
  1. Regístrate en smith.langchain.com (gratis para uso individual)
  2. Crea un API Key en Settings → API Keys
  3. Si estás en la UE, usa el endpoint europeo: https://eu.api.smith.langchain.com

2. Instalar Ollama (opcional)

Para ejecutar modelos en local sin coste:

  1. Descarga Ollama
  2. Instala un modelo: ollama pull qwen3:1.7b

3. OpenAI API Key (opcional)

Si prefieres usar modelos de OpenAI en lugar de Ollama, necesitarás una API Key de OpenAI.

4. Visualizar diagramas Mermaid en notebooks

Los notebooks contienen diagramas Mermaid que requieren una extensión para visualizarse correctamente:

  1. Usa VS Code o Cursor como editor
  2. Instala la extensión Quarto

Sin esta extensión, los diagramas aparecerán como bloques de código en lugar de gráficos renderizados.

Instalación

# 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.13

Activar entorno virtual:

# Windows
.venv\Scripts\activate

# Linux/Mac
source .venv/bin/activate

Instalar dependencias:

uv add -r requirements.txt

Configuración

Copia el archivo de ejemplo y configura tus credenciales:

cp .env.example .env

Edita .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

Estructura del curso

├── 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

Proyecto demo: Analizador de reseñas

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

Ejecutar el proyecto

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

Endpoints

Método Ruta Descripción
GET /health Health check
POST /analizar Analiza una reseña y devuelve sentimiento, aspectos, puntuación y resumen

Ejemplo de uso

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ías

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

Licencia

MIT

About

Prompt Engineering para developers con LangSmith.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 99.3%
  • Python 0.7%