Verwalten des Chatkontexts in Copilot Chat

Verwalten Sie den Chatkontext in GitHub Copilot Chat, indem Sie impliziten Kontext, Verweise, Chatverlauf und Kontextfenstertools kombinieren, um bessere Antworten zu erhalten.

In diesem Artikel erfahren Sie, wie Sie bessere Antworten erhalten, indem Sie weitere Informationen zu Copilot Chat bereitstellen:

  • Verstehen des impliziten Kontexts , den Copilot hinter den Kulissen nutzt
  • Den Chat mithilfe von Referenzen auf bestimmte Dateien, Änderungen und Commits eingrenzen
  • Fügen Sie Bilder an Ihre Aufforderung an, um zusätzlichen Kontext bereitzustellen und Ihre Ideen besser zu veranschaulichen
  • Überprüfen Sie die von Copilot verwendete Quelle , um die Antwort zu generieren.
  • Verwenden Sie für jeden Ihrer Copilot-Chats unterschiedliche Threads, damit Chatverlauf und Kontext jeweils getrennt bleiben.
  • Überwachen der Kontextfensterverwendung
  • Konversationsverlauf kompakt zusammenfassen, um Platz freizugeben

Voraussetzungen

Um mit der Verwendung von GitHub Copilot Chat in Visual Studio zu beginnen, benötigen Sie Folgendes:

Impliziter Kontext

Visual Studio stellt automatisch Kontext für die Chataufforderung basierend auf Ihrer aktuellen Aktivität bereit.

Die folgenden Informationen sind implizit im Chatkontext enthalten:

  • Der aktuell markierte Text im aktiven Editor.
  • Die aktuelle Datei, die im Editor aktiv ist.

Je nach Aufforderung liest Copilot den Inhalt der aktiven Datei vor. Wenn Sie den Inhalt einer anderen Datei explizit in den Chatkontext aufnehmen möchten, wählen Sie die vorgeschlagene Datei mithilfe der + Schaltfläche in der Chatansicht aus, um Anlagen hinzuzufügen.

Screenshot des impliziten Kontexts im Copilot-Chat.

Referenz: Geltungsbereich: Copilot-Ergebnisse

Sie können Ihre Codierungsfragen in natürlicher Sprache stellen. Diese beantwortet GitHub Copilot Chat im Kontext der in Visual Studio geöffneten Codebasis. Mit Referenzen erhalten Sie spezifischere Informationen, die Copilot berücksichtigen soll, wenn Sie Ihre Frage beantworten.

Wenn Sie einen bestimmten Kontext in Ihrer Codebasis auswählen, können Sie problemlos bessere Fragen erstellen, ohne lange Informationen schreiben oder einfügen zu müssen. Durch die Angabe des Kontexts kann Copilot Ihnen auch relevantere Antworten bereitstellen.

Screenshot der Referenzen im Copilot-Chat.

Verweisen auf eine Datei

Um auf einfache Weise auf eine Datei in GitHub Copilot Chat zu verweisen, fügen Sie einfach ein # Symbol am Anfang des Dateinamens hinzu. Wenn Sie beispielsweise eine Datei mit dem Namen BasketService.cshaben, verweisen Sie im Chat als #BasketService.csdarauf.

Screenshot der Dateireferenz im Copilot-Chat.

Verweisen auf eine Methode, Klasse oder Funktion

Mit Visual Studio 2022, Version 17.11, können Sie jetzt auf eine bestimmte Methode, Klasse oder Funktion in GitHub Copilot Chat verweisen.

Um einfach auf eine Methode, Klasse oder Funktion in GitHub Copilot Chat zu verweisen, fügen Sie einfach ein # Symbol am Anfang der Methode, Klasse oder Funktionsnamen hinzu. Wenn Sie beispielsweise eine Methode namens BasketAddItem-haben, verweisen Sie im Chat als #BasketAddItemdarauf.

Screenshot von Verweisen auf Methoden in GitHub Copilot Chat in Visual Studio.

Verweisen auf die gesamte Lösung

Verwenden Sie @workspace, um auf die in der IDE aktive Lösung für den Kontext zu verweisen. Bei der Verwendung von @workspace für den Kontext nutzt Copilot Chat die Informationen zu den Dateien, Projekten und Konfigurationen, die derzeit geöffnet sind und in Ihrer IDE bearbeitet werden. Dadurch kann Copilot Chat relevantere und kontextbezogenere Vorschläge und Antworten bereitstellen.

