Guida e approfondimento

Routing a livello di servizio in un gateway API AI: provider veloci, standard, con provisioning e batch senza hard-coding

Un'architettura pratica per esporre livelli di carico di lavoro AI indipendenti dal fornitore al gateway, quindi mappare ogni richiesta su capacità veloce, standard, con provisioning o batch con controlli dei tenant, analisi e record di fatturazione.

Il routing a livello di servizio è il livello di policy che decide se una richiesta AI merita una capacità premium a bassa latenza, una normale capacità on-demand, un throughput riservato o un'elaborazione asincrona scontata. Senza questo livello, i team applicativi solitamente codificano flag, nomi di distribuzione ed endpoint batch specifici del provider direttamente nel codice prodotto. Ciò rende difficile gestire la latenza, i costi, le quote e il comportamento di fatturazione degli inquilini.

Il gateway dovrebbe esporre l'intento del carico di lavoro, non i meccanismi del provider. Un team di prodotto dovrebbe essere in grado di dire "questa è una risposta di supporto interattivo" o "questo è un lavoro di arricchimento notturno", mentre il gateway mappa tale intento sulla giusta opzione di capacità upstream e registra ciò che è realmente accaduto.

Il problema del lettore: le classi di capacità stanno diventando logica applicativa

I team che utilizzano più di un fornitore di modelli spesso iniziano con un semplice routing del modello: invia questo ID modello a questo fornitore. Il routing diventa più difficile quando i fornitori espongono classi di capacità diverse:

  • Gestione premium delle richieste a bassa latenza per i percorsi rivolti agli utenti.
  • Capacità condivisa standard per il traffico sincrono ordinario.
  • Capacità dedicata o assegnata per un throughput prevedibile.
  • API batch o asincrone per carichi di lavoro tolleranti alla latenza.
  • Comportamento di spillover quando la capacità riservata è esaurita.

Se ogni applicazione gestisce autonomamente queste scelte, l'organizzazione perde il controllo su quattro aspetti: chi può utilizzare la capacità premium, quanto costa, cosa succede quando la capacità non è disponibile e se il livello scelto ha migliorato il prodotto abbastanza da giustificare la spesa.

Il modello pratico consiste nell'inserire un livello di qualità del servizio indipendente dal fornitore all'interno del gateway API AI.

Fatti su cui basarsi

I dettagli variano in base al fornitore, ma diversi fatti osservabili supportano una progettazione a livello di gateway.

  • Fatto: alcuni fornitori espongono un livello di servizio per richiesta per l'elaborazione premium. OpenAI descrive la modalità Veloce come un'opzione per richiesta utilizzando il parametro service_tier e afferma che viene fatturata con un premio rispetto all'elaborazione Standard. OpenAI afferma inoltre che l'elaborazione prioritaria è stata rinominata modalità Veloce il 30 luglio 2026, mentre sia service_tier=priority che service_tier=fast sono accettati per le richieste API.
  • Fatto: la gestione delle richieste Premium potrebbe non essere un universo di quote separato. OpenAI rileva che i limiti di velocità in modalità veloce sono condivisi con altri livelli di servizio e che rapidi aumenti del traffico possono innescare un comportamento di velocità di rampa in cui parte del traffico potrebbe invece essere inviato all'elaborazione Standard.
  • Fatto: il livello di servizio può essere una dimensione di reporting e fatturazione. OpenAI afferma che i clienti API possono raggruppare i dati del dashboard di utilizzo per livello di servizio ed elemento pubblicitario. Documenti antropici standard, priority e batch come valori del livello di servizio nei report sull'utilizzo dell'API.
  • Fatto: le API batch possono ridurre sostanzialmente i costi per il lavoro asincrono. La documentazione sui prezzi antropici afferma che la sua API Batch supporta l'elaborazione asincrona di grandi volumi con uno sconto del 50% sui token di input e output. La documentazione dell'API Gemini Batch di Google descrive grandi carichi di lavoro asincroni al 50% del costo standard, con compromessi in termini di tempi di consegna, come fino a 24 ore per alcuni lavori ad alto volume.
  • Fatto: il throughput assegnato è un modello di capacità separato. Microsoft documenta la velocità effettiva assegnata da Azure OpenAI come capacità dedicata, a differenza delle distribuzioni standard in cui la capacità è condivisa e la velocità effettiva può variare in base alla domanda. Microsoft documenta inoltre le ricadute dalle distribuzioni con provisioning alle distribuzioni standard nella stessa risorsa Azure OpenAI.

