Skip to main content

Engenharia de prompts para o GitHub Copilot

Siga estas estratégias para melhorar seus resultados do Copilot.

Um prompt é uma solicitação que você faz para GitHub Copilot. Por exemplo, uma pergunta que você faz ao Copilot Chat ou um trecho de código que você pede que o Copilot preencha. Além do prompt, o Copilot usa contexto adicional, como o código no arquivo atual e o histórico de chats, para gerar uma resposta.

Siga as dicas deste artigo para escrever prompts que geram respostas do Copilot melhores.

Comece de forma mais geral e, em seguida, seja mais específico

Ao escrever um prompt para Copilot, primeiro forneça ao Copilot uma descrição ampla da meta ou do cenário. Em seguida, liste todos os requisitos específicos.

Por exemplo:

Escrever uma função que diga se um número é primo

A função deve pegar um inteiro e retornar verdadeiro se o inteiro for primo

A função deve emitir um erro se a entrada não for um inteiro positivo

Forneça exemplos

Use exemplos para ajudar o Copilot a entender o que você deseja. Você pode fornecer dados de entrada de exemplo, saídas de exemplo e implementações de exemplo.

Por exemplo:

Escreva uma função que localize todas as datas em uma sequência e as retorne em uma matriz. As datas podem ser formatadas como:

  • 05/02/24
  • 05/02/2024
  • 5/2/24
  • 5/2/2024
  • 05-02-24
  • 05-02-2024
  • 5-2-24
  • 5-2-2024

Exemplo:

findDates("Tenho dentista em 14/11/2023 e clube de livros em 1/12/23")

Retorna: ["14/11/2023", "1/12/23"]

Os testes de unidade também podem servir de exemplo. Antes de escrever sua função, você pode usar o Copilot para gravar testes de unidade para a função. Em seguida, você pode pedir ao Copilot para gravar uma função descrita por esses testes de unidade.

Divida tarefas complexas em tarefas mais simples

Se você quiser que o Copilot conclua uma tarefa complexa ou grande, divida a tarefa em várias tarefas simples e pequenas.

Por exemplo, em vez de pedir ao Copilot para gerar um quebra-cabeça de pesquisa de palavras, divida o processo em tarefas menores e peça ao Copilot para realizá-las uma a uma:

  • Escreva uma função para gerar uma grade de letras 10 por 10.
  • Escreva uma função para localizar todas as palavras em uma grade de letras, considerando uma lista de palavras válidas.
  • Escreva uma função que use as funções anteriores para gerar uma grade de 10 por 10 de letras que contenha pelo menos 10 palavras.
  • Atualize a função anterior para imprimir a grade de letras e 10 palavras aleatórias da grade.

Evite ambiguidade

Evite termos ambíguos. Por exemplo, não pergunte "o que isso faz" se "isso" pode ser o arquivo atual, a última resposta do Copilot ou um bloco de código específico. Em vez disso, seja específico:

  • O que a função createUser faz?
  • O que o código na sua última resposta faz?

A ambiguidade também pode se aplicar às bibliotecas:

  • Se você estiver usando uma biblioteca incomum, descreva o que a biblioteca faz.
  • Se você quiser usar uma biblioteca específica, defina as instruções de importação na parte superior do arquivo ou especifique qual biblioteca deseja usar.

Indique o código relevante

Se você estiver usando Copilot em seu IDE para obter sugestões à medida que codifica, abra todos os arquivos relevantes e feche arquivos irrelevantes. O Copilot usará os arquivos abertos para entender sua solicitação.

Se você estiver usando o Copilot Chat em seu IDE, abra o arquivo ou realce o código ao qual deseja que o Copilot faça referência. Você também pode especificar a quais arquivos o Copilot Chat deve fazer referência. Por exemplo, no VS Code, use a variável #file ou o participante @workspace. Para obter instruções sobre como fazer referência a arquivos em seu IDE, confira Fazendo perguntas ao GitHub Copilot em seu IDE.

Experimentar e iterar

Se você não obtiver o resultado desejado, itere no prompt e tente novamente.

Se você estiver usando o Copilot para obter sugestões à medida que codifica, poderá excluir a sugestão totalmente e começar de novo. Ou você pode manter a sugestão e solicitar modificações.

Se você estiver usando o Copilot Chat, poderá fazer referência à resposta anterior em sua próxima solicitação. Ou, você pode excluir a resposta anterior e começar de novo.

Mantenha o histórico relevante

O Copilot Chat usa o histórico de chats para obter contexto sobre sua solicitação. Para fornecer ao Copilot apenas o histórico relevante:

  • Use threads para iniciar uma nova conversa para uma nova tarefa
  • Exclua solicitações que não são mais relevantes ou que não produziram o resultado desejado

Siga as boas práticas de codificação

Se você não estiver obtendo as respostas desejadas ao pedir sugestões ou explicações ao Copilot em sua base de código, certifique-se de que seu código existente siga as práticas recomendadas e seja fácil de ler. Por exemplo:

  • Use um estilo e padrões de código consistentes
  • Use nomes descritivos para variáveis e funções
  • Comente o código
  • Estruture seu código em componentes modulares com escopo
  • Inclua testes de unidade

Tip

Use o Copilot para ajudar seu código a seguir as práticas recomendadas. Por exemplo, peça ao Copilot para adicionar comentários ou dividir uma função grande em funções menores.

Da mesma forma, se você não estiver obtendo as respostas desejadas ao usar o Copilot com bases de dados de conhecimento, aplique estas práticas recomendadas aos arquivos da base de dados de conhecimento:

  • Organize os arquivos em uma hierarquia lógica
  • Use uma linguagem clara e concisa
  • Inclua exemplos e casos de uso, se relevante
  • Referência cruzada entre arquivos relacionados

Leitura adicional