Lección 11 · 15 en la ruta · 3 min de lectura · Nivel 3
Lab 03 — Caching, Batches y modelo de costo
Proyecto: Chasqui (histórico de 90 días) o sttwhisper (post-edición nocturna de transcripciones). Objetivos: D5.T4.a/b · D2.T3.f/h · D5.T3.a/b · D2.T1 Tiempo: 3–4 h (+ espera del batch).
Proyecto: Chasqui (histórico de 90 días) o stt_whisper (post-edición nocturna de transcripciones). Objetivos: D5.T4.a/b · D2.T3.f/h · D5.T3.a/b · D2.T1 Tiempo: 3–4 h (+ espera del batch).
Requerimiento
Generar el resumen ejecutivo (Lab 01) para los últimos 90 días de reportes, con el menor costo posible, listo para mañana. Además, la ejecución diaria debe aprovechar que el system prompt (glosario + reglas, ~2 500 tokens) es idéntico cada día.
Decisiones
- Histórico de 90 días sin apuro → Batches (50 %). Diario con usuario esperando → realtime.
- System prompt idéntico → prompt caching (
cache_controlal final delsystem). ¿Alcanza el mínimo de tokens cacheables para el modelo? Si no, ¿qué agregas (glosario completo, ejemplos) para que valga? - Modelo: correr el mismo lote con Haiku y Sonnet y decidir con datos (calidad medida por una rúbrica simple + costo).
Pasos
1. Línea base
- Ejecutar 10 días en realtime sin caché. Registrar
usagecompleto y calcular costo con la tabla de precios vigente (docs.claude.com/en/docs/about-claude/pricing). Guardar encostos.csv.
2. Caching
- Añadir
cache_control: {"type":"ephemeral"}al último bloque delsystem. Ejecutar 10 días seguidos (dentro del TTL de 5 min). Verificar: primera llamadacache_creation_input_tokens > 0; siguientescache_read_input_tokens > 0. - Romper el caché a propósito: cambiar una palabra al inicio del system. Ver que se vuelve a escribir. Luego cambiar solo el
user: el caché se mantiene. - Calcular ahorro real con la fórmula de D5 §4.1.
3. Batches
- Construir 90 requests (
custom_id= fecha),client.messages.batches.create(...). Poller cada 60 s hastaprocessing_status == "ended". Descargar resultados; manejarsucceeded / errored / expired. - Combinar con caching (el
cache_controltambién aplica dentro del batch). Registrar costo y comparar con realtime.
4. Elección de modelo
- Mismo lote de 30 días con Haiku y con Sonnet. Rúbrica: ¿menciona las 3 variaciones correctas? ¿inventa? ¿5 líneas? Puntuar 0–3 a mano o con LLM-as-judge (Sonnet juzga a ambos; verifica 10 a mano).
- Tabla final: modelo × modo (realtime / caché / batch / batch+caché) → costo por 90 días, calidad media.
5. Modelo de costo para el cliente
- Escribir
COSTOS.md: costo diario proyectado, costo del histórico, y qué palancas usaste. Es exactamente el tipo de estimación que te pedirán en un trabajo.
Verificación
-
cache_read_input_tokens > 0demostrado en logs. - Batch completo con manejo de los 4 estados por request.
- Tabla modelo × modo con números reales.
- Ahorro total documentado (esperable: > 60 % vs línea base).
Qué aprendiste
- Orden de cacheo de la API y por qué el
systemva antes que los mensajes. - Precio de cache write vs read respecto al input normal.
- Ventana máxima del batch y descuento.
- ¿Cuándo NO usarías batch aunque sea más barato?
- ¿Qué es checkpoint caching y en qué se diferencia de cachear el system?
- ¿Cómo decidiste el modelo: por intuición o por eval?
Se guarda solo en este navegador.