La raccomandazione è di non rispecchiare ogni termine del provider nel codice dell'applicazione. La raccomandazione è di normalizzare questi meccanismi in livelli gateway orientati al business.

Definire livelli gateway indipendenti dal fornitore

Inizia nominando i livelli in base al comportamento del carico di lavoro, non alla terminologia del fornitore. Una prima tassonomia utile è:

Livello gateway Carico di lavoro tipico Aspettativa di latenza Posizione dei costi Comportamento di downgrade predefinito interactive_fast Loop vocali, chat dal vivo, azioni utente di alto valore Latenza pratica più bassa Premi consentito Procedi secondo lo standard o fallisci velocemente, a seconda del flusso di lavoro interactive_standard Chat normale, supporto alla redazione, copiloti interni Sincrono Costo predefinito Riprova, fallback o restituisce un errore controllato capacità_riservata Traffico di produzione prevedibile con utilizzo costante Produttività prevedibile Capacità prepagata o impegnata Espandersi solo quando la politica lo consente sfondo_sconto Valutazioni, arricchimento, riepilogo, incorporamenti, report Asincrono Sconto preferito Resta in coda finché non è disponibile un percorso batch emergency_fallback Risposta all'incidente o escalation temporanea del cliente Dipendente dalla politica Eccezione controllata Scade automaticamente dopo la finestra di approvazione

L'elenco dei livelli è volutamente piccolo. Se crei venti livelli, gli sviluppatori ignoreranno il sistema. Il gateway può comunque associare internamente un livello neutrale a diversi meccanismi specifici del provider.

Separa il livello richiesto dal livello selezionato

Il chiamante deve inviare un livello richiesto, ma il gateway deve registrare sia il livello richiesto che il livello effettivamente selezionato. Non sono sempre gli stessi.

Esempio di metadati della richiesta:

{
  "model": "support-chat-default",
  "messaggi": [...],
  "metadati": {
    "flusso di lavoro": "customer_support_reply",
    "tenant_id": "tenant_123",
    "requested_gateway_tier": "interactive_fast",
    "end_user_id": "u_789"
  }
}

Esempio di record di spedizione:

{
  "request_id": "req_abc",
  "tenant_id": "tenant_123",
  "api_key_id": "key_live_456",
  "flusso di lavoro": "customer_support_reply",
  "model_alias": "support-chat-default",
  "requested_gateway_tier": "interactive_fast",
  "selected_provider": "provider_a",
  "selected_provider_tier": "veloce",
  "tier_outcome": "selected_as_requested",
  "downgrade_reason": null,
  "input_tokens": 1840,
  "output_tokens": 420,
  "latency_ms": 1420,
  "estimated_cost_usd": "0,0312",
  "settled_cost_usd": "0,0308"
}

Se una richiesta premium viene inviata all'elaborazione standard a causa di limiti di rampa o regole di budget del tenant, ciò deve essere visibile:

{
  "requested_gateway_tier": "interactive_fast",
  "selected_provider_tier": "standard",
  "tier_outcome": "declassato",
  "downgrade_reason": "tenant_premium_budget_exhausted"
}

Questa distinzione impedisce analisi fuorvianti. Se i dashboard mostrano solo ciò che ha richiesto il chiamante, il reparto finanziario vedrà l'intento premium ma non l'esecuzione premium. Se le dashboard mostrano solo il risultato upstream, i team di prodotto non sapranno quando al loro flusso di lavoro sensibile alla latenza è stata negata la capacità premium.

