Ir al contenido
Volver a Tutoriales

Implementar Rate Limiting y Controles de Costos para APIs LLM: Presupuestos de Tokens, Throttling por Clave y Dashboards de Uso

Intermedio · 55 min · 2 min de lectura · Byte Smith ·

Antes de comenzar

  • Conocimientos básicos de Node.js y TypeScript
  • Conocimientos básicos de Docker (construir imágenes, ejecutar contenedores)
  • Una API key de OpenAI

Lo que aprenderás

  • Configurar un reverse proxy Fastify que reenvía solicitudes a OpenAI
  • Contar tokens con tiktoken y estimar el costo de la solicitud antes de enviar
  • Implementar autenticación por API key con claves hasheadas en SQLite
  • Construir rate limiting de ventana deslizante para RPM y TPM
  • Aplicar presupuestos diarios y mensuales de tokens por clave con degradación elegante
  • Añadir caché de coincidencia exacta de solicitudes para reducir llamadas API redundantes
  • Manejar respuestas SSE en streaming con contabilidad de fin de stream
  • Construir un dashboard de uso con Chart.js y desplegar con Docker
1
En esta página

Si tu equipo usa APIs LLM directamente, ya has experimentado el problema: una integración descontrolada, un bucle de reintentos mal configurado o un desarrollador entusiasta puede quemar cientos de dólares en minutos. Los rate limits del lado del proveedor protegen al proveedor, no tu presupuesto. Necesitas controles de tu lado.

Este tutorial recorre la construcción de un proxy de API LLM que se sitúa entre tus aplicaciones y OpenAI (o cualquier proveedor compatible) y aplica rate limits por clave, presupuestos de tokens, caché y seguimiento de costos. Es el acompañante práctico de LLM API Rate Limiting and Cost Control. El código fuente completo está en GitHub en llm-budget-proxy.

Antes de empezar, clona el repo e instala dependencias:

git clone https://github.com/InkByteStudio/llm-budget-proxy.git
cd llm-budget-proxy
npm install

El tutorial completo cubre configuración del servidor proxy, conteo de tokens con tiktoken, estimación de costos, autenticación por API key con hashing SHA-256, rate limiting de ventana deslizante, aplicación de presupuestos con acciones warn/downgrade/block, caché de coincidencia exacta, soporte de streaming SSE, dashboard de uso y containerización con Docker.

Consejo

Mantén pricing.yml en control de versiones y actualízalo cuando cambie el precio del proveedor. El proxy rechazará solicitudes para modelos no listados en este manifiesto, lo que previene costos sorpresa de modelos desconocidos.

Nota

La ventana deslizante en memoria funciona bien para despliegues de una sola instancia. Si ejecutas múltiples instancias de proxy detrás de un balanceador de carga, mueve el estado de la ventana a Redis o una base de datos SQLite WAL compartida.

Advertencia

La degradación de modelo está deshabilitada por defecto (modelDowngrade.enabled: false en config). Habilítala solo cuando tus llamadores puedan tolerar recibir respuestas de un modelo más barato. Algunas aplicaciones se rompen cuando el modelo cambia inesperadamente.

Consejo

Las respuestas en streaming no se cachean. La caché solo almacena respuestas no-streaming. Si necesitas caché para cargas de trabajo de streaming, considera una caché semántica en una capa superior.

Conclusión

Ahora tienes un proxy de API LLM funcional que aplica autenticación por clave, rate limits de ventana deslizante, umbrales de presupuesto configurables con acciones warn/downgrade/block, caché de coincidencia exacta, soporte de streaming con contabilidad de fin de stream, un dashboard de uso y alertas por webhook. Todo el stack se ejecuta en un solo contenedor Docker con SQLite para persistencia.

Los siguientes pasos más comunes son añadir soporte para proveedores adicionales más allá de OpenAI, implementar caché semántica para tasas de hit más altas, añadir rollups de presupuesto por equipo e integrar las alertas webhook con tu tooling de respuesta a incidentes existente.

Para la justificación arquitectónica completa y el enfoque de modelado de costos, consulta LLM API Rate Limiting and Cost Control. Para descargar un checklist imprimible para desplegar controles de costos LLM, consulta el LLM Cost Control Checklist.