Geeek - Le blog Geek & High-tech

Vous êtes développeur et vous souhaitez comprendre le fonctionnement de Github Copilot afin de mieux l'utiliser ? Voici plusieurs astuces pour mieux comprendre ce qu'est Github Copilot et comment le mettre en œuvre rapidement.

J'ai structuré cet article au format FAQ pour le rendre plus compréhensible, j'ai essayé de lister l'ensemble des questions que j'entends autour de ce produit. J'espère que cet article permettra de répondre à vos questions, n'hésitez pas à utiliser le serveur Discord Geeek pour continuer cette discussion.

GitHub Copilot est-il différent de Microsoft Copilot ?

Alors que Microsoft annonce la sortie imminente Microsoft Copilot, Github Copilot est-il différent ? Le terme Copilot est utilisé par Microsoft pour harmoniser le nom de ses produits qui intègrent des intelligences artificielles génératives. La technologie utilisée par Microsoft est principalement celle développée par la société OpenAI (GPT) sur laquelle Microsoft a investi plusieurs milliards de dollars. Chaque produit tagué "Copilot" intègre donc une surcouche logicielle pour appeler l'IA pour un usage précis : génération de slides, synthèse des réunions teams, recherche de contenu sur Internet ...

Dans le cadre de GitHub Copilot, GitHub a identifié des cas d'usage autour du développement logiciel où les IA génératives pourraient simplifier le quotidien des développeurs.

Copilot X est un produit ?

Le terme Copilot X fait penser à une version du produit Copilot, en réalité il ne s'agit pas d'un numéro de version mais d'une liste de services intégrés à Github utilisant les IA génératives pour produire de la valeur.

Cela regroupe: Copilot, Copilot chat, Copilot for docs, Copilot for PR ...
L'ensemble de ces produits constituent Copilot X.

La cible de Copilot X est d'enrichir tout le SDLC (Software Development Lifecycle) et de permettre d'offrir de nouveaux services innovants aux développeurs.

Github Copilot : L'autocomplétion

Le premier cas d'usage proposé par GitHub est l'autocomplétion de code pour permettre de produire automatiquement du code en fonction de ce que saisit le développeur. Ce cas d'usage est le plus simple à prendre en main pour un développeur, car cela ne change pas sa manière de travailler et lui permet de gagner en productivité dès les premières minutes d'utilisation.

Son utilisation est simple, vous installez le plugin "Copilot" sur votre IDE préféré, vous souscrivez à une licence sur Github et vous vous authentifiez sur votre IDE. La performance de l'autocomplétion du plugin est différente en fonction de 3 critères :

  • Le langage utilisé : le langage Java semble être aujourd'hui le langage sur lequel Copilot a le plus de succès sur l'autocomplétion
  • Les frameworks utilisés : si vous utilisez des frameworks largement utilisés, Copilot aura un taux de succès plus important sur les propositions d'autocomplétion de code.
  • La manière de documenter son code

Ce troisième point est très important, car plus vous documentez clairement votre intention au travers d'un commentaire précis, plus Github Copilot sera en mesure de comprendre votre intention et de vous proposer du code en réponse à votre commentaire.

GitHub Copilot Chat : Le ChatGPT du développeur

Copilot Chat est le dernier produit de Github rendu accessible à l'ensemble de ses utilisateurs. Cet outil répond à un réel besoin du développeur, celui de l'aider au quotidien sur des questions techniques.

Il s'agit d'un ChatGPT directement disponible au sein de l'IDE de développement et capable de répondre des questions autour du développement informatique.
Ce plugin est aussi capable d'interagir avec du code que le développeur a préalablement sélectionné dans son IDE. C'est un réel outil de productivité pour assister un développeur à répondre à ses questions et à générer des squelettes de code rapidement.

Pour apprendre à utiliser ce service, il est nécessaire de prendre le réflex de ne plus ouvrir son navigateur Web à chaque question technique et à l'adresser directement depuis son IDE au travers de Copilot Chat. Avec un peu d'expérience et des formulations claires, vous pourrez gagner en productivité.

Enfin, Github Copilot Chat est très puissant dans la construction de requêtes SQL assez complexes. Si vous devez construire des DAO, Copilot peut être très efficace dans ce domaine.

GitHub Copilot génère-t-il du code non sécurisé ?

GitHub a longuement travaillé pour rendre son produit plus qualitatif. Initialement moqué par certaines universités de recherche indiquant que l'outil produisait du code pas suffisamment sécurisé, Github a travaillé sur un filtre de sécurité pour rendre le code généré plus sécurisé depuis.

En cible, l'outil devrait probablement permettre d'identifier des vulnérabilités et de proposer des améliorations. C'est peut-être l'une des annonces que fera GitHub au prochain GitHub Universe programmé au mois de novembre ?

En attendant, les revues de code systématiques restent une bonne pratique pour améliorer la qualité du code produit et s'assurer de sa sécurité. Les vulnérabilités d'un système ne sont pas toujours liées à de mauvaises pratiques de développement, cela peut aussi être lié aux règles implémentées.

Comment Github a entrainé son modèle ?

Github a utilisé du code source public stocké sur Github pour entrainer ses modèles d'intelligence artificielle.
Parmi les projets publics, des repository Git avec des licences Opensource Copyleft ont été utilisés.

Pour permettre aux utilisateurs du service Copilot d'identifier si du code source généré a été dupliqué de repository Opensource, Github a récemment mis en place un outil de détection de code dupliqué.

Depuis, Microsoft s'engage à payer les frais de justice si des clients sont poursuivis pour avoir utilisé son IA Copilot.

Mon code est-il utilisé pour entrainer le modèle de GitHub ?

GitHub a adapté ses conditions d'utilisations et a annoncé ne plus stocker le code reçu et les réponses envoyés par son système. L'ensemble des données échangées sont chiffrées et sont traitées en mémoire sans aucun stockage sur disque.

GitHub Copilot sends an encrypted Prompt from your code editor to GitHub to provide Suggestions to you.
Prompts are transmitted only to generate Suggestions in real-time and are deleted once Suggestions are generated. Prompts are not used for any other purpose, including the training of language models. Prompts are encrypted during transit and are not stored at rest.

L'ensemble des données échangées sont donc traitées en mémoire, GitHub n'utilise pas le code de ses utilisateurs de son service pour améliorer son modèle.
Cependant, même si c'était le cas, il serait probablement très compliqué à Github de rassembler les morceaux de code transmis pour en recréer une recopie conforme.

Où se trouvent les serveurs de Github Copilot ?

Le enpoint de l'API utilisée par Github Copilot est :
https://copilot-proxy.githubusercontent.com/

A date, la résolution de cette entrée sur le territoire français retourne l'IP suivante 20.74.18.95.
Celle-ci est localisée en France sur les Datacenters d'Azure en région parisienne.

Cette résolution de DNS peut parfois pointer sur des IP aux USA.

L'abonnement à GitHub Copilot est cher ?

Actuellement GitHub commercialise Copilot avec deux options de licence : la licence personnelle à 10€ / mois et la licence Business à 19€ / mois.
La licence Business peut être automatiquement activée sur des équipes configurées sur Github et facturées sur une souscription Azure.

Plusieurs articles semblent affirmer le coût du service serait plus bas que son coût réel pour Microsoft. Microsoft pourrait ainsi perdre entre 20€ à 80€ par utilisateur de son service. Sauf erreur de ma part, cette information n'a pas été pour le moment confirmée par Microsoft.

Quelle formation réaliser pour apprendre à utiliser Copilot ?

L'outil est suffisamment simple à prendre en main sans formation préalable. J'identifie cependant deux bonnes pratiques :

  • La première bonne pratique est de créer des commentaires qui décrivent au mieux l'intention du code à développer pour permettre au LLM de proposer un code le plus proche de la cible.
  • La deuxième bonne pratique est de tester des formulations de prompt sur Copilot Chat et de retenir celles qui produisent les meilleurs résultats.

Cependant si vous avez 17 minutes devant vous, je vous invite à découvrir cette formation proposée par Microsoft qui présente les 4 sujets suivants :

  • Comprendre comment GitHub Copilot vous permet de coder grâce à des suggestions de type autocomplétion.
  • Activer GitHub Copilot for Business pour votre entreprise.
  • Découvrir comment configurer GitHub Copilot.
  • Résoudre les problèmes liés à GitHub Copilot.

Est-ce que Copilot est une opportunité pour revoir les méthodes de développement ?

Le plugin Copilot a été créé en extension des processus de développement actuellement utilisés par les développeurs. Il est probable que de nouvelles méthodes de développement apparaissent grâce aux LLM et que le TDD notamment qui est assez peu mis en oeuvre aujourd'hui soit plus largement déployé grâce aux LLM.

Il est aussi possible que des plugins soient plus intrusifs dans la structuration du projet afin que le LLM soit plus performant. Il est aussi possible d'imaginer des plateformes 2 en 1 ou les Business Analysts travailleraient en binôme avec le développeur au sein du même outil avec une assistance dans la vérification de la couverture des exigences par le LLM.

Code LLama pourra-t-il concurrencer GitHub ?

Code LLama est un LLM Opensource partagé par la société Meta. C'est un LLM qui est capable de réaliser de l'autocomplétion de code et de répondre à des questions techniques de la même manière que Copilot Chat. Les plugins capables d'intégrer ce LLM dans un IDE sont assez limités pour le moment. Mais il est probable que certains plugins Opensource essayent de concurrencer Github. C'est par exemple le cas du plugin "Continue" disponible sur VSCode qui vient directement concurrencer la fonctionnalité Copilot Chat.

Les avantages d'utiliser un LLM Opensource sont nombreux : protection des données, capacité d'entrainement du modèle ... Mais le principal inconvénient est le coût d'infrastructure / matériel pour héberger ce modèle et le dimensionner à son usage. Enfin, une difficulté de taille concerne les temps de latence de l'autocomplétion de code, il est nécessaire à ce que le LLM réponde en quelques millisecondes pour rendre l'outil acceptable pour le développeur. C'est sur ce point que GitHub a énormément investi d'argent.

Si vous souhaitez jouer avec Code LLama, je vous invite à lire mon précédent article sur Ollama qui est disponible sur Mac OS et Linux et qui simplifie l'installation et l'utilisation de LLM.

Quel est l'avenir de Copilot ?

Il est propbable que Copilot s'oriente vers la construction d'agents autonomes capables de réaliser des tâches complexes en toute autonomie : Squelette de projet, analyse de la couverture des fonctionnalités, génération de tests ...

C'est ce que propose aujourd'hui la société Cursor.sh au travers de la modification de l'IDE VSCodium pour générer des squelettes de projet complets.
Le seul problème de ce type de service est le coût d'infrastructure nécessaire pour permettre à ces agents de fonctionner. Un agent autonome peut générer des milliers de requêtes vers le LLM pour atteindre l'objectif de sa tâche. À titre d'exemple, un prompt sur la plateforme cursor.sh peut se traduire en plusieurs euros de facturation OpenAI.

Bref, j'espère que cet article vous sera utile, n'hésitez pas à réagir à celui-ci sur le serveur Discord Geeek.



Vous êtes correctement abonné à Geeek
Bienvenue ! Vous êtes correctement connecté.
Parfait ! Vous êtes correctement inscrit.
Votre lien a expiré
Vérifiez vos emails et utiliser le lien magique pour vous connecter à ce site