Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Hantera chattkontext i GitHub Copilot Chat genom att kombinera implicita kontext-, referens-, chatthistorik- och kontextfönsterverktyg för att få bättre svar.
I den här artikeln får du lära dig hur du får bättre svar genom att ge mer information till Copilot Chat:
- Förstå den implicita kontext som Copilot utnyttjar i bakgrunden
- Begränsa chatten till specifika filer, ändringar och incheckningar med hjälp av referenser
- Bifoga bilder i prompten för att ge ytterligare kontext och bättre illustrera dina idéer
- Granska källan som används av Copilot för att generera svaret
- Använd olika trådar för var och en av dina Copilot-chattar för att upprätthålla chatthistorik och olika kontexter i varje
- Övervaka användning av kontextfönster
- Sammanfatta (kompakt) konversationshistorik för att frigöra utrymme
Förutsättningar
För att komma igång med GitHub Copilot Chat i Visual Studio behöver du:
- Visual Studio 2022 version 17.10 eller senare
-
Logga in i Visual Studio med ett GitHub-konto med Copilot-åtkomst
** Du kan registrera dig för GitHub Copilot kostnadsfritt.
Implicit kontext
Visual Studio ger automatiskt kontext till chattprompten baserat på din aktuella aktivitet.
Följande information ingår implicit i chattkontexten:
- Den text som för närvarande är markerad i den aktiva redigeraren.
- Den aktuella filen som är aktiv i redigeraren.
Beroende på din fråga läser Copilot innehållet i den aktiva filen. Om du vill inkludera innehållet i en annan fil i chattkontexten väljer du den föreslagna filen med hjälp av + knappen i chattvyn för att lägga till bifogad fil.
Referens: Copilot-omfångsresultat
Du kan ställa dina kodningsrelaterade frågor på naturligt språk och GitHub Copilot Chat svarar på dessa i samband med den kodbas som är öppen i Visual Studio. Med referenser kan du få mer specifik information om den information du vill att Copilot ska tänka på när du svarar på din fråga.
Genom att välja en specifik kontext i kodbasen kan du enkelt skapa bättre frågor utan att behöva skriva ut eller klistra in lång information. Genom att ange kontexten kan Copilot också ge dig mer relevanta svar.
Referera till en fil
Om du enkelt vill referera till en fil i GitHub Copilot Chat lägger du helt enkelt till en # symbol i början av filnamnet. Om du till exempel har en fil med namnet BasketService.csläser du den i chatten som #BasketService.cs.
Referera till en metod, klass eller funktion
Med Visual Studio 2022 version 17.11kan du nu referera till en specifik metod, klass eller funktion i GitHub Copilot Chat.
Om du enkelt vill referera till en metod, klass eller funktion i GitHub Copilot Chat lägger du helt enkelt till en #-symbol i början av metoden, klassen eller funktionsnamnet. Om du till exempel har en metod med namnet BasketAddItembör du hänvisa till den i chatten som #BasketAddItem.
Referera till hela lösningen
Använd @workspace för att referera till lösningen som är aktiv i IDE för kontext. När du använder @workspace för kontext utnyttjar Copilot Chat informationen om de filer, projekt och konfigurationer som för närvarande är öppna och som bearbetas i din IDE. Detta gör det möjligt för Copilot Chat att ge mer relevanta och sammanhangsmedvetna förslag och svar.
Med Visual Studio 2022 version 17.11 kan GitHub Copilot Enterprise- prenumeranter nu använda @github i chatten för att inkludera kontext från hela lagringsplatsen och söka på webben (om sökning aktiveras av administratören). Mer information om den samling GitHub-specifika färdigheter som Copilot kan använda för att besvara din fråga när du använder @githubfinns i Använda GitHub-kunskaper för Copilot.
Referera till commitar från Git-historiken
När du granskar en incheckning och vill ha Copilot hjälp med att förstå ändringar, identifiera potentiella problem eller utarbeta en liknande redigering kan du koppla incheckningskontexten direkt till GitHub Copilot Chat.
I stället för att kopiera och klistra in inchecknings-ID:n i chatten använder du Lägg till i chatt för att bifoga den valda incheckningskontexten från IDE:n.
Använd Lägg till i chatt på en commit på någon av följande platser:
- Git-historik (Git>Visa grenhistorik)
- File History (högerklicka på en fil i Prieskumník riešení och Git>View History)
- Anteckna (Blame) (högerklicka i redigeraren och välj sedan Git>Anteckna (Blame))
Du kan markera flera incheckningar för att bifoga flera incheckningar till chatten samtidigt.
När du har bifogat incheckningskontexten kan du prova med frågor som:
- Förklara den här ändringen.
- Medför detta några problem?
- Skriv en liknande ändring för den andra filen.
Referera till dina ändringar
Med Visual Studio 2022 version 17.14 och senare kan du använda Git-referenser i Copilot Chat.
Använd #changes för att referera till dina ändringar som inte har checkats in från fönstret Git Changes. Den här referensen är användbar när du vill att Copilot Chat ska sammanfatta det arbete du har gjort, förklara hur väntande redigeringar påverkar resultatet eller föreslå nästa steg innan du genomför en incheckning.
Du kan till exempel ställa frågor som:
- Sammanfatta
#changes. - Vad har jag gjort hittills i
#changes? - Föreslå enhetstester för
#changes.
Öppna dialogrutan Tools>Options. expandera GitHub>Copilot>Source Control Integration, välj Enable Git preview features, och välj sedan OK.
Referera till en commit
Använd #commit: för att hänvisa till en specifik commit i Copilot Chat. När du börjar skriva #commit: visar Copilot en lista över de senaste incheckningarna som du kan välja mellan. Om du vill referera till en äldre incheckning anger du inchecknings-ID:t direkt efter #commit:.
Du kan använda incheckningsreferenser för uppgifter som:
- Förklara
#commit:. - Skriv enhetstester som täcker ändringarna i
#commit:. - Hitta potentiella problem i
#commit:.
Den här referensen är användbar när du vill granska en tidigare ändring, granska avsikten bakom en incheckning eller be Copilot att hjälpa dig att följa upp tidigare arbete.
Referera till en bild
Med visionsintegrering för Copilot Chat i Visual Studio 17.14 och senare kan du bifoga bilder i chattprompten, vilket ger Copilot ytterligare kontext för bättre svar. Använd bilder i kombination med omfång och andra sammanhangsberoende funktioner, till exempel snedstreckskommandon , för att generera skräddarsydda svar.
I följande exempel tolkar Copilot den bifogade avbildningen för att generera en plan och föreslå kod för att skapa ett färgstarkt Breakout-spel från grunden.
Referensutdatafönstret
Nu kan du använda utdatafönstret som kontext i chatten för att ställa frågor och få hjälp med utdataloggar. Utdatafönster som stöds är Build, Debug, Tests, Source Control, Správca balíkov eller något annat aktivt utdatafönsterfönster.
Referera till utdataloggar i chatten på något av följande sätt:
- Använd #output för att referera till den direkt i chatten.
- ➕ Välj ikonen i chattindata och lägg till
Output logssom kontext. - Fråga Copilot direkt, till exempel Kontrollera mina utdataloggar och hjälp mig att åtgärda det här felet.
- Högerklicka i utdatafönstret och välj Förklara med Copilot för att bifoga det.
Referens-URL:er
Klistra in en URL i promptrutan så hämtar Copilot information från webben för att fylla i blankstegen när Copilots träningsdata inte täcker ett ämne eller när du vill referera till en specifik resurs.
Du kan till exempel be Copilot att hjälpa dig att skriva en readme.md fil baserat på bästa praxis på GitHub.
Observera att Copilot endast kan referera till statiskt HTML-innehåll från den offentliga URL:en som du anger och inte kommer åt andra länkar på den sidan, sidor bakom autentisering eller innehåll från dynamiska sidor.
Användningsexempel
Här följer några exempel på hur du använder referenser för kontextkontroll:
| Exempel | Kontext som används av Copilot för att bilda frågan |
|---|---|
| Vad är syftet med #MyFile.cs: 66-72? | Exakt sektion av filen |
| Var finns testerna i #BasketService.cs? | BasketService.cs |
| /förklara #AddItemToBasket i filen #BasketService.cs | Metoden AddItemToBasket i BasketService.cs |
| Finns det en borttagningskorgsmetod i den här @workspace | Aktuell lösning öppen i IDE |
| Jag har en testmetod med namnet #TestCalculator. Hur kan jag se till att den körs korrekt? | Testkalkylator-metod |
| Kan du förklara skillnaderna mellan klasser #BasketService och #OrderService? | BasketService-klass och OrderService-klass |
| Var finns #AddItemToBasket i min @workspace? | Aktuell lösning öppen i IDE |
| Sammanfatta #changes innan jag checkar in | Oincheckade ändringar i fönstret Git-ändringar |
| Hitta potentiella problem i #commit:abc1234 | Den specificerade commiten |
| Uppdatera mitt användargränssnitt i App.tsx så att det liknar den här bilden | Uppladdad bild |
Granska källorna som används av Copilot Chat
Copilot Chat visar den kontext som används efter varje resultat, så att du kan se vad som beaktades när du svarade på din fråga. När du ställer en Copilot Chat-fråga och får ett svar i chattfönstret visas en listruta kallad Referenser under svaret. Posterna i listrutan Referenser visar kontexten som Copilot Chat refererar till för att generera svaret. Den här informationen kan hjälpa dig att ändra din fråga för att få bättre och mer relevanta svar.
Organisera: hantera chatthistorikkontext med trådar
När du itererar och skickar flera chattanvisningarna i en chattsession använder Copilot historiken för chattanvisningarna och svaren som kontext för din aktuella chattprompt. Det innebär att du kan ställa uppföljningsfrågor eller klargöra din tidigare fråga utan att behöva upprepa kontexten. Du kan till exempel fråga "Hur skiljer sig detta från ...", "Lägg nu till ett testfall", "förklara mer detaljerat" med mera.
Om du vill börja om med en ny chattsession och ignorera den aktuella kontexten startar du en ny tråd i chattvyn. Detta är användbart när du vill flytta till ett annat ämne och undvika föregående kontext och historik. Använd trådar för att hålla konversationer fokuserade på uppgiften och hålla kontexten tydlig så att svaren baseras på relevant historik.
Ny chatttråd
Välj Skapa ny tråd eller Ctrl+N i chattfönstret för att starta en ny tråd.
Växla chatttråd
Du kan välja mellan flera pågående trådar för att ge rätt historisk kontext för din fråga. Du kan använda Ctrl+PgDown för föregående tråd eller Ctrl+PgUp för nästa tråd i chattfönstret. Ctrl+Shift+T expanderar trådens rullgardinsmeny.
Organisera: hantera chatthistorik med panelen för chatthistorik
När du itererar och skickar flera chattanvisningarna i en chattsession använder Copilot historiken för chattanvisningarna och svaren som kontext för din aktuella chattprompt. Det innebär att du kan ställa uppföljningsfrågor eller klargöra din tidigare fråga utan att behöva upprepa kontexten. Du kan till exempel fråga "Hur skiljer sig detta från ...", "Lägg nu till ett testfall", "förklara mer detaljerat" med mera.
Om du vill börja om med en ny chattsession och ignorera den aktuella kontexten startar du en ny tråd i chattvyn. Detta är användbart när du vill flytta till ett annat ämne och undvika föregående kontext och historik. Använd panelen för chatthistorik för att hålla konversationer fokuserade på uppgiften och hålla kontexten tydlig så att svaren baseras på relevant historik.
Ny chatttråd
Välj Skapa ny tråd eller Ctrl+N i chattfönstret för att starta en ny tråd.
Växla chatttråd
Använd panelen för chatthistorik för att växla mellan chattsessioner och ge rätt historisk kontext för din fråga.
Varje post i chatthistoriken visar:
- Chatttiteln
- En förhandsgranskning av det senaste meddelandet
- När sessionen senast uppdaterades
Välj en session i panelen för att gå direkt till konversationen.
Främja inline-chatt till chattfönstret
Med Visual Studio 2022 version 17.11kan du nu bevara historiken för din inbyggda chatt genom att överföra den till chattfönstret. Välj Fortsätt i chattfönstret... för att behålla en logg och kontext för konversationen, och fortsätt i chattfönstret.
Övervaka och optimera användning av kontextfönster
När du chattar med Copilot används ett kontextfönster som innehåller din konversationshistorik, bifogade filer och andra sammanhangsberoende indata. När kontextfönstret fylls kan Copilot förlora äldre information från tidigare i tråden.
Använd indikatorn för kontextfönster för att spåra användningen i realtid:
- Öppna fönstret Copilot Chat.
- Leta upp ringindikatorn i det övre högra hörnet i chattpromptrutan.
- Välj indikatorn för att visa den exakta procentandelen kontext som används.
- Granska uppdelningen av vad som bidrar till kontextanvändning (till exempel konversationsmeddelanden och arbetsytefiler).
Sammanfatta och komprimera konversationshistorik
Komprimering minskar mängden kontext som används av äldre delar av den aktuella tråden, så att du kan fortsätta arbeta i samma konversation.
När den tillgängliga kontexten börjar ta slut väljer du Sammanfatta konversation för att komprimera tidigare delar av tråden och frigöra utrymme medan du håller dig kvar i den aktuella konversationen.
Använd komprimering på något av följande sätt:
- Välj Sammanfatta konversation från indikatorn för kontextfönstret för att automatiskt komprimera tidigare meddelanden.
- Skriv
/compactin chatten för att komprimera konversationen manuellt när som helst.
Efter kompaktering behåller Copilot en sammanfattning av tidigare interaktioner i stället för hela konversationsutskriften. Detta hjälper till att frigöra utrymme för kontextfönster samtidigt som trådens övergripande riktning bevaras.
Använd komprimering när:
- Kontextanvändningen är hög och du vill undvika att förlora viktig kontext nyligen.
- En tråd har blivit lång, men du vill fortfarande fortsätta i samma chatt.
- Du vill förbättra fokus innan du ställer en ny uppsättning uppföljningsfrågor.
Metodtips
Copilot Chat använder chatthistoriken för att få kontext om din begäran. För att endast ge Copilot relevant historia:
- Använd nya trådar för att starta en ny konversation för en ny uppgift.
- Om du vill behålla samma tråd använder du Sammanfatta konversation när kontextanvändningen är hög.
- Ta bort begäranden som inte längre är relevanta eller som inte gav dig önskat resultat.
Håll chattkonversationen öppen och fortsätt att iterera och uppmana Copilot att förbättra den föreslagna lösningen. Copilot har både kontexten för den genererade koden och din aktuella konversationshistorik. När du fortsätter att ställa ytterligare frågor förfinar Copilot svaret ytterligare enligt dina krav. Se Prompt Engineering för GitHub Copilot för strategier för effektiv uppmaning för att förbättra dina Copilot-resultat.