Un solo sitio donde vive la credencial y la lógica de reintentos. Todo lo demás le pide por HTTP y no guarda tokens de nadie.
Cada producto de la suite pide un perfil de calidad y recibe texto. No sabe qué modelo respondió, ni cuántas veces hubo que reintentar, ni de qué suscripción salió.
Las suscripciones viven aquí y en ningún otro sitio. Ningún consumidor guarda un token de proveedor: solo su llave, para que se sepa quién consume.
Si una familia de modelos falla, se prueba la siguiente. Si una suscripción agota su ventana, el turno va a la que tenga sitio — sin que el consumidor se entere.
Mide lo que queda de cada suscripción y avisa con horas de margen, no cuando ya no se puede generar.
Cuando el modelo agota su presupuesto a mitad de frase, la respuesta viaja marcada. Un texto incompleto no se entrega como si estuviera entero.
Declara las herramientas en la petición y devuelve lo que el modelo pidió llamar. El bucle lo ejecuta el consumidor, que es quien sabe hacerlo.
Quién pidió, cuánto costó, qué modelo respondió y por qué se descartó un intento. También los rechazos: una petición que no entra deja rastro igual.
La línea que ordena todo lo demás. El motor genera; cada producto atiende.
Cada producto tiene su propia llave, así que su consumo se puede separar del de los demás — y su origen dentro de cada producto, también.
Cuánta cuota queda en cada suscripción, quién consume qué y qué turnos costaron más de lo que parecía.