Um template de prompt é um prompt com lacunas. O texto fixo carrega tudo o que você aprendeu sobre conseguir uma boa resposta para um tipo de tarefa: o papel, o formato, os limites. As lacunas carregam o que muda a cada vez: o tema, a linguagem, o texto a ser trabalhado. Preencher três lacunas é mais rápido do que escrever um prompt, e dá respostas com qualidade e forma consistentes.
O template abaixo explica qualquer conceito de programação no seu nível. Digite os seus valores nos campos, desligue uma parte para ver o que ela acrescenta e depois copie ou abra em um app de chat.
A ideia: uma closure é uma função que se lembra das variáveis do lugar onde foi criada, mesmo depois que a função externa terminou de rodar.
Exemplo:
function makeCounter() {
let count = 0;
return function () {
count += 1; // still sees count from makeCounter
return count;
};
}
const next = makeCounter();
console.log(next()); // 1
console.log(next()); // 2
Erro comum: esperar que dois contadores compartilhem o mesmo total. Cada chamada a makeCounter() cria um count novo, então cada contador tem o seu.
O que faz um bom template
Um template só é tão bom quanto o prompt de onde ele veio, então o texto fixo deve ser um prompt que você já rodou e aprovou. Três escolhas separam um template útil de um formulário que só produz respostas medianas mais depressa.
Deixe em branco só o que muda. Se você sempre quer a resposta com menos de 150 palavras, escreva 150 no texto fixo. Cada lacuna é uma decisão que você precisa tomar de novo a cada uso, e um template com dez lacunas é mais lento de preencher do que escrever o prompt do zero.
Dê a cada lacuna um nome claro e um valor padrão sensato. {{conhecido}} diz o que digitar; {{x}} não diz. Um valor padrão mostra o tipo de valor esperado e permite rodar o template uma vez sem digitar nada.
Um template por trabalho. Um template que explica conceitos, revisa código e escreve perguntas de quiz dependendo de uma lacuna faz as três coisas pior do que três templates separados. Quanto mais específico o texto fixo, mais ele pode dizer sobre formato e padrão.
As seis partes de como escrever um prompt são um bom checklist para o texto fixo: papel, tarefa, contexto, entrada, formato, restrições. As lacunas normalmente ficam na tarefa, no contexto e na entrada.
Exemplos de templates de prompt
Estes três cobrem trabalhos comuns do dia a dia. Cada um tem campos com nome para preencher. Para uma coleção maior de prompts prontos, veja exemplos de prompts.
def median(numbers: list[float]) -> float:
if not numbers:
raise ValueError("median() needs at least one number")
ordered = sorted(numbers)
middle = len(ordered) // 2
if len(ordered) % 2 == 1:
return ordered[middle]
return (ordered[middle - 1] + ordered[middle]) / 2
# median([3, 1, 2]) returns 2
# median([4, 1, 3, 2]) returns 2.5
# median([]) raises ValueError
Oi, obrigado pelo convite, fiquei feliz que você lembrou de mim! Infelizmente não consigo no dia 14. Uma data no mês que vem funcionaria? Eu adoraria falar sobre o projeto nessa ocasião.
Abraço, [Seu nome]
As tags em volta do texto colado estão ali por um motivo. O texto preenchido pode conter frases que parecem instruções, e os delimitadores impedem que o modelo confunda as instruções do seu template com o material em que ele deve trabalhar.
Como criar o seu próprio template
- Comece de um prompt que funcionou. Pegue uma conversa em que a resposta saiu certa e junte a versão final do prompt, incluindo as correções que você precisou acrescentar em mensagens seguintes. Essas correções são a parte mais valiosa, porque consertam o que a primeira versão errou.
- Marque o que mudaria da próxima vez. Leia o prompt e sublinhe cada palavra que você editaria no próximo uso. Normalmente são de duas a quatro coisas: um assunto, um público, um tamanho, uma entrada colada.
- Troque cada uma por uma lacuna com nome. Escreva a lacuna do jeito que a sua ferramenta espera, como
[publico]para um prompt que você cola à mão ou{publico}para código. - Teste com três preenchimentos diferentes. Use um caso típico, uma entrada muito curta ou muito longa e um caso incomum. Se um deles falhar, o texto fixo ainda está pressupondo algo do primeiro uso. Mude uma frase por vez, como descrito em iterar em prompts.
- Guarde onde você vai encontrar. Um arquivo de notas, um expansor de texto ou um gerenciador de snippets servem. Um template que você precisa procurar é um template que você vai parar de usar.
Templates no código
Em um programa, um template é uma string com campos nomeados. O str.format() do Python os preenche:
SUMMARY_TEMPLATE = """Summarize the text inside the <text> tags for {audience}.
Use at most {bullets} bullet points and lead with any action the reader must take.
<text>
{text}
</text>"""
with open("notes.txt", encoding="utf-8") as f:
meeting_notes = f.read()
prompt = SUMMARY_TEMPLATE.format(
audience="a manager who has two minutes",
bullets=3,
text=meeting_notes,
)
Com str.format(), toda chave literal do template precisa ser duplicada ({{ e }}), o que importa quando o template inclui um exemplo em JSON. As chaves dentro dos valores que você passa, como código em meeting_notes, não precisam de escape. Algumas bibliotecas para criar apps de IA têm classes próprias de template, mas elas fazem o mesmo trabalho de uma string de formatação, com recursos extras em volta.
Quando os valores vêm de usuários, lembre-se de que o template envia o texto deles ao modelo. Mantenha esse texto dentro de delimitadores e não dê ao modelo ferramentas ou dados que uma entrada maliciosa possa usar mal.
Template ou prompt de sistema
Um template e um prompt de sistema resolvem problemas diferentes. O prompt de sistema guarda regras que valem para todas as mensagens de uma conversa ou de um app: a persona, o tom, o que o assistente nunca deve fazer. Um template guarda uma tarefa com lacunas. Em um app, muitas vezes você usa os dois: um prompt de sistema fixo que define as regras básicas e um template que monta cada mensagem do usuário.
Perguntas frequentes
O que é um template de prompt?
Um template de prompt (ou modelo de prompt) é um prompt reutilizável com marcadores, como [tema] ou {linguagem}, para as partes que mudam entre um uso e outro. O texto fixo guarda as instruções que você já testou; a cada vez, você preenche as lacunas em vez de escrever o prompt do zero.
Como crio o meu próprio template de prompt?
Comece de um prompt que já deu uma boa resposta. Marque as palavras que você mudaria no próximo uso, troque cada uma por uma lacuna com nome e teste o template com três preenchimentos diferentes, incluindo um caso incomum. Mantenha exatamente como estavam as instruções que tornaram a primeira resposta boa.
Onde guardar templates de prompt?
Em qualquer lugar de onde você copie rápido: um arquivo de notas, um expansor de texto ou um gerenciador de snippets. Os apps de chat também têm lugares para texto que você reutiliza, como instruções personalizadas e instruções de projeto, que servem mais para regras que valem para todas as mensagens do que para tarefas avulsas com lacunas.
Como uso um template de prompt em Python?
Guarde o template como uma string com campos nomeados e preencha com str.format() ou uma f-string. Com str.format(), escreva duas vezes qualquer chave literal do template ({{ e }}), por exemplo quando o template tem um exemplo em JSON. Coloque o texto enviado pelo usuário dentro de delimitadores para que ele fique separado das instruções.