Accéder au contenu principal

Tabnine : Un guide avec un projet de démonstration

Découvrez comment créer un éditeur d'images IA à l'aide de Tabnine et du modèle Nano Banana de Google.
Actualisé 17 sept. 2025  · 12 min de lecture

Écrire du code peut devenir fastidieux lorsque l'on est confronté à des détails de syntaxe ou à des éléments récurrents. Cette friction ne fait que s'accentuer lorsque vous testez de nouveaux modèles d'IA et que vous souhaitez simplement vous concentrer sur le développement. Tabnine contribue à réduire ce ralentissement grâce à la complétion de code par IA dans votre éditeur.

Dans cet article, je vais vous expliquer étape par étape comment utiliser Tabnine dans Visual Studio Code (VS Code) pour créer un éditeur d'images IA à l'aide du dernier modèle de génération d'images de Google, Nano Banana. Nano Banana. À la fin de cet article, nous disposerons d'une application Python fonctionnelle qui permettra aux utilisateurs de générer et de modifier des images à l'aide d'invites.

Capture d'écran de l'application que nous avons développée dans le tutoriel à l'aide de Tabnine.

Qu'est-ce que Tabnine ?

Tabnine est un assistant de codage alimenté par l'IA similaire à GitHub Copilot. GitHub Copilot et Cursor. Il est compatible avec la plupart des éditeurs populaires tels que VS Code, PyCharm, Jupyter, et bien d'autres.

Parmi les principales fonctionnalités de Tabnine, on peut citer :

- Intégration Jira : Tabnine peut se connecter à Jira, une plateforme réputée pour la gestion de projets d'ingénierie logicielle. Cela facilite la gestion du travail et permet à Tabnine de suivre les tâches en cours.

- Commandes personnalisées : Tabnine est doté de diverses commandes, telles que « Expliquer le code » ou « Corriger le code ». Il permet également aux utilisateurs de définir des commandes personnalisées basées sur des invites.

- Comportement personnalisé : Tabnine vous permet de configurer une invite qui guide la manière dont les modèles d'IA répondent. Par exemple, si vous disposez de directives de codage bien définies, vous pouvez les fournir afin de garantir que le code généré respecte ces directives.

- Saisie semi-automatique intelligente : Il suggère des lignes ou des blocs de code complets, et pas seulement des noms de variables.

- Sensible au contexte : Tabnine s'adapte à la structure de votre projet et à votre style de codage.

- Prise en charge de plusieurs modèles d'IA : Tabnine prend en charge les modèles d'IA les plus populaires, ce qui facilite le choix du modèle à utiliser.

- Apprentissage en équipe : Dans les plans d'entreprise, il peut apprendre à partir du code source privé de votre équipe afin de formuler des suggestions adaptées aux modèles de votre entreprise.

Configuration de Tabnine

Pour commencer, nous devons créer un compte Tabnine et souscrire à l'un de leurs forfaits. Ils proposent une période d'essai de 14 jours, vous pouvez donc l'essayer gratuitement. Après la période d'essai, Tabnine coûte 9 $ par mois.

Une fois votre compte Tabnine créé, veuillez ouvrir VS Code. Si vous ne disposez pas de VS Code, veuillez l'installer à partir de ici. Veuillez ouvrir l'onglet Extensions et saisir « tabnine » pour localiser l'extension officielle.

Liste des extensions Tabnine dans l'interface du marché VS Code affichant les résultats de recherche et l'option d'installation.

Une fois l'extension installée, nous sommes invités à nous connecter. Nous pouvons ensuite accéder à Tabnine dans la barre de menu de gauche (dernière option dans cette capture d'écran).

Barre latérale de Visual Studio Code affichant l'explorateur de fichiers, la recherche, le contrôle de source, le débogueur, les extensions et les icônes Tabnine.

Exploration de l'interface utilisateur de Tabnine

