Skip to main content

Utilisation responsable des suggestions en ligne de GitHub Copilot

Découvrez comment utiliser de manière responsable les suggestions en ligne de Copilot en comprenant ses objectifs, ses fonctionnalités et ses limitations.

À propos des suggestions en ligne de GitHub Copilot

Les suggestions en ligne de Copilot sont des suggestions de type autocomplétion générées directement dans l’éditeur par GitHub Copilot. Les suggestions en ligne de Copilot créent l’expérience d’un travail avec un programmeur en binôme alimenté par l’IA, en proposant automatiquement des suggestions pour compléter votre code. De plus, il peut suggérer des commentaires de code, des tests et bien plus encore. Il fournit ces suggestions directement dans les éditeurs pris en charge pendant que vous écrivez votre code, et il peut fonctionner avec un large éventail de langages de programmation et de frameworks. Pour plus d’informations, consultez Qu’est-ce que GitHub Copilot ?.

Les suggestions de Copilot peuvent compléter la ligne actuelle, mais peuvent parfois constituer un tout nouveau bloc de code. Vous pouvez accepter tout ou partie d’une suggestion, masquer la suggestion ou continuer à taper et ignorer les suggestions.

Copilot les suggestions inline fonctionnent à l’aide d’une combinaison de traitement du langage naturel et de machine learning pour comprendre votre code environnant (par rapport à votre position de curseur) et vous fournir des suggestions. Ce processus peut être divisé en plusieurs étapes.

Traitement de l’entrée

Le code entourant le curseur de l’utilisateur est prétraité par le système de suggestions en ligne de Copilot, combiné à des informations contextuelles (telles que des extraits de code provenant des onglets ouverts dans l’éditeur) et envoyé à un grand modèle de langage sous forme de requête. Pour plus d’informations sur la conservation des données, consultez le GitHub Copilot Centre de confiance.

Le grand modèle de langage prend ensuite le prompt et fournit une réponse basée sur ce dernier. Le système est uniquement destiné à faciliter le codage.

Analyse du modèle de langage

Le grand modèle de langage qui traite l’invite d’entrée est un modèle de langage affiné pour les suggestions en ligne, qui est un réseau neuronal entraîné sur un vaste ensemble de données de code spécialisées pour fournir des suggestions en ligne.

Vous pouvez modifier le modèle utilisé pour les suggestions inline. Consultez Modification du modèle IA des suggestions en ligne de GitHub Copilot.

Génération de la réponse

Le modèle de langage génère une réponse en fonction de son analyse de la demande entrée et du contexte fourni. Cette réponse prend la forme de code généré et de commentaires en texte brut, allant de la complétion de la ligne actuelle à un tout nouveau bloc de code.

Mise en forme de la sortie

La réponse générée par Copilot est mise en forme sous forme de « texte fantôme » qui est visuellement distincte du code environnant et présentée à l’utilisateur comme suggestion. Elle est uniquement ajoutée au fichier/au codebase si l’utilisateur accepte explicitement la suggestion. Les utilisateurs peuvent accepter tout ou partie d’une suggestion, masquer la suggestion ou continuer à taper et ignorer les suggestions, auquel cas la suggestion est supprimée.

GitHub Copilot les suggestions inline sont destinées à vous fournir les suggestions de code les plus pertinentes et utiles pour augmenter votre code existant. Cependant, elle peut ne pas toujours fournir les réponses que vous recherchez. Les utilisateurs de Copilot sont tenus de passer en revue et de valider les réponses générées par le système avant de les accepter, afin de s’assurer qu’elles sont exactes et appropriées. De plus, dans le cadre de notre processus de développement produit, nous effectuons des opérations de red teaming pour comprendre et améliorer la sécurité des suggestions en ligne Copilot. Les suggestions générées sont également exécutées via des filtres de contenu. Le système de filtrage de contenu détecte et bloque Copilot afin d’empêcher la sortie de tout contenu nuisible ou offensant, ou de tout code non sécurisé. En outre, en fonction des paramètres de GitHub de l'utilisateur, le filtre bloque ou annote également les suggestions qui contiennent des correspondances avec du code public.

Cas d’utilisation des suggestions en ligne de GitHub Copilot