Costruisci una matrice di capacità prima del routing

Un router di livello di servizio necessita di una matrice di capacità. La matrice dovrebbe rispondere: per un dato modello, regione, tenant e flusso di lavoro, quali meccanismi di capacità sono disponibili?

Campi minimi:

  • fornitore
  • modello_o_distribuzione
  • regioni
  • supporta_sincronizzazione
  • supports_batch
  • supports_premium_tier
  • supports_provisioned_capacity
  • supports_spillover
  • valori_livello_provider
  • articoli_riga_fatturazione
  • comportamento_downgrade_noto
  • tenant_allowlist

Un esempio semplificato:

gateway_tier_map:
  interattivo_veloce:
    preferito:
      - fornitore: openai
        request_params:
          service_tier: veloce
      - fornitore: antropico
        request_params:
          livello_servizio: priorità
    ripiego:
      - livello_gateway: interattivo_standard
        consentito_quando: policy.allows_standard_downgrade
  sfondo_sconto:
    preferito:
      - fornitore: antropico
        modalità: batch
      - fornitore: gemelli
        modalità: batch
    ripiego:
      - coda: ritardo_riprova
        consentito_quando: vero
  capacità_riservata:
    preferito:
      -fornitore: azure_openai
        deploy_class: fornito
    ripiego:
      -fornitore: azure_openai
        classe_distribuzione: standard
        consentito_quando: policy.allows_spillover

Questa matrice dovrebbe essere una configurazione, non un codice sparso. Le modifiche alla denominazione del fornitore, la disponibilità regionale e il trattamento di fatturazione cambieranno nel tempo. Aggiornare una policy gateway è più sicuro che ridistribuire ogni applicazione che chiama l'API.

Classificare i carichi di lavoro prima di scegliere la capacità

La parte più difficile non è la mappatura del provider. Sta decidendo quali richieste meritano quale livello.

Buoni candidati per interactive_fast

  • Assistenti vocali in cui il ritardo interrompe la conversazione.
  • Chat rivolta al cliente su percorsi di conversione o fidelizzazione di alto valore.
  • Operazioni human-in-the-loop in cui un agente attende attivamente.
  • Incidenti di produzione in cui la latenza influisce direttamente sulla mitigazione.

Buoni candidati per interactive_standard

  • Copiloti interni.
  • Supportare la redazione in cui un essere umano può tollerare tempi di risposta normali.
  • Caratteristiche del prodotto in cui il tempo di risposta è importante ma non fondamentale.

Buoni candidati per background_discount

  • Riepilogo notturno.
  • Ampio arricchimento di documenti di grandi dimensioni.
  • Valutazioni offline.
  • Aggiornamenti per l'incorporamento collettivo.
  • Etichettatura delle analisi e generazione di report.

Buoni candidati per reserved_capacity

  • Carichi di lavoro di produzione costanti ad alto volume.
  • Carichi di lavoro dei clienti contrattati con impegni di throughput prevedibili.
  • Traffico che non può tollerare la variazione dei vicini rumorosi e ha un utilizzo sufficiente per giustificare una capacità dedicata.

Una semplice regola politica è: non consentire ai chiamanti di scegliere la capacità premium semplicemente perché preferiscono la velocità. Richiedi un flusso di lavoro dichiarato, l'autorizzazione dell'inquilino e una dotazione di budget.

Applica le autorizzazioni del tenant e della chiave API

Ogni tenant e chiave API devono avere un set di livelli consentito. Le nuove chiavi dovrebbero essere predefinite ai livelli standard e background, non ai livelli premium.

Esempio di policy del locatario:

{
  "tenant_id": "tenant_123",
  "allowed_gateway_tiers": [
    "standard_interattivo",
    "sconto_sfondo"
  ],
  "livello_premium": {
    "abilitato": falso,
    "monthly_budget_usd": "0.00",
    "approval_required": vero
  },
  "capacità_riservata": {
    "abilitato": vero,
    "deployment_pool": "support-prod-ptu",
    "allow_spillover_to_standard": vero,
    "spillover_monthly_budget_usd": "500,00"
  }
}

