Personalizzare Copilot

Sviluppo software con GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Sviluppo software con GitHub Copilot

Sviluppo software con GitHub Copilot

Sviluppo software con GitHub Copilot

Sviluppo software con GitHub Copilot

Come funzionano le istruzioni personalizzate

$$

Definisci:

  • Convenzioni di codifica
  • Preferenze degli strumenti
  • Contesto del progetto

Sviluppo software con GitHub Copilot

Come funzionano le istruzioni personalizzate

$$

Definisci:

  • Convenzioni di codifica
  • Preferenze degli strumenti
  • Contesto del progetto

Sviluppo software con GitHub Copilot

Come definire istruzioni personalizzate

Includile in: .github/copilot-instructions.md

## Contesto del progetto
Progetto Python per elaborare pipeline di dati con Airflow.

## Stile di codifica - Usa type hints per tutte le funzioni
- Segui PEP8
- Usa snake_case per i nomi
- Scrivi docstring in stile Google
## Test - Usa pytest
- Includi un test per funzione
## Altre istruzioni...
Sviluppo software con GitHub Copilot

Cosa rende efficace un'istruzione

$$

✅ Istruzioni efficaci:

  • Brevi e specifiche
  • Autonome
  • Aggiungi contesto o info rilevanti

$$

❌ Istruzioni inefficaci:

  • Documenti o repository esterni
  • Tono o stile di scrittura specifico
  • Limiti su dettagli o formattazione
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Sviluppo software con GitHub Copilot

$$

$$

## Linee guida di stile

- Conformati agli stili di codifica definiti 
in styleguide.md nel repo my-org/my-repo

- Rispondi come un collega amichevole, 
usando un linguaggio informale

- Rispondi in meno di 1.000 caratteri

Sviluppo software con GitHub Copilot

$$

$$

## Linee guida di stile

- Conformati agli stili di codifica definiti 
in styleguide.md nel repo my-org/my-repo

- Rispondi come un collega amichevole, 
usando un linguaggio informale

- Rispondi in meno di 1.000 caratteri

Sviluppo software con GitHub Copilot

Come abilitare le istruzioni personalizzate

  • Salva il file copilot-instructions.md
  • Sarà incluso automaticamente nei tuoi prompt

Sviluppo software con GitHub Copilot

Come abilitare le istruzioni personalizzate

  • Salva il file copilot-instructions.md
  • Sarà incluso automaticamente nei tuoi prompt

Sviluppo software con GitHub Copilot

Usare più file di istruzioni

Sviluppo software con GitHub Copilot

Usare più file di istruzioni

Sviluppo software con GitHub Copilot

Usare più file di istruzioni

$$

Sviluppo software con GitHub Copilot

Impostare istruzioni a livello organizzativo

$$

Sviluppo software con GitHub Copilot

Impostare istruzioni a livello organizzativo

$$

Esempi di regole aziendali:

  • Usa strumenti interni
  • Impiega librerie specifiche
  • Applica uno stile coerente
  • Avvisa su pattern deprecati
Sviluppo software con GitHub Copilot

Priorità delle istruzioni multi-livello

$$

$$

$$

Ambito Priorità
Istruzioni personali Alta
Istruzioni di progetto Media
Istruzioni organizzative Bassa
Sviluppo software con GitHub Copilot

$$

Esempio di prompt: "Scrivi una funzione che calcola la media di una lista di numeri."

def calculate_average(numbers: List[float]) -> float:
    """Calcola la media di una lista di numeri.

    Args:
        numbers (List[float]): Una lista di numeri da mediare.

    Returns:
        float: Il valore medio dei numeri.

    Raises:
        ValueError: Se la lista è vuota.
    """
    if not numbers:
        raise ValueError("La lista di numeri non può essere vuota.")
    return sum(numbers) / len(numbers)
Sviluppo software con GitHub Copilot

$$

Esempio di prompt: "Scrivi una funzione che calcola la media di una lista di numeri."

def calculate_average(numbers: List[float]) -> float:
    """Calcola la media di una lista di numeri.

    Args:
        numbers (List[float]): Una lista di numeri da mediare.

    Returns:
        float: Il valore medio dei numeri.

    Raises:
        ValueError: Se la lista è vuota.
    """
    if not numbers:
        raise ValueError("La lista di numeri non può essere vuota.")
    return sum(numbers) / len(numbers)

$$

Sviluppo software con GitHub Copilot

Ayo berlatih!

Sviluppo software con GitHub Copilot

Preparing Video For Download...