Screenshot des Referenzlösungskontexts im Copilot-Chat.

Mit Visual Studio 2022, Version 17.11, können GitHub Copilot Enterprise Abonnenten jetzt @github im Chat verwenden, um Kontext aus ihrem gesamten Repository einzuschließen und das Web zu durchsuchen (wenn Suche von Ihrem Administratoraktiviert ist). Weitere Informationen zur Sammlung von GitHub-spezifischen Fähigkeiten, die Copilot verwenden kann, um Ihre Frage bei der Verwendung von @githubzu beantworten, finden Sie unter Verwenden von GitHub-Fähigkeiten für Copilot.

Screenshot der Verwendung von GitHub-Fähigkeiten in Copilot Chat.

Auf Commits aus dem Git-Verlauf verweisen

Wenn Sie einen Commit überprüfen und Copilot helfen möchten, Änderungen zu verstehen, potenzielle Probleme zu identifizieren oder eine ähnliche Bearbeitung zu entwerfen, können Sie den Commit-Kontext direkt an GitHub-Copilot Chat anfügen.

Anstatt Commit-IDs in den Chat zu kopieren und einzufügen, verwenden Sie „Zu Chat hinzufügen“, um den ausgewählten Commit-Kontext aus der IDE an den Chat anzuhängen.

Verwenden Sie "Zu Chat hinzufügen " für einen Commit aus einer der folgenden Oberflächen:

  • Git-Verlauf (Git>View Branch History)
  • File History (klicken Sie mit der rechten Maustaste auf eine Datei in Projektmappen-Explorer und Git>View History)
  • Blame-Informationen (mit der rechten Maustaste im Editor klicken, dann Git>Blame-Informationen)

Sie können mehrere Commits auswählen, um mehrere Commits gleichzeitig im Chat anzuhängen.

Screenshot mit dem Befehl „Zum Chat hinzufügen“ für einen ausgewählten Commit im Git-Verlauf.

Nachdem Sie den Commit-Kontext angehängt haben, probieren Sie solche Prompts aus:

  • Erläutern Sie diese Änderung.
  • Führt dies zu Problemen?
  • Schreiben Sie eine ähnliche Änderung für diese andere Datei.

Screenshot von Copilot Chat mit einem angehängten Commit, das als Kontext für eine Eingabeaufforderung verwendet wird.

Verweisen auf Änderungen

Mit Visual Studio 2022, Version 17.14 und höher, können Sie Git-Verweise in Copilot Chat verwenden.

Verwenden Sie #changes, um auf Ihre noch nicht übertragenen Änderungen im Fenster Git-Änderungen zu verweisen. Dieser Verweis ist nützlich, wenn Sie möchten, dass Copilot Chat Ihre bisherige Arbeit zusammenfasst, die Auswirkungen ausstehender Änderungen erläutert oder vor dem Commit die nächsten Schritte vorschlägt.

Sie können z. B. Fragen stellen, z. B.:

  • Zusammenfassung #changes.
  • Was habe ich bisher in #changes getan?
  • Vorschlagen von Komponententests für #changes.

Öffnen des Dialogfelds Tools>Options, erweitern Sie GitHub>Copilot>Source Control Integration, wählen Sie Enable Git preview features aus, und wählen Sie dann OK aus.

Screenshot von Copilot Chat mit Bezug auf nicht committete Änderungen mit #changes.

Auf einen Commit verweisen

Verwenden Sie #commit:, um auf einen bestimmten Commit in Copilot Chat zu verweisen. Wenn Sie mit der Eingabe von #commit: beginnen, zeigt Copilot eine Liste der zuletzt verwendeten Commits an, aus denen Sie auswählen können. Wenn Sie auf einen älteren Commit verweisen möchten, geben Sie die Commit-ID direkt danach #commit:ein.

Sie können Commit-Verweise für Aufgaben verwenden, z. B.:

  • Erläutern #commit:.
  • Schreiben Sie Unit-Tests, um Änderungen in #commit: abzudecken.
  • Suchen Sie potenzielle Probleme in #commit:.

Dieser Verweis ist nützlich, wenn Sie eine frühere Änderung überprüfen, die Absicht hinter einem Commit überprüfen oder Copilot bitten, Ihnen bei der Nachverfolgung früherer Arbeiten zu helfen.

