Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 du service Azure OpenAI. Cette approche utilise Gestion des API Azure pour diriger intelligemment le trafic entre trois ressources Azure OpenAI.
Cet article vous oblige à déployer deux exemples distincts :
- Application de conversation :
- Attendez de déployer l'application de chat jusqu'à ce que l'exemple d'équilibreur de charge soit déployé.
- Si vous avez déjà déployé l’application de conversation une fois, modifiez la variable d’environnement pour prendre en charge un point de terminaison personnalisé pour l’équilibreur de charge et redéployez-la.
- Équilibreur de charge avec Gestion des API Azure.
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 qui sont faciles à déployer. Ils aident à garantir un point de départ de haute qualité pour vos applications IA.
Architecture pour l’équilibrage de charge d’Azure OpenAI avec Gestion des API Azure
Étant donné que la ressource Azure OpenAI a des limites de quota de jeton et de modèle spécifiques, une application de conversation qui utilise une seule ressource Azure OpenAI est susceptible d’avoir des échecs de conversation en raison de ces limites.
Pour utiliser l’application de conversation sans atteindre ces limites, utilisez une solution à charge équilibrée avec gestion des API. Cette solution expose en toute transparence un point de terminaison unique de Gestion des API à votre serveur d’applications de conversation.
La ressource 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é. Lors d’un scénario normal où le quota de jetons et de modèles est disponible, la ressource Azure OpenAI renvoie un code 200 à travers la couche API et le serveur d’applications backend.
Lorsqu’une ressource est limitée à cause des limites de quota, la couche API peut immédiatement réessayer une autre ressource Azure OpenAI pour satisfaire la demande originale de l’application de chat.
Conditions préalables
Un abonnement Azure. Créez-en un gratuitement.
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.
Ouvrez l’application d’exemple d’équilibreur local Azure API Management
GitHub Codespaces exécute un conteneur de développement géré par GitHub avec Visual Studio Code pour le web comme interface utilisateur. Pour l’environnement de développement le plus simple, utilisez GitHub Codespaces afin que vous disposiez 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 GitHub Codespaces pour jusqu’à 60 heures gratuites chaque mois avec deux instances principales. Pour plus d’informations, consultez Stockage et heures par cœur inclus chaque mois avec GitHub Codespaces.
Déployer l’équilibreur de charge Gestion des API Azure
Pour déployer l’équilibreur de charge sur Azure, connectez-vous à Azure Developer CLI (
AZD) :azd auth loginTerminez les instructions de connexion.
Déployez l’application d’équilibreur de charge :
azd upSélectionnez un abonnement et une région pour le déploiement. Il n'est pas nécessaire qu'ils aient le même abonnement et la même région que l'application de chat.
Attendez que le déploiement se termine avant de continuer. Ce processus 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 avez besoin de ces informations ultérieurement.
azd env get-values | grep APIM_GATEWAY_URL
Redéployer l'application de chat avec le point de terminaison de l'équilibreur de charge.
Ces exemples sont complétés par l'exemple de l'application de chat.
Ouvrez le conteneur de développement de l’exemple d’application de conversation à l’aide de l’un des choix suivants.
Langue GitHub Codespaces Visual Studio Code .NET JavaScript Python Connectez-vous à Azure Developer CLI (
AZD) :azd auth loginTerminez les instructions de connexion.
Créez un environnement
AZDavec un nom tel quechat-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 Azure OpenAI :
azd env set OPENAI_HOST azure_customAjoutez cette variable d’environnement pour indiquer au serveur principal de l’application de conversation l’URL personnalisée de la requête Azure OpenAI :
azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>Déployez l’application de conversation :
azd up
Configurer le quota TPM
Par défaut, chacune des instances Azure OpenAI dans l’équilibreur de charge est déployée avec une capacité de 30 000 jetons par minute (TPM). Vous pouvez utiliser l’application de conversation avec la confiance qu’elle s’adapte à de nombreux utilisateurs sans manquer de quota. Modifiez cette valeur quand :
- Vous obtenez des erreurs de capacité de déploiement : réduisez la valeur.
- Vous avez besoin d’une capacité plus élevée : augmentez la valeur.
Utilisez la commande suivante pour modifier la valeur :
azd env set OPENAI_CAPACITY 50Redéployez l’équilibreur de charge :
azd up
Nettoyer les ressources
Lorsque vous avez terminé avec l’application de conversation et l’équilibreur de charge, nettoyez les ressources. Les ressources Azure créées dans cet article sont facturées à votre abonnement Azure. Si vous ne vous attendez pas à avoir besoin de ces ressources à l’avenir, supprimez-les pour éviter d’entraîner davantage de frais.
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
Supprimez les ressources Azure et supprimez le code source :
azd down --purge --force
Les commutateurs fournissent :
-
purge: Les ressources supprimées sont immédiatement purgées. Vous pouvez réutiliser les jetons Azure OpenAI par minute. -
force: la suppression se produit silencieusement, sans exiger le consentement de l’utilisateur.
Nettoyer les ressources
La suppression de l'environnement GitHub Codespaces garantit que vous pouvez maximiser le nombre d'heures gratuites par cœur auxquelles vous avez droit pour votre compte.
Important
Pour plus d’informations sur les droits de votre compte GitHub, consultez GitHub Codespaces mensuel inclus stockage et heures principales.
Recherchez vos espaces de code en cours d’exécution provenant du dépôt GitHub
azure-samples/openai-apim-lb.
Ouvrez le menu contextuel de l’élément GitHub 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, ajoutez votre problème dans la page web Issues (Problèmes) du référentiel.
Exemple de code
Les exemples utilisés dans cet article sont les suivants :
- application de conversation Python avec RAG
- Azure Load Balancer avec Azure API Management
Contenu connexe
- Afficher les données de diagnostic Azure API Management dans Azure Monitor.
- Utilisez Azure Load Testing pour effectuer un test de charge de votre application de chat.