Cursos/MLOps local/Observabilidad

Observabilidad con Langfuse y OpenTelemetry

Si una respuesta sale mal y no puedes reconstruir qué prompt, modelo, contexto y herramienta se usó, no tienes producción: tienes una caja negra con interfaz bonita.

Objetivos de aprendizaje
  • Registrar trazas útiles sin filtrar datos sensibles.
  • Medir latencia, errores, coste y calidad por ruta.
  • Usar request_id para seguir una petición completa.
En cristiano: traza. Es la historia de una petición: entrada, recuperación, llamada al modelo, herramientas, salida, latencia y errores.

Qué registrar

  • Identidad técnica: request_id, ruta, versión de app.
  • Modelo: proveedor, nombre, versión y parámetros.
  • Rendimiento: latencia total, tokens, errores y reintentos.
  • RAG: documentos recuperados, no necesariamente texto completo.
  • Calidad: eval asociada, feedback y resultado esperado.
Idea clave. Langfuse es una plataforma open source para trazas, prompts, evals y depuración LLM. OpenTelemetry aporta un estándar vendor-neutral para logs, métricas y trazas.

Evento mínimo

Terminal
{
  "request_id": "req_20260703_001",
  "route": "/api/chat",
  "model": "local-qwen",
  "prompt_version": "support-v3",
  "latency_ms": 1840,
  "input_tokens": 620,
  "output_tokens": 210,
  "retrieved_docs": ["manual-001#p4", "faq-009#p1"],
  "error": null
}
Cuidado. Observabilidad no significa guardar todo. Si guardas prompts completos con datos personales, acabas creando otra base sensible.
Comprueba que funciona. Haz una pregunta de prueba y verifica que puedes responder: qué modelo contestó, cuánto tardó, qué contexto usó y si hubo error.
Guardar y reabrir el proyecto.
Una app LLM observable permite depurar, evaluar y mejorar. Una app opaca solo permite adivinar.