Esempio di override a livello di chiave:

{
  "api_key_id": "key_voice_prod",
  "allowed_gateway_tiers": ["interactive_fast"],
  "workflow_allowlist": ["voice_control_loop"],
  "premium_daily_budget_usd": "75,00",
  "max_premium_traffic_percent": 15
}

La policy a livello di chiave impedisce l'espansione accidentale. Uno sviluppatore non può prendere una chiave destinata al traffico vocale e utilizzarla per uno script di riepilogo in blocco a meno che non sia consentito anche il flusso di lavoro.

Progettare esplicitamente il comportamento di downgrade e spillover

Il comportamento di downgrade è una decisione relativa al prodotto, non solo all'infrastruttura. Quando la capacità premium o fornita non è disponibile, il gateway deve scegliere uno dei quattro percorsi:

  • Procedi secondo lo standard: utile quando la disponibilità conta più della coerenza della latenza.
  • Coda: utile per lavori in background e carichi di lavoro batch.
  • Fail fast: utile quando una risposta lenta sarebbe peggiore di nessuna risposta, come nel caso di loop in tempo reale stretti.
  • Chiedi al chiamante di riprovare: utile quando il client può riprovare in sicurezza con un backoff e una chiave di idempotenza conservata.

Politica di esempio:

downgrade_policy:
  ciclo_di_controllo_vocale:
    livello_richiesto: interattivo_veloce
    if_fast_unavailable: fail_fast
    error_code: tier_capacity_unavailable
  customer_support_reply:
    livello_richiesto: interattivo_veloce
    if_fast_unavailable: procede_on_standard
    record_outcome: declassato
  nightly_document_enrichment:
    livello_richiesto: background_discount
    if_batch_unavailable: coda
    max_queue_delay_hours: 24
  contracted_api_customer:
    livello_richiesto: capacità_riservata
    if_reserved_exhausted: spillover_to_standard
    require_spillover_budget: vero

Non nascondere le ricadute. Lo spillover può migliorare la disponibilità, ma modifica i costi e l'interpretazione dello SLO. Le fatture e le analisi dovrebbero mostrare la richiesta di capacità riservata, l'evento di spillover, la capacità standard effettivamente utilizzata e il motivo.

Collega il routing per livello di servizio alla fatturazione

Un gateway non può controllare la spesa premium se la scelta del livello non fa parte del registro. Memorizza questi campi per ogni richiesta o lavoro:

  • Livello gateway richiesto.
  • Livello del fornitore o classe di capacità selezionata.
  • Risultato livello: selezionato, declassato, aggiornato, in coda, spillover, rifiutato.
  • Motivo del risultato.
  • Tenant, chiave API, utente e identificatori del flusso di lavoro.
  • Alias del modello e modello o distribuzione upstream.
  • Costo stimato prima della spedizione.
  • Il costo stabilito dopo l'utilizzo del fornitore è noto.
  • Latenza e conteggio dei tentativi per le richieste sincrone.
  • Ora di invio batch, ora di completamento e stato di importazione dei risultati per i processi asincroni.

Con questi campi, il gateway può rispondere alle domande che verranno poste dalla finanza e dall'ingegneria:

  • Quali inquilini hanno utilizzato la capacità premium questa settimana?
  • Quali flussi di lavoro hanno causato la spesa premium maggiore?
  • Con quale frequenza è stato eseguito il downgrade delle richieste premium a standard?
  • interactive_fast ha migliorato la latenza p95 abbastanza da giustificare il premio?
  • Quanto ha risparmiato l'elaborazione batch in background rispetto all'elaborazione standard sincrona?
  • Quanto spillover standard ha generato la capacità assegnata?

La raccomandazione importante: fatturare il livello effettivamente utilizzato, visualizzando anche il livello richiesto per il contesto operativo. In caso contrario, gli inquilini rimarranno sorpresi dai costi o ingannati sulla qualità del servizio.

