Gerenciar o contexto de chat no Copilot Chat

Gerencie o contexto de chat em GitHub Copilot Chat combinando contexto implícito, referências, histórico de chat e ferramentas de janela de contexto para obter melhores respostas.

Neste artigo, você aprenderá a obter melhores respostas fornecendo mais informações para o Copilot Chat:

Pré-requisitos

Para começar a usar o GitHub Copilot Chat no Visual Studio, você precisa:

Contexto implícito

O Visual Studio fornece automaticamente contexto para o prompt de chat com base em sua atividade atual.

As seguintes informações são incluídas implicitamente no contexto de chat:

  • O texto selecionado no momento no editor ativo.
  • O arquivo atual ativo no editor.

Dependendo do prompt, Copilot lê o conteúdo do arquivo ativo. Para incluir explicitamente o conteúdo de outro arquivo no contexto de chat, selecione o arquivo sugerido usando o + botão no modo de exibição de chat para Adicionar anexo.

Captura de tela do contexto implícito no Copilot Chat.

Referência: resultados de escopo do Copilot

Você pode fazer suas perguntas relacionadas à codificação em linguagem natural e o GitHub Copilot Chat responderá a elas no contexto da base de código aberta no Visual Studio. Com referências, você pode obter informações mais específicas sobre as informações que deseja que o Copilot considere ao responder à sua pergunta.

Ao selecionar um contexto específico em sua base de código, você é capaz de formar perguntas melhores facilmente sem precisar escrever ou colar informações longas. Especificar o contexto também permite que o Copilot forneça respostas mais relevantes.

Captura de tela das referências no Copilot Chat.

Referenciar um arquivo

Para fazer referência facilmente a um arquivo no GitHub Copilot Chat, basta adicionar um símbolo # no início do nome do arquivo. Por exemplo, se você tiver um arquivo chamado BasketService.cs, consulte-o no chat como #BasketService.cs.

Captura de tela da referência de arquivo no Copilot Chat.

Referenciar um método, classe ou função

Com Visual Studio 2022 versão 17.11, agora você pode referenciar um método, classe ou função específico no GitHub Copilot Chat.

Para fazer referência facilmente a um método, classe ou função no GitHub Copilot Chat, basta adicionar um símbolo # no início do método, classe ou nome da função. Por exemplo, se você tiver um método chamado BasketAddItem, consulte-o no chat como #BasketAddItem.

Captura de tela de referências a métodos no GitHub Copilot Chat no Visual Studio.

Referenciar a solução inteira

Use @workspace para se referir à solução ativa no IDE para obter contexto. Ao usar @workspace para contexto, o Copilot Chat aproveita as informações sobre os arquivos, projetos e configurações que estão abertos e sendo trabalhados no seu IDE. Isso permite que o Copilot Chat forneça sugestões e respostas mais relevantes e com reconhecimento de contexto.

Captura de tela da referência ao contexto da solução no Copilot Chat.

Com o Visual Studio 2022 versão 17.11, os assinantes do GitHub Copilot Enterprise agora podem usar @github no chat para incluir o contexto de todo o repositório e pesquisar na internet (se a pesquisa estiver habilitada pelo administrador). Para saber mais sobre a coleção de habilidades específicas do GitHub que o Copilot pode usar para responder à sua pergunta ao usar @github, consulte Usando as habilidades do GitHub para o Copilot.

Captura de tela do uso de habilidades do GitHub no Copilot Chat.

Confirmações de referência do histórico do Git

Ao revisar uma confirmação e desejar Copilot ajudar a entender as alterações, identificar possíveis problemas ou elaborar uma edição semelhante, você pode anexar o contexto de confirmação diretamente ao GitHub Copilot Chat.

Em vez de copiar e colar IDs de confirmação no chat, use Adicionar ao Chat para anexar o contexto de confirmação selecionado do IDE.

Use Adicionar ao Chat em uma confirmação de qualquer uma dessas superfícies:

  • Histórico do Git (Git>Ver histórico da ramificação)
  • File History (clique com o botão direito do mouse em um arquivo em Gerenciador de Soluções e, em seguida, Git>View History)
  • Anotar (Blame) (clique com o botão direito no editor e, em seguida, Git>Anotar (Blame))

Você pode selecionar vários commits para anexar vários commits no chat de uma só vez.

Captura de tela mostrando o comando Adicionar ao Chat para uma confirmação selecionada no Histórico do Git.

Depois de anexar o contexto de confirmação, tente prompts como:

  • Explicar essa alteração.
  • Isso apresenta algum problema?
  • Escreva uma alteração semelhante para esse outro arquivo.

Captura de tela que mostra o Copilot Chat com um commit anexado usado como contexto para um prompt.

Referencie suas alterações

Com o Visual Studio 2022 versão 17.14 ou posterior, você pode usar referências do Git no Copilot Chat.

Use #changes para fazer referência às alterações não confirmadas da janela Alterações do Git . Esta referência é útil quando você deseja que o Copilot Chat resuma o trabalho realizado, explique o impacto das edições pendentes ou sugira as próximas etapas antes de fazer o commit.

Por exemplo, você pode fazer perguntas como:

  • Resumir #changes.
  • O que eu fiz até agora?#changes
  • Sugerir testes de unidade para #changes.

Abra a caixa de diálogo Tools>Options, expanda GitHub>Copilot>Source Control Integration, selecione Enable Git preview features, e selecione OK.

Captura de tela do Copilot Chat fazendo referência a alterações não commitadas com #changes.

Fazer referência a uma confirmação

Use #commit: para fazer referência a uma confirmação específica no Copilot Chat. Quando você começa a digitar #commit:, Copilot mostra uma lista de confirmações recentes que você pode selecionar. Se você quiser fazer referência a uma confirmação mais antiga, insira a ID de confirmação logo após #commit:.

Você pode usar referências de confirmação para tarefas como:

  • Explique #commit:.
  • Escrever testes de unidade para cobrir as alterações em #commit:.
  • Encontre possíveis problemas em #commit:.

Essa referência é útil quando você deseja revisar uma alteração anterior, entender a intenção por trás de um commit ou pedir ao Copilot para ajudá-lo a dar continuidade a um trabalho anterior.

Captura de tela do Copilot Chat mostrando sugestões recentes de commit após digitar #commit:.

Referenciar uma imagem

Com a integração visual para o Copilot Chat no Visual Studio 17.14 e posterior, você pode anexar imagens ao seu prompt de chat, fornecendo ao Copilot um contexto adicional para respostas aprimoradas. Use imagens em combinação com escopo e outros recursos contextuais, como comandos de barra para gerar respostas personalizadas.

No exemplo a seguir, Copilot interpreta a imagem anexada para gerar um plano e sugerir código para criar um jogo de Breakout colorido do zero.

Captura de tela de um cenário de exemplo de adição de uma imagem no Copilot Chat.

Janela de saída de referência

Agora você pode usar a janela de saída como contexto no chat para fazer perguntas e obter ajuda nos logs de saída. As janelas de saída com suporte incluem Build, Depuração, Testes, Controle do Código-Fonte, Gerenciador de Pacotes ou qualquer outro painel de janela de saída ativo.

Faça referência aos logs de saída no chat de uma das seguintes maneiras:

  • Use #output para referenciá-lo diretamente no chat.
  • Selecione o ➕ ícone na entrada do chat e adicione Output logs como contexto.
  • Pergunte diretamente ao Copilot, por exemplo, verifique meus logs de saída e ajude-me a corrigir esse erro.
  • Clique com o botão direito do mouse na Janela de Saída e selecione Explicar com Copilot para anexá-la.

Captura de tela da janela de saída como contexto no Copilot Chat.

URLs de referência

Cole uma URL na caixa de prompt e o Copilot extrairá informações da Web para preencher os espaços em branco quando os dados de treinamento do Copilot não abrangem um tópico ou quando você deseja referenciar um recurso específico.

Por exemplo, você pode pedir ao Copilot que o ajude a escrever um arquivo readme.md com base nas práticas recomendadas do GitHub.

