Développer avec l’IA (Ollama / Continue)

S’il est un sujet d’actualité, c’est bien tout ce qui tourne autour de l’IA, surtout en 2024.

Google a présenté ses sujets autour de l’I/O, Apple prépare sa keynote pour le mois de Juin.

Bref, tout le monde en parle, tout le monde s’y met.

Mais comment utiliser l’IA dans notre métier de développeur ? Si je ne pense pas personnellement que l’IA nous remplacera, elle reste aujourd’hui un outil sur lequel il faut s’appuyer pour coder et augmenter notre productivité.

 

Nous allons voir ici quelques possibilités qu’apportent les LLM dans notre quotidien en l’intégrant dans nos outils de développement :

  • Commentaire de code
  • Bug fix / erreur de syntaxe
  • Optimisation de code source
  • Explication de code
  • Génération de message de commit

Installation d’Ollama et installation d’un modèle

Installation d'Ollama

Ollama est un outil facile à utiliser, conçu pour faire fonctionner des modèles de langage de grande taille (LLM) directement et localement sur votre ordinateur. Il est à la fois rapide et léger.

Pour l’installer il faut se rendre sur le site d’Ollama.

Comme je suis sur Mac OS, je vais juste l’installer à l’aide de brew:

brew install ollama

Une fois installé, il faut installer un LLM sur la machine.

Pour cela nous allons récupérer LLaMA 3 (Large Language Model Meta AI) qui est une famille de modèles de langage développée par Meta (anciennement Facebook).

Le modèle est récent (à l’heure où j’écris ces lignes), très performant et demande peu de ressources. Ouvrez votre terminal, puis tapez :

ollama pull llama3

Vous pouvez démarrer le chatbot en saisissant ollama run llama3 mais nous allons voir comment l’intégrer dans l’IDE Visual Studio Code à l’aide de Continue.

Installation de Continue dans Visual Studio Code

Dans VS Code, utiliser SHIFT + CMD + X pour accéder aux extensions (ou menu Préférences / Extensions), puis taper Continue.

Puis installer l’extension.

 

Continue

Il faut pour finir la configuration cliquer sur ‘Add a model’ puis ‘Ollama’ puis ‘Autodetect’.

Dans la liste du panel, ‘Llama3’ devrait être sélectionné.

Si ce n’est pas le cas, sélectionnez le.

Installation complète Continue +/ Ollama

Utilisation du LLM dans le code

Génération de commentaires automatiques

S’il y a une tâche ennuyeuse mais néanmoins indispensable, c’est celle de commenter notre code.

Commenter du code est une pratique essentielle dans le développement de logiciels pour plusieurs raisons :

  1. Clarté et compréhension : Les commentaires aident à expliquer ce que fait le code, surtout dans les sections complexes ou non évidentes. Ils facilitent la compréhension pour les autres développeurs qui peuvent lire ou maintenir le code à l’avenir.
  2. Maintenance : Le code évolue avec le temps, et des commentaires bien placés peuvent aider les développeurs à se souvenir de la logique ou de l’intention derrière certaines décisions de conception. Cela rend la maintenance et les mises à jour plus efficaces.
  3. Collaboration : Dans des environnements de développement collaboratif, les commentaires permettent aux membres de l’équipe de comprendre rapidement la fonctionnalité et la structure du code, ce qui améliore la communication et la coopération.
  4. Documentation : Les commentaires servent de documentation intégrée, expliquant l’utilisation des fonctions, des classes, et des modules, ainsi que les paramètres et les retours attendus.
  5. Dépannage et débogage : Lorsqu’un problème survient, les commentaires peuvent fournir des indices sur la logique initiale du code, aidant ainsi à identifier et à corriger les erreurs plus rapidement.
  6. Bonnes pratiques : Commenter son code fait partie des bonnes pratiques de programmation. Cela montre une approche professionnelle et rigoureuse du développement logiciel.

 

