Construire des applications intelligentes avec .NET et DeepSeek R1, par Matt Soucoup, Principal Cloud Developer Advocate chez Microsoft

Voici comment utiliser la biblioth�que Microsoft.Extensions.AI (MEAI) avec DeepSeek R1 sur GitHub Models afin que vous puissiez commencer � exp�rimenter avec le mod�le R1 d�s aujourd'hui.

Fin janvier 2025, le laboratoire d'IA chinois DeepSeek a publi� une version open source de DeepSeek-R1, son mod�le de raisonnement, qui serait aussi performant que le mod�le o1 d'OpenAI sur certains crit�res d'�valuation de l'IA. R1 est disponible sur la plateforme de d�veloppement d'IA Hugging Face sous licence MIT, ce qui signifie qu'il peut �tre utilis� commercialement sans restrictions.

Voici comment cr�ez des applications intelligentes avec .NET et DeepSeek R1. Pour rappel, la plateforme .NET (prononc�e "dot net") est un cadre logiciel open source et gratuit pour les syst�mes d'exploitation Windows, Linux et macOS. Le projet est principalement d�velopp� par les employ�s de Microsoft par l'interm�diaire de la Fondation .NET et est publi� sous licence MIT.

Le mod�le DeepSeek R1 a fait l'objet d'une attention particuli�re ces derniers temps. L'une des questions que l'on nous pose est la suivante : "Puis-je utiliser DeepSeek dans mes applications .NET ?" La r�ponse est oui ! Je vais vous expliquer comment utiliser la biblioth�que Microsoft.Extensions.AI (MEAI) avec DeepSeek R1 sur GitHub Models afin que vous puissiez commencer � exp�rimenter avec le mod�le R1 d�s aujourd'hui.


MEAI facilite l'utilisation des services d'IA

La biblioth�que MEAI fournit un ensemble d'abstractions unifi�es et d'intergiciels pour simplifier l'int�gration des services d'IA dans les applications .NET.

En d'autres termes, si vous d�veloppez votre application avec MEAI, votre code utilisera les m�mes API quel que soit le mod�le que vous d�cidez d'utiliser "sous la couverture". Cela r�duit la friction n�cessaire � la cr�ation d'une application d'IA .NET, car vous n'aurez qu'� vous souvenir de la fa�on de faire d'une seule biblioth�que (MEAI), quel que soit le service d'IA que vous utilisez.

Et pour MEAI, l'interface principale que vous utiliserez est IChatClient.


Discutons avec DeepSeek R1

GitHub Models vous permet d'exp�rimenter une tonne de mod�les d'IA diff�rents sans avoir � vous soucier de l'h�bergement. C'est un excellent moyen de commencer � d�velopper l'IA gratuitement. Et GitHub Models est mis � jour en permanence avec de nouveaux mod�les, comme le R1 de DeepSeek.

Nom : 1.jpg
Affichages : 87606
Taille : 36,5 Ko

L'application de d�monstration que nous allons construire est une simple application console et elle est disponible sur GitHub � codemillmatt/deepseek-dotnet. Vous pouvez la cloner ou la forker pour la suivre, mais nous parlerons �galement des �l�ments importants ci-dessous.

Tout d'abord, prenons soin de quelques pr�requis :

  1. Rendez-vous sur GitHub et g�n�rez un jeton d'acc�s personnel (PAT). Ce jeton sera votre cl� d'acc�s aux mod�les GitHub. Suivez ces instructions pour cr�er le PAT. Vous aurez besoin d'un jeton classique.

  2. Ouvrez le projet DeepSeek.Console.GHModels. Vous pouvez ouvrir la solution compl�te dans Visual Studio ou seulement le dossier du projet si vous utilisez VS Code.

  3. Cr�ez une nouvelle entr�e de secrets d'utilisateur pour le GitHub PAT. Nommez-la GH_TOKEN et collez le PAT que vous avez g�n�r� comme valeur.


Maintenant, explorons un peu le code :

  1. Ouvrez le fichier Program.cs dans le projet DeepSeek.Console.GHModels.

  2. Les deux premi�res choses � remarquer sont l'initialisation des variables modelEndpoint et modelName. Ces variables sont standard pour le service GitHub Models, elles seront toujours les m�mes.

  3. Maintenant, la partie amusante ! Nous allons initialiser notre client de chat. C'est ici que nous allons nous connecter au mod�le DeepSeek R1.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    IChatClient client = new ChatCompletionsClient(modelEndpoint, new AzureKeyCredential(Configuration["GH_TOKEN"])).AsChatClient(modelName);


    Ceci utilise le package Microsoft.Extensions.AI.AzureAIInference pour se connecter au service GitHub Models. Mais la fonction AsChatClient renvoie une impl�mentation de IChatClient. Et �a, c'est super cool. Car quel que soit le mod�le que nous choisissons dans GitHub Models, nous �crirons toujours notre application avec l'interface IChatClient !

  4. Ensuite, nous passons notre question, ou notre invite, au mod�le. Et nous allons nous assurer que nous obtenons une r�ponse en continu, de cette fa�on nous pouvons l'afficher au fur et � mesure qu'elle arrive.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    var response = client.CompleteStreamingAsync(question);
     
    await foreach (var item in response)
    {
        Console.Write(item);
    }