Captura de tela da referência a uma URL no chat para contexto.

Observe que o Copilot só pode fazer referência ao conteúdo HTML estático da URL pública que você fornece e não acessará outros links nessa página, páginas por trás da autenticação ou conteúdo de páginas dinâmicas.

Exemplos de uso

Aqui estão alguns exemplos de como usar referências para controle de contexto:

Exemplo Contexto usado por Copilot para formar a pergunta
Qual é a finalidade do #MyFile.cs: 66-72? Seção exata do arquivo
Onde estão os testes em #BasketService.cs? BasketService.cs
/explique a função #AddItemToBasket no arquivo #BasketService.cs Método AddItemToBasket em BasketService.cs
Existe um método de exclusão de carrinho neste @workspace Solução atual aberta no IDE
Tenho um método de teste chamado #TestCalculator. Como posso garantir que ele esteja sendo executado corretamente? Método TestCalculator
Você poderia explicar as diferenças entre as classes #BasketService e #OrderService? Classe BasketService e classe OrderService
Na minha @workspace onde está #AddItemToBasket? Solução atual aberta no IDE
Resumir #changes antes de confirmar Alterações não confirmadas na janela de Alterações do Git
Encontrar possíveis problemas em #commit:abc1234 O commit especificado
Atualizar minha interface do usuário no App.tsx para se assemelhar a essa imagem Imagem carregada

Revise as fontes utilizadas pelo Copilot Chat

O Copilot Chat exibe o contexto usado após cada resultado, para que você possa dizer o que foi levado em conta ao responder à sua pergunta. Quando você faz uma pergunta a um Copilot Chat e recebe uma resposta na janela de chat, um menu suspenso Referências aparece abaixo da resposta. As entradas na lista suspensa Referências mostram o contexto referenciado pelo Copilot Chat para gerar essa resposta. Essas informações podem ajudá-lo a modificar sua pergunta para obter respostas melhores e mais relevantes.

Captura de tela do menu suspenso de referências usadas no Copilot Chat.

Organize: gerencie o contexto do histórico da conversa com tópicos

À medida que você itera e envia vários prompts de chat em uma sessão de chat, o Copilot usa o histórico de prompts de chat e respostas como contexto para seu prompt de chat atual. Isso significa que você pode fazer perguntas de acompanhamento ou esclarecer sua pergunta anterior sem precisar repetir o contexto. Por exemplo, você pode perguntar "Como isso difere de ...", "Agora adicione um caso de teste", "explique com mais detalhes" e muito mais.

Para começar com uma nova sessão de chat e descartar o contexto atual, inicie um novo thread no modo de exibição de chat. Isso é útil quando você deseja mudar para um tópico diferente e evitar o contexto e o histórico anteriores. Use threads para manter as conversas focadas na tarefa em questão e manter o contexto claro para que as respostas sejam baseadas no histórico relevante.

Novo thread de chat

Selecione Criar novo thread ou Ctrl+N na janela de chat para iniciar um novo thread.

Captura de tela do ícone Criar novo tópico no Copilot Chat.

Mudar thread de chat

Você pode selecionar entre vários threads contínuos para fornecer o contexto histórico certo para sua pergunta. Você pode usar Ctrl+PgDown para thread anterior ou Ctrl+PgUp para o próximo thread na janela de chat. Ctrl+Shift+T expande a lista suspensa de tópicos.

Captura de tela da alternância entre conversas em andamento no Copilot Chat.

Organizar: gerenciar o histórico de chat com o painel de histórico de chat

À medida que você itera e envia vários prompts de chat em uma sessão de chat, o Copilot usa o histórico de prompts de chat e respostas como contexto para seu prompt de chat atual. Isso significa que você pode fazer perguntas de acompanhamento ou esclarecer sua pergunta anterior sem precisar repetir o contexto. Por exemplo, você pode perguntar "Como isso difere de ...", "Agora adicione um caso de teste", "explique com mais detalhes" e muito mais.

