Personnaliser Copilot

Développement logiciel avec GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Fonctionnement des instructions personnalisées

$$

Définir :

  • Conventions de codage
  • Préférences d'outils
  • Contexte du projet

Développement logiciel avec GitHub Copilot

Fonctionnement des instructions personnalisées

$$

Définir :

  • Conventions de codage
  • Préférences d'outils
  • Contexte du projet

Développement logiciel avec GitHub Copilot

Comment définir des instructions personnalisées

Incluez-les dans : .github/copilot-instructions.md

## Contexte du projet
Projet Python pour traiter des pipelines de données avec Airflow.

## Style de codage - Utiliser des annotations de type pour toutes les fonctions
- Suivre PEP8
- Utiliser la nomenclature snake_case
- Écrire des docstrings au style Google
## Tests - Utiliser pytest
- Inclure un test par fonction
## Plus d'instructions...
Développement logiciel avec GitHub Copilot

Qu'est-ce qui rend une instruction efficace

$$

✅ Instructions efficaces :

  • Courtes et précises
  • Autonomes
  • Ajouter du contexte ou des informations pertinentes

$$

❌ Instructions inefficaces :

  • Documents ou dépôts externes
  • Ton ou style d'écriture spécifique
  • Limite sur les détails ou le formatage
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Développement logiciel avec GitHub Copilot

$$

$$

## Directives de style

- Conformez-vous aux styles de codage définis 
dans styleguide.md dans le dépôt my-org/my-repo

- Répondez dans le style d'un collègue amical, 
en utilisant un langage informel

- Répondez en moins de 1 000 caractères

Développement logiciel avec GitHub Copilot

$$

$$

## Directives de style

- Conformez-vous aux styles de codage définis 
dans styleguide.md dans le dépôt my-org/my-repo

- Répondez dans le style d'un collègue amical, 
en utilisant un langage informel

- Répondez en moins de 1 000 caractères

Développement logiciel avec GitHub Copilot

Comment activer les instructions personnalisées

  • Enregistrez le fichier copilot-instructions.md
  • Il sera automatiquement inclus dans vos invites

Développement logiciel avec GitHub Copilot

Comment activer les instructions personnalisées

  • Enregistrez le fichier copilot-instructions.md
  • Il sera automatiquement inclus dans vos invites

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers d'instructions

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers d'instructions

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers d'instructions

$$

Développement logiciel avec GitHub Copilot

Définir des instructions au niveau de l'organisation

$$

Développement logiciel avec GitHub Copilot

Définir des instructions au niveau de l'organisation

$$

Exemples de règles d'entreprise :

  • Utiliser des outils internes
  • Imposer des bibliothèques spécifiques
  • Appliquer un style cohérent
  • Avertir sur les modèles obsolètes
Développement logiciel avec GitHub Copilot

Priorité des instructions multi-niveaux

$$

$$

$$

Portée Priorité
Instructions personnelles Haute
Instructions de projet Moyenne
Instructions d'organisation Basse
Développement logiciel avec GitHub Copilot

$$

Exemple d'invite : "Écrire une fonction qui calcule la moyenne d'une liste de nombres."

def calculate_average(numbers: List[float]) -> float:
    """Calculer la moyenne d'une liste de nombres.

    Args:
        numbers (List[float]): Une liste de nombres à moyenner.

    Returns:
        float: La valeur moyenne des nombres.

    Raises:
        ValueError: Si la liste est vide.
    """
    if not numbers:
        raise ValueError("La liste de nombres ne peut pas être vide.")
    return sum(numbers) / len(numbers)
Développement logiciel avec GitHub Copilot

$$

Exemple d'invite : "Écrire une fonction qui calcule la moyenne d'une liste de nombres."

def calculate_average(numbers: List[float]) -> float:
    """Calculer la moyenne d'une liste de nombres.

    Args:
        numbers (List[float]): Une liste de nombres à moyenner.

    Returns:
        float: La valeur moyenne des nombres.

    Raises:
        ValueError: Si la liste est vide.
    """
    if not numbers:
        raise ValueError("La liste de nombres ne peut pas être vide.")
    return sum(numbers) / len(numbers)

$$

Développement logiciel avec GitHub Copilot

Passons à la pratique !

Développement logiciel avec GitHub Copilot

Preparing Video For Download...