Descripción General del Sistema
OpenModex se sitúa entre su aplicación y los proveedores de modelos de IA. Cada solicitud fluye a través de un pipeline de middleware inteligente antes de llegar al proveedor óptimo.Flujo de Solicitudes
1
Autenticación
Su clave API es validada y mapeada a su cuenta, equipo y límites de velocidad.
2
Limitación de Velocidad
La solicitud se verifica contra los límites de velocidad de su nivel (por clave, por minuto). Utiliza sorted sets de Redis para una aplicación precisa de ventana deslizante.
3
Verificación de Caché
Si el almacenamiento en caché de prompts está habilitado, OpenModex busca una respuesta en caché con coincidencia exacta. Los aciertos de caché se devuelven instantáneamente sin costo de proveedor.
4
Decisión de Enrutamiento
El motor de enrutamiento selecciona el proveedor óptimo basándose en su estrategia (costo, latencia o calidad), la salud actual del proveedor y la configuración de respaldo.
5
Solicitud al Proveedor
La solicitud se traduce al formato del proveedor destino y se reenvía. OpenModex soporta pass-through de streaming SSE en tiempo real.
6
Respuesta + Metadatos
La respuesta del proveedor se normaliza al formato de OpenAI, se enriquece con metadatos de OpenModex (información de enrutamiento, costo, latencia) y se devuelve a su aplicación.
Componentes Principales
API Gateway
- API REST compatible con OpenAI — reemplazo directo para la API de OpenAI
- Streaming SSE — entrega de tokens en tiempo real
- Idempotencia — reintentos seguros con el encabezado
Idempotency-Key(TTL de 24h)
Motor de Enrutamiento
El motor de enrutamiento mantiene una vista en tiempo real de la salud y rendimiento del proveedor:Circuit Breaker
La salud del proveedor se monitorea automáticamente:- Cerrado — las solicitudes se enrutan normalmente
- Medio-Abierto — después de fallos consecutivos, el tráfico se reduce
- Abierto — el proveedor se elimina temporalmente del pool de enrutamiento
- Recuperación — sondeos de salud periódicos restauran al proveedor
Adaptadores de Proveedores
Cada proveedor de IA está envuelto en un adaptador estandarizado que maneja:- Traducción de formato de solicitud (formato OpenAI → formato nativo del proveedor)
- Normalización de respuesta (nativo del proveedor → formato OpenAI)
- Mapeo de errores a códigos de error consistentes
- Traducción de protocolo de streaming
Capa de Caché
- Caché de coincidencia exacta — hash de (modelo + mensajes + parámetros)
- TTL configurable — de 60s a 24h por solicitud
- Respaldado por Redis — búsquedas de caché en sub-milisegundos
- Ahorro de costos — respuestas en caché facturadas a ~50% de la tarifa de entrada, cero costo de salida
Pipeline de Facturación
- Cada solicitud emite un evento de facturación a Kafka
- Los eventos se consumen de forma asíncrona y se persisten
- Los saldos de cuenta se actualizan atómicamente mediante scripts Redis Lua
- Las analíticas se envían a Apache Doris para paneles e informes
Infraestructura
Seguridad
- Las claves API se almacenan hasheadas en reposo; solo el prefijo se guarda para búsqueda
- Las claves de proveedor BYOK se cifran con cifrado de sobre AWS KMS
- La limitación de velocidad usa operaciones atómicas de Redis para prevenir condiciones de carrera
- Todo el tráfico se cifra con TLS 1.3
- Las contraseñas se hashean con Argon2id