Les assistants de code (intégrés à l’éditeur, en conversation ou sous forme d’agents) sont devenus des outils quotidiens pour beaucoup de développeurs et d’analystes. Bien utilisés, ils font gagner un temps considérable. Mal utilisés, ils produisent du code faux qui a l’air juste. Ce cours vous apprend à en tirer le meilleur sans perdre le contrôle.
Comment ça marche, en simplifiant
Un assistant de code repose sur un grand modèle de langage (LLM), entraîné sur d’immenses quantités de texte et de code. À partir de votre demande, il produit, morceau par morceau, la suite la plus plausible. Il ne « comprend » pas votre projet comme un collègue et, sauf s’il dispose d’outils pour le faire, il n’exécute pas le code qu’il propose : il ne sait donc pas si ce code fonctionne.
Conséquences pratiques :
- il excelle sur les tâches fréquentes et bien documentées : écrire une fonction classique, expliquer un message d’erreur, convertir du code d’un langage à un autre, proposer des tests ;
- il est moins fiable sur ce qui est rare, récent ou spécifique à votre projet : une bibliothèque peu connue, une règle métier interne, une version très récente d’un outil.
Trois formes d’assistants
| Forme | Usage typique |
|---|---|
| Conversation (chat) | poser une question, demander une explication ou une fonction |
| Complétion dans l’éditeur | suggestions de code au fil de la frappe |
| Agent | l’outil lit vos fichiers, modifie le code, lance des commandes ou des tests |
Plus l’outil est autonome, plus la relecture de ce qu’il fait est importante.
Le contexte
Le modèle ne voit que ce qu’on lui fournit : votre message, les fichiers ouverts ou partagés, l’historique de la conversation. Cette quantité est limitée (la fenêtre de contexte). S’il ignore que vous utilisez Python 3.15, pandas ou une convention de nommage, il devinera. Et la même question peut donner des réponses différentes d’une fois sur l’autre.
Les hallucinations
Un modèle peut inventer avec beaucoup d’assurance : une fonction qui n’existe pas, un paramètre imaginaire, un nom de paquet fictif. Exemple typique :
notes = [12, 15, 9]
moyenne = notes.mean() # proposé par un assistant : AttributeError !
# Les listes Python n'ont pas de méthode mean().
# Correct : sum(notes) / len(notes), ou statistics.mean(notes)
Le code « ressemble » à du pandas ou du NumPy, d’où la confusion. Comment se protéger :
- exécuter le code et lire les erreurs ;
- vérifier dans la documentation officielle toute fonction inconnue ;
- se méfier quand l’assistant cite une source, une version ou un chiffre précis.
La règle d’or
L’assistant est un collègue rapide mais pas toujours fiable. Vous restez responsable du code que vous intégrez :
- ne gardez que du code que vous comprenez ligne par ligne ;
- testez-le comme si vous l’aviez écrit vous-même ;
- en apprentissage, essayez d’abord seul, puis comparez avec la proposition de l’IA : c’est ainsi que vous progressez au lieu de dépendre de l’outil.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Corriger une hallucination
Un assistant a proposé ce code, qui provoque une
AttributeErrorcar les listes Python n’ont ni.mean()ni.max_value(). Corrigezresume(notes)pour qu’elle renvoie un tuple(moyenne, maximum)avec des outils qui existent vraiment.def resume(notes): moyenne = notes.mean() maximum = notes.max_value() return (moyenne, maximum)Pourquoi une hallucination ?
Pourquoi un assistant de code peut-il proposer une fonction qui n’existe pas ?
- Parce qu'il est en panne
- Parce qu'il génère le texte le plus plausible sans vérifier qu'il est exact
- Parce que la fonction a été supprimée de Python
Tâche adaptée
Pour laquelle de ces tâches un assistant de code est-il généralement le plus fiable ?
- Appliquer une règle de facturation interne non documentée
- Écrire une fonction qui inverse une chaîne de caractères
- Utiliser une bibliothèque sortie la semaine dernière
Quiz de fin de leçon
Par défaut, un assistant de code en conversation vérifie-t-il que son code fonctionne ?
- Oui, toujours
- Non, sauf s'il dispose d'outils pour l'exécuter
- Seulement en Python
Qui est responsable du code intégré à un projet ?
- L'assistant IA
- Le développeur qui l'intègre
- L'éditeur de l'outil
Qu’appelle-t-on la fenêtre de contexte ?
- La fenêtre de l'éditeur
- La quantité d'informations que le modèle prend en compte pour répondre
- La durée d'une session
La suite du cours
- Rédiger un bon prompt pour du code15 min
- Relire le code généré20 min
- Tester et déboguer avec l'IA20 min
- Usage responsable : sécurité, données et apprentissage20 min