Les suggestions en ligne de GitHub Copilot peuvent fournir une assistance au codage dans divers scénarios.

Générez du code en fonction de vos instructions

En plus de vous appuyer sur Copilot pour fournir des suggestions, vous pouvez utiliser des commentaires dans le code pour indiquer à Copilot quel code vous attendez après le commentaire. Par exemple, vous pouvez utiliser des commentaires tels que « utiliser la récursivité » ou « utiliser un modèle singleton » pour spécifier un type d’algorithme que Copilot doit suggérer. Vous pouvez également utiliser des commentaires pour indiquer à Copilot les méthodes et propriétés à ajouter à une classe.

Génération de cas de test unitaire

Les suggestions en ligne de Copilot peuvent vous aider à rédiger des cas de test unitaires en générant des extraits de code à partir du code environnant saisi dans l’éditeur. Vous pouvez ainsi passer moins de temps sur des tâches répétitives liées à l’écriture de cas de test. Par exemple, si vous écrivez un cas de test pour une fonction spécifique, vous pouvez utiliser Copilot pour suggérer des paramètres d’entrée possibles et des valeurs de sortie attendues en fonction de la signature et du corps de la fonction. Les suggestions inline peuvent également suggérer des assertions qui garantissent que la fonction fonctionne correctement, en fonction du contexte et de la sémantique du code.

Les suggestions en ligne de Copilot peuvent également aider à générer des cas de test pour des cas limites et des conditions aux bornes qui peuvent être difficiles à identifier manuellement. Par exemple, Copilot peut suggérer des cas de test pour la gestion des erreurs, les valeurs nulles ou les types d’entrée inattendus, vous aidant ainsi à garantir la robustesse et la résilience de votre code. Cependant, il est important de noter que les cas de test générés peuvent ne pas couvrir tous les scénarios possibles, et que les tests manuels et la révision du code sont toujours nécessaires pour garantir la qualité du code.

Ce peut être un outil pratique pour les programmeurs, car il peut fournir des conseils et du support pour des tâches et des problématiques de codage courantes.

Améliorer les performances des suggestions en ligne de GitHub Copilot

Les suggestions en ligne de Copilot peuvent générer des propositions de code dans différents contextes, avec des niveaux de performance et de qualité variables. Pour améliorer les performances et pallier certaines des limites des suggestions en ligne de Copilot, vous pouvez adopter différentes mesures. Pour plus d’informations sur les limitations des suggestions en ligne de Copilot, consultez Limitations des suggestions en ligne de GitHub Copilot.

Limitez vos demandes au sujet concerné

Copilot est exclusivement destiné à générer des complétions qui sont soit liées au code, soit du code lui-même. Par conséquent, limiter le contexte du contenu dans l’éditeur au code ou aux informations liées au codage peut permettre d’améliorer la qualité de la sortie du modèle.

Utilisez les suggestions intégrées de Copilot comme outil, et non pas comme un remplacement.

Bien que Copilot puisse être un outil puissant pour générer du code, il est important de l’utiliser comme un outil et non comme un substitut à la programmation humaine. Vous devez toujours passer en revue le code généré par Copilot avant d’accepter une suggestion, puis le valider afin de vous assurer qu’il répond à vos besoins et qu’il ne comporte aucune erreur ou faille de sécurité.

Important

Les utilisateurs assument tous les risques associés au code généré, y compris les failles de sécurité, les bogues et les violations d’adresses IP.

Utiliser des pratiques de codage sécurisé et de révision du code

Bien que les suggestions en ligne de Copilot puissent générer du code syntaxiquement correct, ce dernier peut ne pas toujours être sécurisé. Vous devez toujours suivre les meilleures pratiques pour le codage sécurisé, telles que l’évitement des mots de passe codés en dur ou des vulnérabilités d’injection SQL, ainsi que les bonnes pratiques de révision du code suivantes, pour résoudre les limitations de Copilot.

Rester informé