Screenshot von Copilot Chat mit aktuellen Commitvorschlägen nach der Eingabe von #commit:.

Verweisen auf ein Bild

Mit der Vision-Integration für Copilot Chat in Visual Studio 17.14 und höher können Sie Bilder an Ihre Chataufforderung anfügen und Copilot zusätzlichen Kontext für verbesserte Antworten bereitstellen. Verwenden Sie Bilder in Kombination mit Bereich und anderen kontextbezogenen Features wie Schrägstrichbefehlen , um maßgeschneiderte Antworten zu generieren.

Im folgenden Beispiel interpretiert Copilot das angefügte Bild, um einen Plan zu generieren und Code vorzuschlagen, um ein farbiges Breakout-Spiel von Grund auf neu zu erstellen.

Screenshot eines Beispielszenarios zum Hinzufügen eines Bilds in Copilot Chat.

Referenzausgabefenster

Sie können nun das Ausgabefenster als Kontext im Chat verwenden, um Fragen zu stellen und Hilfe zu Ausgabeprotokollen zu erhalten. Unterstützte Ausgabefenster sind Build, Debug, Tests, Quellcodeverwaltung, Paket-Manager oder ein beliebiger anderer aktiver Ausgabefensterbereich.

Referenzieren Sie die Ausgabeprotokolle im Chat auf eine der folgenden Arten:

  • Verwenden Sie #output , um direkt im Chat darauf zu verweisen.
  • Wählen Sie das ➕ Symbol in der Chateingabe aus, und fügen Sie es als Kontext hinzu Output logs .
  • Fragen Sie Copilot direkt, z. B. überprüfen Sie meine Ausgabeprotokolle, und helfen Sie mir, diesen Fehler zu beheben.
  • Klicken Sie mit der rechten Maustaste in das Ausgabefenster , und wählen Sie "Mit Copilot erklären" aus, um es anzufügen.

Screenshot des Ausgabefensters als Kontext im Copilot-Chat.

Referenz-URLs

Fügen Sie eine URL in das Eingabeaufforderungsfeld ein, und Copilot ruft Informationen aus dem Web ab, um die Leerzeichen auszufüllen, wenn die Schulungsdaten von Copilot kein Thema abdecken oder wenn Sie auf eine bestimmte Ressource verweisen möchten.

Sie können Copilot beispielsweise auffordern, Ihnen beim Schreiben einer readme.md-Datei basierend auf den bewährten Methoden für GitHub zu helfen.

Screenshot des Verweises auf eine URL im Chat für Kontext.

Beachten Sie, dass Copilot nur auf statische HTML-Inhalte aus der von Ihnen bereitgestellten öffentlichen URL verweisen kann und nicht auf andere Links auf dieser Seite, seiten hinter der Authentifizierung oder auf Inhalte von dynamischen Seiten zugreifen kann.

Verwendungsbeispiele

Hier sind einige Beispiele für die Verwendung von Verweisen zur Kontextsteuerung:

Beispiel Kontext, der von Copilot verwendet wird, um eine Frage zu bilden
Was ist der Zweck von #MyFile.cs: 66-72? Exakter Abschnitt der Datei
Wo befinden sich die Tests in #BasketService.cs? BasketService.cs
/Erkläre #AddItemToBasket in #BasketService.cs AddItemToBasket-Methode in BasketService.cs
Gibt es eine Methode zum Löschen von Körben in diesem @workspace? Aktuelle Lösung in der IDE geöffnet
Ich habe eine Testmethode namens #TestCalculator. Wie kann ich sicherstellen, dass sie ordnungsgemäß ausgeführt wird? TestCalculator-Methode
Könnten Sie die Unterschiede zwischen Klassen #BasketService und #OrderService erläutern? BasketService-Klasse und OrderService-Klasse
In meinem @workspace Wo befindet sich #AddItemToBasket? Aktuelle Lösung in der IDE geöffnet
Fasse #changes zusammen, bevor ich committe Nicht committete Änderungen im Fenster „Git-Änderungen“
Potenzielle Probleme in #commit:abc1234 suchen Der angegebene Commit
Aktualisieren der Benutzeroberfläche in "App.tsx" auf ähnliche Weise wie dieses Bild Hochgeladenes Bild

Überprüfen der von Copilot Chat verwendeten Quellen

