Gestire il contesto della chat in Copilot Chat

Gestire il contesto della chat in GitHub Copilot Chat combinando contesti impliciti, riferimenti, cronologia chat e strumenti della finestra di contesto per ottenere risposte migliori.

In questo articolo si apprenderà come ottenere risposte migliori fornendo altre informazioni a Copilot Chat:

Prerequisiti

Per iniziare a usare GitHub Copilot Chat in Visual Studio, è necessario:

Contesto implicito

Visual Studio fornisce automaticamente il contesto alla richiesta di chat in base all'attività corrente.

Le informazioni seguenti sono incluse in modo implicito nel contesto della chat:

  • Testo attualmente selezionato nell'editor attivo.
  • Il file attualmente attivo nell'editor.

A seconda del prompt, Copilot legge il contenuto del file attivo. Per includere in modo esplicito il contenuto di un altro file nel contesto della chat, selezionare il file suggerito usando il + pulsante nella visualizzazione chat per Aggiungere allegato.

Schermata del contesto implicito in Copilot Chat.

Riferimento: definire l'ambito dei risultati di Copilot

È possibile porre domande correlate al codice in linguaggio naturale e GitHub Copilot Chat risponderà a queste domande nel contesto della codebase aperta in Visual Studio. Con i riferimenti è possibile ottenere informazioni più specifiche sulle informazioni che si vuole prendere in considerazione da Copilot per rispondere alla domanda.

Selezionando un contesto specifico nella codebase, è possibile creare facilmente domande migliori senza dover scrivere o incollare informazioni lunghe. Specificare il contesto consente anche a Copilot di fornire risposte più pertinenti.

Screenshot dei riferimenti in Copilot Chat.

Fare riferimento a un file

Per fare facilmente riferimento a un file in GitHub Copilot Chat, è sufficiente aggiungere un simbolo # all'inizio del nome del file. Ad esempio, se si dispone di un file denominato BasketService.cs, farvi riferimento nella chat come #BasketService.cs.

Schermata che mostra il riferimento al file in Copilot Chat.

Fare riferimento a un metodo, una classe o una funzione

Con Visual Studio 2022 versione 17.11, è ora possibile fare riferimento a un metodo, una classe o una funzione specifici in GitHub Copilot Chat.

Per fare facilmente riferimento a un metodo, una classe o una funzione in GitHub Copilot Chat, è sufficiente aggiungere un simbolo # all'inizio del metodo, della classe o del nome della funzione. Ad esempio, se si dispone di un metodo denominato BasketAddItem, farvi riferimento nella chat come #BasketAddItem.

Screenshot dei riferimenti ai metodi in GitHub Copilot Chat in Visual Studio.

Fare riferimento all'intera soluzione

Usare @workspace per fare riferimento alla soluzione attiva nell'IDE per il contesto. Quando si usa @workspace per il contesto, La chat di Copilot sfrutta le informazioni sui file, i progetti e le configurazioni attualmente aperti e usati nell'IDE. Ciò consente a Copilot Chat di fornire suggerimenti e risposte più pertinenti e consapevoli del contesto.

Screenshot del contesto della soluzione di riferimento in Copilot Chat.

Con Visual Studio 2022 versione 17.11, i sottoscrittori di GitHub Copilot Enterprise ora possono usare @github nella chat per includere il contesto dall'intero repository e per eseguire ricerche sul Web (se la ricerca è abilitata dall'amministratore). Per altre informazioni sulla raccolta di competenze specifiche di GitHub che Copilot può usare per rispondere alla domanda quando si usa @github, vedere Using GitHub skills for Copilot.

Screenshot dell'uso delle competenze di GitHub in Copilot Chat.

Commit di riferimento nella cronologia Git

Quando si esamina un commit e si vuole Copilot aiutare a comprendere le modifiche, identificare potenziali problemi o elaborare una modifica simile, è possibile collegare il contesto di commit direttamente a GitHub Copilot Chat.

Invece di copiare e incollare gli ID commit nella chat, usare Aggiungi a Chat per collegare il contesto di commit selezionato dall'IDE.

