Dimensione o Azure OpenAI para Python com o Gerenciamento de API do Azure
Saiba como adicionar balanceamento de carga de nível empresarial ao seu aplicativo para estender o aplicativo de chat além dos limites de cota de modelo e token do Serviço OpenAI do Azure. Essa abordagem usa o Gerenciamento de API do Azure para direcionar o tráfego de forma inteligente entre três recursos do Azure OpenAI.
Este artigo requer que você implante dois exemplos separados:
- Aplicativo de bate-papo:
- Se você ainda não implantou o aplicativo de bate-papo, aguarde até que o exemplo de balanceador de carga seja implantado.
- Se você já implantou o aplicativo de chat uma vez, altere a variável de ambiente para oferecer suporte a um ponto de extremidade personalizado para o balanceador de carga e reimplante-o novamente.
- Balanceador de carga com Gerenciamento de API do Azure.
Observação
Este artigo usa um ou mais modelos de aplicativo de IA como base para os exemplos e orientações no artigo. Os modelos de aplicativos de IA fornecem implementações de referência bem mantidas que são fáceis de implantar. Eles ajudam a garantir um ponto de partida de alta qualidade para seus aplicativos de IA.
Arquitetura para balanceamento de carga do Azure OpenAI com o Gerenciamento de API do Azure
Como o recurso do Azure OpenAI tem limites específicos de token e cota de modelo, um aplicativo de chat que usa um único recurso do Azure OpenAI é propenso a ter falhas de conversa devido a esses limites.
Para usar o aplicativo de bate-papo sem atingir esses limites, use uma solução com balanceamento de carga com o Gerenciamento de API. Esta solução expõe de forma integrada um único ponto de extremidade da Gestão de API para o servidor da sua aplicação de chat.
O recurso de Gerenciamento de API, como uma camada de API, fica na frente de um conjunto de recursos do Azure OpenAI. A camada API aplica-se a dois cenários: normal e limitado. Durante um cenário normal em que a cota de token e modelo está disponível, o recurso OpenAI do Azure retorna um 200 de volta por meio da camada de API e do servidor de aplicativo de back-end.
Quando um recurso é limitado devido aos limites de quota, a camada de API pode tentar utilizar um recurso diferente do Azure OpenAI imediatamente para atender à solicitação original do aplicativo de chat.
Pré-requisitos
Uma assinatura do Azure. Crie um gratuitamente.
contêineres de desenvolvimento estão disponíveis para ambos os exemplos, com todas as dependências necessárias para concluir este artigo. Você pode executar os contêineres de desenvolvimento no GitHub Codespaces (em um navegador) ou localmente usando o Visual Studio Code.
- GitHub Codespaces (recomendado)
- de código do Visual Studio
- Apenas uma conta do GitHub é necessária para usar os Codespaces do GitHub.
Abra o aplicativo de exemplo de balanceador local de Gerenciamento de API do Azure
- GitHub Codespaces (recomendado)
- de código do Visual Studio
GitHub Codespaces executa um contêiner de desenvolvimento gerenciado pelo GitHub com Visual Studio Code for the Web como interface do usuário. Para o ambiente de desenvolvimento mais simples, use o GitHub Codespaces para que você tenha as ferramentas de desenvolvedor corretas e as dependências pré-instaladas para concluir este artigo.
Importante
Todas as contas do GitHub podem usar o GitHub Codespaces por até 60 horas gratuitas por mês com duas instâncias principais. Para obter mais informações, consulte os Codespaces do GitHub incluem mensalmente o armazenamento e as horas principais.
Implantar o balanceador de carga de Gerenciamento de API do Azure
Para implantar o balanceador de carga no Azure, entre na CLI do Desenvolvedor do Azure (
AZD
):azd auth login
Conclua as instruções de início de sessão.
Implante o aplicativo balanceador de carga:
azd up
Selecione uma assinatura e uma região para a implantação. Eles não precisam ter a mesma assinatura e região do aplicativo de bate-papo.
Aguarde a conclusão da implantação antes de continuar. Este processo pode demorar até 30 minutos.
Obter o ponto de extremidade do balanceador de carga
Execute o seguinte comando Bash para ver as variáveis de ambiente da implantação. Você precisa dessas informações mais tarde.
azd env get-values | grep APIM_GATEWAY_URL
Reimplantar o aplicativo de chat com o ponto de extremidade do balanceador de carga
Esses exemplos são concluídos no exemplo de aplicativo de bate-papo.
Abra o contêiner de desenvolvimento do exemplo de aplicativo de bate-papo usando uma das opções a seguir.
Idioma Espaços de código do GitHub Código do Visual Studio .NET Javascript Python Entre na CLI do Desenvolvedor do Azure (
AZD
):azd auth login
Complete as instruções para iniciar sessão.
Crie um ambiente
AZD
com um nome comochat-app
:azd env new <name>
Adicione a seguinte variável de ambiente, que informa ao back-end do aplicativo de chat para usar uma URL personalizada para as solicitações do Azure OpenAI:
azd env set OPENAI_HOST azure_custom
Adicione a seguinte variável de ambiente, que informa ao back-end do aplicativo de chat qual é o valor da URL personalizada para a solicitação do Azure OpenAI:
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
Implante o aplicativo de bate-papo:
azd up
Configurar a cota do TPM
Por padrão, cada uma das instâncias do Azure OpenAI no balanceador de carga é implantada com uma capacidade de 30.000 tokens por minuto (TPM). Pode usar a aplicação de chat com a confiança de que foi concebida para se adaptar a muitos utilizadores sem ultrapassar o limite. Altere este valor quando:
- Se surgirem erros de capacidade de implementação, reduza o valor.
- Precisa de uma capacidade maior: aumente o valor.
Use o seguinte comando para alterar o valor:
azd env set OPENAI_CAPACITY 50
Reimplante o balanceador de carga:
azd up
Limpar recursos
Quando terminar de usar o aplicativo de bate-papo e o balanceador de carga, limpe os recursos. Os recursos do Azure criados neste artigo são cobrados na sua assinatura do Azure. Se você não espera precisar desses recursos no futuro, exclua-os para evitar incorrer em mais cobranças.
Limpar os recursos do aplicativo de bate-papo
Volte ao artigo do aplicativo de bate-papo para limpar esses recursos.
Limpar os recursos do balanceador de carga
Execute o seguinte comando da CLI do Desenvolvedor do Azure para excluir os recursos do Azure e remover o código-fonte:
azd down --purge --force
Os interruptores fornecem:
-
purge
: Os recursos eliminados são imediatamente removidos. Você pode reutilizar os tokens do Azure OpenAI por minuto. -
force
: A exclusão acontece silenciosamente, sem exigir o consentimento do usuário.
Limpar recursos
- GitHub Codespaces
- de código do Visual Studio
Excluir o ambiente do GitHub Codespaces garante que possais maximizar o número de horas gratuitas por núcleo a que tendes direito na vossa conta.
Importante
Para obter mais informações sobre os direitos da sua conta do GitHub, consulte o armazenamento incluído mensalmente nos Codespaces do GitHub e as horas de núcleo.
Faça login no painel de controlo do GitHub Codespaces.
Localize seus espaços de código em execução que são originados do repositório
azure-samples/openai-apim-lb
GitHub.Abra o menu de contexto do item Codespaces do GitHub e selecione Excluir.
Obter ajuda
Se tiver problemas a implantar o balanceador de carga do Gerenciamento de API do Azure, adicione o seu problema à página de Problemas do repositório na secção
Código de exemplo
Os exemplos usados neste artigo incluem:
Conteúdo relacionado
- Exiba dados de diagnóstico do Gerenciamento de API do Azure no Azure Monitor.
- Use o Azure Load Testing para testar a carga da aplicação de chat.