Copilot Chat zeigt den Kontext an, der nach jedem Ergebnis verwendet wird, damit Sie feststellen können, was bei der Beantwortung Ihrer Frage berücksichtigt wurde. Wenn Sie Copilot Chat eine Frage stellen und eine Antwort im Chatfenster erhalten, wird unterhalb der Antwort das Dropdownmenü Verweise angezeigt. Die Einträge in der Dropdown-Liste Verweise zeigen Ihnen den Kontext, auf den Copilot Chat zugreift, um diese Antwort zu generieren. Diese Informationen können Ihnen helfen, Ihre Frage zu ändern, um bessere und relevantere Antworten zu erhalten.

Screenshot: Dropdownliste für verwendete Verweise in Copilot Chat

Organisieren: Verwalten des Chatverlaufskontexts mit Threads

Während Sie mehrere Chataufforderungen in einer Chatsitzung durchlaufen und senden, verwendet Copilot den Verlauf von Chataufforderungen und -antworten als Kontext für Ihre aktuelle Chataufforderung. Dies bedeutet, dass Sie Nachverfolgungsfragen stellen oder Ihre vorherige Frage klären können, ohne den Kontext wiederholen zu müssen. Zum Beispiel können Sie fragen: „Wie unterscheidet sich das von ...?“, „Füge jetzt einen Testfall hinzu“, „Erkläre es ausführlicher“ und mehr.

Um mit einer neuen Chatsitzung zu beginnen und den aktuellen Kontext zu verwerfen, starten Sie einen neuen Thread in der Chatansicht. Dies ist nützlich, wenn Sie zu einem anderen Thema wechseln und den vorherigen Kontext und verlauf vermeiden möchten. Verwenden Sie Threads, um Unterhaltungen auf die jeweilige Aufgabe zu konzentrieren und den Kontext klar zu halten, sodass die Antworten auf den relevanten Verlauf basieren.

Neuer Chatthread

Wählen Sie im Chatfenster " Neuen Thread erstellen" oder "STRG+N " aus, um einen neuen Thread zu starten.

Screenshot des Symbols

Chatthread wechseln

Sie können zwischen mehreren fortlaufenden Threads auswählen, um den richtigen historischen Kontext für Ihre Frage bereitzustellen. Sie können STRG+PgDown für vorherigen Thread oder STRG+PgUp für den nächsten Thread im Chatfenster verwenden. Strg+Shift+T erweitert das Thread-Dropdown.

Screenshot des Wechsels zwischen laufenden Threads im Copilot-Chat.

Organisieren: Verwalten des Chatverlaufs mit dem Chatverlaufsbereich

Während Sie mehrere Chataufforderungen in einer Chatsitzung durchlaufen und senden, verwendet Copilot den Verlauf von Chataufforderungen und -antworten als Kontext für Ihre aktuelle Chataufforderung. Dies bedeutet, dass Sie Nachverfolgungsfragen stellen oder Ihre vorherige Frage klären können, ohne den Kontext wiederholen zu müssen. Zum Beispiel können Sie fragen: „Wie unterscheidet sich das von ...?“, „Füge jetzt einen Testfall hinzu“, „Erkläre es ausführlicher“ und mehr.

Um mit einer neuen Chatsitzung zu beginnen und den aktuellen Kontext zu verwerfen, starten Sie einen neuen Thread in der Chatansicht. Dies ist nützlich, wenn Sie zu einem anderen Thema wechseln und den vorherigen Kontext und verlauf vermeiden möchten. Verwenden Sie den Chatverlaufsbereich, um Unterhaltungen auf die jeweilige Aufgabe zu konzentrieren und den Kontext klar zu halten, sodass die Antworten auf den relevanten Verlauf basieren.

Neuer Chatthread

Wählen Sie im Chatfenster " Neuen Thread erstellen" oder "STRG+N " aus, um einen neuen Thread zu starten.

Screenshot des Symbols

Chatthread wechseln

Verwenden Sie den Chatverlaufsbereich, um zwischen Chatsitzungen zu wechseln und den richtigen historischen Kontext für Ihre Frage bereitzustellen.

Jeder Chatverlaufseintrag zeigt Folgendes an:

  • Der Chattitel
  • Eine Vorschau der aktuellsten Nachricht
  • Zeitpunkt der letzten Aktualisierung der Sitzung

