Connexion
Abonnez-vous

Copilot c’est bien (à condition de conduire en ligne droite)

Et de lui mettre un peu de T@lc sur les fs

Copilot c’est bien (à condition de conduire en ligne droite)

Le 27 novembre à 11h45

Il n’y a pas si longtemps, il fallait impérativement avoir du cloud pour vendre sa solution. Ensuite ce fut le tour de la blockchain, et maintenant voilà le tour de l’intelligence artificielle, ou IA*. Github propose une aide au développement pour la somme modique de 10 euros par mois, avec le premier mois gratuit, ce dont nous allons profiter et vous en faire profiter.

Installons notre copilote

Nous aurions voulu passer les menus détails d’obligation de saisir une carte bancaire, mais quand même : première carte refusée après avoir validé la transaction d’enregistrement (une simple demande d’autorisation sans débit) sur l'appli bancaire adéquate.

Par chance, nous disposions d’une deuxième carte. Résultat : négatif. Ne nous énervons pas et contactons le support. La réponse reçue était un extrait de la FAQ sur le sujet, donc aucun intérêt. Finalement la première carte finira par marcher sans que nous comprenions pourquoi (et sans avoir rien fait). Ça commence bien.

Le contexte de notre programme

Pour évaluer correctement les possibilités de l’outil, nous sommes partis sur une idée de programme un peu complexe : réaliser un inventaire des ressources détenues sur un compte AWS, c’est-à-dire lister les instances EC2, les buckets S3 et surtout l’ensemble de ce qui est souscrit à un moment donné, dans toutes les régions, ce qui peut être utile pour mieux gérer son budget.

Il reste 87% de l'article à découvrir.

Déjà abonné ? Se connecter

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Abonnez-vous

Commentaires (18)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar
Vu toute la galaxie de Copilot chez Microsoft, il aurait été bon de préciser lequel dans le titre :) Sans accès à l'article, je pense comprendre qu'il s'agit de GitHub Copilot
votre avatar
Un petit abonnement pour en savoir plus ?

ça les vaut largement, croyez moi.
votre avatar
Tiens c'est bien ce genre d'article. Parce que de mon côté, je suis dépité par la nullité de ChatGPT 4o pour le code. Tout le monde s'extasie mais je comprends difficilement. Certes, il dégueule du code mais quand je ne lui en demande pas. Mais j'ai essayé tout type de prompt et de bot : il ne sort que très rarement du code magnifique. Je ne parle pas de structure (où il est bien plus fort que moi qui ne suis pas dev) mais d'intelligence. Je suis obligé de le guider constamment, c'est fastidieux. Bref, pour moi, ça sent pas vraiment la violette :)
votre avatar
Cela nous amène à un autre point : évitez de lui demander un énorme bout de code avec plusieurs exigences fonctionnelles, car il suffit que vous formuliez une seule d’entre elle de façon trop imprécise pour que Copilot génère ce qu’il comprend et non ce que vous pensez : en gros, il n’écrit que ce que vous demandez (ce qui est normal après tout) ; or il est bien difficile d’être parfaitement logique, cohérent et juste du premier coup
Merdalors, exactement comme actuellement où le client ne sait pas exprimer son besoin et demande au dev de coder sans specs :D

Quand j'avais expérimenté GitHub Copilot + Chat l'année dernière, j'étais arrivé à la conclusion que l'outil ne sert à rien si l'utilisateur ne sait pas ce qu'il fait. J'avais volontairement utilisé un projet en Javascript (je n'y connais rien dans ce langage), l'outil pissait du code, ça marchait, mais dès qu'il fallait creuser c'était foutu.

Sur le point du contexte, mon test n'avait été fait que via VSCode. Quand je faisais un RAZ de celui-ci, Copilot Chat repartait de zéro. Et c'était très relou car il s'était mis à réécrire toutes les variables.

À l'inverse, sur un langage que je connais mieux comme Python, c'était un bon assistant parce que je savais quoi demander et je pouvais corriger ses petites erreurs.
votre avatar
Je suis amateur en codage, et je ne suis "autonome" que sur python.

Quand je me suis lancé dans le développement de mon extension en js, j'ai adoré travailler avec Copilot : un moteur de recherche rapide et circonstancié, mais sans vision globale.

Du coup je l'utilise surtout pour les grandes lignes de chaque fonction, debuguer et affiner les détails, mais pas pour l'architecture globale.

