Combine a forma da resposta
Especifique o formato, a estrutura, a extensão, a língua e o tom do resultado, e use um esquema quando um programa o for ler.
Porque é importante
O contrato de saída é a parte do prompt que decide se vai conseguir usar a resposta. Uma análise brilhante na forma errada tem de ser reescrita; uma lista de campos num formato ligeiramente diferente avaria o programa que a lê. Se sabe para onde vai o resultado (um e-mail, um diapositivo, uma folha de cálculo, uma base de dados), diga o que esse destino precisa.
Um contrato completo cobre o formato (tabela, lista, texto corrido, JSON), a estrutura (secções, colunas, ordem), a extensão, a língua e o tom. O pormenor mais esquecido é o caso-limite: o que deve aparecer quando falta um valor, quando um critério não pode ser avaliado ou quando uma entrada está vazia? O guia da Google recomenda nomear o formato de forma explícita, e o da Anthropic sugere descrever pela positiva a forma pretendida em vez de enumerar o que evitar.
Quando um programa for ler a resposta, vá mais longe. A Anthropic e a OpenAI oferecem saídas estruturadas: envia um esquema JSON com o pedido e a resposta fica obrigada a segui-lo. A documentação da OpenAI explica que o modo JSON garante apenas JSON válido, enquanto as saídas estruturadas garantem também o respeito pelo esquema. Descreva o esquema no prompt na mesma, para que o modelo perceba o que significa cada campo.
Como é um bom prompt
- 0 — Nada sobre a forma. «Compara as duas propostas.»
- 1 — Uma única indicação vaga. «Compara as duas propostas numa tabela.»
- 2 — Formato e extensão aproximada. «…uma tabela com no máximo dez linhas e depois um parágrafo de recomendação.» A estrutura, a língua e o tom continuam em aberto.
- 3 — Formato, estrutura, extensão, língua e tom. «…colunas: critério, proposta A, proposta B, vencedora. Em português, tom neutro, sem preâmbulo.»
- 4 — Um contrato completo, com os casos-limite. Um esquema ou modelo, mais a forma de mostrar os casos difíceis: «se um critério não puder ser avaliado, põe “empate” como vencedora e explica-o na recomendação».
Nos prompts de imagem, o contrato cobre a composição, o estilo e a proporção.
Erros comuns
- Pedir «uma tabela» ou «JSON» sem dizer que colunas ou campos.
- Não indicar a língua quando a entrada e o leitor usam línguas diferentes.
- Sinais de extensão contraditórios, como «breve» ao lado de uma longa lista de secções obrigatórias.
- Nenhuma regra para valores em falta ou ambíguos, de modo que o modelo os inventa ou salta a linha.
- Confiar só na redação do prompt para JSON lido por máquinas quando a API oferece saídas estruturadas.
Experimente com o seu prompt
Cole um prompt na área de trabalho e imagine a resposta a chegar. Onde a vai pôr e o que teria de corrigir antes de a usar? Escreva essas correções no prompt como contrato de saída, incluindo uma linha para o caso difícil. Depois compare a pontuação da saída e use o teste num modelo real se quiser ver as duas respostas lado a lado.
Exemplos resolvidos
Comparar duas ofertas de emprego
Compara estas duas ofertas de emprego.
<oferta_a>
{{cole aqui a primeira oferta}}
</oferta_a>
<oferta_b>
{{cole aqui a segunda oferta}}
</oferta_b>
Compara para mim as duas ofertas acima.
Formato da resposta:
- Uma tabela com quatro colunas: critério, oferta A, oferta B, melhor para mim.
- Uma linha para cada um destes critérios, por esta ordem: salário, reforma, deslocação, férias, flexibilidade, progressão.
- Por baixo da tabela, um parágrafo com no máximo 80 palavras com a tua recomendação.
- Em português europeu, sóbrio e neutro; começa diretamente pela tabela.
- Se uma oferta não referir um critério, escreve «não indicado» nessa célula e não o contes a favor de nenhuma oferta.
A versão forte fixa o modelo da tabela, a ordem das linhas, a extensão, a língua e o tom, e a forma de mostrar um valor em falta, para que a resposta se leia num relance.
Extrair pedidos de reserva
Tira a informação destes e-mails.
<emails>
{{cole aqui o lote de e-mails}}
</emails>
Para cada e-mail acima, extrai o pedido de reserva de espaço que contém. Um programa vai ler a tua resposta, por isso devolve apenas uma matriz JSON, um objeto por e-mail, com estes campos:
- "email_id": o número que aparece no assunto do e-mail
- "event_type": "wedding", "conference", "party" ou "other"
- "date": a data pedida no formato AAAA-MM-DD, ou null se não for indicada
- "guests": um número inteiro, ou null se não for indicado
- "needs_follow_up": true se a data ou o número de convidados faltar ou for ambíguo; caso contrário, false
Se um e-mail não tiver nenhum pedido de reserva, inclui-o na mesma, com "event_type": "other" e todos os outros campos a null, exceto "email_id" e "needs_follow_up".
«A informação» pode ser qualquer coisa. A versão forte dá os nomes dos campos, os tipos, os valores permitidos e o caso vazio. Através de uma API, passe o mesmo esquema à funcionalidade de saídas estruturadas para que a conformidade seja garantida, e não apenas pedida.
Exercício
Reescreva este prompt para que o modelo conheça o formato, a extensão, a estrutura e o tom da newsletter.
Reescreva este prompt com um esquema de saída exato, incluindo o que fazer quando falta um preço.
Reescreva este prompt para especificar a imagem: composição, estilo, proporção e o que deve ficar fora do enquadramento.
Experimente com o seu próprio prompt