{"id":447286,"date":"2024-02-22T16:29:48","date_gmt":"2024-02-22T15:29:48","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=447286"},"modified":"2025-09-16T12:40:40","modified_gmt":"2025-09-16T11:40:40","slug":"creer-des-prompts-d-ia-personnalises","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/fr\/dotnet\/2024\/02\/22\/creer-des-prompts-d-ia-personnalises\/","title":{"rendered":"Cr\u00e9er des prompts d&#8217;IA personnalis\u00e9s"},"content":{"rendered":"<p>Le recours \u00e0 l&#8217;IA s&#8217;est rapidement r\u00e9pandu dans le secteur du d\u00e9veloppement de logiciels, d&#8217;o\u00f9 une demande croissante d&#8217;informations sur les bonnes pratiques en vue de tirer le meilleur parti de cette technologie pour la r\u00e9alisation de t\u00e2ches quotidiennes. Dans cet article, nous allons voir comment <strong>\u00e9crire des prompts personnalis\u00e9s \u00e0 utiliser avec l&#8217;AI Assistant de JetBrains dans les IDE ReSharper et Rider<\/strong>, qui vous permettront de tirer le meilleur parti de l&#8217;IA.\u00a0<\/p>\n<h2 class=\"wp-block-heading\">Prompts\u00a0: comment favoriser la pertinence des r\u00e9ponses de l&#8217;IA<\/h2>\n<p>Les prompts sont des requ\u00eates ou instructions \u00e9crites envoy\u00e9es \u00e0 une IA en vue d&#8217;obtenir une r\u00e9ponse ou un r\u00e9sultat. L&#8217;IA utilise le traitement du langage naturel (NLP) dans les prompts afin qu&#8217;ils g\u00e9n\u00e8rent des interactions semblables \u00e0 des conversations entre deux personnes. Les outils d&#8217;IA acceptent vos requ\u00eates et les transmettent \u00e0 un LLM (Large Language Model) qui vous r\u00e9pond.\u00a0\u00a0<\/p>\n<p>En tant que d\u00e9veloppeurs, nous savons que les <strong>ordinateurs prennent nos instructions au pied de la lettre<\/strong>. Lorsque notre code ne correspond pas aux besoins de l&#8217;utilisateur, cela cr\u00e9e un bug. L&#8217;ordinateur n&#8217;est pas en cause, il fait ce que l&#8217;on lui demande, c&#8217;est le programmeur qui est fautif. De la m\u00eame fa\u00e7on, <strong>lorsque vous cr\u00e9ez un prompt, vous devez \u00eatre pr\u00e9cis<\/strong>. Pour que l&#8217;IA puisse effectuer correctement la t\u00e2che souhait\u00e9e, il est n\u00e9cessaire que <strong>les requ\u00eates et commandes soient formul\u00e9es de mani\u00e8re claire et pertinente dans les prompts.<\/strong>\u00a0<\/p>\n<p>Les outils d&#8217;IA s&#8217;appuyant fortement sur le contexte pour accomplir leurs t\u00e2ches, il est essentiel d&#8217;y pr\u00eater une attention particuli\u00e8re. Le contexte consiste tout d&#8217;abord dans le projet en cours : l&#8217;ensemble des fichiers et des ressources que votre projet contient. \u00c0 cela s&#8217;ajoute l&#8217;historique du chat et les connaissances g\u00e9n\u00e9rales de l&#8217;IA concernant le probl\u00e8me \u00e0 traiter. Vous pouvez \u00e9galement inclure d&#8217;autres informations contextuelles dans les prompts. Par exemple, vous pouvez r\u00e9p\u00e9ter une commande pr\u00e9c\u00e9dente ou utiliser des informations provenant d&#8217;une partie pr\u00e9c\u00e9dente de la conversation. <strong>La technique \u00ab d&#8217;interactivit\u00e9 des prompts \u00bb, bas\u00e9e sur un processus d&#8217;affinement et d&#8217;am\u00e9lioration it\u00e9ratif des prompts, permet d&#8217;\u00e9tablir un \u00e9change en mode conversationnel avec l&#8217;IA.\u00a0<\/strong><\/p>\n<p>Imaginons que souhaitiez apprendre \u00e0 jouer au tennis en vue de participer \u00e0 des comp\u00e9titions alors que vous n&#8217;avez encore jamais pris un seul cours. Vous pourriez demander \u00ab Comment participer \u00e0 un tournoi national de tennis ? \u00bb puisque c&#8217;est votre objectif final, mais dans ce cas, l&#8217;IA fera probablement la m\u00eame d\u00e9duction qu&#8217;un humain : ce type de question laisse entendre que vous savez jouer au tennis et avez d\u00e9j\u00e0 particip\u00e9 \u00e0 des tournois locaux. Les donn\u00e9es renvoy\u00e9es vous expliqueront donc comment vous inscrire \u00e0 un tournoi national, mais pas comment acqu\u00e9rir les comp\u00e9tences pour jouer \u00e0 ce niveau. Vous obtenez cette r\u00e9ponse car vous avez omis de mentionner des \u00e9l\u00e9ments de contexte importants. Reformuler votre requ\u00eate en disant \u00ab Je veux participer \u00e0 des comp\u00e9titions de tennis. Je n&#8217;ai jamais jou\u00e9 au tennis auparavant. Que dois-je faire pour atteindre un niveau me permettant de participer \u00e0 un tournoi national ? \u00bb devrait produire de meilleurs r\u00e9sultats, car vous fournissez des informations contextuelles plus pertinentes. L&#8217;<strong>IA \u00e9tant entra\u00een\u00e9e \u00e0 partir de donn\u00e9es bas\u00e9es sur des interactions humaines<\/strong>, elle applique la m\u00eame logique que les humains \u00e0 de nombreux \u00e9gards.<\/p>\n<p>L&#8217;une des meilleures fa\u00e7ons de d\u00e9velopper le contexte est de mettre l&#8217;IA au d\u00e9fi. Demandez lui \u00ab Pourquoi penses-tu cela ? \u00bb ou \u00ab Sur quoi bases-tu ta r\u00e9ponse ? \u00bb pour voir quels sont les r\u00e9sultats. Quoi qu&#8217;il en soit, il est recommand\u00e9 de toujours traiter les r\u00e9ponses de l&#8217;IA avec pr\u00e9caution. Certains LLM ont tendance \u00e0 fournir des r\u00e9ponses longues, mais leur demander de rester concis peut aider \u00e0 obtenir des retours plus clairs. D&#8217;autre part, vous pouvez aussi corriger et clarifier vos prompts en fonction des r\u00e9ponses de l&#8217;IA. Si elle vous a mal compris, vous pouvez simplement lui indiquer pourquoi et poursuivre.<\/p>\n<h2 class=\"wp-block-heading\">Cr\u00e9er un prompt basique<\/h2>\n<p>Plusieurs approches sont possibles pour cr\u00e9er un prompt. Ouvrez l&#8217;AI Assistant de ReSharper pour commencer la conversation. Vous pouvez aussi appeler l&#8217;AI Assistant \u00e0 partir d&#8217;un bloc de code mis en \u00e9vidence, comme ci-dessous\u00a0:\u00a0<\/p>\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-437929\" style=\"width: 800px;\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/rs-ai-prompting-altenter.png\" alt=\"L'image montre du code s\u00e9lectionn\u00e9 dans l'IDE et le menu contextuel de l'AI Assistant. Le menu propose plusieurs options pour l'IA, parmi lesquelles envoyer ce bloc de code au chat, expliquer le bloc de code, ou encore le refactoriser.\" width=\"1612\" height=\"758\" \/><\/figure>\n<p><strong>Send to new chat<\/strong> cr\u00e9e un contexte pour le chat et envoie le code mis en \u00e9vidence au chat de l&#8217;<strong>AI Assistant<\/strong>. Ajoutez vos informations au prompt et envoyez-le. Lorsque vous avez obtenu une r\u00e9ponse, vous pouvez utiliser le prompting interactif afin de finaliser l&#8217;ex\u00e9cution de votre t\u00e2che.<\/p>\n<p>Dans l&#8217;exemple suivant, l&#8217;<strong>AI Assistant<\/strong> a \u00e9t\u00e9 sollicit\u00e9 pour cr\u00e9er \u00e0 la fois un JSON valide et des classes C# \u00e0 partir de la cha\u00eene de valeurs. Comme vous pouvez le voir, la r\u00e9ponse est assez basique. Le JSON consiste en un simple tableau et la classe contient un objet <code>List<\/code> pour contenir ces valeurs.\u00a0<\/p>\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-437941\" style=\"width: 800px;\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/query-json2.png\" alt=\"Illustration de la fen\u00eatre de chat de l'AI Assistant et du bloc de code qui lui est envoy\u00e9 via l'action d'intention de l'IA (Alt+Entr\u00e9e). Le code JSON r\u00e9sultant est \u00e9galement affich\u00e9 sous forme de tableau.\" width=\"1742\" height=\"2101\" \/><\/figure>\n<p>En g\u00e9n\u00e9ral, nous souhaitons que nos mod\u00e8les ressemblent le plus possible aux structures de donn\u00e9es avec lesquelles nous travaillons. Avec le prompting interactif, nous pouvons ajouter des instructions pour rendre notre classe plus compatible avec Entity Framework, comme dans l&#8217;exemple ci-dessous\u00a0:<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-437953\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/query-ef-core.png\" alt=\"L'image montre la sortie de la requ\u00eate d'IA demandant de modifier le code pour utiliser EF Core. On peut voir une classe TemperatureData avec un Id et une liste de types de Temperature. Elle affiche \u00e9galement une classe Temperature individuelle avec Id et Name des membres, ainsi que de br\u00e8ves descriptions du code.\" width=\"1152\" height=\"1600\" \/><\/figure>\n<p>Comme le chat IA le sugg\u00e8re, les anciennes versions d&#8217;EF Core ne prennent pas en charge les collections de types primitifs, contrairement \u00e0 <a href=\"https:\/\/learn.microsoft.com\/en-us\/ef\/core\/what-is-new\/ef-core-8.0\/whatsnew#primitive-collections\" target=\"_blank\" rel=\"noopener\">EF Core 8<\/a>. Ceci est un bon exemple d&#8217;<strong>interaction entre votre expertise et le prompting<\/strong>. En omettant de bien examiner les r\u00e9sultats fournis par l&#8217;IA, vous prenez le risque que quelqu&#8217;un essaye d&#8217;appliquer ce code \u00e0 une base de code plus ancienne o\u00f9 il ne fonctionnerait pas. <strong>V\u00e9rifiez toujours attentivement les r\u00e9ponses obtenues, quel que soit l&#8217;outil d&#8217;IA que vous utilisez.<\/strong><\/p>\n<p>Vous pouvez poursuivre avec les prompts pour demander la modification du code JSON afin de le rendre plus proche du mod\u00e8le. L&#8217;IA r\u00e9pond avec une liste de temp\u00e9ratures dans un tableau de donn\u00e9es de temp\u00e9rature.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-437965\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/json-results-from-ai.png\" alt=\"Image de JSON devant correspondant \u00e0 la classe. \" width=\"957\" height=\"1600\" \/><\/figure>\n<p>Vous pouvez continuer de modifier les prompts en fonction des r\u00e9sultats jusqu&#8217;\u00e0 obtenir exactement ce que vous souhaitez.<\/p>\n<p><strong>Remarque<\/strong>\u00a0: la <strong>fen\u00eatre d&#8217;outils AI Assistant<\/strong> n&#8217;apporte aucunes modifications au contenu de l&#8217;\u00e9diteur. Lorsque vous utilisez des actions qui produisent du code, ce code s&#8217;affiche dans la fen\u00eatre de l&#8217;AI Assistant. et vous devez cr\u00e9er les fichiers requis et copier la sortie.\u00a0<\/p>\n<h2 class=\"wp-block-heading\">Sauvegarder des prompts personnalis\u00e9s<\/h2>\n<p>Maintenant que vous avez cr\u00e9\u00e9 des prompts de qualit\u00e9, vous pouvez les enregistrer afin de pouvoir les r\u00e9utiliser. Ils peuvent aussi \u00eatre utiles pour cr\u00e9er du contexte pour des requ\u00eates avanc\u00e9es. ReSharper et Rider comportent tous les deux une biblioth\u00e8que de prompts pour stocker vos prompts personnalis\u00e9s. <strong>Le stockage de ces prompts dans votre biblioth\u00e8que vous permet de conserver les \u00ab\u00a0macros d&#8217;IA\u00a0\u00bb pour des t\u00e2ches courantes<\/strong>, comme\u00a0:<\/p>\n<ul>\n<li>Instructions d&#8217;int\u00e9gration<\/li>\n<li>Explications du code<\/li>\n<li>D\u00e9placement et transformation de donn\u00e9es ou de code<\/li>\n<li>\u00c9crire ou clarifier des messages de commits<\/li>\n<li>Et bien plus\u2026<\/li>\n<\/ul>\n<p>Plusieurs des actions de l&#8217;IDE proposent une option d&#8217;enregistrement de prompts dans la biblioth\u00e8que. Par exemple, l&#8217;utilisation de l&#8217;<strong>AI Assistant<\/strong> avec <code>Alt+Entr\u00e9e<\/code> r\u00e9v\u00e8le des prompts qui sont imm\u00e9diatement disponibles, comme\u00a0:<\/p>\n<ul>\n<li>Explain this\u2026<\/li>\n<li>Find issues in\u2026<\/li>\n<li>Refactor this\u2026<\/li>\n<li>Is this model complete?<\/li>\n<\/ul>\n<p>Vous pouvez personnaliser ces prompts et en ajouter les nouvelles versions dans la biblioth\u00e8que ou cr\u00e9er votre propre biblioth\u00e8que \u00e0 partir de prompts que vous avez cr\u00e9\u00e9s. Pour cr\u00e9er un prompt, utilisez le jeton <code>$SELECTION<\/code> pour repr\u00e9senter le bloc de code que l&#8217;AI Assistant doit utiliser comme espace r\u00e9serv\u00e9 pour la partie de la requ\u00eate qui est envoy\u00e9e au LLM.<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/pasted-image-0.png\" alt=\"\" \/><\/figure>\n<p>Pendant la cr\u00e9ation de votre prompt personnalis\u00e9, vous pouvez utiliser l&#8217;IA pour l&#8217;am\u00e9liorer. C&#8217;est un peu comme une \u00ab\u00a0Promptception\u00a0\u00bb.<strong> Lorsque votre \u00e9quipe dispose d&#8217;un bon ensemble de prompts, vous pouvez automatiser certaines t\u00e2ches qui seraient normalement effectu\u00e9es manuellement<\/strong>, telles que la cr\u00e9ation de classes bas\u00e9es sur JSON ou un sch\u00e9ma de base de donn\u00e9es, la g\u00e9n\u00e9ration de tests ou tout autre travail dont vous souhaitez vous d\u00e9charger.<\/p>\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<p><strong>Aujourd&#8217;hui, il est essentiel pour les d\u00e9veloppeurs d&#8217;int\u00e9grer l&#8217;IA dans leurs processus de travail au quotidien, tant au niveau individuel que pour les \u00e9quipes.<\/strong> <strong>L&#8217;AI Assistant de JetBrains<\/strong> offre une solution simple et rapide pour utiliser l&#8217;IA de fa\u00e7on efficace et pr\u00e9cise dans le code. Gardez en t\u00eate que la pertinence des prompts et l&#8217;examen des r\u00e9ponses fournies sont deux \u00e9l\u00e9ments cruciaux pour tirer pleinement parti de l&#8217;IA. Si vous cr\u00e9ez des prompts trop vagues ou non compr\u00e9hensibles par l&#8217;humain, il est fort probable que l&#8217;IA ne puisse pas les comprendre non plus et vous n&#8217;obtiendrez pas les r\u00e9sultats attendus. De m\u00eame, si l&#8217;IA renvoie des informations incorrectes, vous devez \u00eatre en mesure de le d\u00e9tecter et de comprendre pourquoi. Continuez de d\u00e9velopper vos comp\u00e9tences pour profiter des avantages de l&#8217;IA et essayez l&#8217;<strong>AI Assistant de JetBrains<\/strong> pour d\u00e9couvrir tout ce qu&#8217;il peut vous apporter.<\/p>\n\n\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":441717,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,1401],"tags":[1969,6847,8168,1661,46,1978],"cross-post-tag":[8396],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/447286"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=447286"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/447286\/revisions"}],"predecessor-version":[{"id":607065,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/447286\/revisions\/607065"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/441717"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=447286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=447286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=447286"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=447286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}