Jamais je n'aurai pu avancer autant sans ça 😳
votre avatar
On peut quand même souligner la prouesse de la conversion en Go correcte dès le premier essai pour un code de 450 lignes.
Il y a quelques années c'était impensable.

Copilot est le moins bon des assistants de programmation de mon expérience. Il sort rarement qqchose d'utile, il ne propose fréquemment aucune complétion même quand la suite est évidente (ça fait perdre du temps à attendre la complétion qui n'arrive pas) etc. En passant en mode conversation on repère vite qu'il est surtout optimisé pour réduire les couts.

J'ai de meilleurs résultats avec Gemini, même si ça n'est pas encore au niveau de ce que ça pourrait être à mon avis, même en restant avec une architecture de type LLM.

Sinon, Claude 3.5 (https://claude.ai/) de Anthropic est impressionnant, avec un niveau d'intelligence comparable à o1 (le dernier de OpenIA) mais en plus rapide. On peut facilement le configurer comme assistant dans vscode.

Claude est le seul assistant à m'avoir généré le code d'un petit jeu fonctionnel dès le premier essai à partir d'une simple description.

Les autres sortent un code vaguement crédible mais qui ne fonctionne pas du premier coup.
votre avatar
GitHub Copilot, je l'utilise sur VScode, c'est un très bon outil d'autocomplétion intelligente.

Pensant déjà à celui qui va lire mon code (CàD, le moi du futur principalement), j'a tendance à expliquer ce que je fais en commentaire. Cette façon de faire fonctionne bien avec Copilot, qui "sait" ce que je veux faire et va me proposer une première solution. Généralement, je n'ai rien à changer. Souvent il manque des trucs, j'accepte une partie du code (avec ctrl+flèche droite), je corrige, et me repropose une nouvelle suite en tenant compte des modifications. D'autre fois, mon commentaire est ambigu, et la réponse est totalement à côté de la plaque, c'est finalement une bonne idée de modifier le commentaire (le moi du futur est surement quelqu'un de très con, si Copilot n'a pas compris, il ne comprendra surement pas). Autre point, c'est que maintenant, écrire la documentation d'une fonction est vraiment utile, si c'est assez bien écrit, il va écrire un code qui sera une bonne base (et en plus, il t'aide à rédiger la doc).

Mais de manière générale, sans même avoir à écrire des commentaires sur ce que l'on veut faire, Copilot va très vite déduire ce que tu cherches à faire (si tu ne nommes pas toutes tes fonctions et variables avec des "foo", "bar" "toto", "titi", "tata"...) et va essayer de proposer les prochaines lignes de code qui ne tombent généralement pas bien loin de ce que tu allais écrire.

De plus, il est bon pour découvrir des sortes de motifs, et va vite proposer l'autocomplétion pour des codes chiants et rébarbatifs.

Il n'est pas sans défaut, et parfois il se borne à écrire ce qu'il a choisi d'écrire.
votre avatar
Je fais du dev PHP depuis un bon gros moment et suis amené à faire de petit soft en Bash pour la gestion de serveurs.
Je l'utilise avec PHPStorm (pour le PHP et pour le Bash)
Franchement je pourrais difficilement me passer de Copilot maintenant que j'y suis habitué. Je produit beaucoup plus vite.
Bien sur ce n'est pas parfait mais l’augmentation de la productivité est bien là.
En bonus il me sort parfois une méthode / fonction etc. à laquelle je n'aurai pas pensé et ça c'est vraiment chouette car du coup j'ai l'impression de m'améliorer.
J'utilise depuis peu le Chat pour lui poser des questions plus généraliste et clairement le gain de temps est également sensible par rapport à d'interminable recherche Gogole.
votre avatar
Je l'utilise beaucoup pour coder en Python, Delphi, Angular (18/19) avec un passage en cours vers Jest au lieu de Karma.

Son plus gros défaut c'est de ne pas savoir s'adapter même quand on lui donne des documentations à jour :
- Il remplace systématiquement les @if par *ngIf en expliquant que le problème est là.
- Il ne sait pas que les composants sont maintenant standalone par défaut et du coup les déclare au lieu des les importer.
- Il met des virgules à la fin des lignes même si inutile (syntaxe dégueux des dev javascript !).
- Impossible d'avoir de l'aide sur des fonctionnalités récentes comme ZoneLess, les signaux ou OnPush en Angular. Là je galère à passer à Jest car je dois le basculer en mode ESM et Copilot ne connait que les syntaxes obsolètes.
- En Python, il reste un adepte du dict alors que c'est obsolète depuis longtemps déjà.

Son second plus gros défaut c'est cette tendance à s'enfermer dans une solution fausse sans jamais sans sortir, à pondre du code 100% identique alors même qu'il dit qu'il a modifié des choses.

D'ailleurs de ce côté là, la nouvelle fonction d'écriture directe dans le code existant permet très vite de savoir s'il fait le con. Juste dommage qu'il ne puisse trouver tout seul les fichiers qui lui manque quand il en a besoin alors qu'ils sont importés dans le code, et qu'en plus, il réécrive tout le code de chaque fichier modifié au lieu de seulement là où c'est nécessaire.

Bref, il peut beaucoup aider comme parfois faire perdre un temps fou avec des envies de lui foutre des baffes !
votre avatar
Son second plus gros défaut c'est cette tendance à s'enfermer dans une solution fausse sans jamais sans sortir, à pondre du code 100% identique alors même qu'il dit qu'il a modifié des choses.
Dans ces cas-là, un RAZ de contexte ne suffit pas ?
votre avatar
Ça peut être une méthode, mais il faudra leui redonner tout le contexte, ça peut être fastidieux.
Et comme il a été dit, il semblerait que ça ne purge pas tout.
votre avatar
Comme je disais dans mon autre message, sur VSCode le clear démarrait bien un nouveau contexte. Ou alors ça a changé depuis.

Après, l'article ne donne pas les conditions du test.
votre avatar
Utilisation de Visual Code et Codespace.

Le clear démarre bien une nouvelle conversation, mais j'ai remarqué à plusieurs reprises que cela n'effaçait pas tout : Copilot reprenait parfois (rarement, soyons honnête) des consignes issues de prompts précédents qu'il a fallu que j'annule par prompt. Cette notion de contexte est très complexe à gérer ; c'est déjà difficile pour un humain, alors pour une IA... Le contexte est crucial et pourtant il est difficile à établir et à maintenir.

C'est probablement le talon (ou un des talons) d'Achille de ces systèmes, car pour être efficace il ne faut pas aller trop en profondeur, alors qu'on aimerait au contraire que ces systèmes aient suffisamment de repères pour nous être vraiment utiles.
votre avatar
Merci pour les précisions :)

L'intégration dans Visual Code et Codespace doit donc être assez différente... Après je n'ai pas utilisé GitHub Copilot depuis un bail. C'est assez surprenant, car le contexte est censé repartir du system prompt et des exemples permettant au modèle de s'orienter. Ou alors il "retrouve" le fil en faisant du RAG sur le code, c'est une possibilité je pense.

Le soucis pour aller en profondeur, c'est qu'il lui faut plus de données. Et donc traiter un plus gros contexte. Quand je vois ce que GitHub Copilot pouvait cracher comme réponse avec le code en input, c'était déjà de belles tailles. Je ne sais pas sur quel modèle il tourne aujourd'hui, probablement un GPT-4o aussi qui supporte 128k tokens en entrée et peut sortir quelques 16k en sortie de mémoire. L'autre risque avec un contexte trop riche, c'est que le modèle finisse par partir en vrille. C'était, à l'époque où j'ai suivi de plus près ces sujets, une des raisons que Microsoft avançait pour la limitation du nombre de questions/réponses sur ses outils (l'autre restant forcément financière, ça coûte). Ça reste des modèles statistique, après tout.
votre avatar
Tu peux choisir le modèle :

GPT 4o
o1-mini
o1-preview
Claude 3.5 Sonnet
votre avatar
Ah oui je m'en rappelle, effectivement :D
votre avatar
J'utilise copilot au boulot ... Il fait vraiment honneur à Ms: message qui se reformulent en Anglais (partiellement), refus de répondre, timeout, messages d'erreurs 5-6 fois par jour (et je ne suis pas collé dessus).
Une fois, il est totalement parti en boucle, il a fini par me sortir des recettes de cuisine sans fin (euh, je lui demandais de commenter du code).
Au final, j'ai un LMstudio + Llama 3B à côté, j'ai des bugs moins "dramatique" (surtout au vu du coût).
votre avatar
sous titre tout à fait excellent du T@LC sur les fs j'ai explosé de rire

Copilot c’est bien (à condition de conduire en ligne droite)

  • Installons notre copilote

  • Le contexte de notre programme

  • Demandons quelque chose de simple

  • On tourne parfois en rond

  • Le bon et le moins bon

  • Traduction en go : bonnet blanc et blanc bonnet

  • Quelques mots

Fermer