Mi experiencia usando Deepseek vía API: De low-cost a high-cost en un descuido

PUBLICADO: 2026-07-14
AUTOR: MANUEL PRIETO
Inteligencia-artificial

Si alguna vez has implementado integraciones directas con proveedores de Inteligencia Artificial como OpenAI o DeepSeek, es probable que hayas caído en una de las trampas más sutiles (y costosas) de sus APIs: el fallback opaco de modelos.

En este artículo, quiero compartirte una lección arquitectónica que aprendí al analizar las métricas de consumo de mi plataforma y descubrir cómo millones de tokens se estaban evaporando sin control.

1. La Trampa del "Fallback" Automático

Cuando comencé a hacer las primeras pruebas con OpenAI y DeepSeek, la arquitectura era sencilla. Tenía clases dedicadas para cada proveedor: OpenAIChatService y DeepSeekChatService.

Al principio, establecí un límite máximo de gasto de 5$. Durante las primeras pruebas en febrero de 2026, el servicio me pareció increíblemente barato:

Consumo en febrero: menos de 5 céntimos por casi medio millón de tokens

Un bug!

El verdadero peligro de los modelos ultrabaratos es que perdonan las malas operativas. En mayo, mi volumen de peticiones se disparó de 145 a 2.310, consumiendo la friolera de 44.5 millones de tokens. Esto se debió a un descuido en mi código: un bucle ineficiente de llamadas repetitivas y/o falta de caché en las peticiones.

Sin embargo, como el sistema estaba usando deepseek-v4-flash, la factura apenas llegó a 1.90$. ¿No es para tanto no?

Ese coste irrisorio acaba afianzando una falsa sensación de seguridad técnica y económica: "si un bug masivo de llamadas solo me cuesta menos de dos dólares, no hay prisa por optimizar".

Nota — A escala corporativa, el peligro se multiplica:
Esta trampa no nos afecta solo a desarrolladores independientes. Recientemente trascendió el caso de un cliente de Anthropic que acumuló una factura accidental de 500 millones de dólares en Claude en un solo mes por no configurar límites de gasto para su plantilla. Situaciones parecidas han llevado a gigantes como Microsoft, Uber o Amazon a recortar licencias o agotar presupuestos anuales en cuestión de meses. Tratar la IA por consumo como si fuera un SaaS tradicional de tarifa plana sin establecer cortafuegos es un riesgo enorme a cualquier escala.

Consumo masivo en mayo: 44.5M tokens por solo 1.90$

El susto del "Silent Fallback": caída de peticiones, costes a lo loco

El desastre llegó cuando las llamadas se redirigieron sin previo aviso al modelo Pro (deepseek-v4-pro) debido a la saturación de los servidores de DeepSeek.

Aquí ocurrió la paradoja analítica: a pesar de que el número de peticiones disminuyó notablemente (el tráfico bajó tras darme cuenta de las ineficiencias), el consumo de tokens y el coste se dispararon a lo loco.

El momento del fallback: el coste recae 100% sobre el modelo PRO

Al enrutarse de forma opaca al modelo Pro, cada llamada individual se convirtió en una trampa: el modelo Pro no solo procesaba y devolvía más tokens por petición debido a su naturaleza y tamaño de contexto, sino que el coste por token se multiplicó. Una sola llamada ineficiente al modelo Pro consumía recursos a un ritmo infinitamente más devastador que cientos de llamadas al modelo Flash.

Como se ve en la gráfica de julio, el consumo de la versión flash cayó a menos de un céntimo, mientras que todo el tráfico y el coste se derivó opacamente a la versión pro, dejando el saldo en negativo con rapidez.

Dashboard mostrando más de 14.5 millones de tokens consumidos y saldo negativo

¿Qué estaba pasando?

Tras investigar a fondo, me topé con uno de los problemas más comunes pero menos documentados de las APIs modernas: las redirecciones invisibles de carga. Si no estás familiarizado con por qué ocurren estas redirecciones (ya sea por balanceo opaco o por orquestadores internos), te recomiendo leer mi artículo técnico detallado sobre Enrutamiento Dinámico y Control de Costes en APIs de IA.

La conclusión práctica fue dura: estaba sufriendo una pérdida total del control sobre el gasto porque la API decidía por mí cuándo derivar a un modelo más caro.

[!WARNING]
Actualización de Precios: Estrategia "Peak-Valley" en DeepSeek
A este problema de fallbacks se le suma un nuevo riesgo. A partir de mediados de julio, la API oficial de DeepSeek adopta una estrategia de precios variables. Durante las horas pico (Peak hours), los precios se multiplican por dos (x2) para todos los consumos.
Las horas pico establecidas son:

  • UTC: de 1:00 a 4:00 AM y de 6:00 a 10:00 AM.
  • (Equivalente en UTC+8: de 9:00 AM a 12:00 PM y de 2:00 PM a 6:00 PM).
    Esto hace que perder el control del enrutamiento durante estas franjas sea aún más catastrófico para el presupuesto.

