effidevFlutter · Edge de Cloudflare · Optimización de costes en la nube
Español

Controla Costes y Caídas de LLM con Cloudflare AI Gateway

Control de costes y caídas de API LLM con Cloudflare AI Gateway

Integrar las API de OpenAI, Anthropic y Google Gemini en producción funciona bien al principio. Sin embargo, a medida que aumenta el número de usuarios, surgen simultáneamente tres problemas inesperados. En primer lugar, al recibir la misma respuesta para la misma pregunta a través de la API en cada ocasión, los costes de tokens aumentan linealmente. En segundo lugar, si un proveedor específico sufre una caída, toda la aplicación queda fuera de servicio. En tercer lugar, incluso si alguien realiza llamadas repetidas o intenta una inyección de prompts, no existe ningún medio para controlar el tráfico.

Aunque es posible implementar estos tres problemas por separado utilizando una caché de Redis, lógica de fallback y middleware de límite de tasa (rate limit), Cloudflare AI Gateway soluciona todo esto con un solo proxy en el edge. Sin cambiar ni una sola línea de código de la lógica, simplemente cambiando el endpoint por la URL de AI Gateway, se aplican al instante el almacenamiento en caché, los límites de tasa, los fallbacks automáticos, los límites de gasto, el registro de logs y las barreras de protección (guardrails) DLP.

Este artículo aborda desde la arquitectura de AI Gateway y la configuración de conexión por proveedor, hasta el cálculo de la reducción real de costes mediante caché, estrategias de enrutamiento con fallback, la nueva función de Spend Limits añadida en 2026 y las configuraciones de seguridad y límites de logs para el entorno de producción, todo ello a un nivel listo para ser desplegado en producción.

Resumen ejecutivo

  • AI Gateway se puede utilizar de forma gratuita en todos los planes de Cloudflare. Los costes adicionales se limitan a la comisión del 5% de Unified Billing y a los costes de infraestructura basados en Workers.
  • Con el almacenamiento en caché en el edge, las llamadas repetidas con el mismo prompt logran una reducción de la latencia de hasta el 90% y un coste de tokens de 0. El efecto se maximiza en chatbots de atención al cliente y escenarios de FAQ.
  • Al configurar los proveedores de fallback como un array, si el modelo de prioridad 1 falla, el tráfico se enruta automáticamente al modelo de prioridad 2. Se puede verificar qué proveedor procesó la solicitud mediante el encabezado de respuesta cf-aig-step.
  • La nueva función de 2026, Spend Limits, permite establecer límites presupuestarios basados en dólares diarios o mensuales para evitar picos de costes imprevistos.
  • El límite de retención de logs es de 100 000 eventos/mes en el plan Free y de 1 000 000 eventos/mes en Workers Paid. Al superar el límite no se guardarán nuevos logs, por lo que los logs necesarios deben exportarse por separado.

Arquitectura de AI Gateway: control del tráfico LLM en el edge sin cambios de código

AI Gateway es esencialmente un proxy inverso. Se ubica entre la aplicación y los proveedores de IA, interceptando todas las solicitudes y aplicando políticas de almacenamiento en caché, enrutamiento, registro de logs y seguridad antes de reenviarlas al proveedor. Según la documentación oficial de Cloudflare AI Gateway, se admiten más de 20 proveedores.

Proveedores compatibles (selección) Método de conexión
OpenAI (GPT-4o, o3, etc.) Universal Endpoint o URL dedicada
Anthropic (Claude Sonnet 5, etc.) Universal Endpoint
Google (Gemini 2.5, etc.) Universal Endpoint
Workers AI (Llama, Whisper, etc.) Binding nativo
Azure OpenAI Universal Endpoint
AWS Bedrock Universal Endpoint
Hugging Face Universal Endpoint
Groq, Together AI, Perplexity Universal Endpoint

Para conectarlo, solo es necesario reemplazar la base URL de las llamadas API existentes. No se requiere modificar en absoluto la lógica del código.