Avant de développer notre éditeur d'images IA, passons rapidement en revue les principaux éléments de Tabnine.

Lorsque nous ouvrons Tabnine, une interface de chat IA s'affiche :

Interface Tabnine dans Visual Studio Code affichant les options d'aide à la programmation, les extensions et les extraits de code, avec Gemini 2.5 Pro sélectionné dans le menu.

En haut, nous avons un sélecteur de modèle. Ici, nous pouvons sélectionner le modèle à utiliser. Je m'en tiendrai aux paramètres par défaut dans ce tutoriel, Gemini 2.5 Pro.

Interface de sélection des modèles d'IA dans Tabnine, présentant des options telles que Claude 3.5 Sonnet, Claude 3.7 Sonnet, Claude 4 Sonnet, Gemini 2.0 Flash, Gemini 2.5 Pro, GPT-4o et Tabnine Protected, mettant en avant les optimisations de performances et les fonctionnalités de confidentialité.

En bas, nous pouvons définir le contexte. Ceci définit ce que nous souhaitons que le modèle d'IA observe lorsqu'il répond.

Interface de chat Tabnine AI dans VS Code avec des options pour les commandes, les extraits de code, le fichier actuel et les paramètres de portée de l'espace de travail.

Par défaut, le contexte inclut le fichier actuel et l'espace de travail (le projet). Nous pouvons ajouter d'autres éléments, tels que le Terminal, qui est très utile pour signaler les erreurs au modèle lorsque nous les rencontrons. Nous pouvons également fournir un extrait de code spécifique en utilisant le caractère « @ », puis en saisissant le nom de la fonction que nous souhaitons ajouter au contexte.

Dans le menu hamburger, nous pouvons configurer Tabnine :

Interface des paramètres Tabnine présentant les options d'intégration, la longueur des réponses, les comportements personnalisés, les commandes personnalisées, les complétions de chat et les améliorations du produit.

Deux paramètres importants sont le comportement personnalisé et les commandes personnalisées. Dans la section « Comportement personnalisé », nous pouvons définir une invite qui guide le modèle lors de la génération de code. Il est utile dans les situations où nous souhaitons que le code respecte des directives spécifiques.

Interface de paramètres personnalisés du comportement du chat Tabnine dans VS Code, présentant une zone de saisie de texte permettant de définir des instructions pour personnaliser les réponses de l'IA, y compris un exemple d'invite pour un guidage étape par étape en allemand.

La section « Commandes » permet de définir des commandes personnalisées qui peuvent être exécutées à l'aide d'une commande telle que « / » dans l'interface de chat. Une commande est essentiellement une invite à effectuer des actions spécifiques. C'est un excellent moyen de gagner du temps et d'éviter d'avoir à répéter la même invite à plusieurs reprises.

Interface Tabnine permettant de définir de nouvelles commandes personnalisées, avec des champs pour saisir le nom de la commande, sa description et le modèle d'invite, ainsi que des options pour enregistrer ou annuler.

Codage d'ambiance d'un éditeur d'images IA avec Tabnine

Dans cette section, je vais vous expliquer comment créer une application Python qui utilise Nano Banana, le dernier modèle de génération d'images de Google, pour modifier des images. L'utilisateur peut utiliser une invite pour générer une image ou combiner et modifier des images existantes à l'aide de l'invite.

Mon objectif était de déterminer s'il était possible de coder cette application par vibration, c'est-à-dire de la construire entièrement à partir de commandes, en partant de zéro.

Tout le code généré dans ce tutoriel est disponible dans ce référentiel GitHub.

Création de l'interface utilisateur de base

Pour commencer, j'ai souhaité créer l'interface utilisateur de base permettant aux utilisateurs de sélectionner des images sur leur ordinateur et de saisir une invite. J'ai créé un nouveau dossier et ouvert VS Code dans ce dossier. Je n'ai créé aucun fichier. Voici ma première suggestion :

