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.