// Antes: llamada directa a OpenAI
const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: "https://api.openai.com/v1",
});

// Después: a través de AI Gateway — con solo cambiar esto se aplican caché, logs y fallback al instante
const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: "https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai",
});

Aspectos a considerar: {account_id} y {gateway_id} se generan automáticamente al crear un AI Gateway en el panel de control de Cloudflare. Dado que se pueden crear múltiples gateways por cuenta, se recomienda separarlos según el entorno (dev/staging/prod) o por aplicación.

Almacenamiento en caché en el edge: coste cero para llamadas repetidas con el mismo prompt

El principio del almacenamiento en caché de AI Gateway es sencillo. Ante la combinación del mismo prompt + mismo modelo + mismos parámetros, devuelve inmediatamente la respuesta almacenada en caché desde el edge sin enviar una solicitud al proveedor. Al no realizar llamadas a la API del proveedor, el coste de tokens es 0 y, al responder desde el edge, la latencia se reduce hasta en un 90%.

Escenarios donde el almacenamiento en caché es efectivo

Escenario Tasa de acierto estimada (Cache Hit) Efecto de reducción de costes
Chatbot de atención al cliente (preguntas FAQ repetitivas) 60~80% Reducción del 60~80% en el coste mensual de tokens
Asistente de código (generación del mismo boilerplate) 30~50% Reducción del 30~50% en el coste mensual de tokens
API de traducción (traducción repetida de las mismas frases) 70~90% Reducción del 70~90% en el coste mensual de tokens
Chatbot conversacional libre (preguntas diferentes cada vez) 5~15% Efecto limitado

Configuración del almacenamiento en caché

En el panel de control, seleccione su gateway, vaya a Settings > Cache > Enable y configure el TTL (Time-to-Live). También se puede controlar desde el código mediante los encabezados de la solicitud.

// Control del TTL de caché por solicitud (en segundos)
const response = await fetch(
  `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai/chat/completions`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json",
      "cf-aig-cache-ttl": "3600",  // Caché durante 1 hora
    },
    body: JSON.stringify({
      model: "gpt-4o",
      messages: [{ role: "user", content: "¿Cuál es el límite de tiempo de CPU en Cloudflare Workers?" }],
    }),
  }
);

// Verificar el estado del acierto de caché mediante el encabezado de respuesta
const cacheStatus = response.headers.get("cf-aig-cache-status");
// "HIT" = Devuelto desde la caché (coste 0, latencia ~10ms)
// "MISS" = Obtenido nuevamente desde el proveedor

Aspecto a considerar: El almacenamiento en caché solo funciona con respuestas sin streaming. Las solicitudes en streaming configuradas con stream: true no se almacenan en caché. Si necesita streaming pero desea aprovechar el almacenamiento en caché, se requiere una estrategia para separar las preguntas frecuentemente repetidas como respuestas sin streaming y las conversaciones libres de usuarios como respuestas en streaming.

Fallback automático: garantía de continuidad del servicio ante caídas del proveedor

Si recuerda la interrupción masiva de OpenAI en 2024 o las caídas intermitentes de la API de Anthropic en 2025, el riesgo de depender de un único proveedor resulta evidente. La función de fallback de AI Gateway permite definir un array de proveedores para que, si el de prioridad 1 falla, pase automáticamente al de prioridad 2.

// Configuración de proveedores de fallback (Universal Endpoint)
const response = await fetch(
  `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}`,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify([
      {
        // Prioridad 1: Anthropic Claude Sonnet 5
        provider: "anthropic",
        endpoint: "messages",
        headers: { "x-api-key": ANTHROPIC_KEY, "anthropic-version": "2023-06-01" },
        query: {
          model: "claude-sonnet-5-20260514",
          max_tokens: 1024,
          messages: [{ role: "user", content: userMessage }],
        },
      },
      {
        // Prioridad 2: OpenAI GPT-4o (fallback)
        provider: "openai",
        endpoint: "chat/completions",
        headers: { "Authorization": `Bearer ${OPENAI_KEY}` },
        query: {
          model: "gpt-4o",
          messages: [{ role: "user", content: userMessage }],
        },
      },
      {
        // Prioridad 3: Workers AI (infraestructura propia, coste mínimo)
        provider: "workers-ai",
        endpoint: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
        headers: { "Authorization": `Bearer ${CF_API_TOKEN}` },
        query: {
          messages: [{ role: "user", content: userMessage }],
        },
      },
    ]),
  }
);

// Verificar qué proveedor procesó la solicitud
const step = response.headers.get("cf-aig-step");
// "0" = Éxito con Anthropic, "1" = Fallback a OpenAI, "2" = Fallback a Workers AI

La principal ventaja de esta estructura es que no requiere ramificaciones if-else en el código de la aplicación. Como la prioridad del proveedor y la lógica de fallback se procesan a nivel de gateway, la aplicación siempre realiza las solicitudes al mismo endpoint y recibe las respuestas en el mismo formato.

Spend Limits: prevención del descontrol de costes mediante límites presupuestarios en dólares

La función Spend Limits, añadida en 2026, es la novedad más práctica de AI Gateway. Mientras que los límites de tasa tradicionales se basaban en el número de solicitudes, Spend Limits establece un tope basado en el coste real en dólares.

Elemento de configuración Valor de ejemplo Descripción
Total Spend Limit $500/día Límite de coste diario total del gateway
Per-User Spend Limit $10/día Límite de coste diario por usuario
Action on Limit Block / Fallback Bloquear solicitudes o realizar fallback a un modelo más económico al alcanzar el límite
Reset Period Diario/Mensual Período de reinicio del contador de costes

Escenario práctico: Al configurar un límite de $10/día por usuario en una aplicación SaaS, aunque un usuario específico realice llamadas excesivas a la API, los costes globales se mantienen bajo control. Si se configura para realizar un fallback automático a un modelo más económico (por ejemplo, Llama en Workers AI) en lugar de bloquear la solicitud al alcanzar el límite, se puede restringir el coste preservando al mismo tiempo la experiencia del usuario.

Los límites de tasa y Spend Limits se pueden aplicar simultáneamente. Por ejemplo, establecer un mecanismo de doble seguridad como “60 solicitudes por minuto + límite de coste de $50 diarios” es el patrón recomendado para entornos de producción.

Estructura de costes y límites de logs: lista de verificación para la operación en producción

Aunque AI Gateway en sí es gratuito, existen costes y límites que deben conocerse durante la operación. A continuación se presentan las cifras a fecha de agosto de 2026 extraídas de la página de precios de Cloudflare Workers y la documentación de AI Gateway.

Concepto Free Workers Paid ($5/mes)
Tarifa de uso de AI Gateway $0 $0
Límite de retención de logs 100 000/mes 1 000 000/mes
Comisión de Unified Billing 5% 5%
Solicitudes de Workers 100 000/día gratis $0.30 por cada 1 000 000
Tiempo de CPU de Workers 10ms/día gratis $0.02 por cada 1 000 000 CPU-ms

Tres aspectos clave a considerar en la operación:

  1. Verificar siempre el límite de logs. En el plan Free, si se superan los 100 000 eventos al mes, no se guardarán nuevos logs. Para los logs que requieran análisis, se debe construir una canalización para exportarlos en tiempo real desde Workers a un almacenamiento externo (R2, BigQuery, etc.). Abordamos este patrón en detalle en la guía de canalización asíncrona con Cloudflare Queues.

  2. Unified Billing frente a BYOK (Bring Your Own Key). Si se utiliza Unified Billing, Cloudflare gestiona las claves API del proveedor y aplica una comisión del 5%. Al gestionar las claves directamente (BYOK), no hay comisiones, pero la rotación de claves y la gestión de la seguridad deben realizarse de forma manual. BYOK suele ser la opción común para equipos pequeños, mientras que Unified Billing es habitual para clientes enterprise.

  3. Activar los guardrails DLP. La función integrada de prevención de pérdida de datos (DLP, Data Loss Prevention) en AI Gateway detecta automáticamente información confidencial (datos personales, código fuente) tanto en los prompts como en las respuestas. Al activar también las barreras de seguridad basadas en Llama Guard 3 8B, es posible bloquear ataques de inyección de prompts o la generación de contenido dañino a nivel de gateway.