Conception d'interface utilisateur graphique dans Tabnine, proposant de créer une interface permettant de sélectionner des images à partir d'un ordinateur.

Je me suis rendu compte après coup que j'avais omis de mentionner que je développais une application Python. D'une certaine manière, j'ai eu la chance que ce soit exactement ce que le modèle d'IA avait supposé que je souhaitais. Il a répondu à ma demande en expliquant les commandes qu'il exécuterait et le code qu'il écrirait.

Pour effectuer les modifications, il est nécessaire de les appliquer une par une ou de cliquer sur le bouton « Appliquer tout » situé en bas de l'écran. Veuillez noter que certaines modifications impliquent l'exécution de commandes. Dans ces cas, les commandes installent les paquets Python nécessaires et créent les fichiers et dossiers pour stocker le code.

Voici à quoi ressemblait l'interface lorsque j'ai exécuté le script qu'il a créé :

Interface d'édition d'images par IA avec un champ de saisie de texte affichant le chemin d'accès à un fichier image et un bouton « Sélectionner les images » en bas.

En haut, vous trouverez une liste de toutes les images sélectionnées ainsi qu'un bouton permettant d'ouvrir un sélecteur de fichiers. L'utilisateur peut sélectionner un ou plusieurs fichiers, et les fichiers sélectionnés sont répertoriés. Cependant, lorsque de nouveaux fichiers sont sélectionnés, l'ancienne liste est écrasée. J'ai donc demandé à ce que les nouveaux fichiers soient ajoutés à la liste au lieu de supprimer les anciens.

Ensuite, j'ai souhaité améliorer l'interface utilisateur afin d'afficher les vignettes des images plutôt que leurs chemins d'accès :

Invite de l'interface utilisateur dans l'interface de codage suggérant d'afficher des vignettes plutôt que des chemins d'accès aux images, avec une solution de code impliquant la bibliothèque Pillow pour le traitement des images.

Voici le résultat :

Interface d'un éditeur d'images IA sur fond sombre affichant des vignettes d'images et un bouton « Sélectionner les images » en bas, conçue pour permettre à l'utilisateur d'interagir avec des fonctionnalités de sélection de fichiers.

Une autre fonctionnalité importante est la possibilité de supprimer facilement des images :

Invite de l'interface utilisateur dans l'interface Tabnine avec une commande permettant de désactiver la suppression d'images de la sélection.

Grâce à cette invite, le code a été modifié de manière à ce que, lorsque nous cliquons avec le bouton droit sur une vignette, un menu contextuel s'affiche, nous permettant de supprimer l'image. Je souhaitais que cela fonctionne de cette manière, c'est pourquoi je demande cette modification :

Texte d'invite dans une interface de codage IA pour créer un menu contextuel accessible par clic droit avec une option de suppression.

Après avoir effectué cette modification, lorsque j'ai testé l'application, la suppression des images ne fonctionnait plus. Je soupçonnais que cela était dû au fait que j'utilise un Mac, mais je ne l'ai pas mentionné. Je souhaitais déterminer s'il pouvait le comprendre par lui-même.

Interface de chat montrant un utilisateur signalant un problème avec la fonctionnalité du clic droit qui ne fonctionne pas, suivi d'une réponse indiquant qu'il s'agit d'un problème courant sur toutes les plateformes avec tkinter.

Cela a très bien fonctionné, et j'ai pu cliquer avec le bouton droit sur une image pour la supprimer :

La dernière étape de l'interface utilisateur de base consistait à ajouter une zone de texte pour l'invite.

Invite de l'interface utilisateur provenant d'un assistant de codage IA suggérant d'ajouter une zone de saisie de texte multiligne intitulée « Invite » sous les aperçus d'images.

L'interface utilisateur de base était ainsi terminée. Nous pouvons sélectionner des images et saisir une invite. Cependant, nous ne sommes pas encore en mesure de générer une image. C'est ce que nous mettrons en œuvre dans la section suivante.

Intégration de Nano Banana

Afin de maintenir le code organisé, j'ai demandé à créer un nouveau script Python avec une fonction qui utilise l'API d'IA générative de Google et leur dernier modèle d'image pour générer des images.

Veuillez créer un script Python pour générer des images à l'aide du modèle Nano Banana de Google, avec gestion des clés API via un fichier .env.

Il a généré le nouveau script et le fichier .env. Ce fichier est utilisé pour stocker la clé API nécessaire pour se connecter à l'API Google. Si vous suivez ces étapes, vous devrez créer une clé API ici. créer une clé API ici et la placer dans le fichier .env.

Ensuite, j'ai demandé à ajouter un nouveau bouton à l'interface pour appeler la fonction de génération d'images. Le bouton a été ajouté, mais lorsque j'ai cliqué dessus, j'ai reçu un message d'erreur. Par conséquent, je me suis assuré d'ajouter le terminal au contexte avant de lui demander de corriger l'erreur.

Interface de Tabnine dans Visual Studio Code affichant les champs d'application sélectionnés : fichier actuel, espace de travail et terminal, avec des options permettant d'ajouter ou de réinitialiser le champ d'application.

Message d'erreur affiché dans l'interface utilisateur Tabnine pendant l'exécution du script.

Certaines mises à jour ont été effectuées sur les fichiers, mais l'erreur persiste. J'ai tenté de le faire réparer, mais cela n'a pas été possible. Il a commencé par indiquer que le modèle d'IA n'existait pas et a souhaité modifier le code d'une manière que je savais incorrecte.

Pour résoudre ce problème, j'ai dû corriger le code manuellement. Je me suis rendu sur le site officiel de Gemini. site officiel de Gemini et j'ai copié et adapté le code d'exemple qui s'y trouvait.

C'est l'une des raisons pour lesquelles je considère qu'il est important d'avoir des connaissances fondamentales en codage, même lorsque l'on codage vibe. Il arrive fréquemment que nous rencontrions des problèmes que le modèle d'IA ne peut pas résoudre. Il est donc important de savoir programmer afin de pouvoir identifier les erreurs du modèle et les corriger. Ces types d'outils doivent toujours être utilisés pour accélérer le processus, et non pour le remplacer complètement.

Cependant, même lorsque j'ai dû écrire ce code manuellement, Tabnine s'est révélé utile grâce à ses fonctionnalités d'autocomplétion. Par exemple, lorsque j'ai souhaité convertir les chemins d'accès aux images sélectionnées en images à fournir au modèle, j'ai simplement commencé à saisir ce que je souhaitais et j'ai obtenu le code approprié :

Extrait de code illustrant la fonctionnalité d'autocomplétion de Tabnine.

Nous observons également au-dessus du nom de la fonction que Tabnine fournit des outils pour modifier, tester, corriger, expliquer et documenter la fonction. Par exemple, j'ai utilisé la fonction « document » pour documenter le code, et elle m'a présenté une comparaison avec les modifications qu'elle prévoyait d'apporter, que j'ai ensuite pu accepter ou refuser :

Résultat final

L'application était désormais fonctionnelle et prête à l'emploi. Essayons de créer une figurine pour une personne donnée à l'aide d'accessoires provenant d'autres images :

Voici le résultat :

Tester avec Tabnine

Il est essentiel de rédiger des tests automatisés lorsque l'on travaille sur un projet. L'une des fonctionnalités de Tabnine consiste à nous aider à rédiger ces tests.

Cette fonctionnalité est accessible dans l'onglet « Test » ou en cliquant sur l'option « Test » située au-dessus d'une définition de fonction. Lorsque nous procéderons ainsi, Tabnine élaborera un plan de test pour cette fonction.

Interface Tabnine dans VS Code affichant la création d'un nouveau plan de test avec des options permettant de réviser un fichier de test existant ou d'en créer un nouveau, ainsi que des fonctionnalités d'édition de code Python.