2. Recuperando el Control: OpenRouter al Rescate

Para solucionar esto, decidí cambiar mi enfoque arquitectónico. Dejé de casarme con proveedores individuales y pivoté hacia un modelo agnóstico usando OpenRouter.

OpenRouter es un middleware transparente que agrupa cientos de modelos de decenas de proveedores. Su inmenso catálogo permite no solo intercambiar LLMs de forma rápida, sino también aprovechar capacidades avanzadas como tool-calling, control granular de contexto y métricas precisas.

El peligro del enrutamiento automático puro

Al principio, buscando la máxima comodidad, delegué la inteligencia de enrutamiento al comportamiento por defecto de la plataforma. Mi expectativa era que eligiera lo más rápido y barato para pruebas rutinarias.

La realidad fue muy distinta. El enrutamiento automático detectaba la complejidad de mi prompt y decidía derivar el tráfico a modelos mastodónticos de alta capacidad (como iteraciones de GPT-4o o equivalentes). Como resultado, mis primeras llamadas a través del middleware incurrieron en costes elevados, perpetuando el mismo problema de descontrol que intentaba solucionar:

Modelos de OpenRouter y costes por enrutamiento automático

El cerrojo desde el Dashboard

Para mitigar esto, pasé a utilizar un enrutador estricto: openrouter/free. Este no es un modelo per se, sino un selector que busca activamente en el catálogo qué modelos son 100% gratuitos en el momento de la petición.

Para garantizar que nunca hubiera una sorpresa financiera, configuré la interfaz nativa de OpenRouter aplicando un doble cerrojo. Forcé a nivel global que la plataforma ordene siempre por el proveedor más barato (Price: cheapest first) y que asigne un modelo de coste cero absoluto como fallback por defecto:

Configuración de OpenRouter mostrando el orden por precio y el modelo por defecto gratuito

El cerrojo desde el Código: Priorizando Tencent Hy3

Delegar ciegamente a la interfaz de OpenRouter sigue siendo un riesgo de caja negra. Por ello, decidí implementar un cortafuegos arquitectónico directamente en el payload de mis peticiones HTTP (gestionadas por Laravel).

En lugar de lanzar la petición al enrutador genérico, programé el backend para solicitar explícitamente una lista ordenada de modelos específicos. El favorito absoluto era el modelo gratuito tencent/hy3:free, acompañándolo de la bandera "allow_fallbacks" => false para prohibir explícitamente derivar a versiones premium si el modelo gratuito fallaba.

Priorización en código del modelo gratuito tencent/hy3:free

[!WARNING]
El Espejismo de la Gratuidad (Bait and Switch)
Si analizamos la URL oficial del modelo (https://openrouter.ai/tencent/hy3:free), podemos observar un pequeño cartel de aviso: la versión gratuita desaparecerá el 21 de julio de 2026.
Esto responde a una estrategia clásica en el ecosistema de APIs de IA. Los proveedores (como Tencent o Novita) lanzan endpoints gratuitos para recolectar telemetría, realizar pruebas de estrés en producción y, sobre todo, generar dependencia técnica en miles de desarrolladores. Una vez que han captado suficiente base de usuarios, cierran el grifo gratuito de forma abrupta, forzando a los proyectos a migrar a las instancias de pago (con márgenes muy lucrativos) para no tumbar sus aplicaciones.

3. Conclusión: Arquitectura Desacoplada

Gracias a este patrón, el flujo de mi aplicación está completamente desacoplado:

  1. .env define mi estrategia de gasto y fiabilidad según el entorno (desarrollo vs producción).
  2. config/ai.php (o services.php) estructura estos datos.
  3. El Contenedor de Inyección de Dependencias de Laravel inyecta automáticamente la interfaz abstracta ChatService.
  4. El Controlador consume el servicio sin importarle si detrás hay OpenAI, DeepSeek o un enrutador inteligente.

Si tienes curiosidad técnica sobre cómo programar exactamente este cortafuegos, he publicado un análisis detallado con tres variantes de configuración en código (para coste 0€ absoluto o fiabilidad 100%) en mi artículo de Knowledge sobre Enrutamiento Dinámico y Control de Costes en APIs de IA.

La próxima vez que integres inteligencia artificial en tu aplicación, no te cases con un proveedor directo. Implementa middlewares de enrutamiento y, sobre todo, parametriza conscientemente tus configuraciones de fallback. Mi billetera, y el uptime de mi plataforma, lo han agradecido enormemente.