Aggiungi guardrail in modo che il premium non diventi l'impostazione predefinita

Una volta che i team scoprono un livello più veloce, potrebbero abusarne. Metti dei limiti nel gateway prima dell'implementazione su vasta scala.

  • Budget premium per inquilino: massimali mensili e giornalieri rigidi.
  • Approvazione del flusso di lavoro: Premium consentito solo per i flussi di lavoro denominati.
  • Limite di condivisione del traffico: ad esempio, non più del 10% delle richieste sincrone di un tenant può utilizzare interactive_fast senza approvazione.
  • Avviso da standard a premium: avvisa quando un flusso di lavoro che normalmente utilizza lo standard viene aggiornato.
  • Avviso tasso di consumo premium: avvisa quando la spesa prevista supera la dotazione approvata.
  • Scadenza automatica: le sostituzioni di emergenza temporanee dovrebbero scadere senza pulizia manuale.
  • Controlli di idoneità in batch: blocca i lavori in blocco dai livelli premium sincroni quando soddisfano i criteri batch.

I guardrail dovrebbero essere reversibili. Durante un incidente, un operatore autorizzato potrebbe dover concedere una deroga temporanea al premio. Tale sostituzione dovrebbe avere un motivo, un approvatore, un budget, una data di scadenza e un record di controllo.

Sequenza di implementazione

Un'implementazione sicura non inizia attivando il routing premium ovunque. Inizia con la misurazione.

1. Aggiungi la classificazione del livello ombra

Classifica ogni richiesta in un livello gateway proposto, ma non modificare ancora il routing. Registra il livello proposto accanto ai metadati esistenti di latenza, costo e flusso di lavoro. Ciò rivela quanto traffico verrebbe spostato sulla capacità premium, batch o riservata se venissero applicate le policy.

2. Crea la matrice delle capacità

Elenca i meccanismi del provider, i modelli supportati, le regioni, i limiti, i campi di reporting e il comportamento noto di downgrade. Tratta il comportamento sconosciuto del downgrade come un rischio fino al momento del test.

3. Applica le autorizzazioni del tenant in modalità di prova

Registra se ciascuna richiesta verrà autorizzata, declassata, messa in coda o rifiutata. Condividi i risultati con i proprietari dei prodotti prima dell'applicazione.

4. Abilita un livello per una coorte

Scegli un flusso di lavoro ristretto, come un percorso di risposta dell'assistenza dal vivo o un lavoro di riepilogo notturno. Abilita il livello gateway pertinente per un piccolo gruppo di tenant. Misura la latenza p50, la latenza p95, i costi, la percentuale di downgrade, la percentuale di errori e le metriche aziendali rivolte agli utenti, ove disponibili.

5. Espandi solo quando i dati lo supportano

Se il livello premium migliora la latenza ma non i risultati del prodotto, mantienilo limitato. Se l’elaborazione batch riduce i costi senza danneggiare il comportamento del prodotto, espanderla. Se la capacità assegnata rimane inattiva, rivedi l'impegno o instrada al suo interno un traffico più prevedibile.

Compromessi da rendere espliciti

  • I livelli premium a bassa latenza possono migliorare la reattività, ma possono condividere limiti di velocità o attivare vincoli di rampa. Non sostituiscono la definizione dei limiti di velocità.
  • La capacità fornita migliora la prevedibilità, ma può comportare uno spreco di denaro quando l'utilizzo è basso. La capacità standard o batch potrebbe essere migliore per il traffico con picchi o con tolleranza alla latenza.
  • L'elaborazione in batch può ridurre il costo dei token, ma modifica il comportamento del prodotto perché le risposte sono asincrone e potrebbero arrivare molto più tardi.
  • I nomi dei livelli indipendenti dal provider semplificano il codice dell'applicazione, ma il gateway deve mantenere una matrice di funzionalità aggiornata perché i provider utilizzano nomi, limiti, linee di fatturazione e comportamento di downgrade diversi.
  • Il downgrade automatico migliora la disponibilità, ma può offuscare lo SLO e le aspettative di fatturazione a meno che il gateway non registri il livello effettivo utilizzato.
  • I rigorosi controlli degli inquilini impediscono spese impreviste, ma policy eccessivamente rigide possono bloccare i flussi di lavoro di produzione urgenti a meno che non vi sia un percorso di override controllato.

Previsione: il livello di servizio diventerà una dimensione di routing di prima classe

Previsione: con la maturazione delle API dei modelli, il livello di servizio diventerà importante per il routing dell'intelligenza artificiale quanto la scelta del modello, la regione e la finestra di contesto. I team non si chiederanno solo “quale modello dovrebbe rispondere a questa domanda?” Chiederanno "quale modello, in quale classe di capacità, per quale budget dell'inquilino, con quale politica di downgrade?"

Consiglio: progetta subito il registro del gateway e il modello di policy in modo che sia possibile aggiungere nuove classi di capacità del provider senza modificare il codice dell'applicazione. Anche se inizi solo con standard e batch, utilizza campi come requested_gateway_tier, selected_provider_tier e tier_outcome fin dall'inizio.

Lista di controllo attuabile

  • Definire non più di cinque livelli di gateway indipendenti dal provider.
  • Richiedi a ciascuna chiave API di dichiarare quali livelli e flussi di lavoro può utilizzare.
  • Costruisci una matrice di capacità del fornitore per il comportamento premium, standard, con provisioning, batch e spillover.
  • Registra il livello richiesto, il livello selezionato, il risultato del downgrade o dello spillover, la latenza, l'utilizzo e il costo stabilito.
  • Nuove chiavi predefinite per livelli standard o in background.
  • Aggiungi budget premium, limiti di condivisione del traffico e avvisi.
  • Rendi esplicito il comportamento di downgrade per flusso di lavoro.
  • Inizia con le metriche ombra prima dell'applicazione.
  • Implementare prima la capacità premium o fornita a un gruppo ristretto.
  • Espandilo solo quando latenza, affidabilità o parametri aziendali giustificano il costo.

Conclusione

Il routing a livello di servizio appartiene al gateway API AI perché è una decisione politica trasversale. Influisce su latenza, costi, quote, autorizzazioni del tenant, fatture e aspettative operative. I team applicativi non devono codificare nomi di livelli o classi di distribuzione specifici del provider solo per esprimere l'urgenza del carico di lavoro.

Un gateway pratico espone livelli neutrali come interactive_fast, interactive_standard, reserved_capacity e background_discount. Associa tali livelli a meccanismi specifici del fornitore, applica le autorizzazioni del tenant, registra il risultato effettivo e rende la capacità premium un'eccezione intenzionale anziché il percorso predefinito.

Leggi correlati

FAQ

Domande frequenti

Le applicazioni dovrebbero scegliere direttamente i livelli di servizio specifici del provider?
Di solito no. Le applicazioni devono inviare l'intento del carico di lavoro o un livello gateway indipendente dal provider. Il gateway dovrebbe tradurlo in parametri specifici del provider, distribuzioni, API batch o regole di spillover.
La capacità premium a bassa latenza può sostituire la gestione dei limiti di velocità?
No. I livelli Premium possono comunque condividere limiti di tariffa o essere influenzati dal comportamento della rampa. Il gateway necessita ancora della stima delle quote, del burst smoothing, dell'equità degli inquilini e della politica dei nuovi tentativi.
Quando un carico di lavoro dovrebbe utilizzare la capacità batch invece della capacità standard sincrona?
Utilizzare il batch quando il prodotto può tollerare il completamento asincrono: valutazioni offline, arricchimento dei documenti, riepiloghi notturni, incorporamenti collettivi e generazione di report sono candidati comuni.
Cosa occorre registrare per la fatturazione?
Registra il livello del gateway richiesto, il livello effettivo del fornitore o la classe di capacità, l'esito del downgrade o dello spillover, il motivo, il tenant, la chiave, il flusso di lavoro, l'utilizzo del token, la latenza, il costo stimato e il costo stabilito.