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

  1. 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.
  2. 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.
  3. 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.

Dans cet exemple, nous utilisons Continue pour ‍refactoriser ce script Python afin qu'il fonctionne ‍sur un Mac avec processeur Apple Silicon.

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.

Si rédiger des commentaires de code est un véritable ⁣casse-tête pour vous, ‍vous pouvez laisser l'IA s'en⁤ charger.⁣ N'oubliez pas de les lire avant de les valider.

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.

Au⁢ fur et à ⁤mesure que⁤ vous tapez,‌ Continue utilise⁤ des ​modèles de code pour prédire ce‌ que⁢ vous essayez d'écrire.

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.

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 exemple Docker – 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-'.

Une fois ‌que vous avez téléchargé un ⁣nouveau modèle, vous pouvez le ⁤sélectionner ​dans la barre latérale de Continue.

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.

Show Comments (0)
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *