Achèvements de l’équipe IntelliCode : IntelliSense assisté par l’IA en fonction de votre code

Utilisez des modèles d’équipe IntelliCode pour obtenir des recommandations IntelliSense assistées par l’IA en fonction de vos bases de code C# et C++. Les achèvements d’équipe sont utiles lors de l’utilisation de vos propres types ou bibliothèques spécifiques à un domaine qui ne sont pas couramment utilisées dans le code open source, car les recommandations du modèle de base d’IntelliCode sont basées uniquement sur les modèles appris à partir de bases de GitHub open source. Si vous travaillez sur du code qui n’est pas dans cet ensemble de repos open source, les recommandations de base ne vous seront pas utiles. Si vous écrivez du code C# et C++ dans Visual Studio, utilisez IntelliCode pour apprendre des modèles à partir de leur code pour faire des recommandations adaptées à votre code.

Les modèles IntelliCode sont une encapsulation d’un ensemble de règles qui vous permettent de prédire des informations utiles (par exemple, des recommandations dans la liste IntelliSense) basées sur une analyse du code. IntelliCode crée des modèles d’équipe à l’aide du même processus d’apprentissage que pour les modèles de base IntelliCode, sauf qu’ils sont formés sur votre propre code. Plus vous fournissez de code pour illustrer vos modèles d’utilisation, plus votre modèle d’équipe sera capable d’offrir des recommandations utiles.

Pour créer votre modèle d’équipe, nous extrayons un fichier résumé avec des métadonnées sur vos types et leurs utilisations et chargeons-le en toute sécurité dans notre service.

Comment les modèles sont appliqués

IntelliCode génère ses recommandations à partir de plusieurs modèles, en fusionnant :

  • Modèle de base pour la langue que vous utilisez (qui est entraîné sur des milliers de repos publics GitHub).
  • Tous les modèles d’équipe que vous avez formés.
  • Tous les modèles d’équipe associés au référentiel Git dans lequel vous travaillez.

Vous n’avez pas besoin de gérer les modèles qui s’appliquent à quelle solution ou codebase, car IntelliCode s’occupe de cela.

Types de modèles d’achèvement d’équipe

Il existe deux façons d’obtenir des modèles d’achèvement d’équipe :

  1. Associé au référentiel : les modèles sont liés au référentiel. Tous les utilisateurs qui peuvent cloner et modifier le référentiel sont autorisés à accéder automatiquement au modèle. Votre codebase doit être sous contrôle de code source Git et envoyé à distance à l’aide de Azure Pipelines tâche ou d’action GitHub à partir de la build CI pour créer un modèle associé au référentiel.

  2. Associé à l’ordinateur : les modèles sont disponibles uniquement sur l’ordinateur sur lequel ils sont formés.

Modèles d’équipe associés au référentiel

Les modèles d’équipe associés au référentiel sont disponibles pour les utilisateurs qui les entraînent à l’aide de Azure Pipelines ou de GitHub Actions.

Partage de vos modèles associés au référentiel

Les modèles associés au référentiel sont automatiquement partagés avec d’autres utilisateurs travaillant dans la même base de code et ont activé l’acquisition automatique de modèles d’équipe dans Visual Studio. Activez l’acquisition automatique en sélectionnant les modèles d’équipe ToolsOptionsIntelliCodeAcquire>>>pour l’achèvement.

Lorsque vous clonez et ouvrez le modèle codebase, qui a été entraîné, tous les modèles associés aux référentiels distants Git configurés sont téléchargés et activés. Si vous travaillez sur un fork de codebase, ajoutez la base de code en amont en tant que référentiel distant pour obtenir le modèle.

Si vous avez accès au référentiel, vous aurez également accès au modèle. Lors de la formation, nous collectons des informations sur la validation extraite. Si vous demandez le modèle, vous devez avoir la même validation dans le référentiel et produire les mêmes informations, qui ont été collectées lors de l’entraînement pour recevoir le modèle d’équipe.

Notes

La possibilité de partager vos modèles d’achèvement d’équipe associés à l’utilisateur via un lien de partage, disponible dans certaines versions préliminaires des achèvements d’équipe, est désormais déconseillée.

Supprimer votre modèle

Vous pouvez supprimer des modèles de votre compte pour qu’ils ne puissent plus être utilisés.

Supprimer un modèle associé à l’utilisateur créé dans Visual Studio

Bien que votre solution soit ouverte dans Visual Studio, décochez la case à cocher acceptant la formation du modèle, dans la page ViewOther>Windows>IntelliCode. Le modèle est supprimé.

Supprimer un modèle attaché au référentiel créé à l’aide de Azure DevOps ou d’un flux de travail CI GitHub

Supprimez la tâche d’entraînement de votre pipeline, le modèle associé est supprimé dans les 30 jours s’il n’est pas entraîné.

Modèles associés à l’ordinateur

Créer et réentraîner votre modèle

Pour entraîner un modèle associé à l’ordinateur :

  1. Ouvrez le projet ou la solution dans Visual Studio.
  2. Ouvrez la page IntelliCode en sélectionnant ViewOther>Windows>IntelliCode.
  3. Passez en revue et acceptez la case à cocher des termes du contrat de licence en bas de la page. Un modèle associé à l’ordinateur est entraîné automatiquement.

Notes

Vous devez répéter les étapes ci-dessus pour chaque solution sur laquelle vous souhaitez effectuer l’apprentissage.

Visual Studio réentraîne automatiquement vos modèles d’achèvement d’équipe associés à l’ordinateur, régulièrement.

Entraîner sur un code base public

Avant d’effectuer l’apprentissage sur votre propre code, vous pouvez créer un modèle d’achèvement sur une base de code publique. Vous pouvez voir comment le modèle de saisie semi-automatique affecte IntelliSense ou si vous êtes préoccupé par le type de données collectées par IntelliSense, vous pouvez inspecter les données extraites. Voici quelques exemples sur lesquels il est intéressant d’effectuer l’entraînement :

  • Azure ConferenceBuddy

    Fork the repo to your personal account, clonez le dépôt, ouvrez la solution ConferenceBuddy.sln , générez pour vérifier qu’il fonctionne, puis entraînez le modèle. Vous trouverez quelques bonnes complétions sur les instances de la classe AskWhoTask.

  • Lecteur RSS Windows

    Fork the repo to your personal account, clonez le dépôt, ouvrez la solution RssReader.sln , générez pour vérifier qu’il fonctionne, puis entraînez le modèle. Vous trouverez quelques bonnes complétions sur les instances de la classe MainViewModel.

Autotraining models for your codebase

Après avoir créé une solution, vous pouvez être invité à activer IntelliCode pour entraîner automatiquement un modèle pour les achèvements IntelliCode pour cette solution.

En activant les modèles de formation automatique pour les achèvements IntelliCode, IntelliCode entraîne un modèle Machine Learning pour les achèvements de la solution active et uniquement l’utilisateur qui a accès à la solution sur l’ordinateur où la formation automatique a été activée aura accès au modèle respectif. Si vous souhaitez partager vos saisies de code personnalisées avec toute personne qui peut accéder à votre référentiel, vous devez configurer les achèvements automatiques de l’équipe d’entraînement dans le cadre de votre flux de travail CI.

Notes

Pour la mise en forme automatique d’un modèle pour les achèvements de code personnalisé IntelliCode pour votre solution dans Visual Studio, il n’existe aucune configuration requise pour le contrôle de code source. Toutefois, si vous souhaitez partager vos achèvements personnalisés avec votre équipe, votre codebase doit être sous contrôle de code source Git et envoyé à distance pour créer un modèle associé au référentiel.

Activation des modèles de mise en forme automatique pour les achèvements de code personnalisés dans Visual Studio

Pour activer l’apprentissage automatique des modèles pour les achèvements IntelliCode pour votre code dans Visual Studio :

  1. Ouvrez le dossier solution ou référentiel dans Visual Studio.

  2. En activant l’apprentissage automatique d’un modèle pour les saisies semi-automatiques par le biais de l’invite d’infobars après une génération réussie, via l’interface utilisateur IntelliCode, en sélectionnant ViewOther>windowsIntelliCode> ou par le biais du paramètre ToolsOptionsIntelliCode>> définissant « Modèles d’équipe de formation automatique intelliSense pour les achèvements IntelliSense » ou en recherchant « Autotrain » dans Visual Studio Recherche (Ctrl + Q) ).

  3. Lors de la création réussie du modèle, le modèle est automatiquement téléchargé sur Visual Studio. Vous pouvez suivre la progression du modèle en ouvrant la fenêtre sortie et en passant à IntelliCode dans la liste déroulante OR dans ViewOther>windowsIntelliCode>.

Notes

Vérifiez que vous avez installé Visual Studio version 16.7 Preview 3 ou ultérieure. Une fois la préversion installée, vous pouvez activer les modèles automatiques pour des saisies de code personnalisées via la barre d’informations après une génération de solution réussie ou via ToolsOptionsIntelliCode>>.

Une fois l’entraînement terminé, essayez d’écrire du code à l’aide des classes/types qui sont particuliers à votre dépôt. Vous devez voir des suggestions en vedette pour les cas les plus courants.

Une fois que vous avez terminé avec les achèvements de code personnalisés sur votre solution, vous pouvez créer, réentraîner et partager automatiquement des saisies de code personnalisées IntelliCode avec l’ensemble de votre équipe de développement dans le cadre de votre pipeline d’intégration continue dans Azure Pipelines ou GitHub action pour les achèvements d’équipe.

Données et confidentialité

Pour créer votre modèle d’équipe, nous extrayons un fichier résumé avec des métadonnées sur vos types et leurs utilisations. Par exemple, le fichier résumé contient les noms des classes et des méthodes et la fréquence à laquelle ils sont appelés dans différentes circonstances. IntelliCode ne fait pas le suivi des touches que vous utilisez, et n’extrait pas du code des expressions entières, des instructions ou des valeurs littérales (comme des chaînes).

Les données extraites sont transmises via HTTPS au service IntelliCode. Le service utilise ensuite des algorithmes de Machine Learning pour entraîner un modèle pour votre code. Il retourne le modèle à votre ordinateur, où il est fusionné avec le modèle de base.

Lorsque vous activez IntelliCode pour lancer l’entraînement et la mise en forme automatique de votre modèle pour les complétions de code personnalisées :

  • Nous analysons votre code localement.
  • Nous extrayons un fichier résumé avec des métadonnées sur vos types et leurs utilisations.
  • Nous le chargeons en toute sécurité dans le service IntelliCode et nous entraînerons un modèle d’achèvement adapté à votre code.
  • Votre modèle d’achèvement n’est jamais partagé avec les utilisateurs qui ont accès à votre dépôt (si un référentiel Git cloné).
  • Vous pouvez supprimer votre modèle à tout moment et annuler l’entraînement du modèle directement dans l’interface utilisateur IntelliCode à ViewOther>windowsIntelliCode>. Décochez la case dans l’interface utilisateur pour supprimer le modèle pour les achèvements de code personnalisés.
  • Vous pouvez actualiser vos modèles appris directement dans l’interface utilisateur IntelliCode trouvée dans ViewOther>windowsIntelliCode>.

Vous verrez la progression de l’entraînement dans la section IntelliCode de votre fenêtre de sortie Visual Studio ou l’interface utilisateur IntelliCode dans ViewOther>windowsIntelliCode>. Une fois l’entraînement terminé, vous pouvez voir votre résumé et le nouveau modèle adapté à votre code. Ensuite, essayez d’écrire du code à l’aide des classes/types particuliers à votre dépôt. Vous devriez voir des suggestions en vedette pour les cas les plus courants.

Voir les données extraites

Pour inspecter le contenu des données extraites :

  1. Ouvrez le répertoire de données extrait :

    • Pour les modèles associés au référentiel : %temp%\Intellicode_Extraction_2019-10-23 — 234524
    • Pour les modèles associés à l’ordinateur : %TEMP%\Visual Studio IntelliCode
  2. Pour rechercher et ouvrir l’entraînement pour votre session d’entraînement la plus récente, triez la vue du dossier par date (par ordre décroissant). Le dossier de votre dernière session d’entraînement est maintenant tout en haut.

    Conseil

    Il y a un dossier par session d’entraînement dans le répertoire %TEMP%\Visual Studio IntelliCode, chacun avec un nom défini de façon aléatoire.

Le dossier contient l’ensemble complet des fichiers qui sont envoyés à Microsoft quand l’extraction est terminée. Le sous-dossier UsageOutput contient un fichier JSON qui contient les informations qu’IntelliCode a extraites de votre code pour entraîner le modèle. Le fichier UsageOutput_ErrorStats contient les éventuelles erreurs trouvées lors de la génération du fichier extrait et peut être utile si Microsoft doit déboguer les problèmes.

IntelliCode model-training directory

Si vous voulez inspecter les données extraites pour un autre code base avant de l’essayer sur votre propre code, entraînez un modèle sur un code base public.

Comment nous sécurisons vos données

Toutes les données que vous envoyez et que vous recevez du service IntelliCode sont transmises via HTTPS. Vous devez vous connecter à Visual Studio pour communiquer avec le service.

Les modèles peuvent être récupérés par :

  • Modèles associés à l’ordinateur : l’ordinateur, qui envoie les données extraites pour l’entraînement.
  • Modèles associés au référentiel : les utilisateurs qui peuvent prouver qu’ils ont accès au référentiel pour les modèles associés au référentiel.

Votre modèle et ce qui est appris sur votre code reste privé pour vous et vos collaborateurs prévus.

Si Microsoft doit résoudre les problèmes, le personnel de service Microsoft autorisé peut être autorisé à accéder à vos modèles et extraire des données à des fins de diagnostic uniquement.

Voir aussi