cursus
Code Gemini Assist : Un guide avec des exemples
Les modèles open-source se sont multipliés ces derniers temps et, en ce qui concerne l'édition de code, des acteurs tels que Cursor AI et GitHub Copilot permettent aux utilisateurs d'essayer gratuitement leurs assistants de code IA, mais nous nous heurtons rapidement au mur payant lorsque nous les utilisons pour construire un véritable projet.
Gemini Code Assist, l'assistant de code IA de Google, vient d'être doté d'un niveau de gratuité très généreux. Il se présente sous la forme de Visual Studio Code et d'extensions JetBrains.
Dans ce tutoriel, nous apprenons à l'installer dans Visual Studio Code et à l'utiliser à l'aide de plusieurs exemples pratiques.
Développer des applications d'IA
Que sont les assistants de code IA ?
Les assistants de codage utilisent l'IA pour aider les développeurs à coder plus efficacement en suggérant des extraits de code, en automatisant les tâches répétitives et en apportant des corrections en temps réel dans des environnements de codage tels que Visual Studio Code. Les développeurs peuvent ainsi consacrer moins de temps aux tâches routinières et plus de temps aux travaux complexes et créatifs.
Si les chatbots peuvent faciliter les tâches de codage, ils peuvent être lourds à utiliser car ils nécessitent des allers-retours entre l'IDE et la plateforme d'IA, ce qui implique de nombreux copier-coller de code.
Les assistants de codage IA s'intègrent directement dans l'environnement de codage. Cela leur permet de connaître notre contexte de codage et d'éviter d'avoir à fournir explicitement des extraits de code lorsque nous posons des questions. Cela permet également aux assistants de modifier directement le code, ce qui accélère considérablement l'intégration des changements.
Comment installer Gemini Code Assist ?
Dans ce tutoriel, nous utiliserons Gemini Code Assist avec Visual Studio Code. Gemini Code Assist est une extension de Visual Studio, nous pouvons donc l'installer comme n'importe quelle autre extension :
- Cliquez sur l'onglet extensions dans le panneau de gauche.
- Tapez "gemini code assist" dans le champ de recherche.
- Cliquez sur le bouton "Installer".
Une fois installé, l'onglet Gemini apparaît sur le panneau de gauche. Pour commencer à utiliser l'assistant de code, cliquez sur l'onglet portant le logo Gemini et connectez-vous à votre compte Google.
Test de Gemini Code Assist
Pour tester Gemini Code Assist, j'ai décidé d'analyser un ensemble de données récentes de chansons Spotify à l'aide de Python. L'ensemble de données que j'ai utilisé provient de Kaggle et est disponible ici.
Pour commencer, créez un dossier et extrayez le fichier songs.csv
dans ce dossier. Ouvrez ensuite le dossier dans Visual Studio Code. L'objectif est de commencer sans code et de demander à Gemini Code Assist de tout écrire pour nous.
Pour commencer
La première invite que j'ai envoyée demandait de créer une fonction Python qui charge les données dans un DataFrame pandas
.
Généralement, l'assistant de code fonctionne en modifiant le code existant et en nous montrant un diff avec les nouvelles modifications. Comme il n'y a pas encore de code dans ce cas, nous pouvons lui demander de créer un nouveau fichier avec le code proposé en cliquant sur le dernier bouton dans le coin supérieur droit de la fermeture du code dans la fenêtre de discussion.
Nous renommons ensuite le fichier en songs.py
.
Exécution du code
Nous pouvons exécuter le code en utilisant le terminal intégré dans Visual Studio Code avec la commande :
python songs.py
Dans ce cas, nous obtenons une erreur :
ModuleNotFoundError: No module named 'pandas'
C'est parce que le script songs.py
essaie d'utiliser pandas
, qui n'est pas installé. C'est l'occasion idéale de vérifier si Gemini Code Assist est conscient de l'existence d'un terminal dans Visual Studio Code ou non.
Je lui ai demandé de m'expliquer comment corriger l'erreur dans le terminal. Malheureusement, il a donné une réponse générique indiquant qu'il n'avait pas la possibilité d'accéder à la sortie du terminal. L'autre solution consiste à copier et à coller le texte de l'erreur dans le chat de l'IA, ce qui est un peu plus fastidieux. Mais bien sûr, en procédant ainsi, nous obtenons la bonne réponse, à savoir que nous devons exécuter la commande pip install pandas
dans le terminal.
Il s'agit d'une limitation regrettable car, en tant qu'ingénieur logiciel, poser des questions sur une erreur que je vois dans le terminal est l'un des cas les plus courants où j'utilise l'IA.
Après avoir installé pandas
, nous pouvons exécuter le code avec succès.
Poser des questions génériques
Gemini Code Assist ne se limite pas aux questions de codage. Nous pouvons également poser des questions génériques ou des questions relatives aux données. Essayons d'avoir une idée des données que nous avons dans le fichier songs.csv
en lui demandant de lister toutes les colonnes :
Dans la réponse, il a créé une fonction qui énumère les colonnes, mais il a également montré une liste directement dans la réponse :
Souvent, lorsque j'utilisais Gemini Code Assist, j'avais l'impression qu'il avait du mal à faire la distinction entre une question générique qui ne nécessitait qu'une réponse textuelle et le moment où je voulais qu'il écrive du code. Il s'agit d'un problème mineur, car nous pouvons ignorer la partie code, mais il encombre quelque peu le chat.
Demander de nouvelles fonctionnalités
La réponse précédente indique qu'il existe une colonne track_popularity
. Demandons à Gemini Code Assist d'implémenter une nouvelle fonction permettant d'obtenir la chanson la plus populaire.
Lorsque Gemini Code Assist écrit du code dans la réponse, la fonction n'est pas automatiquement intégrée dans notre code. Pour ce faire, nous cliquons sur le bouton à double flèche "Diff avec Open File". Assurez-vous, avant de cliquer, que le fichier auquel appartiennent les modifications est le fichier actuellement ouvert dans l'éditeur ; sinon, les modifications seront fusionnées dans le mauvais fichier.
Après avoir appuyé sur le bouton, nous sommes confrontés à un diff. À gauche, nous voyons l'état actuel du code et à droite, le nouvel état. Les lignes surlignées en rouge représentent les lignes qui seront supprimées ou modifiées, tandis que les lignes surlignées en jaune sont les ajouts ou les modifications.
Nous pouvons consulter la barre de défilement à droite pour localiser ces changements. Souvent, plusieurs endroits du fichier doivent être modifiés, et il est important de les examiner tous avant d'accepter les changements.
En survolant un changement, on voit apparaître une flèche au milieu :
Je trouve l'icône peu intuitive, mais en cliquant sur cette flèche, vous indiquerez que vous ne souhaitezpas inclure cette modification spécifique. Après avoir choisi celui que nous voulons, nous pouvons incorporer le nouveau code en cliquant sur le bouton "Accepter" en haut de la page.
Autocomplétion
Jusqu'à présent, nous avons interagi avec Gemini Code Assist en utilisant le chat AI. Il s'agit déjà d'un flux de travail bien meilleur que celui qui consiste à copier et coller du code entre une plateforme d'IA et l'éditeur de code, car tout est intégré dans la même fenêtre et nous voyons la différence, ce qui permet de voir facilement les nouvelles modifications. Cependant, ce n'est pas tout ce que Code Assist peut faire.
Pendant que nous écrivons du code, l'assistant analyse ce que nous écrivons et fournit des suggestions de code qui peuvent être intégrées en appuyant sur un bouton.
La colonne track_popularity
de l'ensemble de données stocke la popularité d'un cursus. Écrivons une fonction qui affiche la popularité des chansons d'un artiste donné, triées par leur date de sortie. Nous pouvons utiliser le site track_album_release_date
pour effectuer un tri.
Au fur et à mesure quevous écrivez la fonction, Gemini Code Assist vous propose des autocomplétions. Lorsque nous commençons à écrire la signature de la fonction, Gemini Code Assist devine ce que nous voulons à partir du nom de la fonction :
Pour intégrer une suggestion, il suffit d'appuyer sur la touche Tab du clavier. Ensuite, nous voulons créer une copie du DataFrame contenant uniquement les chansons de l'artiste donné :
Parfois, la suggestion de code n'est pas ce que nous voulons. Dans ce cas, nous devons encore écrire manuellement ce que nous voulons ou, si c'est assez proche, l'accepter et le modifier. Dans cet exemple, l'étape suivante consiste à convertir le site track_album_release_date
en format date. Cependant, pour une raison quelconque, Gemini Code Assist ne veut obtenir que l'année de publication, j'ai donc écrit la ligne manuellement.
Ensuite, je veux trier les chansons par date :
Enfin, je renvoie les scores de popularité :
Cibler un code spécifique
Nous pouvons cibler un code spécifique en le sélectionnant d'abord dans l'éditeur. Lorsque le code est sélectionné, quelques invites automatiques sont proposées, telles que "Expliquer ceci" ou "Générer des tests unitaires".
La possibilité de sélectionner un extrait de code et de demander ce qu'il fait ou comment il fonctionne est très utile lorsque l'on découvre une nouvelle base de code. J'ai constaté que c'est souvent l'étape la plus difficile lorsque l'on travaille sur un nouveau produit avec une base de code existante.
Nous pouvons également lui demander de modifier le code à l'aide d'une invite personnalisée. Par exemple, nous pouvons lui demander d'améliorer la fonction analyze_artist_popularity_over_time()
que nous venons de créer :
Dans ce cas, il a amélioré la fonction en ajoutant des contrôles pour éviter les erreurs.
Limites du plan gratuit
Le plan gratuit de Gemini Code Assist pour les particuliers présente certaines limitations par rapport aux plans Standard et Enterprise :
- Personnalisation et intégration limitées : Le plan gratuit ne vous permet pas de connecter vos référentiels de code source privés pour des suggestions de code personnalisées, ce qui est disponible dans le plan Entreprise.
- Accès aux fonctionnalités : Certaines fonctionnalités avancées de Gemini for Firebase et Apigee, ainsi que l'automatisation avancée assistée par l'IA dans l'intégration des applications, ne sont disponibles que dans les plans Standard et Enterprise.
- Sécurité et conformité : Le plan gratuit est dépourvu de fonctions de sécurité et d'outils de gestion de niveau entreprise, ainsi que d'une indemnisation de la propriété intellectuelle, qui sont inclus dans les offres Standard et Enterprise.
- Limites opérationnelles : Le plan gratuit propose une limite quotidienne de 6 000 requêtes liées au code et de 240 requêtes de chat, ce qui peut être suffisant pour une utilisation individuelle mais pourrait être limitant pour des projets d'équipe plus importants.
- Fonctionnalités et assistance pour l'entreprise : Les fonctions de contexte d'entreprise pour la création d'API et l'analyse avancée de la qualité des applications ne sont pas disponibles dans le plan gratuit.
Pour plus de détails, consultez le site web de Gemini Code Assist.
Mes impressions sur Gemini Code Assist
J'ai trouvé que Gemini Code Assist fonctionne assez bien dans l'ensemble. D'après mon expérience, ses performances sont similaires à celles de ses principaux concurrents, Cursor et Copilot. C'est vraiment impressionnant pour un outil gratuit. La version gratuite prend en charge jusqu'à 6 000 demandes liées au code et 240 demandes de chat par jour. Cela devrait suffire amplement à la plupart des programmeurs.
Une autre fonctionnalité intéressante que nous n'avons pas abordée ici est l'intégration de GitHub. Gemini Code Assist pour GitHub vous aide en examinant les demandes d'extraction pour trouver les bogues et les problèmes de style et en suggérant des changements de code et des corrections automatiquement. Les développeurs peuvent ainsi se concentrer davantage sur l'écriture du code. Si vous avez besoin d'aide, les utilisateurs peuvent demander à Gemini de laisser un commentaire dans leur demande d'extraction.
L'un des problèmes que j'ai rencontrés est qu'il semble avoir un peu de mal à traiter les demandes antérieures. Je me suis souvent retrouvée à demander des changements, puis à décider de prendre une autre direction. Cependant, dans les itérations ultérieures, il continuerait à vouloir intégrer ces changements. La fonction que nous avons écrite pour afficher la popularité d'un cursus au fil du temps en est un exemple. Au départ, je voulais faire un graphique avec ces données, puis j'ai changé d'avis. Cependant, le code permettant de tracer ces données continuait d'être ajouté aux futures demandes non liées, ce qui était un peu ennuyeux.
Les dangers des assistants de code
Récemment, j'ai vu un plus grand nombre de programmeurs exprimer leurs inquiétudes, comme dans ce fil de discussion Redditsur le fait que l'utilisation d'assistants de code comme Cursor ou Copilot leur fait lentement oublier comment écrire du code.
Il ne fait aucun doute que ces outils permettent d'accroître considérablement la productivité et que le fait de ne pas les utiliser nous désavantage par rapport à nos pairs. Cependant, je pense que tout dans la vie nécessite un équilibre, et lorsqu'il s'agit d'outils de codage de l'IA, il est facile de tomber dans le piège d'accepter aveuglément le code que l'on nous donne. Au minimum, nous devrions prendre le temps de lire et de comprendre ce qu'il génère.
L'utilisation de la complétion de code semble également être un meilleur moyen terme, car nous devons au moins commencer à écrire quelque chose pour aider à conserver la mémoire musculaire et empêcher les programmeurs de trop se fier aux outils d'intelligence artificielle. La complétion de code tend également à fournir des morceaux de code plus petits, ce qui les rend plus faciles à assimiler.
Conclusion
Les outils d'IA ne cessent d'évoluer, les coûts diminuant et l'accessibilité augmentant. Gemini Code Assist illustre cette tendance en offrant gratuitement un outil robuste d'assistance au codage par l'IA.
Cette initiative de Google abaisse la barrière à l'entrée pour les développeurs, en permettant à pratiquement tout le monde d'utiliser une puissante assistance d'IA dans leurs tâches de codage. Il est particulièrement louable que Gemini Code Assist offre des fonctions qui sont comparables, voire compétitives, avec des services payants tels que Cursor et Copilot. Avec jusqu'à 6 000 demandes de code et 240 demandes de chat disponibles chaque jour, il offre une assistance plus que suffisante pour les développeurs individuels ou les petits projets.
Apprenez l'IA avec ces cours !
cours
Retrieval Augmented Generation (RAG) avec LangChain
cursus