Chatcontext beheren met verwijzingen

Beperk uw vragen tot GitHub Copilot Chat met behulp van verwijzingen, naast de impliciete contextuele kennis, om betere antwoorden te krijgen.

In dit artikel leert u hoe u betere antwoorden krijgt door meer informatie te geven aan Copilot Chat:

  • Inzicht krijgen in de impliciete context die Copilot achter de schermen gebruikt
  • Beperk de chat tot specifieke bestanden, wijzigingen en commits met verwijzingen
  • Voeg afbeeldingen toe aan uw prompt om extra context te bieden en uw ideeën beter te illustreren
  • Controleer de bron die door Copilot wordt gebruikt om het antwoord te genereren
  • Gebruik verschillende threads voor elk van uw Copilot-chats om de chatgeschiedenis en verschillende context in elk te behouden

Vereiste voorwaarden

U hebt het volgende nodig om aan de slag te gaan met GitHub Copilot Chat in Visual Studio:

Impliciete context

Visual Studio biedt automatisch context aan de chatprompt op basis van uw huidige activiteit.

De volgende informatie wordt impliciet opgenomen in de chatcontext:

  • De momenteel geselecteerde tekst in de actieve editor.
  • Het huidige bestand dat actief is in de editor.

Afhankelijk van uw prompt leest Copilot de inhoud van het actieve bestand. Als u de inhoud van een ander bestand expliciet wilt opnemen in de chatcontext, selecteert u het voorgestelde bestand met behulp van de + knop in de chatweergave om bijlage toe te voegen.

Schermopname van impliciete context in Copilot Chat.

Naslaginformatie: Copilot-resultaten van bereik

U kunt uw codegerelateerde vragen in natuurlijke taal stellen en GitHub Copilot Chat beantwoordt deze in de context van de codebase die is geopend in Visual Studio. Met verwijzingen kunt u specifiekere informatie krijgen over de informatie die Copilot moet overwegen bij het beantwoorden van uw vraag.

Door een specifieke context in uw codebasis te selecteren, kunt u eenvoudig betere vragen vormen zonder lange stukjes informatie te hoeven schrijven of plakken. Als u de context opgeeft, kan Copilot u ook relevantere antwoorden geven.

Schermopname van verwijzingen in Copilot Chat.

Verwijzen naar een bestand

Als u eenvoudig wilt verwijzen naar een bestand in GitHub Copilot Chat, voegt u een # symbool toe aan het begin van de bestandsnaam. Als u bijvoorbeeld een bestand met de naam BasketService.cshebt, raadpleegt u het in de chat als #BasketService.cs.

Schermopname van bestandsreferentie in Copilot Chat.

Verwijzen naar een methode, klasse of functie

Met Visual Studio 2022 versie 17.11kunt u nu verwijzen naar een specifieke methode, klasse of functie in GitHub Copilot Chat.

Als u eenvoudig wilt verwijzen naar een methode, klasse of functie in GitHub Copilot Chat, voegt u een # symbool toe aan het begin van de methode, klasse of functienaam. Als u bijvoorbeeld een methode hebt met de naam BasketAddItem, raadpleegt u deze in de chat als #BasketAddItem.

Schermopname van verwijzingen naar methoden in GitHub Copilot Chat in Visual Studio.

Verwijzen naar de hele oplossing

Gebruik @workspace om te verwijzen naar de oplossing die in de IDE actief is voor contextuele doeleinden. Wanneer u @workspace gebruikt voor context, maakt Copilot Chat gebruik van de informatie over de bestanden, projecten en configuraties die momenteel zijn geopend en waaraan binnen uw IDE wordt gewerkt. Hierdoor kan Copilot Chat relevantere en contextbewuste suggesties en antwoorden bieden.

Schermopname van refereren naar de context van de oplossing in Copilot Chat.

Met Visual Studio 2022 versie 17.11 kunnen GitHub Copilot Enterprise-abonnees nu @github in chat gebruiken om context op te nemen vanuit hun hele opslagplaats en om op internet te zoeken (als zoekopdracht is ingeschakeld door uw beheerder). Zie @githubvoor meer informatie over de verzameling van gitHub-specifieke vaardigheden die Copilot kan gebruiken om uw vraag te beantwoorden wanneer u gebruikt.

