Dê ao modelo o que ele não pode saber
Forneça os factos, os materiais e a situação de que a tarefa depende, bem separados das suas instruções.
Porque é importante
Um modelo sabe imenso sobre o mundo e nada sobre a sua reunião de terça-feira. Qualquer prompt assenta em factos que só existem na sua cabeça, nos seus ficheiros ou na sua organização: as notas, os dados, o historial, a razão pela qual isto acontece agora. Se não estiverem no prompt, o modelo preenche o vazio com palpites plausíveis, e os palpites plausíveis são os erros mais difíceis de detetar.
As orientações da Anthropic tratam o contexto como uma alavanca de qualidade: explicar a situação e a motivação de um pedido dá ao modelo mais elementos e produz respostas mais certeiras. O seu artigo sobre engenharia de contexto vai mais longe e descreve o trabalho com prompts como a curadoria de toda a informação que o modelo vê. A OpenAI define contexto como a informação a que o modelo não teria acesso de outra forma.
O contexto também precisa de margens. Quando o material colado se mistura com as instruções, o modelo nem sempre distingue o que são dados e o que são pedidos. Etiquetas como <notas>…</notas>, blocos delimitados ou títulos claros resolvem a questão.
Como é um bom prompt
- 0 — Nenhum contexto. O modelo tem de adivinhar o tema, a situação e o material: «Resume isto.»
- 1 — Situação mencionada de passagem. «Resume a reunião que tivemos sobre o orçamento.» Falta a própria reunião.
- 2 — Material presente, mas sem delimitação ou incompleto. As notas estão coladas, mas confundem-se com as instruções.
- 3 — Material delimitado e situação explicada. Notas entre etiquetas e uma linha sobre o que foi a reunião e a quem se destina o resumo. Restam pequenas lacunas.
- 4 — Completo, delimitado e com o que falta indicado. O material, o contexto que o modelo não consegue deduzir («a terceira revisão do trimestre; da última vez as deslocações ultrapassaram o orçamento») e uma nota sobre o que não tem («os números de junho não estão disponíveis, por isso não os estimes»).
Erros comuns
- Referir um material em vez de o incluir («o relatório», «a nossa política», «o e-mail da semana passada»).
- Colar tudo o que se tem. Mais texto não é mais contexto: inclua o que a tarefa exige e diga porque está lá.
- Deixar o material colado sem delimitação, de modo que uma instrução escondida no meio pode ser seguida por engano.
- Omitir o contexto que explica porque a tarefa existe, que muitas vezes é o que decide a resposta.
- Esquecer de dizer o que não se sabe, o que convida o modelo a inventá-lo.
Experimente com o seu prompt
Cole na área de trabalho um prompt em que confia e leia-o como se fosse uma pessoa competente sem acesso aos seus ficheiros. Que facto pediria primeiro? Acrescente-o, coloque o material colado entre etiquetas e junte uma linha sobre o que não está disponível. Depois compare a pontuação do contexto antes e depois.
Exemplos resolvidos
Resumo de uma reunião
Resume a reunião que tivemos sobre o novo horário.
<notas>
{{cole aqui as notas da reunião}}
</notas>
Estas são as minhas notas da reunião de equipa de terça-feira, na nossa biblioteca de bairro, sobre abrir até às 20h00 às quintas-feiras.
Contexto que as notas não dizem: é a segunda reunião sobre o assunto. A primeira terminou sem acordo porque a escala dos voluntários não estava pronta. A junta de freguesia ainda não decidiu se financia as horas extra, por isso deixa o orçamento de fora em vez de especular.
Resume as notas para os voluntários que não puderam estar presentes: o que ficou decidido, o que continua em aberto e quem faz o quê e até quando.
O prompt fraco remete para uma reunião que o modelo nunca viu. O forte fornece as notas entre etiquetas, acrescenta o historial que as notas omitem e diz o que ainda não se sabe.
Depurar um script
Porque é que o meu código não funciona?
<code language="python">
{{cole aqui a função}}
</code>
<erro>
{{cole aqui a mensagem de erro e o traceback completo}}
</erro>
Situação: esta função lê a exportação em CSV do nosso sistema de reservas e soma os sinais pagos por mês. Funcionou até à semana passada, quando a exportação passou a incluir o símbolo da moeda na coluna dos montantes («45,00 €» em vez de «45,00»). Uso Python 3.12 com pandas 2.2 e não alterei a função. Já não tenho as exportações antigas, por isso trabalha a partir desta descrição em vez de me pedires para as comparar.
Explica o que está a causar o erro e propõe a alteração mais pequena que o resolve.
Sem o código, o erro e o que mudou, qualquer resposta é um palpite. A versão forte delimita cada entrada, explica a situação e diz que informação não está disponível.
Exercício
Reescreva este prompt para que o modelo saiba que material é, onde começa e acaba, e o que conta como importante.
Reescreva este prompt com os factos de que o modelo precisa para avaliar o preço, e indique claramente o que não sabe.
Reescreva este prompt para incluir o ensaio e os comentários do professor (ou marcadores de posição), delimitados, com a situação explicada.
Experimente com o seu próprio prompt