Fundamentos de Prompt Engineering
No contexto de modelos de linguagem (como Large Language Models - LLMs), um "prompt" é a entrada de texto que fornecemos ao modelo para instruí-lo ou fazer uma pergunta
Prompt Engineering é a prática de formular instruções (prompts) de forma clara, estratégica e eficaz para interagir com modelos de linguagem como o ChatGPT, Gemini, Claude, entre outros.
Em outras palavras, é o processo de escrever perguntas ou comandos da melhor forma possível para obter respostas úteis de ferramentas de Inteligência Artificial generativa.
Por que isso importa?
Apesar desses modelos serem potentes, a qualidade da resposta depende muito de como a pergunta é feita. Um prompt bem elaborado pode fazer a diferença entre uma resposta vaga e uma resposta precisa, útil e aplicável.
Dica
Se você está em dúvida sobre como criar ou estruturar um prompt, pergunte à LLM.
Estou precisando criar um prompt para sumarizar o conteúdo de contratos de compra e venda de imóveis.
Crie um prompt para isso e inclua instruções que você achar convenientes.
Retorne o system e o user prompt.
Exemplo 1: Brainstorming/Ideação
Prompt Ruim/Básico:
Me dê ideias para uma campanha de marketing.
Prompt Melhorado (Adicionando Especificidade):
Sugira 5 ideias de slogans criativos para uma campanha de marketing de um novo software de gerenciamento de projetos focado em pequenas e médias empresas.
Prompt Avançado (Adicionando Contexto e Formato):
Atue como um guru de marketing digital. Gere 3 conceitos de campanhas de marketing inovadoras para o lançamento de um software de gerenciamento de projetos SaaS (Software as a Service) para PMEs. Cada conceito deve incluir: um título chamativo, um público-alvo específico, um canal de marketing principal e uma métrica de sucesso. Mantenha um tom otimista e voltado para resultados.
Exemplo 2: Geração de Código/Estruturas
Prompt Ruim/Básico:
Crie uma tabela de produtos.
Prompt Melhorado (Adicionando Especificidade):
Gere uma tabela Markdown para organizar informações de produtos. Inclua colunas para "Nome do Produto", "SKU", "Preço (R$)", "Estoque" e "Descrição Breve".
Prompt Avançado (Adicionando Contexto e Formato):
Crie uma tabela em formato JSON que contenha dados de 3 produtos fictícios. Cada produto deve ter os seguintes campos: "id" (número), "nome" (string), "categoria" (string), "preco" (número decimal), "disponivelEmEstoque" (booleano). Popule a tabela com dados realistas para produtos de tecnologia.
System vs User
O User Prompt é a instrução ou pergunta direta que o usuário final envia ao modelo. É a nossa "fala" para o modelo, o que queremos que ele responda ou execute. O User Prompt reflete a necessidade imediata do usuário.
O System Prompt, também conhecido como "contexto de sistema" ou "persona", é uma instrução que você (como desenvolvedor ou implementador) fornece ao modelo antes da interação do usuário. Ele define o papel, o tom, as regras e o comportamento geral que o modelo deve seguir durante toda a conversa ou série de interações. Pense nele como o "manual de instruções" interno do modelo.
Cenário 1: Escritor Criativo de Histórias
System Prompt:
Você é um escritor de ficção fantástica. Seu estilo deve ser descritivo, com foco em construção de mundo e desenvolvimento de personagens. Inclua sempre um elemento de magia ou mistério em suas histórias. Use um vocabulário rico e evite clichês.
User Prompt:
Escreva uma breve história sobre um antigo artefato sendo descoberto.
Cenário 2: Sumarizador de Notícias
System Prompt:
Você é um analista de notícias. Seu trabalho é resumir artigos complexos de forma objetiva e imparcial, destacando os pontos mais importantes. As respostas devem ter no máximo 3 frases.
User Prompt:
Resuma o seguinte artigo sobre as recentes mudanças econômicas no país X: [Colar o texto do artigo]
Persona em um Prompt
Em termos simples, uma persona em um prompt é um conjunto de características que você atribui à IA, simulando um papel ou identidade específica. Ao fazer isso, você "instrui" a IA a responder de uma determinada maneira, com um tom de voz, estilo de linguagem e até mesmo um nível de conhecimento compatível com essa persona. É como pedir à IA para "vestir um chapéu" específico antes de responder.
"Você é um(a) [Função/Papel] com o objetivo de [Objetivo]. Seu conhecimento sobre [Assunto] é [Nível de Conhecimento]. Seu tom de voz é [Tom de Voz] e seu estilo de linguagem é [Estilo de Linguagem]. Responda como se estivesse falando com [Público-alvo]."
Estrutura básica
Exemplo 1: Conteúdo para Redes Sociais
Sem Persona: "Crie uma postagem sobre os benefícios do café da manhã."
Com Persona: "Você é um nutricionista moderno e entusiasmado que escreve para jovens adultos no Instagram. Seu objetivo é inspirar hábitos saudáveis de forma leve e divertida. Use emojis e uma linguagem informal. Crie uma postagem sobre os benefícios do café da manhã."
Exemplo 2: Explicação Técnica
Sem Persona: "Sem Persona: "Explique o que é blockchain."
Com Persona: "Você é um professor universitário de ciência da computação explicando blockchain para alunos do primeiro ano, sem jargões excessivos e com exemplos práticos. Explique o que é blockchain."
Saída Estruturada (Structured Output)
Saída estruturada refere-se à geração de informações por um LLM em um formato que possui uma estrutura predefinida e é semanticamente consistente. Em vez de uma resposta em texto, o LLM é instruído a produzir dados que podem ser facilmente analisados por máquinas ou interpretados de forma consistente por humanos.
Exemplo 1: Lista de Compras
Por favor, me ajude a organizar uma lista de compras para a semana, pensando em café da manhã e almoço."
Quero que a lista seja organizada por categorias (ex: Padaria, Hortifrúti, Laticínios) e que cada item tenha a quantidade desejada.
Exemplo 2: Extração de Entidades
Por favor, extraia o nome, telefone e email do texto abaixo e formate a saída como um objeto JSON.
Texto: "Entre em contato com Ana Silva no telefone (11) 98765-4321 ou envie um email para ana.silva@empresa.com.br."
Formato JSON esperado:
```json
{
"nome": "STRING",
"telefone": "STRING",
"email": "STRING"
}
```
Estratégias de Prompting: Zero, One e Few-Shot
Zero-Shot Prompting (Disparo Zero)
O Zero-Shot Prompting é a abordagem mais básica, onde o LLM recebe uma tarefa sem nenhum exemplo prévio. O modelo deve confiar exclusivamente em seu conhecimento interno, adquirido durante seu extenso treinamento, para gerar uma resposta.
Classifique o sentimento da seguinte frase como 'positivo', 'negativo' ou 'neutro':
"O atendimento ao cliente foi demorado e ineficaz."
One-Shot Prompting (Um Disparo)
No One-Shot Prompting, fornecemos ao LLM um único exemplo de como queremos que a tarefa seja realizada. Este exemplo serve como um guia, ajudando o modelo a entender o formato, o tom ou o tipo de resposta esperada.
Reescreva a frase abaixo em um tom mais formal.
Exemplo:
Entrada: 'Manda ver!'
Saída: 'Prossiga, por favor.'
Agora, reescreva:
Entrada: 'Tá pegando fogo a reunião!'
Saída:
Few-Shot Prompting (Poucos Disparos)
O Few-Shot Prompting é uma extensão do One-Shot, onde fornecemos vários exemplos (geralmente 2 a 5) ao LLM antes de apresentar a tarefa principal. Cada exemplo demonstra um par de entrada/saída, permitindo que o modelo aprenda padrões mais complexos e generalize melhor para a nova tarefa.
Dado o par de pergunta e resposta, gere uma resposta concisa para a nova pergunta.
Exemplo 1:
Pergunta: 'Como faço para redefinir minha senha?'
Resposta: 'Você pode redefinir sua senha na página de login, clicando em 'Esqueceu sua senha?'.'
Exemplo 2: Pergunta: 'Qual é o horário de funcionamento?'
Resposta: 'Nosso horário de funcionamento é de segunda a sexta, das 9h às 18h.'
Agora, responda: Pergunta: 'Posso pagar com cartão de crédito?'
Melhores Práticas para Criar Prompts
Seja Claro e Direto
Evite ambiguidades. Use linguagem simples e concisa. O LLM não pode ler sua mente, então seja explícito sobre o que você quer.
- Ruim: "Me fala umas coisas sobre marketing." (Muito vago)
- Bom: "Explique os quatro Ps do marketing com exemplos para um produto de tecnologia." (Claro e específico)
Especifique o Formato da Saída
Se você precisa da resposta em um formato específico (lista, tabela, parágrafo, código, etc.), indique-o no prompt.
- Ruim: "Dê-me dicas de produtividade."
- Bom: "Liste 5 dicas de produtividade em formato de lista numerada."
- Melhor: "Crie uma tabela comparando os prós e contras de três softwares de gerenciamento de projetos populares: Asana, Trello e Monday.com."
Defina o Contexto e a Persona
Fornecer contexto ajuda o LLM a entender melhor sua solicitação. Se a resposta for direcionada a um público específico ou se você quiser que o LLM adote uma persona, especifique isso.
- Ruim: "Escreva sobre inteligência artificial."
- Bom: "Escreva um parágrafo sobre a importância da inteligência artificial para estudantes do ensino médio, usando uma linguagem acessível."
- Melhor: "Atue como um especialista em marketing digital e escreva um e-mail persuasivo para potenciais clientes, destacando os benefícios do nosso novo serviço de SEO. O e-mail deve ser conciso e ter um call to action claro."
Use Restrições e Limites
Seja explícito sobre o que o LLM não deve fazer ou sobre quaisquer limites de tamanho, número de itens, etc.
- Ruim: "Faça um resumo do livro."
- Bom: "Faça um resumo de 100 palavras sobre o livro '1984', focando nos temas principais e sem spoilers importantes."
- Melhor: "Gere três ideias de títulos para um artigo sobre segurança cibernética. Os títulos não devem ter mais de 60 caracteres e devem ser chamativos."
Forneça Exemplos
Se você precisa de um estilo ou formato muito específico, fornecer um ou mais exemplos no prompt pode guiar o LLM. Isso é conhecido como "few-shot prompting".
-
Prompt: "Classifique os seguintes sentimentos como 'Positivo', 'Neutro' ou 'Negativo':
- 'Adorei o atendimento!' -> Positivo
- 'O produto chegou no prazo.' -> Neutro
- 'Estou muito insatisfeito.' -> Negativo
- 'Achei o preço um pouco alto.' ->"
Prompts
By Johni Douglas Marangon
Prompts
- 43