Schermopname van het gebruik van GitHub-vaardigheden in Copilot Chat.

Verwijs naar commits uit de Git-geschiedenis

Wanneer u een doorvoering bekijkt en Copilot hulp nodig hebt bij het begrijpen van wijzigingen, het identificeren van mogelijke problemen of het opstellen van een vergelijkbare bewerking, kunt u doorvoercontext rechtstreeks koppelen aan GitHub Copilot Chat.

In plaats van doorvoer-id's te kopiëren en te plakken in een chat, gebruikt u Toevoegen aan Chat om de geselecteerde doorvoercontext vanuit de IDE toe te voegen.

Gebruik Add to Chat bij een commit vanaf een van deze plekken:

  • Git-geschiedenis (Git>View Branch History)
  • Bestandsgeschiedenis (klik met de rechtermuisknop op een bestand in Solution Explorer en Git>Weergave)
  • Aantekeningen maken (Blame) ( klik met de rechtermuisknop in de editor en vervolgens op Git>Annotate (Blame))

U kunt meerdere commits selecteren om verschillende commits tegelijk aan de chat toe te voegen.

Schermopname van de opdracht Toevoegen aan chat voor een geselecteerde doorvoering in Git-geschiedenis.

Nadat u de doorvoercontext hebt gekoppeld, kunt u de volgende prompts proberen:

  • Leg deze wijziging uit.
  • Brengt dit problemen met zich mee?
  • Schrijf een vergelijkbare wijziging voor dit andere bestand.

Schermafbeelding van Copilot Chat met een bijgevoegde commit die als context voor een prompt wordt gebruikt.

Naar uw wijzigingen verwijzen

Met Visual Studio versie 17.14 en hoger van 2022 kunt u Git-verwijzingen in Copilot Chat gebruiken.

Gebruik #changes om te verwijzen naar uw niet-gecommitte wijzigingen vanuit het venster Git-wijzigingen. Deze referentie is handig als u wilt dat Copilot Chat het werk dat u hebt gedaan samenvat, de impact van openstaande bewerkingen uitlegt of volgende stappen voorstelt voordat u de wijzigingen vastlegt.

U kunt bijvoorbeeld vragen stellen, zoals:

  • Samenvatten #changes.
  • Wat heb ik tot nu toe in #changes gedaan?
  • Suggereer unittests voor #changes.

Open het dialoogvenster Tools>Options, vouw GitHub>Copilot>Source Control Integration, selecteer Verenable Git Preview-functies, en selecteer vervolgens OK.

Schermafbeelding van Copilot Chat verwijst naar niet-doorgevoerde wijzigingen met #changes.

Verwijzen naar een commit

Gebruik #commit: om te verwijzen naar een specifieke doorvoering in Copilot Chat. Wanneer u #commit: begint met typen, toont Copilot een lijst met recente commits waaruit u kunt kiezen. Als u wilt verwijzen naar een oudere doorvoering, voert u de doorvoer-id direct na #commit:in.

U kunt doorvoerverwijzingen gebruiken voor taken zoals:

  • Leg #commit: uit.
  • Schrijf eenheidstests om de wijzigingen in #commit: af te dekken.
  • Potentiële problemen vinden in #commit:.

Deze verwijzing is handig als u een eerdere wijziging wilt bekijken, de intentie achter een doorvoering wilt controleren of Copilot wilt vragen om u te helpen bij het opvolgen van eerdere werkzaamheden.

Schermafbeelding van Copilot Chat met recente suggesties voor doorvoer nadat u #commit hebt getypt:.

Naar een afbeelding verwijzen

Met vision-integratie voor Copilot Chat in Visual Studio 17.14 en hoger kunt u afbeeldingen toevoegen aan uw chatprompt, zodat Copilot extra context biedt voor verbeterde antwoorden. Gebruik afbeeldingen in combinatie met bereik en andere contextuele functies, zoals slash-opdrachten om aangepaste antwoorden te genereren.

In het volgende voorbeeld interpreteert Copilot de bijgevoegde afbeelding om een plan te genereren en code voor te stellen om een kleurrijk breakoutspel helemaal opnieuw te maken.

