Visão geral dos recursos de gateway de IA generativa no Gerenciamento de API do Azure
APLICA-SE A: Todas as camadas de gerenciamento de API
Este artigo apresenta recursos no Gerenciamento de API do Azure para ajudá-lo a gerenciar APIs de IA generativas, como as fornecidas pelo Serviço OpenAI do Azure. O Gerenciamento de API do Azure fornece uma variedade de políticas, métricas e outros recursos para aprimorar a segurança, o desempenho e a confiabilidade das APIs que atendem seus aplicativos inteligentes. Coletivamente, esses recursos são chamados de recursos de gateway de IA generativa (GenAI) para suas APIs de IA generativas.
Nota
- Este artigo se concentra nos recursos para gerenciar APIs expostas pelo Serviço OpenAI do Azure. Muitos dos recursos de gateway do GenAI se aplicam a outras APIs de modelo de linguagem grande (LLM), incluindo aquelas disponíveis por meio da API de Inferência de Modelo de IA do Azure.
- Os recursos de gateway de IA generativa são recursos do gateway de API existente do Gerenciamento de API, não um gateway de API separado. Para obter mais informações sobre o Gerenciamento de API, consulte Visão geral do Gerenciamento de API do Azure.
Desafios no gerenciamento de APIs de IA generativas
Um dos principais recursos que você tem em serviços de IA generativa são os tokens. O Serviço OpenAI do Azure atribui cota para suas implantações de modelo expressas em tokens por minuto (TPM), que são distribuídos entre seus consumidores de modelo - por exemplo, diferentes aplicativos, equipes de desenvolvedores, departamentos dentro da empresa, etc.
O Azure facilita a conexão de um único aplicativo ao Serviço OpenAI do Azure: você pode se conectar diretamente usando uma chave de API com um limite de TPM configurado diretamente no nível de implantação do modelo. No entanto, quando você começa a aumentar seu portfólio de aplicativos, é apresentado vários aplicativos chamando pontos de extremidade únicos ou até mesmo vários pontos de extremidade do Serviço OpenAI do Azure implantados como instâncias pré-pagas ou PTU (Unidades de Taxa de Transferência Provisionadas). Isso vem com alguns desafios:
- Como o uso do token é rastreado em vários aplicativos? As cobranças cruzadas podem ser calculadas para vários aplicativos/equipes que usam modelos do Serviço OpenAI do Azure?
- Como você garante que um único aplicativo não consuma toda a cota do TPM, deixando outros aplicativos sem opção de usar modelos do Serviço OpenAI do Azure?
- Como a chave de API é distribuída com segurança em vários aplicativos?
- Como a carga é distribuída em vários pontos de extremidade do Azure OpenAI? Você pode garantir que a capacidade comprometida em PTUs se esgote antes de voltar para instâncias de pagamento conforme o uso?
O restante deste artigo descreve como o Gerenciamento de API do Azure pode ajudá-lo a enfrentar esses desafios.
Importar recurso do Serviço OpenAI do Azure como uma API
Importe uma API de um ponto de extremidade do Serviço OpenAI do Azure para o gerenciamento da API do Azure usando uma experiência de clique único. O Gerenciamento de API simplifica o processo de integração importando automaticamente o esquema OpenAPI para a API OpenAI do Azure e configura a autenticação para o ponto de extremidade do Azure OpenAI usando identidade gerenciada, removendo a necessidade de configuração manual. Dentro da mesma experiência amigável, você pode pré-configurar políticas para limites de token e métricas de token emissoras.
Política de limite de token
Configure a política de limite de token do Azure OpenAI para gerenciar e impor limites por consumidor de API com base no uso de tokens do Serviço OpenAI do Azure. Com esta política, você pode definir limites, expressos em tokens por minuto (TPM).
Esta política oferece flexibilidade para atribuir limites baseados em tokens em qualquer chave de contador, como chave de assinatura, endereço IP de origem ou uma chave arbitrária definida por meio de uma expressão de política. A política também permite o pré-cálculo de tokens de prompt no lado Gerenciamento de API do Azure, minimizando solicitações desnecessárias para o back-end do Serviço OpenAI do Azure se o prompt já exceder o limite.
O exemplo básico a seguir demonstra como definir um limite de TPM de 500 por chave de assinatura:
<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>
Gorjeta
Para gerenciar e impor limites de token para APIs LLM disponíveis por meio da API de Inferência de Modelo de IA do Azure, o Gerenciamento de API fornece a política llm-token-limit equivalente.
Política de métrica de token de emissão
A política de métrica de token de emissão do Azure OpenAI envia métricas para o Application Insights sobre o consumo de tokens LLM por meio das APIs do Serviço OpenAI do Azure. A política ajuda a fornecer uma visão geral da utilização dos modelos do Serviço OpenAI do Azure em vários aplicativos ou consumidores de API. Essa política pode ser útil para cenários de estorno, monitoramento e planejamento de capacidade.
Esta política captura métricas de uso de prompt, conclusão e token total e as envia para um namespace do Application Insights de sua escolha. Além disso, você pode configurar ou selecionar de dimensões predefinidas para métricas de uso de token divididas, para que possa analisar métricas por ID de assinatura, endereço IP ou uma dimensão personalizada de sua escolha.
Por exemplo, a política a seguir envia métricas para o Application Insights divididas por endereço IP do cliente, API e usuário:
<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>
Gorjeta
Para enviar métricas para APIs LLM disponíveis por meio da API de Inferência de Modelo de IA do Azure, o Gerenciamento de API fornece a política llm-emit-token-metric equivalente.
Balanceador de carga de back-end e disjuntor
Um dos desafios ao criar aplicativos inteligentes é garantir que os aplicativos sejam resilientes a falhas de back-end e possam lidar com altas cargas. Ao configurar seus pontos de extremidade do Serviço OpenAI do Azure usando back-ends no Gerenciamento de API do Azure, você pode equilibrar a carga entre eles. Você também pode definir regras de disjuntor para parar de encaminhar solicitações para os back-ends do Serviço OpenAI do Azure se eles não estiverem respondendo.
O balanceador de carga de back-end suporta balanceamento de carga round-robin, ponderado e baseado em prioridades, oferecendo flexibilidade para definir uma estratégia de distribuição de carga que atenda às suas necessidades específicas. Por exemplo, defina prioridades dentro da configuração do balanceador de carga para garantir a utilização ideal de pontos de extremidade específicos do Azure OpenAI, particularmente aqueles adquiridos como PTUs.
O disjuntor de back-end apresenta duração de viagem dinâmica, aplicando valores do cabeçalho Retry-After fornecido pelo backend. Isso garante a recuperação precisa e oportuna dos backends, maximizando a utilização de seus backends prioritários.
Política de cache semântico
Configure as políticas de cache semântico do Azure OpenAI para otimizar o uso de token armazenando finalizações para prompts semelhantes.
No Gerenciamento de API, habilite o cache semântico usando o Azure Redis Enterprise ou outro cache externo compatível com o RediSearch e integrado ao Gerenciamento de API do Azure. Usando a API do Azure OpenAI Service Embeddings, as políticas azure-openai-semantic-cache-store e azure-openai-semantic-cache-lookup armazenam e recuperam completações de prompt semanticamente semelhantes do cache. Essa abordagem garante a reutilização das completações, resultando em consumo reduzido de tokens e melhor desempenho de resposta.
Gorjeta
Para habilitar o cache semântico para APIs LLM disponíveis por meio da API de Inferência de Modelo de IA do Azure, o Gerenciamento de API fornece as políticas equivalentes llm-semantic-cache-store-policy e llm-semantic-cache-lookup-policy .
Laboratórios e amostras
- Laboratórios para os recursos de gateway GenAI do Gerenciamento de API do Azure
- Azure API Management (APIM) - Exemplo do Azure OpenAI (Node.js)
- Código de exemplo Python para usar o Azure OpenAI com Gerenciamento de API
Considerações sobre arquitetura e design
- Arquitetura de referência de gateway GenAI usando Gerenciamento de API
- Acelerador de zona de aterrissagem do gateway do hub AI
- Projetando e implementando uma solução de gateway com recursos do Azure OpenAI
- Usar um gateway na frente de várias implantações ou instâncias do Azure OpenAI
Conteúdos relacionados
- Blog: Apresentando os recursos do GenAI no Gerenciamento de API do Azure
- Blog: Integrando a Segurança de Conteúdo do Azure com o Gerenciamento de API para Pontos de Extremidade do Azure OpenAI
- Treinamento: gerencie suas APIs de IA generativas com o Gerenciamento de API do Azure
- Balanceamento de carga inteligente para pontos de extremidade OpenAI e Gerenciamento de API do Azure
- Autenticar e autorizar o acesso às APIs do Azure OpenAI usando o Gerenciamento de API do Azure