Mettre à l’échelle Azure OpenAI pour Python avec Azure Gestion des API
Découvrez comment ajouter l’équilibrage de charge de niveau entreprise à votre application pour étendre l’application de conversation au-delà des limites de quota de modèle et de jeton Azure OpenAI. Cette approche utilise Azure Gestion des API pour diriger intelligemment le trafic entre trois ressources Azure OpenAI.
Cet article vous oblige à déployer deux exemples distincts :
Application de conversation instantanée
- Si vous n’avez pas encore déployé l’application de conversation, attendez que l’exemple d’équilibreur de charge soit déployé.
- Si vous avez déjà déployé l’application de conversation, vous devez modifier la variable d’environnement afin de prendre en charge un point de terminaison personnalisé pour l’équilibreur de charge, puis redéployer l’application.
Équilibreur de charge avec Azure Gestion des API
Remarque
Cet article utilise un ou plusieurs modèles d’application IA comme base pour les exemples et les conseils de l’article. Les modèles d’application IA vous fournissent des implémentations de référence bien gérées et faciles à déployer qui vous aident à garantir un point de départ de haute qualité pour vos applications IA.
Architecture pour l’équilibrage de charge Azure OpenAI avec Azure Gestion des API
La ressource Azure OpenAI étant soumise à des limites de quota spécifiques en termes de jetons et de modèles, une application de conversation qui utilise une seule ressource Azure OpenAI est susceptible de présenter des défaillances lors de conversations.
Pour utiliser l’application de conversation sans atteindre ces limites, utilisez une solution à charge équilibrée avec Azure Gestion des API. Cette solution expose en toute transparence un point de terminaison unique d’Azure Gestion des API à votre serveur d’applications de conversation.
La ressource Azure Gestion des API, en tant que couche API, se trouve devant un ensemble de ressources Azure OpenAI. La couche API s’applique à deux scénarios : normal et limité. Dans un scénario normal où le quota de jeton et de modèle est disponible, la ressource Azure OpenAI retourne une valeur de 200 par le biais de la couche API et du serveur d’applications back-end.
Lorsqu’une ressource est limitée en raison de limites de quota, la couche API peut réessayer immédiatement une autre ressource Azure OpenAI pour répondre à la demande d’application de conversation d’origine.
Prérequis
Abonnement Azure. Créez-en un gratuitement
Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité.
L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access.
Des conteneurs de développement sont disponibles pour les deux exemples, avec toutes les dépendances requises pour suivre cet article. Vous pouvez exécuter les conteneurs de développement dans GitHub Codespaces (dans un navigateur) ou localement à l’aide de Visual Studio Code.
- Seul un compte GitHub est requis pour utiliser Codespaces
Ouvrir l’exemple d’application d’équilibreur local Azure Gestion des API
GitHub Codespaces exécute un conteneur de développement géré par GitHub avec Visual Studio Code pour le web comme interface utilisateur. Pour un environnement de développement le plus simple, utilisez GitHub Codespaces pour disposer des outils de développement et des dépendances appropriés préinstallés pour terminer cet article.
Important
Tous les comptes GitHub peuvent utiliser codespaces pendant jusqu’à 60 heures gratuites chaque mois avec 2 instances principales. Pour plus d’informations, consultez Le stockage mensuel inclus et les heures de cœur GitHub Codespaces.
Déployer l’équilibreur de charge Azure Gestion des API
Pour déployer l’équilibreur de charge sur Azure, connectez-vous à Azure Developer CLI (AZD).
azd auth login
Terminez les instructions de connexion.
Déployez l’application d’équilibreur de charge.
azd up
Vous devez sélectionner un abonnement et une région pour le déploiement. Vous n’êtes pas obligé d’utiliser le même abonnement et la même région que l’application de conversation.
Attendez que le déploiement se termine avant de continuer. Cela peut prendre jusqu’à 30 minutes.
Obtenir le point de terminaison de l’équilibreur de charge
Exécutez la commande bash suivante pour afficher les variables d’environnement du déploiement. Vous aurez besoin de ces informations ultérieurement.
azd env get-values | grep APIM_GATEWAY_URL
Redéployer l’application de conversation avec le point de terminaison de l’équilibreur de charge
Ces opérations sont effectuées sur l’exemple d’application de conversation.
Ouvrez le conteneur de développement de l’exemple d’application de conversation en choisissant l’une des options suivantes.
Langue Codespaces Visual Studio Code .NET JavaScript Python Connectez-vous à Azure Developer CLI (AZD).
azd auth login
Terminez les instructions de connexion.
Créez un environnement AZD avec un nom tel que
chat-app
.azd env new <name>
Ajoutez la variable d’environnement suivante, qui indique au back-end de l’application de conversation d’utiliser une URL personnalisée pour les requêtes OpenAI.
azd env set OPENAI_HOST azure_custom
Ajoutez la variable d’environnement suivante, qui indique au back-end de l’application de conversation la valeur de l’URL personnalisée pour la requête OpenAI.
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
Déployez l’application de conversation.
azd up
Configurer le quota de jetons par minute (TPM)
Par défaut, chacune des instances OpenAI dans l’équilibreur de charge est déployée avec une capacité de 30 000 jetons par minute. Vous pouvez utiliser l’application de conversation en toute confiance, grâce à sa capacité à s’adapter à un grand nombre d’utilisateurs sans dépasser les limites du quota. Modifiez cette valeur quand :
- Vous obtenez des erreurs de capacité de déploiement. Dans ce cas, réduisez cette valeur.
- Vous prévoyez une capacité plus élevée. Dans ce cas, augmentez la valeur.
Utilisez la commande suivante pour modifier la valeur.
azd env set OPENAI_CAPACITY 50
Redéployez l’équilibreur de charge.
azd up
Nettoyer les ressources
Quand vous avez terminé d’utiliser l’application de conversation et l’équilibreur de charge, nettoyez les ressources. Les ressources Azure créées dans cet article sont facturées dans votre abonnement Azure. Si vous pensez ne plus avoir besoin de ces ressources, supprimez-les pour éviter des frais supplémentaires.
Nettoyer les ressources de l’application de conversation
Revenez à l’article de l’application de conversation pour nettoyer ces ressources.
Nettoyer les ressources de l’équilibreur de charge
Exécutez la commande Azure Developer CLI suivante pour supprimer les ressources Azure et le code source :
azd down --purge --force
Les commutateurs fournissent :
purge
: vide immédiatement les ressources supprimées. Cela vous permet de réutiliser le TPM Azure OpenAI.force
: la suppression se produit de manière silencieuse, sans exiger le consentement de l’utilisateur.
Nettoyer GitHub Codespaces
La suppression de l’environnement GitHub Codespaces vous permet d’optimiser le nombre d’heures gratuites par cœur que vous obtenez pour votre compte.
Important
Pour plus d’informations sur les droits de votre compte GitHub, consultez GitHub Codespaces mensuel inclus stockage et heures principales.
Connectez-vous au tableau de bord GitHub Codespaces (https://github.com/codespaces).
Localisez vos codespaces en cours d’exécution provenant du référentiel GitHub
azure-samples/openai-apim-lb
.Ouvrez le menu contextuel de l’élément Codespaces, puis sélectionnez Supprimer.
Obtenir de l’aide
Si vous rencontrez des difficultés lors du déploiement de l’équilibreur de charge Gestion des API Azure, consignez votre problème dans la section Issues (Problèmes) du référentiel.
Exemple de code
Les exemples utilisés dans cet article incluent :
Étape suivante
- Afficher les données de diagnostic Azure Gestion des API dans Azure Monitor
- Utiliser Azure Load Testing pour tester votre application de conversation avec