Schermopname van een voorbeeldscenario van het toevoegen van een afbeelding in Copilot Chat.

Uitvoervenster voor Referentie

U kunt nu het uitvoervenster gebruiken als context in chat om vragen te stellen en hulp te krijgen bij uitvoerlogboeken. Ondersteunde uitvoervensters zijn Build, Debug, Tests, Source Control, Pakketbeheer of een ander actief uitvoervenster.

Raadpleeg de uitvoerlogboeken in chat op een van de volgende manieren:

  • Gebruik #output om er rechtstreeks in de chat naar te verwijzen.
  • Selecteer het ➕ pictogram in de chatinvoer en voeg deze toe Output logs als context.
  • Vraag Copilot bijvoorbeeld rechtstreeks naar mijn uitvoerlogboeken en help me deze fout op te lossen.
  • Klik met de rechtermuisknop in het uitvoervenster en selecteer Uitleg met Copilot om deze toe te voegen.

Schermopname van het uitvoervenster als context in Copilot Chat.

Referentie-URLs

Plak een URL in het promptvak en Copilot haalt gegevens van het web op om de lege waarden in te vullen wanneer de trainingsgegevens van Copilot geen onderwerp behandelen of wanneer u naar een specifieke resource wilt verwijzen.

U kunt copilot bijvoorbeeld vragen een readme.md-bestand te schrijven op basis van aanbevolen procedures op GitHub.

Schermopname van het verwijzen naar een URL in de chat voor context.

Copilot kan alleen verwijzen naar statische HTML-inhoud van de openbare URL die u opgeeft en heeft geen toegang tot andere koppelingen op die pagina, pagina's achter verificatie of inhoud van dynamische pagina's.

Voorbeelden van gebruik

Hier volgen enkele voorbeelden van het gebruik van verwijzingen voor contextbeheer:

Voorbeeld context die door Copilot wordt gebruikt om de vraag te vormen
Wat is het doel van #MyFile.cs: 66-72? Exacte sectie van het bestand
Waar zijn de tests in #BasketService.cs? BasketService.cs
Leg uit wat #AddItemToBasket doet in #BasketService.cs Methode AddItemToBasket in BasketService.cs
Is er een verwijdermand-methode in deze @workspace Huidige oplossing geopend in de IDE
Ik heb een testmethode met de naam #TestCalculator. Hoe kan ik ervoor zorgen dat deze correct wordt uitgevoerd? TestCalculator-methode
Kunt u de verschillen tussen klassen #BasketService en #OrderService uitleggen? BasketService-klasse en OrderService-klasse
In mijn @workspace, waar is #AddItemToBasket gebleven? Huidige oplossing geopend in de IDE
#changes samenvatten voordat ik doorvoer Niet-doorgevoerde wijzigingen in het venster Git-wijzigingen
Mogelijke problemen vinden in #commit:abc1234 De opgegeven commit
Mijn gebruikersinterface bijwerken in App.tsx zodat deze lijkt op deze afbeelding Geüploade afbeelding

Bekijk de bronnen die worden gebruikt door Copilot Chat

Copilot Chat geeft de context weer die na elk resultaat wordt gebruikt, zodat u kunt zien wat er in aanmerking is genomen bij het beantwoorden van uw vraag. Wanneer u een vraag stelt aan Copilot Chat en een antwoord krijgt in het chatvenster, verschijnt er een Verwijzingen uitklapmenu onder het antwoord. De vermeldingen in de vervolgkeuzelijst Referenties tonen u de context die Copilot Chat gebruikt om dat antwoord te genereren. Met deze informatie kunt u uw vraag aanpassen om betere en relevantere antwoorden te krijgen.

Schermopname van de vervolgkeuzelijst met gebruikte verwijzingen in Copilot Chat.

Organiseren: de context van de chatgeschiedenis beheren met threads

Terwijl u meerdere chatprompts in een chatsessie herhalen en verzenden, gebruikt Copilot de geschiedenis van chatprompts en antwoorden als context voor uw huidige chatprompt. Dit betekent dat u vervolgvragen kunt stellen of uw vorige vraag kunt verduidelijken zonder dat u de context hoeft te herhalen. U kunt bijvoorbeeld vragen 'Hoe verschilt dit van ...', 'Voeg nu een testcase toe', 'leg meer uit', en meer.