Usa Aggiungi alla chat su un commit da una qualsiasi di queste aree:

  • Cronologia Git (Git>Visualizza cronologia del ramo)
  • File History (fare clic con il pulsante destro del mouse su un file in Esplora soluzioni, quindi Git>View History)
  • Annotate (Blame) (fare clic con il pulsante destro del mouse nell'editor, quindi Git>Annotate (Blame))

Puoi selezionare più commit per allegarli alla chat in una sola volta.

Screenshot che mostra il comando Aggiungi a Chat per un commit selezionato nella cronologia Git.

Dopo aver allegato il contesto del commit, prova prompt come:

  • Spiegare questa modifica.
  • In questo modo vengono introdotti problemi?
  • Scrivere una modifica simile per questo altro file.

Schermata che mostra Copilot Chat con un commit allegato utilizzato come contesto per un prompt.

Fare riferimento alle modifiche

Con Visual Studio 2022 versione 17.14 e successive, è possibile usare riferimenti Git in Copilot Chat.

Usare #changes per fare riferimento alle modifiche di cui non è stato eseguito il commit dalla finestra Modifiche Git . Questo riferimento è utile quando si desidera Copilot Chat riepilogare il lavoro svolto, spiegare l'impatto delle modifiche in sospeso o suggerire i passaggi successivi prima del commit.

Ad esempio, è possibile porre domande come:

  • Riepilogare #changes.
  • Cosa ho fatto finora in #changes?
  • Suggerisci unit test per #changes.

Aprire la finestra di dialogo Tools>Options, expand GitHub>Copilot>Source Control Integration, selezionare Abilita funzionalità di anteprima git, quindi selezionare OK.

Screenshot di Copilot Chat che fa riferimento a modifiche di cui non è stato eseguito il commit con #changes.

Fare riferimento a un commit

Usare #commit: per fare riferimento a un commit specifico in Copilot Chat. Quando si inizia a digitare #commit:, Copilot mostra un elenco di commit recenti tra cui è possibile selezionare. Se si vuole fare riferimento a un commit precedente, immettere l'ID commit direttamente dopo #commit:.

È possibile usare riferimenti di commit per attività quali:

  • Spiegare #commit:.
  • Scrivere test unitari per coprire le modifiche apportate in #commit:.
  • Individuare potenziali problemi in #commit:.

Questo riferimento è utile quando si vuole esaminare una modifica precedente, esaminare la finalità alla base di un commit o chiedere Copilot di aiutare a eseguire il completamento del lavoro precedente.

Screenshot di Copilot Chat che mostra i suggerimenti di commit recenti dopo aver digitato #commit:.

Fare riferimento a un'immagine

Con l'integrazione della visione per Copilot Chat in Visual Studio 17.14 e versioni successive, è possibile allegare immagini al prompt delle chat, fornendo a Copilot un contesto aggiuntivo per risposte migliorate. Usa immagini in combinazione con scope e altre funzionalità contestuali, ad esempio comandi slash, per generare risposte personalizzate.

Nell'esempio seguente, Copilot interpreta l'immagine allegata per generare un piano e suggerire codice per creare da zero un vivace gioco di Breakout.

Screenshot di uno scenario di esempio di aggiunta di un'immagine in Copilot Chat.

Finestra di output di riferimento

È ora possibile usare la finestra di output come contesto nella chat per porre domande e ottenere assistenza per i log di output. Le finestre di output supportate includono Build, Debug, Tests, Source Control, Gestione pacchetti o qualsiasi altro riquadro della finestra di output attivo.

Fare riferimento ai log di output nella chat in uno dei modi seguenti:

  • Usare #output per farvi riferimento direttamente nella chat.
  • Selezionare l'icona ➕ nell'input della chat e aggiungere Output logs come contesto.
  • Chiedi direttamente a Copilot, ad esempio, controlla i log di output e aiutami a risolvere questo errore.
  • Fare clic con il pulsante destro del mouse nella finestra di output e selezionare Spiega con Copilot per collegarlo.

Screenshot della finestra di output come contesto in Copilot Chat.

URL di riferimento

Incollare un URL nella casella di richiesta e Copilot eseguirà il pull delle informazioni dal Web per compilare gli spazi vuoti quando i dati di training di Copilot non trattano un argomento o quando si vuole fare riferimento a una risorsa specifica.

Ad esempio, è possibile chiedere a Copilot di scrivere un file readme.md in base alle procedure consigliate in GitHub.

Screenshot del riferimento a un URL nella chat per il contesto.

Si noti che Copilot può fare riferimento solo a contenuto HTML statico dall'URL pubblico specificato e non accederà ad altri collegamenti in tale pagina, pagine dietro l'autenticazione o contenuto da pagine dinamiche.

Esempi di utilizzo

Ecco alcuni esempi di utilizzo dei riferimenti per il controllo del contesto:

Esempio Contesto usato da Copilot per formare la domanda
Qual è lo scopo di #MyFile.cs: 66-72? Sezione esatta del file
Dove si trovano i test in #BasketService.cs? BasketService.cs
/spiega il #AddItemToBasket in #BasketService.cs Metodo AddItemToBasket in BasketService.cs
Esiste un metodo per eliminare il carrello in questo @workspace Soluzione corrente aperta nell'IDE
Ho un metodo di test denominato #TestCalculator. Come è possibile assicurarsi che venga eseguito correttamente? metodo TestCalculator
È possibile spiegare le differenze tra classi #BasketService e #OrderService? Classe BasketService e classe OrderService
Nella mia @workspace, dov'è #AggiungiArticoloAlCarrello? Soluzione corrente aperta nell'IDE
Riepiloga #changes prima di eseguire il commit Modifiche di cui non è stato eseguito il commit nella finestra Modifiche Git
Trovare potenziali problemi in #commit:abc1234 Il commit specificato
Aggiornare l'interfaccia utente in App.tsx per assomigliare a questa immagine Immagine caricata

Esaminare le origini usate da Copilot Chat

La chat di Copilot visualizza il contesto usato dopo ogni risultato, in modo da poter sapere cosa è stato preso in considerazione quando si risponde alla domanda. Quando si pone una domanda a Copilot Chat e si riceve una risposta nella finestra della chat, sotto la risposta viene visualizzato un elenco a discesa Riferimenti. Le voci nell'elenco a discesa Riferimenti mostrano il contesto a cui fa riferimento Copilot Chat per generare tale risposta. Queste informazioni consentono di modificare la domanda per ottenere risposte migliori e più pertinenti.

Screenshot del menu a discesa dei riferimenti utilizzati nella chat di Copilot.

Organizzare: gestire il contesto della cronologia delle chat con i thread

Durante l'iterazione e l'invio di più richieste di chat in una sessione di chat, Copilot usa la cronologia delle richieste di chat e delle risposte come contesto per la richiesta di chat corrente. Ciò significa che è possibile porre domande di completamento o chiarire la domanda precedente senza dover ripetere il contesto. Ad esempio, puoi chiedere "In cosa è diverso da ...", "Ora aggiungi un caso di test", "spiega in modo più dettagliato" e altro ancora.

Per iniziare con una nuova sessione di chat e rimuovere il contesto corrente, avviare un nuovo thread nella visualizzazione chat. Ciò è utile quando si desidera passare a un argomento diverso ed evitare il contesto e la cronologia precedenti. Usare i thread per mantenere le conversazioni incentrate sull'attività e mantenere chiaro il contesto in modo che le risposte siano basate sulla cronologia pertinente.

Nuovo thread di chat

Selezionare Crea nuovo thread o CTRL+N nella finestra di chat per avviare un nuovo thread.

Screenshot dell'icona Crea nuovo thread in Chat di Copilot.

Passa al thread di chat

È possibile scegliere tra più thread in corso per fornire il contesto cronologico giusto per la domanda. È possibile usare CTRL+PGDown per il thread precedente o CTRL+PgUp per il thread successivo nella finestra della chat. Ctrl+Shift+T espande il menu a tendina del thread.

Screenshot del passaggio tra thread in corso in Copilot Chat.

Organizzare: gestire la cronologia delle chat con il pannello cronologia chat

Durante l'iterazione e l'invio di più richieste di chat in una sessione di chat, Copilot usa la cronologia delle richieste di chat e delle risposte come contesto per la richiesta di chat corrente. Ciò significa che è possibile porre domande di completamento o chiarire la domanda precedente senza dover ripetere il contesto. Ad esempio, puoi chiedere "In cosa è diverso da ...", "Ora aggiungi un caso di test", "spiega in modo più dettagliato" e altro ancora.

Per iniziare con una nuova sessione di chat e rimuovere il contesto corrente, avviare un nuovo thread nella visualizzazione chat. Ciò è utile quando si desidera passare a un argomento diverso ed evitare il contesto e la cronologia precedenti. Usare il pannello cronologia chat per mantenere le conversazioni incentrate sull'attività e mantenere chiaro il contesto in modo che le risposte siano basate sulla cronologia pertinente.

Nuovo thread di chat

Selezionare Crea nuovo thread o CTRL+N nella finestra di chat per avviare un nuovo thread.

Screenshot dell'icona Crea nuovo thread in Chat di Copilot.

Passa al thread di chat

Usare il pannello cronologia chat per passare da una sessione di chat all'altra e fornire il contesto cronologico giusto per la domanda.

Ogni voce della cronologia delle chat mostra:

  • Titolo della chat
  • Anteprima del messaggio più recente
  • Data dell'ultimo aggiornamento della sessione

Selezionare una sessione nel pannello per passare direttamente a tale conversazione.

Screenshot del pannello Cronologia chat che mostra il titolo della sessione, l'anteprima del messaggio e l'ora dell'ultimo aggiornamento.

Promuovere la chat inline alla finestra di chat

Con Visual Studio 2022 versione 17.11, è ora possibile mantenere la cronologia della chat inline promuovendola alla finestra di chat . Selezionare Continua nella finestra della chat... per mantenere un record e un contesto della conversazione e continuare nella finestra della chat.

Screenshot della promozione del thread in corso dalla chat integrata alla finestra di chat.

Monitorare e ottimizzare l'utilizzo della finestra di contesto

Quando si chatta con Copilot, usa una finestra di contesto che include la cronologia delle conversazioni, i file allegati e altri input contestuali. Quando la finestra di contesto si riempie, Copilot può perdere i dettagli meno recenti delle parti precedenti della conversazione.

Usare l'indicatore della finestra di contesto per tenere traccia dell'utilizzo in tempo reale:

  1. Aprire la finestra Copilot Chat.
  2. Nell'angolo superiore destro della casella di richiesta di chat individuare l'indicatore dell'anello.
  3. Selezionare l'indicatore per visualizzare la percentuale esatta di contesto utilizzata.
  4. Esaminare la suddivisione degli elementi che contribuiscono all'utilizzo del contesto (ad esempio, messaggi di conversazione e file dell'area di lavoro).