Les suggestions en ligne de Copilot constituent encore une technologie relativement récente et sont susceptibles d’évoluer au fil du temps. Il est recommandé de se tenir informé des mises à jour ou des modifications apportées à l’outil ainsi que des nouveaux risques ou des bonnes pratiques en matière de sécurité qui peuvent apparaître. Les mises à jour d’extension automatisées sont activées par défaut dans Visual Studio Code, Visual Studio et la suite JetBrains d’IDEs. Si les mises à jour automatiques sont activées, Copilot se mettra automatiquement à jour vers la dernière version lorsque vous ouvrirez votre IDE. Pour plus d’informations sur les mises à jour automatiques dans votre IDE, consultez la documentation de votre IDE ou éditeur de code préféré.

Limitations des suggestions en ligne de GitHub Copilot

Selon des facteurs tels que votre base de code et vos données d’entrée, vous pouvez rencontrer différents niveaux de performances lors de l’interaction avec les suggestions intégrées de Copilot. Les informations suivantes sont conçues pour vous aider à comprendre les limitations du système et les concepts clés relatifs aux performances, telles qu'elles s'appliquent aux suggestions en ligne de Copilot.

Étendue limitée

Copilot les suggestions en ligne sont formées sur un vaste ensemble de codes, mais ont une portée limitée et peuvent ne pas gérer des structures de code plus complexes ou des langages de programmation obscurs. Pour chaque langage, la qualité des suggestions que vous recevez peut dépendre du volume et de la diversité des données d’entraînement pour ce langage. Par exemple, JavaScript est bien représenté dans les dépôts publics et est l’un des langages les mieux pris en charge par GitHub Copilot. Les langages moins représentés dans les référentiels publics peuvent être plus difficiles à prendre en charge pour Copilot. En outre, Copilot suggestions en ligne ne peuvent suggérer que du code basé sur le contexte du code en cours d'écriture, il peut donc ne pas être en mesure d'identifier des problèmes de conception ou d'architecture plus importants.

Enfin, les suggestions en ligne Copilot sont destinées à générer du code et une sortie liée au code. L’utilisation des suggestions en ligne de Copilot n’a pas pour objectif de générer des contenus en langage naturel.

Biais potentiels

Les données d’entraînement de Copilot sont extraites de dépôts de code existants, qui peuvent contenir des biais et des erreurs qui peuvent être perpétués par l’outil. En outre, Copilot les suggestions inline peuvent être biaisées vers certains langages de programmation ou styles de codage, ce qui peut entraîner des suggestions de code non optimales ou incomplètes.

Risques liés à la sécurité

Copilot génère du code en fonction du contexte du code en cours d’écriture, ce qui peut potentiellement exposer des informations sensibles ou des vulnérabilités s’il n’est pas utilisé avec précaution. Vous devez être prudent lorsque vous utilisez Copilot pour générer du code destiné à des applications sensibles en matière de sécurité et toujours vérifier et tester minutieusement le code généré.

Correspondances avec du code public

Les suggestions en ligne de Copilot sont capables de générer du nouveau code, ce qu’elles font de manière probabiliste. Bien que la probabilité soit faible, Copilot peut générer des suggestions de code qui correspondent à du code présent dans l’ensemble d’entraînement.

Code erroné

L’une des limitations de Copilot est qu’il peut générer du code qui semble valide, mais qui n’est pas nécessairement correct sur le plan sémantique ou syntaxique, ou qui ne reflète pas fidèlement l’intention du développeur. Pour atténuer le risque d’avoir du code erroné, vous devez réviser et tester soigneusement le code généré, en particulier quand vous travaillez sur des applications critiques ou sensibles. Vous devez aussi vérifier que le code généré respecte les bonnes pratiques et les modèles de conception, et qu’il s’intègre dans l’architecture globale et le style du codebase.

Les utilisateurs doivent évaluer des obligations légales et réglementaires spécifiques potentielles lors de l’utilisation de services et de solutions IA, ce qui peut ne pas convenir à une utilisation dans chaque secteur ou scénario. En outre, les services ou solutions IA ne sont pas conçus pour et peuvent ne pas être utilisés de manière interdite en termes de service applicables et codes de conduite pertinents.

Étapes suivantes

Pour plus de détails sur l’utilisation des suggestions en ligne de Copilot, consultez :

  •         [AUTOTITLE](/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot)
    

Pour approfondir

  •         [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot)
    
  •         [GitHub Copilot Centre de Confiance](https://copilot.github.trust.page/)