Comparación con la infraestructura existente: AI Gateway frente a desarrollo propio frente a LiteLLM

AI Gateway no es la única opción disponible. También existen alternativas como desarrollar un proxy propio o utilizar proxies LLM de código abierto como LiteLLM.

Criterio de comparación Cloudflare AI Gateway Desarrollo propio (Node.js + Redis) LiteLLM (Código abierto)
Instalación y configuración 1 línea para cambiar URL Servidor + Redis + Middleware Despliegue en contenedor Docker
Almacenamiento en caché Caché integrada en el edge Implementación directa de caché en Redis Integración con Redis/DB
Enrutamiento de fallback Automático con declarar el array Lógica if-else o retry Compatible mediante archivo de configuración
Control de costes Spend Limits (basado en dólares) Lógica propia de cálculo y bloqueo Basado en conteo de tokens
Registro y analítica Panel de control integrado Construcción propia con ELK/Grafana Panel integrado (limitado)
Latencia global Edge en más de 300 PoP Dependiente de la ubicación del servidor Dependiente de la ubicación del servidor
Dependencia de proveedor (Vendor Lock-in) Alta (exclusivo de Cloudflare) Ninguna Ninguna
Coste Gratuito (~costes de Workers) Coste de servidor + Redis Coste de servidor

Si ya utiliza el ecosistema de Cloudflare, AI Gateway es la opción más rápida y económica. Si requiere una estrategia multicloud o personalizaciones específicas, considere LiteLLM; si necesita una libertad total, evalúe un desarrollo propio. En nuestra guía de comparación de costes entre Cloudflare Workers y AWS Lambda, abordamos una comparación detallada desde la perspectiva de los costes de infraestructura.

Preguntas frecuentes

¿El uso de AI Gateway añade latencia adicional?

La latencia adicional es mínima. Como AI Gateway opera en la red global edge de Cloudflare, la latencia añadida suele situarse en el rango de 1 a 5 ms. Cuando se produce un acierto de caché (cache hit), la latencia se reduce significativamente en comparación con la llamada directa al proveedor (al eliminarse el tiempo de ida y vuelta al proveedor).

¿Es compatible con respuestas en streaming?

Sí, es compatible. AI Gateway transmite (pass-through) las respuestas en streaming de forma directa. No obstante, las respuestas en streaming no se almacenan en caché. El registro de logs y los límites de tasa siguen funcionando con normalidad incluso en streaming.

¿Se pueden gestionar Workers AI y proveedores externos desde un mismo gateway?

Es perfectamente posible. El valor fundamental de AI Gateway reside precisamente en consolidar más de 20 proveedores en un único gateway. Es posible gestionar Workers AI (modelos propios) y OpenAI/Anthropic (API externas) dentro del mismo gateway, configurando libremente el orden de fallback.

¿Se puede utilizar en producción con el plan gratuito (Free) de Cloudflare?

Es posible, aunque existen limitaciones. Dado que el límite de logs del plan Free es de 100 000 eventos al mes, si su aplicación genera más de 3 300 solicitudes de IA al día, los logs comenzarán a perderse. Para entornos de producción, se recomienda comenzar con el plan Workers Paid ($5/mes, 1 000 000 de logs).

¿Se puede seguir utilizando el SDK oficial de OpenAI sin cambios?

Se puede utilizar directamente sin ningún cambio en el código principal. Solo es necesario reemplazar el parámetro baseURL del SDK de OpenAI por la URL de AI Gateway. Todas las demás funcionalidades del SDK (streaming, llamadas a funciones, visión, etc.) seguirán funcionando normalmente. Del mismo modo, los SDK de Anthropic y Google Gemini se conectan simplemente reemplazando la base URL.