Wählen Sie im Bereich eine Sitzung aus, um direkt zu dieser Konversation zu wechseln.

Screenshot des Bereichs

Höherstufen des Inlinechats in das Chatfenster

Mit Visual Studio 2022, Version 17.11, können Sie jetzt den Verlauf Ihres Inline-Chats beibehalten, indem Sie ihn in das Chatfensterübertragen. Wählen Sie Im Chatfenster fortsetzen..., um eine Aufzeichnung und den Kontext der Unterhaltung beizubehalten, und setzen Sie im Chatfenster fort.

Screenshot des Verschiebens des laufenden Threads aus dem Inline-Chat ins Chatfenster.

Überwachen und Optimieren der Kontextfensternutzung

Wenn Sie mit Copilot chatten, wird ein Kontextfenster verwendet, das Ihren Unterhaltungsverlauf, angefügte Dateien und andere kontextbezogene Eingaben enthält. Wenn sich das Kontextfenster füllt, kann Copilot frühere Details aus dem bisherigen Threadverlauf verlieren.

Verwenden Sie die Kontextfensteranzeige, um die Verwendung in Echtzeit nachzuverfolgen:

  1. Öffnen Sie das fenster Copilot Chat.
  2. Suchen Sie in der oberen rechten Ecke des Chataufforderungsfelds die Ringanzeige.
  3. Wählen Sie den Indikator aus, um den genauen Prozentsatz des verwendeten Kontexts anzuzeigen.
  4. Überprüfen Sie die Aufschlüsselung, was zur Kontextnutzung beiträgt (z. B. Unterhaltungsnachrichten und Arbeitsbereichsdateien).

Konversationsverlauf zusammenfassen und komprimieren

Die Kompaktierung verringert den von älteren Teilen des aktuellen Gesprächsverlaufs verwendeten Kontextumfang, sodass Sie im selben Gespräch weiterarbeiten können.

Wenn der verfügbare Kontext knapp wird, wählen Sie Unterhaltung zusammenfassen aus, um frühere Teile der Unterhaltung zusammenzufassen und wieder Platz zu schaffen, ohne die aktuelle Unterhaltung zu verlassen.

Verwenden Sie die Komprimierung auf eine der folgenden zwei Arten:

  • Wählen Sie über die Kontextfensteranzeige Konversation zusammenfassen aus, um frühere Nachrichten automatisch kompakt zusammenzufassen.
  • Geben Sie /compact jederzeit im Chat ein, um die Konversation manuell zu verdichten.

Nach der Komprimierung behält Copilot eine Zusammenfassung früherer Drehungen statt der vollständigen Transkription bei. Auf diese Weise können Sie den Kontextfensterbereich freigeben und gleichzeitig die Gesamtrichtung des Threads beibehalten.

Komprimierung verwenden, wenn:

  • Die Kontextnutzung ist hoch, und Sie möchten vermeiden, dass ein wichtiger aktueller Kontext verloren geht.
  • Ein Thread ist lang geworden, aber Sie möchten ihn im selben Chat weiterführen.
  • Sie möchten den Fokus verbessern, bevor Sie eine neue Reihe von Nachverfolgungsfragen stellen.

Bewährte Methoden

Copilot Chat verwendet den Chatverlauf, um Kontext zu Ihrer Anfrage zu erhalten. So geben Sie Copilot nur die relevante Geschichte:

  • Verwenden Sie neue Threads, um eine neue Unterhaltung für eine neue Aufgabe zu beginnen.
  • Wenn Sie denselben Thread beibehalten möchten, verwenden Sie "Unterhaltung zusammenfassen" , wenn die Kontextverwendung hoch ist.
  • Löschen Sie Anforderungen, die nicht mehr relevant sind oder die Ihnen das gewünschte Ergebnis nicht gegeben haben.

Lassen Sie die Chatunterhaltung geöffnet, und fordern Sie Copilot auf, die vorgeschlagene Lösung weiter zu verbessern. Copilot hat sowohl den Kontext des generierten Codes als auch den aktuellen Gesprächsverlauf. Während Sie weitere Fragen stellen, optimiert Copilot die Antwort nach Ihren Anforderungen weiter. Weitere Informationen zu den Strategien für effektive Prompts zur Verbesserung Ihrer Copilot-Ergebnisse finden Sie unter Prompt Engineering für GitHub Copilot.

Nächste Schritte