deploy-model
microsoft/skills
Permet de déployer des modèles Azure OpenAI grâce à un routage intelligent basé sur l'intention, offrant des préréglages rapides, une personnalisation complète et la détection des capacités dans toutes les régions et tous les projets.
...Développer toutDéploiement du modèle
Contexte — à lire en premier. Cette compétence crée des déploiements de modèles hors bande via l’interface CLI d’Azure, MCP ou le portail. Pour les projets Foundry gérés par azd (ceux générés à partir de
azd-ai-starter-basicou viaazd ai agent init), déclarez les déploiements dansles services azure.yaml.à la place — la commande `.config.deployments[] azd ai agent init` écrit l'entrée à partir du manifeste d'exemple et la commande `azd provision` crée le déploiement via Bicep. Consultez le fichier `foundry-agent/create/create-hosted.md` pour connaître la procédure recommandée. N’utilisez cette fonctionnalité que pour : (a) les projets Foundry non gérés par un projet azd, (b) les déploiements ponctuels en dehors du cycle de vie azd.
Point d’entrée unifié pour tous les workflows de déploiement de modèles Azure OpenAI. Analyse l’intention de l’utilisateur et le redirige vers le mode de déploiement approprié.
Référence rapide
| Mode | Quand l’utiliser | Sous-compétence |
|---|---|---|
| Préréglage | Déploiement rapide, aucune personnalisation requise | préréglage/SKILL.md |
| Personnalisation | Contrôle total : version, SKU, capacité, politique RAI | customize/SKILL.md |
| Détection de la capacité | Identifier les emplacements de déploiement disposant d'une capacité spécifique | capacity/SKILL.md |
Détection de l'intention
Analysez la requête de l’utilisateur et redirigez-le vers le mode approprié :
Demande de l'utilisateur
│
├─ Déploiement simple (sans modificateurs)
│ « déployer gpt-4o », « configurer un modèle »
│ └─> mode PRESET
│
├─ Présence de mots-clés de personnalisation
│ « paramètres personnalisés », « choisir une version », « sélectionner une SKU »,
│ « définir la capacité à X », « configurer le filtre de contenu »,
│ « déploiement PTU », « avec un quota spécifique »
│ └─> mode CUSTOMIZE
│
├─ Requête de capacité/disponibilité
│ « trouver où je peux déployer », « vérifier la capacité »,
│ « quelle région dispose d’une capacité de X », « meilleure région pour 10 000 TPM »,
│ « où ce modèle est-il disponible »
│ └─> mode DÉCOUVERTE DE CAPACITÉ
│
└─ Ambigu (comporte un objectif de capacité + une intention de déploiement)
« Déployer GPT-4o avec une capacité de 10 000 dans la meilleure région »
└─> Découverte de la capacité d’abord → puis PRÉDÉFINI ou PERSONNALISER
Règles de routage
| Signal dans la prompt | Acheminer vers | Motif |
|---|---|---|
| Uniquement le nom du modèle, sans options | Préréglage | L'utilisateur souhaite un déploiement rapide |
| « personnalisé », « configurer », « choisir », « sélectionner » | Personnaliser | L'utilisateur souhaite avoir le contrôle |
| « rechercher », « vérifier », « où », « quelle région », « disponible » | Capacité | L'utilisateur souhaite identifier |
| Chiffre de capacité spécifique + « meilleure région » | Capacité → Préréglage | Identifier puis déployer rapidement |
| Chiffre de capacité spécifique + mots-clés « personnalisés » | Capacité → Personnaliser | Découvrir puis déployer avec des options |
| « PTU », « débit provisionné » | Personnaliser | Le PTU nécessite la sélection d’une SKU |
| « région optimale », « meilleure région » (sans objectif de capacité) | Préréglage | L'optimisation de la région est la spécialité des préréglages |
Enchaînement multimode
Certaines invites nécessitent deux modes successifs :
Modèle : Capacité → Déploiement Lorsqu’un utilisateur spécifie un besoin en capacité ET souhaite un déploiement :
- Lancer la découverte des capacités pour identifier les régions/projets disposant d’un quota suffisant
- Présentez les résultats à l’utilisateur
- Demander : « Souhaitez-vous effectuer le déploiement avec les paramètres par défaut rapides ou personnaliser les paramètres? »
- Rediriger vers « Prédéfini » ou « Personnaliser » en fonction de la réponse
💡 Astuce : en cas de doute sur le mode souhaité par l’utilisateur, optez par défaut pour « Prédéfini » (déploiement rapide). Les utilisateurs qui souhaitent une personnalisation utilisent généralement des mots-clés explicites tels que « personnalisé », « configurer » ou « avec des paramètres spécifiques ».
Sélection du projet (tous les modes)
Avant tout déploiement, déterminez le projet sur lequel effectuer le déploiement. Cela s'applique à tous les modes (préréglé, personnalisé et après détection de la capacité).
Ordre de résolution
- Vérifiez la variable d’environnement
PROJECT_RESOURCE_ID— si elle est définie, utilisez-la comme valeur par défaut - Vérifiez la saisie de l’utilisateur: si celui-ci a indiqué un projet ou une région spécifique, utilisez-le
- Si aucune de ces conditions n’est remplie, interrogez la liste des projets de l’utilisateur et proposez le projet actuel
Étape de confirmation (obligatoire)
Toujours confirmer la cible avant le déploiement. Afficher à l’utilisateur les paramètres qui seront utilisés et lui donner la possibilité de les modifier :
Déploiement vers :
Projet :
Région :
Ressource :
Est-ce correct ? Ou choisissez un autre projet :
1. ✅ Oui, déployer ici (par défaut)
2. 📋 Afficher les autres projets de cette région
3. 🌍 Choisir une autre région
Si l'utilisateur choisit l'option 2, afficher les 5 principaux projets de cette région :
Projets dans :
1. project-alpha (rg-alpha)
2. project-beta (rg-beta)
3. project-gamma (rg-gamma)
...
⚠️ Ne jamais effectuer de déploiement sans avoir indiqué à l'utilisateur quel projet sera utilisé. Cela permet d'éviter tout déploiement accidentel sur la mauvaise ressource.
Validation avant déploiement (tous modes)
Avant de présenter toute option de déploiement (SKU, capacité), vérifiez toujours ces deux points :
Le modèle prend en charge la SKU — interrogez le catalogue de modèles pour vérifier que le modèle et la version sélectionnés prennent en charge la SKU cible :
az cognitiveservices model list --location--subscription -o json Filtrez par modèle, extrayez
.model.skus[].namepour obtenir les SKU prises en charge.L’abonnement dispose d’un quota disponible — vérifiez que l’abonnement de l’utilisateur dispose d’un quota non alloué pour la combinaison SKU + modèle :
az cognitiveservices usage list --location--subscription -o json Recherchez les noms d’utilisation suivant le modèle
OpenAI.(par exemple,. OpenAI.GlobalStandard.gpt-4o).La quantité disponible est égale à la limite moins la valeur actuelle.
⚠️ Avertissement : ne présentez que les options qui satisfont aux deux vérifications. N’affichez PAS de listes de SKU codées en dur — effectuez toujours une requête de manière dynamique. Les SKU dont le quota disponible est égal à 0 doivent être affichés comme des éléments ❌ d’information, et non comme des options sélectionnables.
💡 Gestion des quotas : pour les demandes d’augmentation de quota, la surveillance de l’utilisation et le dépannage des erreurs de quota, renvoyez vers la compétence dédiée aux quotas plutôt que de reproduire ces instructions dans le corps du texte.
Prérequis
Tous les modes de déploiement nécessitent :
- L'installation et l'authentification de l'Azure CLI (
az login) - Un abonnement Azure actif avec des autorisations de déploiement
- L'ID de ressource du projet Azure AI Foundry (sinon, l’agent vous aidera à le découvrir via la variable d’environnement
PROJECT_RESOURCE_ID)
Sous-compétences
- preset/SKILL.md — Déploiement rapide dans la région optimale avec des paramètres par défaut pertinents
- customize/SKILL.md — Processus guidé interactif avec contrôle total de la configuration
- capacity/SKILL.md — Découverte de la capacité disponible dans toutes les régions et tous les projets
---
name: deploy-model
description: Creates Azure OpenAI model deployments with intelligent intent-based routing, supporting quick presets, full customization, and capacity discovery across regions and projects.
license: MIT
---
# Deploy Model
> **Scope — read this first.** This skill creates model deployments **out-of-band** via Azure CLI / MCP / portal. For azd-managed Foundry projects (those scaffolded from `azd-ai-starter-basic` or via `azd ai agent init`), declare deployments in `azure.yaml services.<name>.config.deployments[]` instead — `azd ai agent init` writes the entry from the sample manifest and `azd provision` creates the deployment through Bicep. See [foundry-agent/create/create-hosted.md](../../foundry-agent/create/create-hosted.md) for the Golden Path. Use this skill only for: (a) Foundry projects not managed by an azd project, (b) ad-hoc deployments outside the azd lifecycle.
Unified entry point for all Azure OpenAI model deployment workflows. Analyzes user intent and routes to the appropriate deployment mode.
## Quick Reference
| Mode | When to Use | Sub-Skill |
|------|-------------|-----------|
| **Preset** | Quick deployment, no customization needed | [preset/SKILL.md](preset/SKILL.md) |
| **Customize** | Full control: version, SKU, capacity, RAI policy | [customize/SKILL.md](customize/SKILL.md) |
| **Capacity Discovery** | Find where you can deploy with specific capacity | [capacity/SKILL.md](capacity/SKILL.md) |
## Intent Detection
Analyze the user's prompt and route to the correct mode:
```
User Prompt
│
├─ Simple deployment (no modifiers)
│ "deploy gpt-4o", "set up a model"
│ └─> PRESET mode
│
├─ Customization keywords present
│ "custom settings", "choose version", "select SKU",
│ "set capacity to X", "configure content filter",
│ "PTU deployment", "with specific quota"
│ └─> CUSTOMIZE mode
│
├─ Capacity/availability query
│ "find where I can deploy", "check capacity",
│ "which region has X capacity", "best region for 10K TPM",
│ "where is this model available"
│ └─> CAPACITY DISCOVERY mode
│
└─ Ambiguous (has capacity target + deploy intent)
"deploy gpt-4o with 10K capacity to best region"
└─> CAPACITY DISCOVERY first → then PRESET or CUSTOMIZE
```
### Routing Rules
| Signal in Prompt | Route To | Reason |
|------------------|----------|--------|
| Just model name, no options | **Preset** | User wants quick deployment |
| "custom", "configure", "choose", "select" | **Customize** | User wants control |
| "find", "check", "where", "which region", "available" | **Capacity** | User wants discovery |
| Specific capacity number + "best region" | **Capacity → Preset** | Discover then deploy quickly |
| Specific capacity number + "custom" keywords | **Capacity → Customize** | Discover then deploy with options |
| "PTU", "provisioned throughput" | **Customize** | PTU requires SKU selection |
| "optimal region", "best region" (no capacity target) | **Preset** | Region optimization is preset's specialty |
### Multi-Mode Chaining
Some prompts require two modes in sequence:
**Pattern: Capacity → Deploy**
When a user specifies a capacity requirement AND wants deployment:
1. Run **Capacity Discovery** to find regions/projects with sufficient quota
2. Present findings to user
3. Ask: "Would you like to deploy with **quick defaults** or **customize settings**?"
4. Route to **Preset** or **Customize** based on answer
> 💡 **Tip:** If unsure which mode the user wants, default to **Preset** (quick deployment). Users who want customization will typically use explicit keywords like "custom", "configure", or "with specific settings".
## Project Selection (All Modes)
Before any deployment, resolve which project to deploy to. This applies to **all** modes (preset, customize, and after capacity discovery).
### Resolution Order
1. **Check `PROJECT_RESOURCE_ID` env var** — if set, use it as the default
2. **Check user prompt** — if user named a specific project or region, use that
3. **If neither** — query the user's projects and suggest the current one
### Confirmation Step (Required)
**Always confirm the target before deploying.** Show the user what will be used and give them a chance to change it:
```
Deploying to:
Project: <project-name>
Region: <region>
Resource: <resource-group>
Is this correct? Or choose a different project:
1. ✅ Yes, deploy here (default)
2. 📋 Show me other projects in this region
3. 🌍 Choose a different region
```
If user picks option 2, show top 5 projects in that region:
```
Projects in <region>:
1. project-alpha (rg-alpha)
2. project-beta (rg-beta)
3. project-gamma (rg-gamma)
...
```
> ⚠️ **Never deploy without showing the user which project will be used.** This prevents accidental deployments to the wrong resource.
## Pre-Deployment Validation (All Modes)
Before presenting any deployment options (SKU, capacity), always validate both of these:
1. **Model supports the SKU** — query the model catalog to confirm the selected model+version supports the target SKU:
```bash
az cognitiveservices model list --location <region> --subscription <sub-id> -o json
```
Filter for the model, extract `.model.skus[].name` to get supported SKUs.
2. **Subscription has available quota** — check that the user's subscription has unallocated quota for the SKU+model combination:
```bash
az cognitiveservices usage list --location <region> --subscription <sub-id> -o json
```
Match by usage name pattern `OpenAI.<SKU>.<model-name>` (e.g., `OpenAI.GlobalStandard.gpt-4o`). Compute `available = limit - currentValue`.
> ⚠️ **Warning:** Only present options that pass both checks. Do NOT show hardcoded SKU lists — always query dynamically. SKUs with 0 available quota should be shown as ❌ informational items, not selectable options.
> 💡 **Quota management:** For quota increase requests, usage monitoring, and troubleshooting quota errors, defer to the [quota skill](../../quota/quota.md) instead of duplicating that guidance inline.
## Prerequisites
All deployment modes require:
- Azure CLI installed and authenticated (`az login`)
- Active Azure subscription with deployment permissions
- Azure AI Foundry project resource ID (or agent will help discover it via `PROJECT_RESOURCE_ID` env var)
## Sub-Skills
- **[preset/SKILL.md](preset/SKILL.md)** — Quick deployment to optimal region with sensible defaults
- **[customize/SKILL.md](customize/SKILL.md)** — Interactive guided flow with full configuration control
- **[capacity/SKILL.md](capacity/SKILL.md)** — Discover available capacity across regions and projects
Tous les fichiers
0 fichiersInstaller deploy-model
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
git clone https://github.com/microsoft/skills/tree/main/.github/plugins/azure-skills/skills/microsoft-foundry/models/deploy-model # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