Voil�, c'est fait ! Allez-y et ex�cutez le projet. Il se peut que la r�ponse mette quelques secondes � arriver (beaucoup de gens sont en train d'essayer le mod�le !). Vous remarquerez que la r�ponse n'est pas la m�me que celle d'un chatbot "normal". DeepSeek R1 est un mod�le de raisonnement, il veut donc comprendre et raisonner � travers les probl�mes. La premi�re partie de la r�ponse sera son raisonnement et sera d�limit�e par \<think> et est assez int�ressante. La deuxi�me partie de la r�ponse sera la r�ponse � la question que vous avez pos�e.

Voici un exemple partiel de r�ponse :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
<think>
Okay, let's try to figure this out. The problem says: If I have 3 apples and eat 2, how many bananas do I have? Hmm, at first glance, that seems a bit confusing. Let me break it down step by step.
 
So, the person starts with 3 apples. Then they eat 2 of them. That part is straightforward. If you eat 2 apples out of 3, you'd have 1 apple left, right? But then the question shifts to bananas. Wait, where did bananas come from? The original problem only mentions apples. There's no mention of bananas at all.
 
...


Dois-je utiliser les mod�les GitHub ?

Vous n'�tes pas limit� � ex�cuter DeepSeek R1 sur GitHub Models. Vous pouvez l'ex�cuter sur Azure ou m�me localement (ou sur GitHub Codespaces) � travers Ollama. J'ai fourni 2 applications console suppl�mentaires dans le d�p�t GitHub qui vous montrent comment le faire.

La plus grande diff�rence entre la version GitHub Models est l'endroit o� le mod�le DeepSeek R1 est d�ploy�, les informations d'identification que vous utilisez pour vous y connecter, et le nom sp�cifique du mod�le.

Si vous d�ployez sur Azure AI Foundry, le code est exactement le m�me. Voici quelques instructions sur la fa�on de d�ployer le mod�le DeepSeek R1 dans Azure AI Foundry.

Si vous souhaitez ex�cuter localement sur Ollama, nous avons fourni une d�finition de devcontainer que vous pouvez utiliser pour ex�cuter Ollama dans Docker. Il r�cup�rera automatiquement une petite version param�tr�e de DeepSeek R1 et la d�marrera pour vous. La seule diff�rence est que vous utiliserez le package NuGet Microsoft.Extensions.AI.Ollama et initialiserez le IChatClient avec le OllamaChatClient. L'interaction avec DeepSeek R1 est la m�me.

Note : Si vous ex�cutez cette op�ration dans un espace de code GitHub, le d�marrage prendra quelques minutes et vous utiliserez environ 8 Go d'espace - soyez donc vigilant en fonction de votre plan d'espace de code.

Bien entendu, il s'agit de simples applications Console. Si vous utilisez .NET Aspire, il est facile d'utiliser Ollama et DeepSeek R1. Gr�ce � l'int�gration d'Ollama dans la bo�te � outils communautaire .NET Aspire, il vous suffit d'ajouter une ligne et le tour est jou� !

Code : S�lectionner tout - Visualiser dans une fen�tre � part
var chat = ollama.AddModel("chat", "deepseek-r1");


R�sum�

DeepSeek R1 est un nouveau mod�le de raisonnement passionnant qui attire beaucoup d'attention et vous pouvez construire des applications .NET qui l'utilisent d�s aujourd'hui en utilisant la biblioth�que Microsoft.Extensions.AI. Les mod�les GitHub r�duisent la friction pour commencer et l'exp�rimenter. Allez-y et essayez les �chantillons et consultez nos autres �chantillons MEAI !


Source : "Build Intelligent Apps with .NET and DeepSeek R1 Today!"

Et vous ?

Pensez-vous que cette m�thode est cr�dible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Microsoft h�berge d�sormais "R1" sur Azure AI et GitHub : OpenAI accuse le chinois DeepSeek d'avoir copi� ses donn�es pour former son mod�le d'IA, son plus grand bailleur de fonds ne l'a pas retir�e pour autant

Microsoft annonce .NET 9 et apporte des am�liorations radicales � l'ensemble de la pile .NET qu'il s'agisse des langages de programmation, des outils de d�veloppement ou des charges de travail