Als u opnieuw wilt beginnen met een nieuwe chatsessie en de huidige context wilt negeren, start u een nieuwe thread in de chatweergave. Dit is handig als u naar een ander onderwerp wilt gaan en de vorige context en geschiedenis wilt vermijden. Gebruik threads om gesprekken gericht te houden op de taak en de context helder te houden, zodat de antwoorden zijn gebaseerd op de relevante geschiedenis.

Nieuwe chat-thread

Selecteer Nieuwe thread maken of Ctrl+N in het chatvenster om een nieuwe thread te starten.

Schermopname van het pictogram Nieuwe thread maken in Copilot Chat.

Wissel van chatthread

U kunt kiezen tussen meerdere lopende threads om de juiste historische context voor uw vraag te bieden. U kunt Ctrl+PgDown gebruiken voor vorige thread of Ctrl+PgUp voor de volgende thread in het chatvenster. Ctrl+Shift+T breidt de vervolgkeuzelijst voor thread uit.

Schermopname van het schakelen tussen lopende threads in Copilot Chat.

Organiseren: chatgeschiedenis beheren met het chatgeschiedenisvenster

Terwijl u meerdere chatprompts in een chatsessie herhalen en verzenden, gebruikt Copilot de geschiedenis van chatprompts en antwoorden als context voor uw huidige chatprompt. Dit betekent dat u vervolgvragen kunt stellen of uw vorige vraag kunt verduidelijken zonder dat u de context hoeft te herhalen. U kunt bijvoorbeeld vragen 'Hoe verschilt dit van ...', 'Voeg nu een testcase toe', 'leg meer uit', en meer.

Als u opnieuw wilt beginnen met een nieuwe chatsessie en de huidige context wilt negeren, start u een nieuwe thread in de chatweergave. Dit is handig als u naar een ander onderwerp wilt gaan en de vorige context en geschiedenis wilt vermijden. Gebruik het chatgeschiedenisvenster om gesprekken gericht te houden op de taak en de context helder te houden, zodat de antwoorden zijn gebaseerd op de relevante geschiedenis.

Nieuwe chat-thread

Selecteer Nieuwe thread maken of Ctrl+N in het chatvenster om een nieuwe thread te starten.

Schermopname van het pictogram Nieuwe thread maken in Copilot Chat.

Wissel van chatthread

Gebruik het deelvenster chatgeschiedenis om tussen chatsessies te schakelen en de juiste historische context voor uw vraag op te geven.

Elke vermelding in de chatgeschiedenis toont:

  • De chattitel
  • Een voorbeeld van het meest recente bericht
  • Wanneer de sessie voor het laatst is bijgewerkt

Selecteer een sessie in het deelvenster om rechtstreeks naar dat gesprek te gaan.

Schermopname van het deelvenster Chatgeschiedenis met de sessietitel, het berichtvoorbeeld en de laatst bijgewerkte tijd.

Inline chat promoveren naar het chatvenster

Met Visual Studio 2022 versie 17.11kunt u nu de geschiedenis van uw inline chat behouden door deze te promoveren naar het chatvenster. Selecteer Doorgaan in het chatvenster... om een record en context van het gesprek bij te houden en door te gaan in het chatvenster.

Schermopname van het promoten van lopende thread in inlinechat naar het chatvenster.

Beste praktijken

Copilot Chat gebruikt de chatgeschiedenis om context over uw aanvraag te krijgen. Copilot alleen de relevante geschiedenis geven:

  • Gebruik nieuwe threads om een nieuw gesprek te starten voor een nieuwe taak.
  • Verwijder aanvragen die niet langer relevant zijn of die u niet het gewenste resultaat gaven.

Houd het chatgesprek open en blijf Copilot opdrachten geven en vragen stellen om de voorgestelde oplossing te verbeteren. Copilot heeft zowel de context van de gegenereerde code als uw huidige gespreksgeschiedenis. Als u aanvullende vragen blijft stellen, verfijnt Copilot het antwoord verder op basis van uw vereisten. Zie Prompt engineering voor GitHub Copilot voor effectieve promptstrategieën om uw Copilot-resultaten te verbeteren.

Volgende stappen