Comment faire ami-ami entre C# et ChatGPT : guide complet d'intégration
\n\nImaginez : votre application en C# se met soudainement non seulement à exécuter des commandes, mais à mener un dialogue pertinent, écrire du code, traduire des textes ou générer des idées. Cela semble fantastique ? C'est pourtant déjà une réalité grâce à l'intégration de l'API ChatGPT en C#. Aujourd'hui, je vais vous montrer comment transformer en 15 minutes un simple programme console en assistant intelligent. C'est parti !
\n\nOpenAI fournit une API REST puissante qui s'entend parfaitement avec .NET. Vous n'avez besoin d'aucun SDK tiers — un simple HttpClient standard et quelques bibliothèques pour travailler avec JSON suffisent. Tout le processus se résume en quatre étapes : obtenir une clé, envoyer une requête, analyser la réponse, se réjouir du résultat.
De quoi avons-nous besoin pour commencer
\n\nAvant d'écrire du code, préparons l'environnement. Vous aurez besoin de :
\n\n- \n
- Visual Studio 2022 ou JetBrains Rider (mais un simple .NET SDK + bloc-notes suffit aussi) \n
- .NET 6.0 ou supérieur (j'utilise .NET 8 — il est plus rapide) \n
- Clé API OpenAI — inscrivez-vous sur platform.openai.com, allez dans la section API Keys et créez une nouvelle clé secrète. Attention : la première fois, ils donnent 5 $ pour les tests, mais n'oubliez pas les limites ! \n
- Bibliothèque Newtonsoft.Json ou System.Text.Json (intégrée dans .NET, mais je préfère Newtonsoft — elle est plus claire) \n
Vous pouvez installer Newtonsoft.Json via NuGet : Install-Package Newtonsoft.Json ou via le gestionnaire de paquets dans Visual Studio.
Création de la première requête vers ChatGPT en C#
\n\nCommençons simplement : envoyons un message au modèle et obtenons une réponse. Toute la magie opère via une requête POST vers le point de terminaison https://api.openai.com/v1/chat/completions.
Voici le code fonctionnel minimal que je recommande de conserver comme point de départ :
\n\nusing System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\n\nclass Program\n{\n private static readonly string apiKey = "VOTRE_CLÉ_ICI"; // Ne la montrez à personne !\n private static readonly string endpoint = "https://api.openai.com/v1/chat/completions";\n\n static async Task Main(string[] args)\n {\n var client = new HttpClient();\n client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");\n\n var requestBody = new\n {\n model = "gpt-3.5-turbo",\n messages = new[]\n {\n new { role = "user", content = "Raconte une blague sur les programmeurs" }\n },\n temperature = 0.7,\n max_tokens = 150\n };\n\n var json = JsonConvert.SerializeObject(requestBody);\n var content = new StringContent(json, Encoding.UTF8, "application/json");\n\n var response = await client.PostAsync(endpoint, content);\n var responseString = await response.Content.ReadAsStringAsync();\n\n var responseObject = JObject.Parse(responseString);\n var reply = responseObject["choices"][0]["message"]["content"].ToString();\n\n Console.WriteLine("ChatGPT dit :");\n Console.WriteLine(reply);\n }\n}\n\n\nVous lancez — et la console affiche quelque chose comme : « Pourquoi les programmeurs confondent-ils Halloween et Noël ? Parce que Oct 31 == Dec 25 ! ». Drôle ? Ça marche ? Parfait !
\n\nAnalyse du code en détail
\n\nVoyons ce qui se passe ici. Nous créons un HttpClient, ajoutons un en-tête d'autorisation — c'est une pratique standard pour travailler avec l'API OpenAI en C#. Le corps de la requête est un objet JSON avec les paramètres :
- \n
- model : nous spécifions le modèle.
gpt-3.5-turboest le juste milieu entre prix et qualité. Pour des tâches complexes, prenezgpt-4, mais préparez-vous à payer plus. \n Blogs
Book Recommendations
Lire aussi
Injection de Dépendances en JavaScript : Guide Complet avec Exemples
Initialisation d'une Map statique en Java : guide pour les distraits
JavaScript à partir de zéro : par où commencer en 2025 — guide pour débutants
CI/CD pour projets Java : GitHub Actions
Traitement des mégadonnées en C# : de LINQ aux flux parallèles