Découverte de Capacité
Trouve la capacité disponible du modèle Azure OpenAI dans toutes les régions et projets accessibles. Recommande le meilleur emplacement de déploiement en fonction des exigences de capacité.
Référence Rapide
| Propriété | Description |
|---|---|
| Objectif | Trouver où vous pouvez déployer un modèle avec une capacité suffisante |
| Portée | Toutes les régions et projets auxquels l'utilisateur a accès |
| Résultat | Tableau classé des régions/projets avec capacité disponible |
| Action | Analyse en lecture seule — ne déploie PAS. Transmet à preset ou customize |
| Authentification | Azure CLI (az login) |
Quand Utiliser Cette Compétence
- ✅ L'utilisateur demande « où puis-je déployer gpt-4o ? »
- ✅ L'utilisateur spécifie une cible de capacité : « trouve une région avec 10K TPM pour gpt-4o »
- ✅ L'utilisateur veut comparer la disponibilité : « quelles régions ont gpt-4o disponible ? »
- ✅ L'utilisateur a reçu une erreur de quota et doit trouver un emplacement alternatif
- ✅ L'utilisateur demande « meilleure région et projet pour déployer le modèle X »
Après découverte → transmet à preset ou customize pour le déploiement réel.
Scripts
Les scripts préconçus gèrent les appels API REST complexes et le traitement des données. Utilisez-les au lieu de construire manuellement les commandes.
| Script | Objectif | Utilisation |
|---|---|---|
scripts/discover_and_rank.ps1 |
Découverte complète : capacité + projets + classement | Script principal pour la découverte de capacité |
scripts/discover_and_rank.sh |
Identique à ci-dessus (bash) | Script principal pour la découverte de capacité |
scripts/query_capacity.ps1 |
Requête de capacité brute (pas de correspondance de projet) | Vérification rapide de capacité ou listage de versions |
scripts/query_capacity.sh |
Identique à ci-dessus (bash) | Vérification rapide de capacité ou listage de versions |
Flux de Travail
Phase 1 : Valider les Prérequis
az account show --query "{Subscription:name, SubscriptionId:id}" --output table
Phase 2 : Identifier le Modèle et la Version
Extrayez le nom du modèle de l'invite utilisateur. Si la version est inconnue, interrogez les versions disponibles :
.\scripts\query_capacity.ps1 -ModelName <model-name>
./scripts/query_capacity.sh <model-name>
Ceci liste les versions disponibles. Utilisez la version la plus récente sauf si l'utilisateur en spécifie une autre.
Phase 3 : Exécuter la Découverte
Exécutez le script de découverte complète avec le nom du modèle, la version et la cible de capacité minimale :
.\scripts\discover_and_rank.ps1 -ModelName <model-name> -ModelVersion <version> -MinCapacity <target>
./scripts/discover_and_rank.sh <model-name> <version> <min-capacity>
? Le script interroge automatiquement la capacité dans TOUTES les régions, fait une correspondance croisée avec les projets existants de l'utilisateur, et produit un tableau classé selon : répond à la cible → nombre de projets → capacité disponible.
Phase 3.5 : Valider le Quota d'Abonnement
Après que la découverte identifie les régions candidates, validez que l'abonnement de l'utilisateur dispose réellement de quota disponible dans chaque région. La capacité du modèle (Phase 3) montre ce que la plateforme peut supporter, mais le quota d'abonnement limite ce que cet utilisateur spécifique peut déployer.
# Pour chaque région candidate à partir des résultats de découverte :
$usageData = az cognitiveservices usage list --location <region> --subscription $SUBSCRIPTION_ID -o json 2>$null | ConvertFrom-Json
# Vérifier le quota pour chaque SKU que le modèle supporte
# Les noms de quota suivent le motif : OpenAI.<SKU>.<model-name>
$usageEntry = $usageData | Where-Object { $_.name.value -eq "OpenAI.<SKU>.<model-name>" }
if ($usageEntry) {
$quotaAvailable = $usageEntry.limit - $usageEntry.currentValue
} else {
$quotaAvailable = 0 # Aucun quota alloué
}
# Pour chaque région candidate à partir des résultats de découverte :
usage_json=$(az cognitiveservices usage list --location <region> --subscription "$SUBSCRIPTION_ID" -o json 2>/dev/null)
# Extraire le quota pour le SKU+modèle spécifique
quota_available=$(echo "$usage_json" | jq -r --arg name "OpenAI.<SKU>.<model-name>" \
'.[] | select(.name.value == $name) | .limit - .currentValue')
Annotez les résultats de découverte :
Ajoutez une colonne « Quota Disponible » au résultat classé de la Phase 3 :
| Région | Capacité Disponible | Répond à la Cible | Projets | Quota Disponible |
|---|---|---|---|---|
| eastus2 | 120K TPM | ✅ | 3 | ✅ 80K |
| westus3 | 90K TPM | ✅ | 1 | ❌ 0 (à la limite) |
| swedencentral | 100K TPM | ✅ | 0 | ✅ 100K |
Les régions/SKUs où quotaAvailable = 0 doivent être marqués avec ❌ dans les résultats. Si aucune région n'a de quota disponible, transmettez à la compétence quota pour les demandes d'augmentation et le dépannage.
Phase 4 : Présenter les Résultats et Transmettre
Après que le script produit le tableau classé (maintenant annoté avec les infos de quota), présentez-le à l'utilisateur et demandez :
- ? Déploiement rapide vers la meilleure recommandation avec défauts → route vers preset
- ⚙️ Déploiement personnalisé avec sélection de version/SKU/capacité/RAI → route vers customize
- ? Vérifier un autre modèle ou cible de capacité → réexécuter Phase 2
- ❌ Annuler
Phase 5 : Confirmer le Projet Avant de Déployer
Avant de transmettre à preset ou customize, confirmez toujours le projet cible avec l'utilisateur. Consultez les règles de Sélection de Projet dans le routeur parent.
Si le tableau de découverte montre un exemple de projet pour la région choisie, suggérez-le comme défaut. Sinon, interrogez les projets dans cette région et laissez l'utilisateur en choisir un.
Gestion des Erreurs
| Erreur | Cause | Résolution |
|---|---|---|
| « Aucune capacité trouvée » | Modèle non disponible ou tous au quota | Transmettez à la compétence quota pour les demandes d'augmentation et le dépannage |
| Erreur d'authentification du script | az login expiré |
Réexécutez az login |
| Liste de versions vide | Modèle non dans le catalogue de la région | Essayez une région différente : ./scripts/query_capacity.sh <model> "" eastus |
| « Aucun projet trouvé » | Aucune ressource AI Services | Guide vers la compétence project/create ou Azure Portal |