Outils basés sur l'intelligence artificielle pour la programmation sous Linux

Il existe plusieurs applications basées sur l'IA qui peuvent être utilisées sous Linux.

Dans le deuxième article de cette série, nous décrivons les problèmes causés par le codage vibratoire et les étapes à suivre pour mettre en œuvre une alternative bien meilleure. Dans cet article, nous parlerons des outils de programmation basés sur l'intelligence artificielle qui existent en versions Linux.

Ce que nous avons défendu dans ces articles, c'est que, contrairement à ce qu'affirment les fournisseurs de formations, les outils d'intelligence artificielle ne rendent pas l'apprentissage de la programmation superflu. Au contraire, ils le rendent encore plus indispensable. Ces outils étant plus puissants, ils nécessitent une meilleure compréhension de leur fonctionnement.

Si vous souhaitez créer une application simple sans interface graphique, comme un programme permettant à votre enfant de s'exercer à la multiplication dans le terminal Linux, la version web de votre modèle préféré suffira. En revanche, si vous prévoyez d'intégrer une interface graphique, une interaction avec des services externes et une inscription des utilisateurs, la tâche se complexifie. Heureusement, des outils existent pour vous aider.

Outils de programmation basés sur l'intelligence artificielle

La programmation assistée par intelligence artificielle implique une combinaison de connaissances et d'outils spécifiques qui interagissent avec le développeur.Cela permet à chacun de se concentrer sur l'essentiel et de déléguer les tâches routinières. Par essentiel, nous entendons identifier le problème et déterminer la meilleure solution.

Les outils auxquels nous faisons référence peuvent être des éléments de programmes installés localement, des outils autonomes qui facilitent des fonctions spécifiques, ou des plateformes de services cloud qui fournissent des solutions complètes. De l'écriture du code à l'hébergement de l'application, toutes ces méthodes utilisent un modèle de langage à grande échelle (LLM), mais de manières différentes.

Modèles, agents, compétences et MCP

Avant de commencer par la liste des outils, clarifions quelques termes qui seront utiles pour comprendre la fonction de chacun.

  • Modèles de langage à grande échelle : Ce sont des systèmes basés sur l'intelligence artificielle, entraînés avec de grandes quantités de données pour comprendre et répondre en utilisant le langage humain.
  • Agents: En intelligence artificielle, un agent est toute entité capable d'agir de manière autonome dans un environnement donné. Il peut prendre des décisions en fonction des informations qu'il reçoit de cet environnement et agir pour le modifier.
  • Compétences: Il s'agit d'un ensemble d'instructions spécialisées et réutilisables qui indiquent à l'agent comment effectuer une tâche spécifique.
  • MCP : L'acronyme Model Context Protocol désigne une norme de communication entre un modèle et des ressources de données externes.

Dans le premier article, nous avons évoqué le cas d'un développeur passionné qui a créé une application affichant une image pour illustrer la composition d'un plat de restaurant. Reprenons cet exemple pour expliquer la fonction de chaque élément mentionné.

Imaginons que le bœuf Stroganoff soit au menu. L'application devrait

  1. Consultez le menu.
  2. Trouvez les ingrédients.
  3. Générer l'image.

Le modèle peut

  • Comprenez la question.
  • Trouvez la réponse.

Mais il ne le peut pas :

  • Consultez le menu.
  • Trouver et afficher l'image

L'agent détermine qu'il a besoin

  • Effectuer une reconnaissance optique de caractères.
  • Trouvez l'image du plat.
  • Montrez-le.

Cela définit les compétences nécessaires

  • ROC.
  • Connexion aux bases de données alimentaires.
  • Afficher les images

Pour chacune de ces tâchesIl est nécessaire que les bibliothèques et/ou les interfaces de programmation d'applications utilisent un langage commun.au niveau de l'agent. C'est là que le MCP intervient.

L'avantage d'utiliser un agent plutôt que d'interagir directement avec le modèle est que nous évitons les ambiguïtés et gagnons du temps sur les instructions spécifiques à une activité particulière.

Types d'outils pour la programmation assistée par l'IA

Environnements de développement intégrés

Les environnements de développement intégrés (IDE) incluent, directement ou via des extensions, un assistant qui fournit une assistance en temps réel pour la saisie, le débogage et la révision du code. Parmi ses fonctionnalités :

  • Suggérez la prochaine ligne de code à écrire.
  • Répondez aux questions.
  • Corriger les erreurs
  • Montrez des exemples.

L'éditeur de développement intégré le plus populaire, avec ou sans intelligence artificielle, est Visual Studio Code.

Il s'agissait du premier produit Microsoft à disposer d'une version Linux et il pouvait être installé depuis le Snap Store à l'aide de la commande
sudo snap install code --classic
Ou si vous souhaitez essayer les derniers produits avant tout le monde.
sudo snap install code-insiders --classic
Bien qu'il s'agisse d'une version de développement susceptible de contenir des erreurs.

L'assistant d'intelligence artificielle de Visual Studio Code est GitHub Copilot. C'est un peu comme la fonction de saisie semi-automatique de votre téléphone, mais en beaucoup plus performant. Non seulement elle suggère comment terminer la ligne de code que vous êtes en train d'écrire, mais elle complète également la fonction que vous avez commencée à écrire en fonction du contexte, voire l'écrit pour vous. Elle peut aussi générer la fonction directement si vous saisissez ce qu'elle doit faire (par exemple, « OCR le menu »).

Bien qu'il ne permette pas de converser en langage humain comme le font les LLM, GitHub Copilot présente l'avantage que  Il s'adapte à votre style de programmation. Par exemple, si vous décidez de nommer les variables d'après les personnages des Schtroumpfs, elles suivront ce modèle.

GitHub Copilot propose une version gratuite aux fonctionnalités limitées et une version payante à 10 $ par mois qui permet d'utiliser les agents de codage d'OpenAI (ChatGPT) et de Claude.
De plus, Visual Studio Code propose des extensions permettant d'interagir avec d'autres assistants d'intelligence artificielle. Vous pouvez les installer depuis
Fichier ➡️ Préférences ➡️ Extensions et recherchez-les par nom dans la fenêtre de recherche.

Continuer.dev

Il s'agit d'une extension open source qui présente deux avantages par rapport à GitHub Copilot.

  • Nous pouvons choisir le modèle avec lequel nous voulons travailler, qu'il soit local ou dans le cloud.
  • Nous pouvons discuter en langage naturel, tout comme avec l'interface web de n'importe quel modèle.

Par exemple, « Changez les noms des variables avec des personnages des Pierrafeu ». Si les noms choisis par ChatGPT ne nous conviennent pas, nous pouvons essayer Claude.ai.

Cette extension analyse les fichiers du projet et, selon nos instructions, propose des modifications spécifiques ou génère du code adapté au contexte.
Dans le prochain article, nous continuerons à recenser les outils disponibles pour la programmation assistée par IA sous Linux.

L'utilisation d'outils d'IA crée plus de problèmes qu'elle n'en résout lors de la programmation
Article connexe:
Problèmes de codage Vibe et comment les résoudre sous Linux

L'intelligence artificielle est une aide précieuse pour les programmeurs.
Article connexe:
Du codage par l'ambiance à la programmation assistée par l'IA