Saltar al contenido principal

Proveedores y modelos soportados

AIUsage normaliza el consumo recibido de cada proveedor a un formato único:

{
"provider": "openai",
"model": "gpt-4o",
"units": {
"inputTokens": 312,
"outputTokens": 184,
"reasoningTokens": 0,
"cacheReadTokens": 0,
"cacheWriteTokens": 0,
"seconds": 0,
"units": 0
},
"rawUsage": { /* payload original del proveedor, para auditoría */ }
}

Proveedores

ProveedorUnidad principalParticularidades
OpenAItokensReporta reasoning (o1) y cache.
AnthropictokensCache de contexto con costo diferenciado.
DeepSeektokensOpenAI-compatible.
GroqtokensInferencia rápida, sin reasoning.
MistraltokensOpenAI-compatible.
CustomdependeVos definís el mapeo.

normalizeUsage

Cada adapter de proveedor implementa normalizeUsage(rawProviderResponse, model) -> UnitUsage. Esto garantiza que el resto del sistema (rollup, pricing, reportes) reciba siempre la misma estructura.

Si el adapter no puede parsear la respuesta, el evento se registra con unitKind: "unknown" y costUsd: 0 para que el reporte lo muestre (Gate 0 = aviso, no bloqueo).

Configuración de credenciales

Cada proveedor se configura con un ProviderConfig:

  • provider: nombre canónico (openai, anthropic, ...).
  • baseUrl: opcional, para self-hosted o proxys.
  • credentials.secretRef: referencia a la credencial (nunca en plano).

AIUsage toma el cost de la tabla de pricing, no de la respuesta del proveedor. Esto permite definir precios propios por encima o por debajo del oficial.