Prise en main Les assistants de code ont suscité un intérêt considérable en tant qu’application précoce de l’IA générative, surtout après le lancement de GitHub Copilot par Microsoft. Cependant, si l’idée de confier votre code à Microsoft ne vous enchante pas ou si vous préférez éviter de payer 10 $ par mois, vous avez toujours la possibilité de créer votre propre assistant.
Bien que Microsoft ait été l’un des premiers à commercialiser un assistant de code basé sur l’IA et à l’intégrer dans un environnement de développement intégré (IDE), ce n’est pas la seule option disponible. En réalité, il existe de nombreux modèles de langage de grande taille (LLMs) spécifiquement entraînés pour la génération de code.
De plus, il est fort probable que l’ordinateur sur lequel vous travaillez actuellement soit capable d’exécuter ces modèles. L’enjeu réside dans leur intégration dans un IDE de manière réellement utile.
C’est ici qu’interviennent des applications comme Continue. Cet assistant de code open source est conçu pour s’intégrer dans des IDE populaires tels que JetBrains ou Visual Studio Code et se connecter à des exécuteurs de LLM que vous connaissez peut-être déjà, comme Ollama, Llama.cpp et LM Studio.
À l’instar d’autres assistants de code populaires, Continue prend en charge la complétion et la génération de code, ainsi que l’optimisation, les commentaires ou le refactoring de votre code pour différents cas d’utilisation. De plus, Continue dispose d’un chatbot intégré avec des fonctionnalités de RAG, ce qui vous permet d’interagir avec votre base de code.
Préparatifs nécessaires
- Un ordinateur capable d’exécuter des LLM modestes. Un système avec un processeur relativement récent fonctionnera, mais pour des performances optimales, nous recommandons un GPU Nvidia, AMD ou Intel avec au moins 6 Go de vRAM. Si vous êtes plutôt utilisateur de Mac, tout système Apple Silicon, y compris le M1 d’origine, devrait faire l’affaire, bien que nous recommandions au moins 16 Go de mémoire pour de meilleurs résultats.
- Ce guide suppose également que vous avez configuré et exécuté le modèle Ollama sur votre machine. Si ce n’est pas le cas, vous pouvez consulter notre guide ici, qui vous permettra de vous mettre en route en moins de dix minutes. Pour ceux utilisant des graphiques Intel intégrés ou Arc, un guide pour déployer Ollama avec IPEX-LLM est disponible ici.
- Un IDE compatible. Au moment de la rédaction, Continue prend en charge à la fois JetBrains et Visual Studio Code. Si vous souhaitez éviter complètement la télémétrie de Microsoft, comme nous le faisons, la version open source – VSCodium – fonctionne également très bien.
Installation de Continue
Pour ce guide, nous allons déployer Continue dans VSCodium. Pour commencer, lancez l’IDE et ouvrez le panneau des extensions. À partir de là, recherchez et installez « Continue. »
Après quelques secondes, l’assistant de configuration initiale de Continue devrait se lancer, vous demandant de choisir si vous souhaitez héberger vos modèles localement ou utiliser l’API d’un autre fournisseur.
Dans ce cas, nous allons héberger nos modèles localement via Ollama, donc nous sélectionnerons « Modèles locaux. » Cela configurera Continue pour utiliser les modèles suivants par défaut. Nous discuterons de la manière de les remplacer par d’autres modèles un peu plus tard, mais pour l’instant, ceux-ci constituent un bon point de départ :
- Llama 3 8B : Un LLM polyvalent de Meta, utilisé pour commenter, optimiser et/ou refactoriser du code. Vous pouvez en apprendre davantage sur Llama 3 dans notre couverture du jour de son lancement ici.
- Nomic-embed-text : Un modèle d’embedding utilisé pour indexer votre base de code localement, vous permettant de référencer votre code lors de l’interaction avec le chatbot intégré.
- Starcoder2:3B : Il s’agit d’un modèle de génération de code développé par BigCode qui alimente la fonctionnalité d’auto-complétion de Continue.
Si, pour une raison quelconque, Continue passe l’assistant de lancement, ne vous inquiétez pas, vous pouvez récupérer ces modèles manuellement en utilisant Ollama en exécutant les commandes suivantes dans votre terminal :
ollama pull llama3 ollama pull nomic-embed-text ollama pull starcoder2:3b
Pour plus d’informations sur la configuration et le déploiement de modèles avec Ollama, consultez notre guide de démarrage rapide ici.
Avis sur la télémétrie :
Avant de continuer, il est important de noter qu’en mode par défaut, Continue collecte des données de télémétrie anonymisées, y compris :
- Si vous acceptez ou rejetez des suggestions (sans inclure de code ou de prompt) ;
- Le nom du modèle et de la commande utilisés ;
- Le nombre de tokens générés ;
- Le nom de votre système d’exploitation et de votre IDE ;
- Les pages vues.
Vous pouvez vous désinscrire de cette collecte en modifiant le fichier .continue
situé dans votre répertoire personnel ou en décochant la case « Continue : Télémétrie activée » dans les paramètres de VSCodium.
Demandez et vous recevrez. Cela fonctionnera-t-il ? C’est une autre question
Une fois l’installation terminée, nous pouvons explorer les différentes manières d’intégrer Continue dans votre flux de travail. La première méthode est sans doute la plus évidente : générer des extraits de code à partir de zéro.
Par exemple, si vous souhaitez créer une page web basique pour un projet, vous appuyez sur Ctrl-I
ou Command-I
sur votre clavier et entrez votre prompt dans la barre d’action.
Dans ce cas, notre prompt était « Générer une simple page d’accueil en HTML avec CSS en ligne. » Après avoir soumis notre prompt, Continue charge le modèle pertinent – cela peut prendre quelques secondes selon votre matériel – et vous présente un extrait de code à accepter ou à rejeter.
Le code généré dans Continue apparaîtra dans VSCodium sous forme de blocs verts que vous pourrez approuver ou rejeter.
Optimisation de votre code
La fonctionnalité Continue peut également être utilisée pour refactoriser, commenter, optimiser ou modifier votre code existant.
Imaginons que vous ayez un script Python destiné à exécuter un modèle de langage dans PyTorch, et que vous souhaitiez le modifier pour qu’il fonctionne sur un Mac avec processeur Apple Silicon. Pour ce faire, vous commenceriez par sélectionner votre document, puis appuyer sur Ctrl-I
sur votre clavier pour demander à l’assistant d’effectuer cette tâche.
Après quelques instants, Continue vous transmet les recommandations du modèle concernant les modifications à apporter, avec le nouveau code mis en évidence en vert et le code à supprimer marqué en rouge.
En plus de refactoriser le code existant, cette fonctionnalité peut également être utile pour générer des commentaires ou des docstrings après coup. Ces fonctions sont accessibles sous »Continue » dans le menu contextuel du clic droit.
Complétion automatique des onglets
Bien que la génération de code puisse être utile pour créer rapidement des prototypes ou refactoriser du code existant, elle peut parfois être imprécise selon le modèle utilisé.
Quiconque a déjà demandé à ChatGPT de générer un bloc de code sait que parfois, il commence à halluciner des paquets ou des fonctions. Ces hallucinations deviennent rapidement évidentes, car un code défectueux échoue souvent de manière spectaculaire. Comme nous l’avons déjà mentionné, ces paquets imaginaires peuvent représenter une menace pour la sécurité s’ils sont suggérés trop souvent.
Si confier l’écriture de votre code à un modèle d’IA vous semble trop risqué, Continue propose également une fonctionnalité de complétion de code. Cela vous permet de garder un meilleur contrôle sur les modifications apportées par le modèle.
Cette fonctionnalité fonctionne un peu comme la complétion par onglet dans le terminal. En tapant, Continue envoie automatiquement votre code à un modèle – tel que Starcoder2 ou Codestral – et propose des suggestions pour compléter une chaîne ou une fonction.
Les suggestions apparaissent en gris et sont mises à jour à chaque frappe. Si Continue devine correctement, vous pouvez accepter la suggestion en appuyant sur la touche Tab
de votre clavier.
Interagir avec votre code
En plus de la génération et de la prédiction de code, Continue intègre un chatbot avec des fonctionnalités de type RAG. Pour en savoir plus sur RAG, vous pouvez consulter notre guide pratique, mais dans le cas de Continue, il utilise une combinaison de Llama 3 8B et du modèle d’embedding nomic-embed-text pour rendre votre code facilement consultable.
Continue dispose d’un chatbot intégré qui se connecte à votre LLM de choix.
Cette fonctionnalité peut sembler complexe, mais voici quelques exemples de son utilisation pour accélérer votre flux de travail :
- Tapez
@docs
suivi du nom de votre application ou service – par exempleDocker
– et ajoutez votre question à la fin. - Pour interroger votre répertoire de travail, tapez
@codebase
suivi de votre question. - Des fichiers ou documents peuvent être ajoutés au contexte du modèle en tapant
@files
et en sélectionnant le fichier souhaité dans le menu déroulant. - Le code sélectionné dans l’éditeur peut être ajouté au chatbot en appuyant sur
Ctrl-L
. - Appuyez sur
Ctrl-Shift-R
pour envoyer des erreurs du terminal de VS Code directement au chatbot pour diagnostic.
Changement de modèles
La fiabilité de Continue dépend réellement des modèles que vous utilisez, car le plug-in lui-même est davantage un cadre pour intégrer des LLM et des modèles de code dans votre IDE. Bien qu’il détermine comment vous interagissez avec ces modèles, il n’a pas de contrôle sur la qualité du code généré.
La bonne nouvelle est que Continue n’est pas lié à un modèle ou une technologie spécifique. Comme mentionné précédemment, il se connecte à divers exécuteurs de LLM et API. Si un nouveau modèle est publié et optimisé pour votre langage de programmation préféré, rien ne vous empêche – à part votre matériel, bien sûr – d’en profiter.
Étant donné que nous utilisons Ollama comme serveur de modèles, changer de modèle est généralement une tâche relativement simple. Par exemple, si vous souhaitez remplacer Llama 3 par Gemma 2 9B de Google et Starcoder2 par Codestral, vous pouvez exécuter les commandes suivantes :
ollama pull gemma2 ollama pull codestral
Remarque : Avec 22 milliards de paramètres et une fenêtre de contexte de 32 000 tokens, Codestral est un modèle assez lourd à exécuter chez soi, même lorsqu’il est quantifié à une précision de 4 bits. Si vous rencontrez des problèmes de plantage, envisagez d’utiliser quelque chose de plus léger, comme les variantes 1B ou 7B de DeepSeek Coder.
Pour changer le modèle utilisé par le chatbot et le générateur de code, vous pouvez le sélectionner dans le menu de sélection de Continue. Alternativement, vous pouvez faire défiler les modèles téléchargés en utilisant Ctrl-'
.
Changer le modèle utilisé pour la fonctionnalité de complétion automatique des onglets est un peu plus complexe et nécessite des ajustements dans le fichier de configuration du plug-in.
Pour commencer, il est nécessaire d’apporter quelques modifications au fichier de configuration de Continue.
Après avoir téléchargé le modèle de votre choix, cliquez sur l’icône d’engrenage située dans le coin inférieur droit de la barre latérale de Continue et ajustez les entrées « title » et « model » dans la section « tabAutocompleteModel ». Si vous utilisez Codestral, cette section devrait ressembler à ceci :
"tabAutocompleteModel": { "title": "codestral", "provider": "ollama", "model": "codestral" },
Ajustement d’un modèle de code personnalisé
Par défaut, Continue recueille automatiquement des données sur la manière dont vous développez votre logiciel. Ces données peuvent être utilisées pour affiner des modèles personnalisés en fonction de votre style et de vos flux de travail spécifiques.
Pour être clair, ces données sont stockées localement dans le répertoire .continue/dev_data
de votre dossier personnel et, d’après nos informations, ne sont pas incluses dans les données de télémétrie que Continue collecte par défaut. Cependant, si cela vous préoccupe, nous vous conseillons de désactiver cette option.
Les détails concernant l’ajustement des grands modèles de langage dépassent le cadre de cet article, mais vous pouvez en apprendre davantage sur le type de données collectées par l’application et leur utilisation dans cet article de blog.
Nous espérons explorer l’ajustement plus en profondeur dans un futur article pratique, alors n’hésitez pas à partager vos réflexions sur les outils d’IA locaux comme Continue, ainsi que vos suggestions sur ce que vous aimeriez que nous essayions ensuite dans la section des commentaires.