Para começar com uma nova sessão de chat e descartar o contexto atual, inicie um novo thread no modo de exibição de chat. Isso é útil quando você deseja mudar para um tópico diferente e evitar o contexto e o histórico anteriores. Use o painel de histórico de chat para manter as conversas focadas na tarefa em questão e manter o contexto claro para que as respostas sejam baseadas no histórico relevante.

Novo thread de chat

Selecione Criar novo thread ou Ctrl+N na janela de chat para iniciar um novo thread.

Captura de tela do ícone Criar novo tópico no Copilot Chat.

Mudar thread de chat

Use o painel de histórico de chat para alternar entre as sessões de chat e fornecer o contexto histórico certo para sua pergunta.

Cada entrada de histórico de chat mostra:

  • O título do chat
  • Uma visualização da mensagem mais recente
  • Quando a sessão foi atualizada pela última vez

Selecione uma sessão no painel para ir diretamente para essa conversa.

Captura de tela do painel Histórico do Chat mostrando o título da sessão, a visualização da mensagem e a hora da última atualização.

Promover chat embutido para a janela de chat

Com o visual Studio 2022 versão 17.11, agora você pode preservar o histórico do chat embutido promovendo-o para a janela de chat. Selecione Continuar na janela de conversa... para manter um registro e contexto da conversa, e continuar na janela de conversa.

Captura de tela da promoção de um tópico em andamento no chat integrado para a janela de chat.

Monitorar e otimizar o uso da janela de contexto

Quando você conversa com Copilot, ele usa uma janela de contexto que inclui seu histórico de conversas, arquivos anexados e outras entradas contextuais. À medida que a janela de contexto fica cheia, o Copilot pode perder detalhes mais antigos das partes anteriores da conversa.

Use o indicador da janela de contexto para controlar o uso em tempo real:

  1. Abra a janela Copilot Chat.
  2. No canto superior direito da caixa de mensagem do chat, localize o indicador em forma de anel.
  3. Selecione o indicador para exibir a porcentagem exata do contexto usado.
  4. Examine o detalhamento do que contribui para o uso de contexto (por exemplo, mensagens de conversa e arquivos de workspace).

Resumir e compactar o histórico de conversas

A compactação reduz a quantidade de contexto usada por partes mais antigas do thread atual, para que você possa continuar trabalhando na mesma conversa.

Quando o contexto disponível estiver acabando, selecione Resumir conversa para compactar partes anteriores da conversa e liberar espaço sem sair da conversa atual.

Use a compactação de uma destas formas:

  • Selecione Resumir conversa no indicador da janela de contexto para compactar automaticamente as mensagens anteriores.
  • Digite /compact no chat para compactar a conversa manualmente a qualquer momento.

Após a compactação, o Copilot mantém um resumo dos turnos anteriores em vez da transcrição completa. Isso ajuda a liberar espaço na janela de contexto, preservando a direção geral do thread.

Use a compactação quando:

  • O uso de contexto é alto e você deseja evitar perder um contexto recente importante.
  • Uma conversa ficou longa, mas você ainda quer continuar na mesma conversa.
  • Você deseja melhorar o foco antes de fazer um novo conjunto de perguntas de acompanhamento.

Práticas recomendadas

O Copilot Chat usa o histórico de chat para obter contexto sobre sua solicitação. Para dar a Copilot apenas o histórico relevante:

  • Use novos threads para iniciar uma nova conversa para uma nova tarefa.
  • Se você quiser manter a mesma conversa, use Resumir conversa quando o uso de contexto estiver alto.
  • Exclua solicitações que não são mais relevantes ou que não lhe deram o resultado desejado.

Mantenha a conversa de chat aberta e continue iterando e solicite ao Copilot que melhore a solução sugerida. Copilot tem o contexto do código gerado e seu histórico de conversa atual. À medida que você continua fazendo perguntas adicionais, o Copilot refina ainda mais a resposta de acordo com seus requisitos. Confira Engenharia de prompt para o GitHub Copilot para obter estratégias sobre o uso eficaz de prompts para aprimorar os seus resultados do Copilot.

Próximas etapas