GitHub Copilot: cos’è, a cosa serve e come usarlo
Meta description SEO: Guida pratica a GitHub Copilot: cos’è, quando è stato introdotto, come usarlo in Visual Studio Code (autocomplete e Copilot Chat) e online su GitHub, con pro e contro e un esempio completo di regressione lineare in Python.
Cos’è GitHub Copilot e a cosa serve
GitHub Copilot è un assistente AI per programmatori. Mentre scrivi codice può suggerire righe o funzioni direttamente nell’editor e, con Copilot Chat, puoi fare domande e farti generare codice in modo conversazionale.
In pratica ti serve per:
- scrivere più velocemente boilerplate e parti ripetitive
- ottenere file completi partendo da una richiesta (prompt)
- migliorare e correggere codice con suggerimenti mirati tramite chat
Quando è stato introdotto
Le tappe principali:
- 29 giugno 2021: annuncio e rilascio come technical preview
- 21 giugno 2022: disponibilità generale per tutti gli sviluppatori
Due modi per usare Copilot: VS Code e Online
Puoi usare Copilot dentro Visual Studio Code oppure nella versione online su GitHub. Qui sotto trovi i passaggi operativi, con dettagli su come ottenere codice e come usare la chat in entrambi i metodi.
Metodo 1: Visual Studio Code (autocomplete e Copilot Chat)
Installazione e accesso
Per iniziare in VS Code:
- Apri Extensions e installa GitHub Copilot e, se richiesto, GitHub Copilot Chat
- Fai Sign in con GitHub quando l’estensione lo richiede
Come farti generare codice con i suggerimenti inline
Il metodo più efficace è guidare Copilot con un commento chiaro e poi iniziare a scrivere gli import. Copilot proporrà blocchi di codice che puoi accettare e rifinire.
# Genera un esempio completo di regressione lineare con scikit-learn:
# - dataset sintetico con numpy
# - train_test_split(random_state=42)
# - LinearRegression
# - metriche: R2, MAE, RMSE
# - grafico scatter test + linea predetta ordinata
Come accedere alla chat in VS Code
In VS Code hai due modalità:
- Chat view: pannello laterale dove scrivi richieste complete e gestisci la conversazione
- Inline chat: chat nell’editor per chiedere modifiche direttamente su una riga o su una selezione
Prompt pronto in VS Code Chat per ottenere una regressione lineare
Incolla questo prompt nella chat:
Genera un file linear_regression.py pronto da eseguire.
Usa numpy + scikit-learn: dataset sintetico, train_test_split(random_state=42), LinearRegression,
stampa coefficiente e intercetta, calcola R2, MAE, RMSE e disegna scatter test + linea delle predizioni ordinata.
Restituisci un unico blocco di codice.
Metodo 2: Online (Copilot Chat nel browser, esperienza GitHub)
Puoi usare Copilot anche dal browser, nella pagina dedicata di GitHub. È utile se vuoi scrivere prompt lunghi e ottenere una bozza completa senza aprire l’IDE.
Come usarla passo passo
- Apri la pagina Copilot su GitHub
- Accedi con il tuo account
- Avvia una conversazione e incolla il prompt
- Chiedi output in un unico file
URL esperienza online
https://github.com/copilot/
Prompt pronto per la chat online
Scrivi un esempio completo di regressione lineare in Python con scikit-learn.
Requisiti: dataset sintetico numpy, split con random_state=42, LinearRegression, stampa slope e intercetta,
metriche R2, MAE, RMSE, grafico scatter test + retta predetta ordinata.
Output: file linear_regression.py in un unico blocco.
Pro e contro: VS Code vs Online
Differenze pratiche tra i due metodi:
| Metodo | Pro | Contro |
|---|---|---|
| VS Code |
|
|
| Online (GitHub) |
|
|
Codice generato: regressione lineare completa in Python
Salva come linear_regression.py ed esegui con Python. Assicurati di avere numpy, scikit-learn e matplotlib installati.
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
import matplotlib.pyplot as plt
def main():
# 1) Dataset sintetico: y = 3x + 5 + rumore
rng = np.random.default_rng(42)
X = rng.uniform(0, 10, size=(200, 1))
noise = rng.normal(0, 2.0, size=200)
y = 3.0 * X[:, 0] + 5.0 + noise
# 2) Split train/test
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 3) Modello
model = LinearRegression()
model.fit(X_train, y_train)
# 4) Predizioni e metriche
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print("Coefficiente (slope):", float(model.coef_[0]))
print("Intercetta:", float(model.intercept_))
print("R2:", round(r2, 3))
print("MAE:", round(mae, 3))
print("RMSE:", round(rmse, 3))
# 5) Grafico: punti test + retta predetta (ordinata per X)
order = np.argsort(X_test[:, 0])
plt.scatter(X_test, y_test, label="Dati test")
plt.plot(X_test[order], y_pred[order], label="Predizione (retta)")
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.show()
if __name__ == "__main__":
main()
Fonti
Riferimenti: