Fundamentos de engenharia e melhores práticas de prompts

Concluído

Nesta unidade, abordaremos:

  • O que é engenharia de Prompts?
  • Fundamentos da engenharia de Prompt
  • Melhores práticas na engenharia de Prompts
  • Como o Copilot aprende com seus Prompts

O que é engenharia de Prompts?

A engenharia de Prompt é o processo de elaboração de instruções claras para guiar os sistemas de IA, como o GitHub Copilot, para gerar código adequado ao contexto e adaptado às necessidades específicas do seu projeto. Isso garante que o código seja sintático, funcional e contextualmente correto.

Agora que você sabe o que é a engenharia de Prompt, vamos aprender sobre alguns de seus princípios.

Princípios da engenharia de Prompt

Antes de explorar estratégias específicas, vamos primeiro entender os princípios básicos da engenharia de prompt, resumidos nos 4 Ss abaixo. Essas regras principais são a base para a criação de prompts eficazes.

  • Único: Sempre foque seu prompt em uma tarefa ou pergunta única e bem definida. Essa clareza é fundamental para obter respostas precisas e úteis do Copilot.
  • Específico: Certifique-se de que suas instruções sejam explícitas e detalhadas. A especificidade leva para sugestões de código mais aplicáveis e precisas.
  • Curto: Ao ser específico, mantenha os prompts concisos e diretos. Esse equilíbrio garante clareza sem sobrecarregar o Copilot ou complicar a interação.
  • Contextual: Utilize nomes de arquivos com descrição e mantenha os arquivos relacionados abertos. Isso fornece ao Copilot um contexto avançado, levando para sugestões de código mais personalizadas.

Esses princípios centrais estabelecem a base para a elaboração de prompts eficientes e eficazes. Mantendo os 4 Ss em mente, vamos nos aprofundar nas práticas recomendadas avançadas que garantem que cada interação com o GitHub Copilot seja otimizada.

Melhores práticas na engenharia de Prompts

As seguintes práticas avançadas, baseadas nos 4 Ss, refinam e aprimoram seu envolvimento com o Copilot, garantindo que o código gerado não seja apenas preciso, mas perfeitamente alinhado às necessidades e contextos específicos do seu projeto.

Forneça clareza suficiente

Com base nos princípios "Único" e "Específico", sempre busque a explicitação em seus prompts. Por exemplo, um prompt como "Grave uma função Python para filtrar e retornar números pares de uma lista fornecida" é específico e tem um foco único.

Captura de tela de um chat do Copilot com um prompt do Python.

Fornecer contexto suficiente com detalhes

Enriqueça o reconhecimento do Copilot com o contexto, seguindo o princípio "Contexto". Quanto mais informações contextuais forem fornecidas, mais ajustadas serão as sugestões de código geradas. Por exemplo, ao adicionar alguns comentários na parte superior do código para fornecer mais detalhes sobre o que deseja, você pode fornecer mais contexto para o Copilot entender seu prompt e fornecer sugestões de código melhores.

Captura de tela dos comentários adicionados ao código para melhores sugestões do Copilot.

No exemplo acima, usamos etapas para fornecer mais detalhes e, ao mesmo tempo, mantê-lo curto. Essa prática segue o princípio "Curto", equilibrando detalhes com concisão para garantir a clareza e a precisão na comunicação.

Observação

O Copilot também usa guias abertas paralelamente em seu editor de código para obter mais contexto sobre os requisitos do seu código.

Fornecer exemplos para aprendizado

O uso de exemplos pode esclarecer seus requisitos e expectativas, ilustrando conceitos abstratos e tornando os prompts mais tangíveis para o Copilot.

Captura de tela de um exemplo usado para esclarecer os prompts do Copilot.

Afirmar e iterar

Uma das chaves para desbloquear todo o potencial do GitHub Copilot é a prática da iteração. Seu primeiro prompt nem sempre produzirá o código perfeito, e isso é perfeitamente aceitável. Se a primeira saída não for exatamente o que você está procurando, trate-a como uma etapa de um diálogo. Apague o código sugerido, enriqueça seu comentário inicial com detalhes e exemplos adicionados e prompt o Copilot novamente.

Agora que você aprendeu as melhores práticas para aprimorar suas habilidades cognitivas, vamos examinar mais de perto como fornecer exemplos com os quais o Copilot possa aprender.

Como o Copilot aprende com seus Prompts

O GitHub Copilot opera com base em modelos de IA treinados em grandes quantidades de dados. Para aprimorar seu reconhecimento de contextos de código específicos, os engenheiros geralmente fornecem exemplos a ele. Essa prática, normalmente encontrada no aprendizado de máquina, levou a diferentes abordagens de treinamento, como:

Aprendizado Zero-shot

Aqui, o GitHub Copilot gera o código sem nenhum exemplo específico, confiando apenas em seu treinamento básico. Por exemplo, suponha que você deseje criar uma função para converter temperaturas entre Celsius e Fahrenheit. Você pode iniciar escrevendo apenas um comentário descrevendo o que deseja, e o Copilot poderá gerar o código para você, com base no seu treinamento anterior, sem escrever nenhum outro exemplo.

Captura de tela de Copilot criando um código de conversão de temperatura de um comentário.

Aprendizado One-shot

Com essa abordagem, um único exemplo é fornecido, ajudando o modelo a gerar uma resposta mais sensível ao contexto. Com base no exemplo anterior de zero-shot, você pode fornecer um exemplo de uma função de conversão de temperatura e, em seguida, pedir ao Copilot que crie outra função semelhante. Veja como poderia ser:

Captura de tela do Copilot usando um exemplo para criar um código de conversão de temperatura semelhante.

Few-shot learning

Nesse método, o Copilot é apresentado com vários exemplos, que atingem um equilíbrio entre a imprevisibilidade do zero-shot e a precisão do ajuste fino. Digamos que você deseje gerar um código que lhe envie uma saudação dependendo da hora do dia. Aqui está uma versão em poucas fotos desse prompt:

Captura de tela de Copilot gerando código de saudação com base em vários exemplos.

Agora que você sabe como o Copilot usa seus prompts para aprender, vamos dar uma olhada detalhada em como ele realmente usa seu prompt para sugerir códigos para você.