Un plan de test comprend des scénarios illustrant le comportement attendu de la fonction. Voici quelques-uns des scénarios identifiés par Tabnine pour notre fonction :

Interface du plan de test affichant les chemins d'accès aux modules et fichiers de test sélectionnés, avec des cas de test suggérés pour un générateur d'images IA.

Pour générer un test pour un scénario spécifique, il suffit de cliquer dessus. Il générera la fonction de test pour ce scénario spécifique, que nous pourrons ensuite intégrer à notre suite de tests.

Lorsque j'ai appliqué ces modifications, le fichier de test ne contenait que la fonction de test et rien d'autre. Il manquait les importations et la classe de test environnante. J'ai dû retourner dans l'onglet « Chat » pour demander la finalisation de la mise en œuvre du test. Par la suite, j'ai rencontré une erreur car le nom du fichier créé était incorrect. Comme précédemment, j'ai signalé une erreur, et elle a été corrigée. Le test s'exécute désormais correctement.

Lorsque j'ai ajouté d'autres tests par la suite, tout a fonctionné correctement.

Capture d'écran montrant la sortie d'un terminal lors de l'exécution d'un test unitaire Python. Elle affiche un message d'erreur : « Une erreur s'est produite lors de l'appel à l'API Gemini : l'invite ne peut pas être vide. » Le test a exécuté un test en 0,001 seconde, ce qui a donné un statut « OK » malgré l'erreur d'invite.

Conclusion

Tabnine démontre son potentiel en tant qu'outil puissant pour le développement rapide grâce à son intégration facile avec les éditeurs de code courants. Ses capacités de codage assisté par l'IA accélèrent le processus, permettant aux développeurs de se concentrer sur l'innovation plutôt que sur des tâches répétitives.

Cependant, ma tentative de créer une application uniquement à l'aide du vibe-coding a mis en évidence l'importance d'une solide compréhension des principes fondamentaux du codage. Une confiance aveugle dans le code généré par l'IA sans vérifier sa pertinence peut entraîner des complications, exposant les développeurs à des erreurs qu'ils pourraient ne pas comprendre pleinement.

Tabnine fonctionnait efficacement dans l'ensemble, mais on avait souvent l'impression que le modèle d'IA sous-jacent était le véritable moteur, comparable à d'autres outils tels que GitHub Copilot. Bien que Tabnine soit effectivement un outil utile, cette expérience souligne la valeur irremplaçable des connaissances traditionnelles en codage pour garantir le développement efficace et durable d'applications logicielles complexes.


François Aubry's photo
Author
François Aubry
LinkedIn
Ingénieur full-stack et fondateur de CheapGPT. L'enseignement a toujours été ma passion. Dès mes premiers jours d'études, j'ai cherché avec enthousiasme des occasions de donner des cours particuliers et d'aider d'autres étudiants. Cette passion m'a amenée à poursuivre un doctorat, où j'ai également été assistante d'enseignement pour soutenir mes efforts académiques. Au cours de ces années, j'ai trouvé un immense épanouissement dans le cadre d'une classe traditionnelle, en favorisant les liens et en facilitant l'apprentissage. Cependant, avec l'avènement des plateformes d'apprentissage en ligne, j'ai reconnu le potentiel de transformation de l'éducation numérique. En fait, j'ai participé activement au développement d'une telle plateforme dans notre université. Je suis profondément engagée dans l'intégration des principes d'enseignement traditionnels avec des méthodologies numériques innovantes. Ma passion est de créer des cours qui sont non seulement attrayants et instructifs, mais aussi accessibles aux apprenants à l'ère du numérique.
Sujets

Apprenez l'IA grâce à ces cours.

Cours

Building AI Agents with Google ADK

1 h
2.5K
Build a customer-support assistant step-by-step with Google’s Agent Development Kit (ADK).
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow