Panoramica delle funzionalità del gateway di intelligenza artificiale generative in Azure Gestione API
SI APPLICA A: Tutti i livelli di Gestione API
Questo articolo presenta le funzionalità di Azure Gestione API per facilitare la gestione delle API di intelligenza artificiale generative, ad esempio quelle fornite dal servizio Azure OpenAI. Azure Gestione API offre una gamma di criteri, metriche e altre funzionalità per migliorare la sicurezza, le prestazioni e l'affidabilità per le API che servono le app intelligenti. Collettivamente, queste funzionalità sono denominate funzionalità gateway di intelligenza artificiale generative (GenAI) per le API di intelligenza artificiale generative.
Nota
- Questo articolo è incentrato sulle funzionalità per gestire le API esposte dal servizio OpenAI di Azure. Molte delle funzionalità del gateway GenAI si applicano ad altre API LLM (Large Language Model), incluse quelle disponibili tramite l'API di inferenza del modello di intelligenza artificiale di Azure.
- Le funzionalità del gateway di intelligenza artificiale generative sono funzionalità del gateway API esistente di Gestione API, non di un gateway API separato. Per altre informazioni sulle Gestione API, vedere Panoramica di Azure Gestione API.
Sfide nella gestione delle API di intelligenza artificiale generative
Una delle risorse principali disponibili nei servizi di intelligenza artificiale generativa è token. Il servizio Azure OpenAI assegna la quota per le distribuzioni di modelli espresse in token al minuto (TPM) che vengono quindi distribuiti tra i consumer del modello, ad esempio applicazioni diverse, team di sviluppatori, reparti all'interno dell'azienda e così via.
Azure semplifica la connessione di una singola app al servizio Azure OpenAI: è possibile connettersi direttamente usando una chiave API con un limite TPM configurato direttamente a livello di distribuzione del modello. Tuttavia, quando si inizia a crescere il portfolio di applicazioni, vengono presentate più app che chiamano singoli o persino più endpoint del servizio OpenAI di Azure distribuiti come istanze con pagamento in base al consumo o unità elaborate con provisioning (PTU). Ciò comporta determinate sfide:
- Come viene rilevato l'utilizzo dei token tra più applicazioni? È possibile calcolare gli addebiti incrociati per più applicazioni/team che usano modelli di servizio OpenAI di Azure?
- Come si garantisce che una singola app non usi l'intera quota TPM, lasciando le altre app senza alcuna opzione per l'uso dei modelli di servizio OpenAI di Azure?
- In che modo la chiave API viene distribuita in modo sicuro tra più applicazioni?
- Come viene distribuito il carico tra più endpoint OpenAI di Azure? È possibile assicurarsi che la capacità di cui è stato eseguito il commit in PTU venga esaurita prima di eseguire il fallback alle istanze con pagamento in base al consumo?
Il resto di questo articolo descrive in che modo Azure Gestione API può aiutare a risolvere questi problemi.
Importare la risorsa del servizio OpenAI di Azure come API
Importare un'API da un endpoint del servizio OpenAI di Azure a Gestione API di Azure usando un'esperienza a clic singolo. Gestione API semplifica il processo di onboarding importando automaticamente lo schema OpenAPI per l'API OpenAI di Azure e configura l'autenticazione nell'endpoint OpenAI di Azure usando l'identità gestita, eliminando la necessità di una configurazione manuale. All'interno della stessa esperienza intuitiva, è possibile preconfigurare i criteri per i limiti dei token e generare metriche dei token.
Criteri di limite dei token
Configurare i criteri di limite di token OpenAI di Azure per gestire e applicare limiti per ogni consumer di API in base all'uso dei token del servizio OpenAI di Azure. Con questo criterio è possibile impostare limiti, espressi in token al minuto (TPM).
Questo criterio offre flessibilità per assegnare limiti basati su token su qualsiasi chiave del contatore, ad esempio la chiave di sottoscrizione, l'indirizzo IP di origine o una chiave arbitraria definita tramite un'espressione di criteri. Il criterio abilita anche il precalcolazione dei token di richiesta sul lato Azure Gestione API, riducendo al minimo le richieste non necessarie al back-end del servizio Azure OpenAI se il prompt supera già il limite.
L'esempio di base seguente illustra come impostare un limite TPM di 500 per ogni chiave di sottoscrizione:
<azure-openai-token-limit counter-key="@(context.Subscription.Id)"
tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>
Suggerimento
Per gestire e applicare i limiti dei token per le API LLM disponibili tramite l'API di inferenza del modello di intelligenza artificiale di Azure, Gestione API fornisce i criteri llm-token-limit equivalenti.
Generare i criteri delle metriche dei token
I criteri delle metriche di emissione del token openAI di Azure inviano metriche ad Application Insights sull'utilizzo dei token LLM tramite le API del servizio OpenAI di Azure. I criteri consentono di fornire una panoramica dell'utilizzo dei modelli di servizio OpenAI di Azure in più applicazioni o consumer di API. Questo criterio può essere utile per scenari di chargeback, monitoraggio e pianificazione della capacità.
Questo criterio acquisisce le metriche di richiesta, completamento e utilizzo totale dei token e le invia a uno spazio dei nomi di Application Insights di propria scelta. Inoltre, è possibile configurare o selezionare le dimensioni predefinite per suddividere le metriche di utilizzo dei token, in modo da analizzare le metriche in base all'ID sottoscrizione, all'indirizzo IP o a una dimensione personalizzata a scelta.
Ad esempio, i criteri seguenti inviano le metriche ad Application Insights suddivise per indirizzo IP client, API e utente:
<azure-openai-emit-token-metric namespace="openai">
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" value="@(context.Api.Id)" />
<dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>
Suggerimento
Per inviare metriche per le API LLM disponibili tramite l'API di inferenza del modello di intelligenza artificiale di Azure, Gestione API fornisce i criteri equivalenti di llm-emit-token-metric.
Bilanciamento del carico back-end e interruttore
Una delle sfide legate alla creazione di applicazioni intelligenti consiste nel garantire che le applicazioni siano resilienti agli errori back-end e possano gestire carichi elevati. Configurando gli endpoint del servizio Azure OpenAI usando back-end in Azure Gestione API, è possibile bilanciare il carico tra di essi. È anche possibile definire regole di interruttore per interrompere l'inoltro delle richieste ai back-end del servizio OpenAI di Azure se non sono reattivi.
Il servizio di bilanciamento del carico back-end supporta il bilanciamento del carico round robin, ponderato e basato su priorità, offrendo flessibilità per definire una strategia di distribuzione del carico che soddisfi i requisiti specifici. Ad esempio, definire le priorità all'interno della configurazione del servizio di bilanciamento del carico per garantire un utilizzo ottimale di endpoint OpenAI di Azure specifici, in particolare quelli acquistati come PTU.
L'interruttore back-end include la durata della corsa dinamica, applicando i valori dell'intestazione Retry-After fornita dal back-end. In questo modo si garantisce un ripristino preciso e tempestivo dei back-end, ottimizzando l'utilizzo dei back-end prioritari.
Criteri di memorizzazione nella cache semantica
Configurare i criteri di memorizzazione nella cache semantica di Azure OpenAI per ottimizzare l'uso dei token archiviando i completamenti per richieste simili.
In Gestione API abilitare la memorizzazione nella cache semantica usando Azure Redis Enterprise o un'altra cache esterna compatibile con RediSearch ed eseguito l'onboarding in Azure Gestione API. Usando l'API Incorporamenti del servizio OpenAI di Azure, i criteri azure-openai-semantic-cache-store e azure-openai-semantic-cache-lookup archiviano e recuperano completamenti di richieste semanticamente simili dalla cache. Questo approccio garantisce il riutilizzo dei completamenti, con conseguente riduzione del consumo di token e prestazioni di risposta migliorate.
Suggerimento
Per abilitare la memorizzazione nella cache semantica per le API LLM disponibili tramite l'API di inferenza del modello di intelligenza artificiale di Azure, Gestione API fornisce i criteri llm-semantic-cache-store-policy e llm-semantic-cache-lookup-policy.
Lab ed esempi
- Lab per le funzionalità del gateway GenAI di Azure Gestione API
- Azure Gestione API (APIM) - Esempio di Azure OpenAI (Node.js)
- Codice di esempio Python per l'uso di Azure OpenAI con Gestione API
Considerazioni sull'architettura e sulla progettazione
- Architettura di riferimento del gateway GenAI con Gestione API
- Acceleratore di zona di destinazione del gateway dell'hub di intelligenza artificiale
- Progettazione e implementazione di una soluzione gateway con risorse OpenAI di Azure
- Usare un gateway davanti a più distribuzioni o istanze di Azure OpenAI
Contenuto correlato
- Blog: Introduzione alle funzionalità genAI in Azure Gestione API
- Blog: Integrazione di Sicurezza dei contenuti di Azure con Gestione API per gli endpoint OpenAI di Azure
- Training: gestire le API di intelligenza artificiale generative con Azure Gestione API
- Bilanciamento del carico intelligente per gli endpoint OpenAI e Azure Gestione API
- Autenticare e autorizzare l'accesso alle API OpenAI di Azure usando Azure Gestione API