C’est là que le LLM intervient ! Nous allons pouvoir générer du commentaire automatiquement.

Il faut bien évidemment le relire pour le corriger / valider, mais c’est quand même d’une grande aide !

 

Pour cela, rien de plus simple, il faut sélectionner la méthode à commenter, puis clic droit, Continue et Write a Docstring for this code.

Une fois le commentaire généré, il faut l’accepter en utilisant OPTION + CMD + Y.

Génération de commentaire par LLM
Commentaire généré

Vous pouvez également utiliser l’option Write comments for this code – dans ce cas le LLM va également proposer des changements dans le code pour le clarifier.

Corriger des erreurs / bugs

Bon, quand les journées sont longues, on perd en attention et on peut faire des erreurs facilement.

Pour demander au LLM de corriger le code, il faut simplement sélectionner le code problématique, puis clic droit, Continue et Fix this code.

Une fois le commentaire généré, il faut comme précédemment accepter / rejeter les modifications proposées en utilisant OPTION + CMD + Y ou OPTION + CMD + N.

Code fix avec un LLM

Optimisation de code

Optimisation de code avec LLM

Il peut également être une bonne pratique de demander s’il y a des optimisations de code à suggérer.

Pour cela, il faut sélectionner le code à optimiser, puis clic droit, Continue et Optimize this code.

Une fois le commentaire généré, il faut toujours accepter / rejeter les modifications proposées en utilisant OPTION + CMD + Y ou OPTION + CMD + N.

Aide à la compréhension du code

Il est possible de demander au LLM de nous expliquer ce que fait le code sélectionné.

Cela peut être utile pour confirmer ce que nous en avions compris.

La méthode est un peu différente, il faut sélectionner le code à expliquer, puis clic droit, Continue et Add Highlighted Code to Context ou plus simplement utiliser CMD + L.

Cela aura pour effet d’instancier un nouveau contexte dans le chat bot. Il faut ensuite demander au chat bot d’expliquer le code en saisissant sous le code highlighted Explain this code puis appuyez sur la touche Entrée.

Aide à la compréhension du code par LLM
Aide à la compréhension du code par LLM (résultat)

Génération d’un message de commit, autres commandes

Vous pouvez également demander la génération d’un message de commit en utilisant dans le prompt /commit. Très utile !

Il y a tout un tas de commandes existantes, pour ça je vous invite à lire la documentation.

Auto complétion, suggestion de code

En téléchargeant le modèle Ollama Starcoder 3b, continue peut proposer une aide à la programmation.

Pour commencer, télécharger le modèle :

ollama pull starcoder2:3b

Ensuite, il faut insérer la configuration suivante dans Continue :

"tabAutocompleteModel": {
"title": "Starcoder 3b",
"provider": "ollama",
"model": "starcoder2:3b"
},
"tabAutocompleteOptions": {
"useCopyBuffer": false,
"maxPromptTokens": 400,
"prefixPercentage": 0.5
}

 

Debugger les erreurs du terminal (compilation, exécution)

Peut être une utilisation des plus utiles, il est possible d’aider à debugger les erreurs de terminal.

Il faut simplement sélectionner l’erreur dans le terminal puis exécuter CMD + SHIFT + R.

Aide au debuggage du terminal par LLM

Conclusion

Développer avec l'IA, quel avenir pour les développeurs

Voilà quelques idées sur l’intégration de l’IA au sein de notre beau métier de programmeur.

Je vous invite à lire la documentation de Continue, mais également de tester d’autres modèles qui vont donner des résultats plus ou moins cohérents.

Il est également possible d’utiliser Chat GPT en paramétrant votre clé Open AI dans Continue – cela donnera de meilleurs résultats, mais nécessitera une connexion permanente et aura un coût.

Il faut bien garder à l’esprit que c’est un outil et non une finalité. Il faut TOUJOURS relire et évaluer ce qui est proposé.