GPT-5 est désormais disponible pour les développeurs via Azure AI Foundry (ancien Azure OpenAI). Vous pouvez l’utiliser depuis .NET 9 avec Azure.AI.OpenAI
ou via l’abstraction Microsoft.Extensions.AI. Les scénarios phares : agents/outillage (tool calling), structured outputs, RAG avec Azure AI Search, intégration VS Code/GitHub Copilot et contrôle entreprise (Content Safety, données UE). L’accès direct au modèle gpt-5 requiert une inscription ; gpt-5-mini/nano/chat sont plus largement accessibles. Vérifiez la disponibilité régionale et les tarifs avant déploiement.
Dans cet article
- 1) Pourquoi GPT-5 change la donne côté Microsoft
- 2) Disponibilité, variantes et régions
- 3) Où se branche GPT-5 dans l’écosystème Microsoft
- 4) Choisir sa voie d’intégration (.NET)
- 5) Démarrer en .NET 9 : chat + streaming (C#)
- 6) Tool Calling & Structured Outputs (C#)
- 7) GPT-5 RAG avec Azure AI Search (C#)
- 8) GPT-5 sécurité, gouvernance & conformité
- 9) Coûts, performance & mise à l’échelle de GPT-5
- 10) Bonnes pratiques & anti-patterns
- 11) FAQ rapide
- 12) GPT-5 ressources (officielles & utiles)
- Derniers articles
1) Pourquoi GPT-5 change la donne côté Microsoft
Microsoft annonce la disponibilité générale de GPT-5 dans Azure AI Foundry : meilleure capacité de raisonnement, outils/agents plus profonds, et intégration aux workflows développeurs (VS Code, GitHub Copilot). Microsoft Azure
2) Disponibilité, variantes et régions
La série GPT-5 comprend : gpt-5
(raisonnement « full »), gpt-5-mini
, gpt-5-nano
(latence très faible) et gpt-5-chat
. Accès : inscription requise pour gpt-5
; pas nécessaire pour gpt-5-mini/nano/chat
. Régions (au 12 août 2025) : East US 2 et Sweden Central pour la série GPT-5 (Data Zones et Global Standard selon le modèle). Pour une résidence des données UE, ciblez Sweden Central (EU Data Zone). Microsoft Learn
Note France : à la date du 25 août 2025, France Central n’expose pas encore GPT-5 ; utilisez Sweden Central pour rester en zone UE. Microsoft Learn
3) Où se branche GPT-5 dans l’écosystème Microsoft
- Azure AI Foundry : portail, API et model router pour orchestrer GPT-5 aux côtés d’autres modèles. Microsoft Azure
- VS Code & GitHub Copilot : déploiement progressif de GPT-5 pour améliorer génération/refactoring et tâches agentiques. Microsoft Azure
- Azure AI Search (ex Cognitive Search) : moteur RAG vectoriel/hybride + intégration OpenAI/Foundry. Microsoft Learn
4) Choisir sa voie d’intégration (.NET)
A. SDK Azure direct (Azure.AI.OpenAI
)
Approche « baseline » orientée Azure, idéale si vous exploitez Foundry, les déploiements, l’Entra ID (keyless), le Responses API et les extensions « On your data ». Microsoft Learn
B. Abstraction Microsoft.Extensions.AI
Interface unifiée (IChatClient
, middlewares, DI) pour brancher Azure OpenAI, OpenAI, Inference/GitHub Models, voire Ollama, avec un code quasi identique. Microsoft Learn
Recommandation : pour un produit long terme .NET 9, combinez Extensions.AI (portabilité, middlewares) + Azure.AI.OpenAI (fonctionnalités Foundry et sécurité Azure). Microsoft Learn
5) Démarrer en .NET 9 : chat + streaming (C#)
Prérequis
- Ressource Azure AI Foundry (OpenAI) en Sweden Central (UE)
- Déploiement d’un modèle
gpt-5-chat
ougpt-5-mini
- Authentification Microsoft Entra ID (recommandée), sinon clé API
- Paquets :
Azure.AI.OpenAI
,Azure.Identity
Exemple minimal (streaming)
// .NET 9 / C# 13 // dotnet add package Azure.AI.OpenAI // dotnet add package Azure.Identity using System.ClientModel; // si nécessaire selon version SDK using Azure; using Azure.AI.OpenAI; using Azure.Identity; var endpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!); // Nom du déploiement créé dans Foundry (ex: "gpt5chat-eu") var deployment = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME")!; var client = new AzureOpenAIClient(endpoint, new DefaultAzureCredential()); // Requête "chat completions" avec streaming var options = new ChatCompletionsOptions { DeploymentName = deployment, Temperature = 0.2f, // déterministe en prod MaxOutputTokenCount = 800 }; options.Messages.Add(new ChatRequestSystemMessage( "Tu es un assistant C# concis. Réponds en français.")); options.Messages.Add(new ChatRequestUserMessage( "Explique la différence entre Task et ValueTask en .NET.")); await foreach (var update in client.GetChatCompletionsStreamingAsync(options)) { if (update.ContentUpdate != null) { Console.Write(update.ContentUpdate); } } Console.WriteLine();
Pourquoi ce choix ? Le streaming améliore la perception de latence côté UI et fonctionne nativement avec le SDK Azure. L’authentification Entra ID (keyless) évite la gestion de secrets côté app. Microsoft Learn
6) Tool Calling & Structured Outputs (C#)
Les structured outputs imposent un JSON Schema que le modèle doit respecter : idéal pour extraire des entités, piloter des fonctions ou composer des workflows robustes. Combinez-les avec le tool calling pour des appels outillés fiables (météo, SQL, paiement, etc.). Microsoft Learn
// Exemple: extraire un "Contact" typé + décider d'appeler un outil "send_email" using Azure.AI.OpenAI; using System.Text.Json.Nodes; // 1) Définir le schema de sortie var contactSchema = new { type = "object", properties = new { name = new { type = "string" }, email = new { type = "string", format = "email" }, subject = new { type = "string" } }, required = new[] { "name", "email", "subject" }, additionalProperties = false }; // 2) Préparer la requête avec structured outputs + tool var opts = new ChatCompletionsOptions { DeploymentName = deployment }; opts.Messages.Add(new ChatRequestSystemMessage("Tu extrais un contact et proposes l'envoi d'un email.")); opts.Messages.Add(new ChatRequestUserMessage( "Peux-tu écrire à Marie Dupont (marie@exemple.fr) au sujet de la facture 2025 ?")); opts.ResponseFormat = ChatResponseFormat.CreateJsonSchemaFormat( jsonSchemaFormatName: "contact_schema", jsonSchema: BinaryData.FromObjectAsJson(contactSchema), jsonSchemaIsStrict: true ); // Déclarer un outil en free-form (selon SDK) ou via Tools collection opts.Tools.Add(ChatCompletionsFunctionToolDefinition.CreateFunctionTool( functionName: "send_email", functionDescription: "Envoie un email via le système interne", parameters: BinaryData.FromString("""{"type":"object","properties":{"to":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"}},"required":["to","subject","body"]}""") )); var result = await client.GetChatCompletionsAsync(opts); var choice = result.Value.Choices[0]; // 3) Lire la sortie structurée et (si présent) les appels d'outil var json = choice.Message?.Content[0].Text; // JSON strict conforme au schéma Console.WriteLine(json); foreach (var toolCall in choice.Message?.ToolCalls ?? []) { if (toolCall.FunctionName == "send_email") { // Appeler votre back-end d'envoi et renvoyer le résultat à GPT si nécessaire } }
À retenir : préférez structured outputs au « JSON mode » (plus strict), et utilisez le tool calling pour des actions auditées/tracées. Microsoft Learn
7) GPT-5 RAG avec Azure AI Search (C#)
Azure AI Search (nouveau nom d’Azure Cognitive Search) apporte index vectoriel, hybride, « semantic ranker » et tutoriels RAG officiels — parfait pour grounder GPT-5 sur vos données privées. Microsoft Learn
// RAG minimaliste: 1) récupérer des passages, 2) les injecter au prompt // dotnet add package Azure.Search.Documents using Azure.Search.Documents; using Azure.Search.Documents.Models; using Azure.AI.OpenAI; var search = new SearchClient( new Uri(Environment.GetEnvironmentVariable("AZURE_SEARCH_ENDPOINT")!), indexName: "docs-index", new Azure.AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_SEARCH_KEY")!) ); // 1) Recherche hybride (mot-clé + vectorielle si configurée) var queryText = "Politique de remboursement 2025"; var results = await search.SearchAsync<SearchDocument>(queryText, new SearchOptions { Size = 5, QueryType = SearchQueryType.Semantic }); var passages = new List<string>(); await foreach (var r in results) { passages.Add(r.Document.TryGetValue("content", out var c) ? c?.ToString() ?? "" : ""); } // 2) Composer le message système avec contextes « cités » var sys = "Tu réponds depuis les extraits fournis, cite les sources si possible."; var ctx = string.Join("\n---\n", passages.Select((p,i)=> $"[Doc {i+1}]\n{p}")); var rag = new ChatCompletionsOptions { DeploymentName = deployment, Temperature = 0 }; rag.Messages.Add(new ChatRequestSystemMessage(sys + "\n\nContexte:\n" + ctx)); rag.Messages.Add(new ChatRequestUserMessage("Quelle est la durée de rétractation ?")); var ragResp = await client.GetChatCompletionsAsync(rag); Console.WriteLine(ragResp.Value.Choices[0].Message.Content[0].Text);
Pour des pipelines RAG avancés : « agentic retrieval », vector stores, indexeurs natifs et intégrations Foundry/Prompt Flow. Microsoft Learn
8) GPT-5 sécurité, gouvernance & conformité
- Content Safety : protections natives (ex. prompt shields) sur prompts/réponses.
- Évaluation & télémétrie : métriques qualité/sécurité en temps réel vers Azure Monitor/App Insights ; intégrations Purview/Defender.
- Data Zones : choisissez EU Data Zone (Sweden Central) pour la résidence des données.
Ces mécanismes sont mis en avant pour GPT-5 dans Foundry et complétés par vos politiques internes. Microsoft Azure
9) Coûts, performance & mise à l’échelle de GPT-5
- Tarification Azure OpenAI : consultez la page officielle (les SKUs GPT-5 peuvent apparaître avec décalage après l’annonce GA). Évitez d’« hardcoder » des prix. Microsoft AzureMicrosoft Learn
- Tarification OpenAI (directe) : si vous utilisez OpenAI hors Azure, référez-vous à la page pricing (GPT-5/mini/nano). OpenAI
- Optimisation : batching, cache d’entrées,
temperature
faible en prod, model router dans Foundry pour équilibrer coût/perf selon tâche. Microsoft Azure
10) Bonnes pratiques & anti-patterns
À faire
- Préférer Entra ID (keyless) + Managed Identity en prod
- Limiter le contexte (chunking + citations) ; vérifier tokens max par modèle
- Utiliser structured outputs pour les intégrations critiques
- Mettre des guardrails : Content Safety, filtres, tests automatiques
- Évaluer vos prompts avec Microsoft.Extensions.AI.Evaluation dans vos pipelines CI/CD Microsoft Learn
À éviter
- Tout passer par
temperature
élevée en prod - Injecter des secrets en clair
- Mélanger régions/ressources sans contrainte de résidence
- Rely uniquement sur le « JSON mode » au lieu de structured outputs Microsoft Learn
11) FAQ rapide
GPT-5 est-il dispo en France Central ?
Pas à la date du 25 août 2025. Utilisez Sweden Central (EU Data Zone) pour rester en UE. Microsoft Learn
Faut-il s’inscrire ?
Oui, pour gpt-5
(raisonnement « full »). Les variantes gpt-5-mini/nano/chat
sont plus largement disponibles. Microsoft Learn
Copilot/VS Code bénéficient-ils de GPT-5 ?
Oui, Microsoft a communiqué sur un déploiement dans GitHub Copilot/VS Code pour améliorer raisonnement et refactoring. Microsoft Azure
Je débute : SDK Azure direct ou Microsoft.Extensions.AI ?
Commencez par Extensions.AI pour la portabilité/middlewares, tout en gardant Azure.AI.OpenAI
pour les fonctions spécifiques Foundry. Microsoft Learn
Semantic Kernel a toujours un intérêt ?
Oui : orchestration/agents, plans, connecteurs… complémentaire à Extensions.AI selon vos besoins. Microsoft Learn GitHub
12) GPT-5 ressources (officielles & utiles)
- Annonce Azure AI Foundry (GPT-5 GA) : vue d’ensemble, sécurité, model router. Microsoft Azure
- Tableau des modèles & régions (MS Learn) : série GPT-5, Data Zones, capacités. Microsoft Learn
- Quickstart Chat & Auth Entra ID (.NET) : code, streaming, bonnes pratiques. Microsoft Learn
- Structured Outputs & Function Calling : concevoir des schémas/ outils robustes. Microsoft Learn
- Microsoft.Extensions.AI (docs) :
IChatClient
, middlewares, DI. Microsoft Learn - Azure AI Search (RAG) : rename, concepts, quickstarts. Microsoft Learn