Riepilogare e compattare la cronologia delle conversazioni

La compattazione riduce la quantità di contesto usata da parti meno recenti del thread corrente, in modo da poter continuare a lavorare nella stessa conversazione.

Quando il contesto disponibile sta per esaurirsi, selezionare Riepiloga la conversazione per comprimere le parti precedenti della conversazione e recuperare spazio, rimanendo nella conversazione corrente.

Usare la compattazione in uno dei modi seguenti:

  • Selezionare Riepiloga conversazione dall'indicatore della finestra di contesto per comprimere automaticamente i messaggi precedenti.
  • Digitare /compact in chat per compattare manualmente la conversazione in qualsiasi momento.

Dopo la compattazione, Copilot mantiene un riepilogo dei turni precedenti anziché la trascrizione completa. Ciò consente di liberare lo spazio della finestra del contesto mantenendo al tempo stesso la direzione complessiva del thread.

Utilizzare la compattazione quando:

  • L'utilizzo del contesto è elevato e si vuole evitare di perdere un contesto recente importante.
  • Una conversazione si è allungata, ma vuoi comunque continuare nella stessa chat.
  • Si vuole migliorare l'attenzione prima di porre un nuovo set di domande di completamento.

Procedure consigliate

La chat di Copilot usa la cronologia delle chat per ottenere il contesto della richiesta. Per assegnare a Copilot solo la cronologia pertinente:

  • Usare nuovi thread per avviare una nuova conversazione per una nuova attività.
  • Se si vuole mantenere lo stesso thread, usare Riepiloga conversazione quando l'utilizzo del contesto è elevato.
  • Eliminare le richieste non più rilevanti o che non hanno dato il risultato desiderato.

Mantenere aperta la conversazione di chat e continuare a eseguire l'iterazione e richiedere a Copilot di migliorare la soluzione suggerita. Copilot ha sia il contesto del codice generato che la cronologia delle conversazioni correnti. Man mano che si continuano a porre domande aggiuntive, Copilot affina ulteriormente la risposta in base alle esigenze. Per strategie su come impostare richieste efficaci per migliorare i risultati del tuo Copilot, vedi Ingegneria dei prompt per GitHub Copilot.

Passaggi successivi