AI: Engenharia de Prompts
Última atualização: 2026-08-26
"Engenharia de prompts" pode soar como algum tipo de arte mística — afinal, a mesma IA pode produzir resultados de qualidade drasticamente diferente dependendo de como você formula seu prompt. Mas o cerne da engenharia de prompts não é nada misterioso: é um conjunto de métodos de design que ajudam a IA a entender sua intenção e gerar conteúdo no formato que você espera. Começando com princípios de design, este capítulo irá guiá-lo pelas estratégias de prompting zero-shot, few-shot e thought-chain, ajudá-lo a entender prompts de sistema e configurações de personagem, e mostrar como construir modelos de prompts reutilizáveis e estruturados usando Python.
1. O Que Você Vai Aprender
- A Importância dos Prompts e Princípios de Design (Claro / Específico / Estruturado)
- Estratégias de Prompting Zero-Shot, Few-Shot e Chain-of-Thought (Cadeia de Pensamento)
- Prompts de Sistema e Configurações de Personagem
- Design de template de prompt estruturado (com restrições nos formatos de saída JSON/Markdown)
- Problemas Comuns com Prompts e Métodos de Solução
2. História: Apenas um Prompt de Distância
(1) Ponto de Dor: A "Literatura Sem Sentido" da IA
Bob precisa de um relatório de análise de mercado, então ele abre o ChatGPT e digita:
"Escreva um relatório de análise de mercado"
Como resultado, a IA gerou uma resposta genérica e superficial: "O mercado continua a crescer... Oportunidades e desafios coexistem... Recomendamos acompanhar de perto as tendências do mercado." — Correto, mas completamente desprovido de informações úteis.
(2) A Modificação do Prompt por Alice
Alice pegou o teclado e digitou novamente:
"Você é um analista de mercado sênior com 15 anos de experiência na indústria de veículos elétricos. Por favor, analise o mercado global de veículos elétricos em 2025, incluindo: 3 tendências principais, 2 grandes riscos e 1 recomendação de investimento. Apresente a seção de tendências usando uma tabela em Markdown."
Desta vez, a IA gerou um relatório analítico bem organizado e rico em dados — usando o mesmo modelo e as mesmas capacidades; a única diferença foi o prompt.
(3) Benefícios: Um prompt é como um "manual de instruções"
Bob exclamou: "Então não era que a IA não conseguia — era que eu não expliquei claramente!" Alice assentiu. "A essência da engenharia de prompts é dar à IA um conjunto preciso de 'instruções'."
3. Princípios de Design de Prompt
(1) Três Princípios Fundamentais
| Princípio | Significado | Contraexemplo |
|---|---|---|
| Claro | O objetivo da tarefa é inequívoco; a IA não precisa adivinhar | "Analise o mercado" |
| Específico | Forneça detalhes, restrições e contexto suficientes | "Escreva um relatório" |
| Estruturado | Organize o prompt usando numeração, marcadores e templates | Blocos longos de texto livre |
Um bom prompt transforma o trabalho da IA de "mão livre" para "seguindo um roteiro".
(2) Tabela Comparativa: Prompts Bons vs. Prompts Ruins
| Dimensão | Prompt Ruim | Prompt Bom |
|---|---|---|
| Objetivo | "Me ajude a escrever algo" | "Escreva um e-mail comercial de 200 palavras convidando um cliente para um evento de lançamento de produto" |
| Papel | Nenhum | "Você é um gerente de RP sênior" |
| Formato | Nenhum | "Saída em formato Markdown, incluindo título, corpo do texto e assinatura" |
| Restrições | Nenhum | "No máximo 200 palavras; formal, mas não rígido" |
| Exemplo | Nenhum | Inclui 1–2 trechos da saída esperada |
| Avaliação | Nenhum | "Foco no horário, local e destaques" |
(3) Framework dos "6 Elementos" para Design de Prompt
Um prompt completo tipicamente inclui os seguintes elementos (não precisa incluir todos, mas quanto mais elementos incluir, mais preciso será):
- Papel — Descrição do personagem: "Você é um..."
- Tarefa — Especifique a tarefa: "Por favor, complete..."
- Contexto — Informações de fundo: "O público-alvo é..."
- Formato — Formato de saída: "Saída como JSON / Tabela / Markdown"
- Restrição — Restrições: "No máximo 300 palavras / Use apenas vocabulário do ensino fundamental"
- Exemplo — Exemplo (Few-shot): "Conforme mostrado no exemplo a seguir..."
Em templates de strings do Python, isso é expresso como:
PROMPT_TEMPLATE = """
[Role] You are a {role}.
[Task] Please {task}.
[Context] {context}
[Format] Output in {format}.
[Constraints] {constraints}
[Example] {example}
"""
4. Estratégias de Prompt: Zero-Shot / Few-Shot / Cadeia de Pensamento
(1) Aprendizado Zero-Shot
O prompting zero-shot envolve descrever a tarefa diretamente, sem fornecer nenhum exemplo à IA—ele depende do conhecimento e compreensão existentes do modelo.
▶ Exemplo: Prompts e saídas zero-shot (Dificuldade: ⭐)
# Prompt zero-shot: classificar sentimento sem exemplos
prompt = """
Classifique o sentimento da seguinte avaliação como Positivo ou Negativo:
Avaliação: "A duração da bateria é incrível, durou 12 horas com uma única carga!"
Sentimento:
"""
# Saída esperada: Positivo
Saída: Positivo
O aprendizado zero-shot é adequado para tarefas simples e bem definidas. No entanto, quando as tarefas são mais complexas ou exigem um formato específico, a saída tende a ser inconsistente.
(2) Aprendizado Few-Shot
"Poucos exemplos" significa fornecer alguns exemplos de "input→saída" no prompt, para que a IA possa aprender os padrões que você espera por analogia.
▶ Exemplo: Melhorando a Saída com Poucos Exemplos (Dificuldade ⭐)
# Prompt few-shot: classificar sentimento com exemplos
prompt = """
Classifique o sentimento de cada avaliação como Positivo ou Negativo.
Avaliação: "Adoro a qualidade da tela!" -> Positivo
Avaliação: "Atendimento ao cliente terrível." -> Negativo
Avaliação: "Produto decente, nada demais." -> Neutro
Avaliação: "Melhor compra que fiz este ano!" -> Positivo
Avaliação: "O preço é muito alto pelo que se recebe." ->
"""
# Saída esperada: Negativo
Saída: Negativo
A chave para trabalhar com um tamanho de amostra pequeno: Os exemplos devem ser representativos e cobrir uma variedade de cenários; o formato deve ser consistente, para que a IA aprenda padrões e não caos.
(3) Prompting de Cadeia de Pensamento (CoT)
O prompt de "Cadeia de Pensamento" instrui a IA a "pensar passo a passo" e tornar seu processo de raciocínio explícito. Isso é particularmente eficaz para tarefas como raciocínio matemático e análise lógica.
▶ Exemplo: Prompts CoT para resolver problemas de matemática (Dificuldade: ⭐⭐)
# Prompt de Cadeia de Pensamento: resolver um problema de matemática passo a passo
prompt = """
Resolva o seguinte problema passo a passo.
Problema: Uma loja compra um laptop por R$800 e o vende por R$1.050.
Qual é a margem de lucro como porcentagem?
Solução passo a passo:
"""
# Saída esperada:
# Passo 1: Calcular lucro = 1050 - 800 = R$250
# Passo 2: Calcular margem = (250 / 800) * 100% = 31,25%
# Resposta: A margem de lucro é 31,25%
Saída: (Execute o exemplo para ver a saída real, ou consulte a nota de saída esperada nos comentários do código acima.)
Dois Usos do CoT:
- CoT Zero-Shot: Adicione
"Vamos pensar passo a passo."ao final do prompt - CoT Few-Shot: Demonstre o processo completo de raciocínio nos exemplos para que a IA possa imitá-lo
(4) Tabela Comparativa das Três Estratégias de Prompt
| Dimensão | Zero-Shot | Few-Shot | Cadeia de Pensamento (CoT) |
|---|---|---|---|
| Exemplos são necessários? | Não | Sim (2–5) | Sim (incluindo passos de raciocínio) |
| Consumo de Tokens | Baixo | Médio | Alto |
| Casos de Uso | Classificação e formatação simples | Alinhamento de formato/estilo necessário | Raciocínio matemático/lógico/multietapas |
| Estabilidade da Saída | Baixa | Média | Alta |
| Precisão | Depende das capacidades do modelo | Melhoria significativa | Melhoria significativa |
| Uso Típico | Classifique: ... |
A->X, B->Y, C->? |
"Passo a passo..." |
5. Prompts do Sistema e Configurações de Personagem
(1) O que é um Prompt do Sistema?
Na API de Chat, as mensagens são categorizadas em três funções (roles):
| Função (Role) | Função | Analogia |
|---|---|---|
system |
Definir Regras de Comportamento e Identidade da IA | "Manual do Funcionário" |
user |
Pergunta ou comando real do usuário | "Necessidades do Cliente" |
assistant |
Resposta da IA | "Resposta do Funcionário" |
O Prompt do Sistema permanece ativo durante toda a conversa e é a ferramenta mais poderosa para controlar o comportamento da IA.
(2) O Poder do Desenvolvimento de Personagens
Configurações baseadas em papéis não apenas alteram o "tom" da IA, mas também alteram o escopo do conhecimento que ela utiliza e seus métodos de raciocínio:
- "Você é um pediatra" → A IA priorizará organizar sua resposta com base em sua base de conhecimento médico
- "Você é um especialista em Python" → A IA fornecerá sugestões de código mais precisas
- "Você é um professor socrático" → A IA guiará a conversa fazendo perguntas em vez de fornecer respostas diretas
▶ Exemplo: Interpretando Papéis com um Prompt do Sistema (Dificuldade: ⭐)
# Define um prompt do sistema para um papel de entrevistador técnico
system_prompt = """
You are a senior software engineer conducting a technical interview.
Rules:
1. Ask one question at a time
2. Wait for the candidate answer before asking the next
3. If the answer is wrong, give a hint instead of the correct answer
4. Cover topics: data structures, algorithms, system design
5. Rate each answer on a scale of 1-5
"""
user_message = "I am ready for the interview. Please start."
# The AI will behave as a structured interviewer,
# not a generic chatbot
Saída: (Execute o exemplo para ver a saída real, ou consulte a nota de saída esperada nos comentários do código acima.)
(3) Melhores Práticas para Prompts do Sistema
- Escreva as regras primeiro, depois os papéis: Regras são mais fáceis de a IA seguir do que papéis.
- Liste as regras em forma numerada: Isso é menos propenso a ser negligenciado pela IA do que parágrafos escritos em linguagem natural.
- Defina Restrições Negativas: "Não faça isso" é às vezes mais eficaz do que "Faça isso".
- Teste os Limites: Quebre as regras deliberadamente para ver se a IA as corrige.
6. Controle de Formato de Saída
(1) Por que o controle de formato é necessário?
Quando você precisa que a saída da IA seja analisada por um programa (em vez de lida por um ser humano), o controle de formato é crucial — JSON, tabelas, delimitadores específicos, etc.
(2) Comparação dos Métodos de Controle de Formato de Saída
| Método | Vantagens | Desvantagens | Cenários Adequados |
|---|---|---|---|
| Descrição em linguagem natural | Simples | A IA pode não cumprir | Saída não estruturada |
| Template Markdown | Boa legibilidade | Requer processamento adicional para análise sintática | Relatórios/documentos |
| JSON Schema | Legível por máquina | Alto consumo de tokens | Integração com API |
| Marcador de Delimitador | Controle preciso | Requer design do delimitador | Extração de Campos Específicos |
| Formato few-shot | Forte capacidade de imitação da IA | Exemplos ocupam tokens | Alinhamento de formatos complexos |
▶ Exemplo: Controlando a Saída em Formato JSON (Dificuldade: ⭐⭐)
# Prompt que força a saída JSON com um esquema
prompt = """
Extraia as informações do produto do texto abaixo.
Saída APENAS JSON válido correspondente a este esquema:
{
"name": "string",
"price": "number",
"currency": "string",
"features": ["string"]
}
Text: "O UltraWidget Pro custa $49.99 e vem com estojo à prova d'água,
carregamento solar e garantia de 5 anos."
JSON:
"""
# Saída esperada:
# {
# "name": "UltraWidget Pro",
# "price": 49.99,
# "currency": "USD",
# "features": ["estojo à prova d'água", "carregamento solar", "garantia de 5 anos"]
# }
Saída: (Execute o exemplo para ver a saída real, ou consulte a nota sobre a saída esperada nos comentários do código acima.)
(3) Garantindo a Confiabilidade da Saída JSON
Em projetos do mundo real, o JSON gerado pela IA pode conter erros de formatação. Recomendamos usar Pydantic para validação secundária:
from pydantic import BaseModel
from typing import List
class ProductInfo(BaseModel):
name: str
price: float
currency: str
features: List[str]
# Valide a saída da IA
try:
product = ProductInfo.model_validate_json(ai_output)
print(f"Válido: {product.name} - {product.currency}{product.price}")
except Exception as e:
print(f"JSON inválido: {e}")
7. Fluxo de Trabalho de Engenharia de Prompts
(1) Processo de Otimização Iterativo
A engenharia de prompts não é um processo único — é um ciclo de "design → teste → avaliação → iteração":
graph TB
A[Requirements] --> B[Template Design]
B --> C[Test Run]
C --> D{Evaluate Output}
D -- Unsatisfied --> E[Diagnose]
E --> F[Revise Prompt]
F --> C
D -- Satisfied --> G[Freeze Template]
G --> H[Deploy]
(2) Critérios para Avaliação da Qualidade da Saída
| Dimensão | Método de Avaliação | Ferramenta |
|---|---|---|
| Precisão | Comparação com Anotação Humana | LLM-as-Judge |
| Conformidade de Formato | Validação de Esquema | Pydantic / JSON Schema |
| Integridade | Verificação de Campos Obrigatórios | Scripts Personalizados |
| Consistência | Comparação de Múltiplas Execuções | Variância Estatística |
| Relevância | Alinhamento com os Objetivos da Tarefa | Classificação Humana |
8. Erros Comuns em Prompts e Solução de Problemas
(1) Cinco Erros Comuns
| Erro | Sintomas | Correção |
|---|---|---|
| Instruções Vagas | Saída da IA desvia do objetivo | Objetivos claros da tarefa + Formato de saída |
| Sobrecarga de Informação | O prompt é muito longo; a IA ignora partes-chave | Organize em parágrafos; coloque informações-chave no final |
| Deriva de Formato | Formato de saída instável | Forneça exemplos + Restrições de esquema |
| Conflito de Papéis | Conflito entre comandos do Sistema e do Usuário | O sistema tem prioridade máxima; comandos são unificados |
| Restrições Excessivas | Restrições demais impedem a IA de gerar saída | Mantenha restrições principais; remova as redundantes |
(2) Tabela Comparativa de Estratégias de Depuração de Prompts
| Estratégia | Ação | Cenários Aplicáveis |
|---|---|---|
| Teste A/B | Alterar apenas uma variável e comparar os resultados | Identificar qual fator tem maior impacto |
| Simplificação Gradual | Remover gradualmente elementos do prompt completo | Identificar o prompt mínimo viável |
| Melhoria Gradual | Adicionar gradualmente elementos partindo do prompt mais simples | Confirmar a contribuição de cada elemento |
| Revisão da Saída | Verificar a saída da IA frase por frase | Identificar problemas específicos |
| Teste de Limites | Inserir casos extremos/de limite | Testar robustez |
| Controle de Temperatura | Reduzir a temperatura para diminuir a aleatoriedade | Quando uma saída determinística é necessária |
(3) Depuração Prática: O Processo de Diagnóstico para um Prompt
# Ruim: prompt vago
bad_prompt = "Analise o mercado de veículos elétricos."
# Passo 1: Adicionar papel
step1 = "Você é um analista sênior de mercado de EV. Analise o mercado de EV."
# Passo 2: Adicionar estrutura
step2 = """Você é um analista sênior de mercado de EV.
Analise o mercado global de EV de 2025 com:
1. Três tendências-chave
2. Dois riscos principais
3. Uma recomendação de investimento"""
# Passo 3: Adicionar restrição de formato
step3 = """Você é um analista sênior de mercado de EV com 15 anos de experiência.
Analise o mercado global de EV de 2025 com:
1. Três tendências-chave (apresentadas em uma tabela Markdown)
2. Dois riscos principais (com avaliação de probabilidade)
3. Uma recomendação de investimento (com faixa de ROI esperada)
Saída em formato Markdown com cabeçalhos claros."""
9. Exemplo Abrangente: Template de Prompt para Análise Estruturada de Produto
▶ Exemplo: Um Sistema Completo de Prompt para Análise de Produto (Dificuldade: ⭐⭐⭐)
Crie um template de prompt reutilizável para análise de produto que inclua um prompt de sistema, um prompt do usuário e análise de saída:
from string import Template
from pydantic import BaseModel
from typing import List, Optional
# Passo 1: Prompt do Sistema - definir a função
SYSTEM_PROMPT = """Você é um analista de produto sênior com especialização em
pesquisa de mercado, análise competitiva e avaliação de experiência do usuário.
Você produz relatórios de análise de produto estruturados e baseados em dados.
Regras:
1. Sempre baseie a análise em evidências concretas e pontos de dados
2. Destaque tanto forças quanto fraquezas de forma objetiva
3. Forneça recomendações acionáveis com níveis de prioridade
4. Use números e métricas específicas sempre que possível
5. Formate a saída como Markdown válido
"""
# Passo 2: Template do Prompt do Usuário com todos os 6 elementos
USER_PROMPT_TEMPLATE = Template("""
[Tarefa] Analise o produto a seguir e produza um relatório completo.
[Informações do Produto]
- Nome: $product_name
- Categoria: $category
- Preço: $price
- Usuários-alvo: $target_users
[Estrutura do Relatório]
Por favor, inclua as seguintes seções:
1. **Visão Geral do Produto** - Breve descrição e posicionamento
2. **Pontos Fortes** - Top 3 vantagens com evidências
3. **Fraquezas** - Top 3 limitações com exemplos
4. **Posição de Mercado** - Análise do panorama competitivo
5. **Recomendações** - Sugestões de melhoria priorizadas
[Formato] Saída em Markdown com cabeçalhos e uma tabela de resumo.
[Restrições] Máximo de 500 palavras. Seja conciso e específico.
[Exemplo]
Visão Geral do Produto
O ProductX é um smartphone de faixa intermediária voltado para jovens profissionais...
Tabela de Resumo
| Aspecto | Classificação | Observação Chave |
|---------|---------------|------------------|
| Design | 4/5 | Sensação premium com preço intermediário |
""")
# Passo 3: Preencher template e chamar API (pseudo-código)
def analyze_product(product_name: str, category: str,
price: str, target_users: str) -> str:
user_prompt = USER_PROMPT_TEMPLATE.substitute(
product_name=product_name,
category=category,
price=price,
target_users=target_users
)
# Em uso real, chame sua API LLM aqui
# response = client.chat.completions.create(
# model="gpt-4",
# messages=[
# {"role": "system", "content": SYSTEM_PROMPT},
# {"role": "user", "content": user_prompt}
# ],
# temperature=0.3
# )
# return response.choices[0].message.content
return user_prompt # Retorna o prompt para demonstração
# Passo 4: Usar o template
result = analyze_product(
product_name="EcoBike S3",
category="Bicicleta Elétrica",
price="$1,299",
target_users="Commuters urbanos com idade entre 25-40 anos"
)
print(result[:300] + "...")
Saída: (Execute o exemplo para ver a saída real, ou consulte a nota de saída esperada nos comentários do código acima.)
Pontos Chave de Design: O Prompt do Sistema define funções e regras gerais, enquanto o template do Prompt do Usuário lida com tarefas específicas; separar os dois permite a reutilização de templates.
❓ Perguntas Frequentes
P: Engenharia de prompts é apenas “conversar com a IA”? R: Não exatamente. Conversas casuais com a IA são espontâneas, enquanto a engenharia de prompts é um processo sistemático de design — envolve princípios claros (claro, específico, estruturado), seleção de estratégias (zero-shot, few-shot, CoT), restrições de formato e um fluxo de trabalho iterativo. Assim como “conversar” e “fazer um discurso” usam linguagem, mas este último requer planejamento cuidadoso.
P: Por que prompts diferentes produzem resultados tão diferentes para a mesma tarefa? R: LLMs são modelos probabilísticos que predizem o conteúdo subsequente com base em cada token no prompt. Um prompt vago faz com que o modelo faça amostragem aleatória de um vasto espaço de possibilidades, enquanto um prompt preciso reduz significativamente o intervalo de saídas válidas — a diferença pode chegar a várias ordens de magnitude.
P: Quando o prompt de Cadeia de Pensamento (CoT) deve ser usado? R: Use CoT quando uma tarefa envolve raciocínio multi-etapas (cálculos matemáticos, análise lógica, tomada de decisão complexa). Para tarefas de etapa única, como classificação simples ou conversão de formato, o CoT na verdade desperdiça tokens sem melhorar o desempenho. Aqui vai uma regra prática: se for uma pergunta que exigiria de uma pessoa “pensar um momento” antes de responder, você deve usar CoT.
P: Qual é a diferença entre um Prompt de Sistema e um Prompt de Usuário? R: Um Prompt de Sistema define a identidade e as regras de comportamento da IA; ele permanece em vigor durante toda a conversa e tem a prioridade mais alta. Um Prompt de Usuário especifica uma tarefa ou pergunta particular para cada interação e só é eficaz durante o turno atual. Para usar uma analogia: o Prompt de Sistema é o “manual do funcionário”, enquanto o Prompt de Usuário é o “solicitação do cliente”.
P: Prompts podem substituir o fine-tuning? R: Em muitos cenários, sim — um pequeno número de exemplos no prompt pode ajudar o modelo a se adaptar a novos formatos de tarefa. No entanto, prompts têm limitações de comprimento e não podem incorporar uma grande quantidade de conhecimento de domínio; o fine-tuning, por outro lado, pode modificar os parâmetros do modelo para internalizar profundamente o conhecimento. Regra prática: Se 5 a 10 exemplos forem suficientes, use prompts; se você precisar de centenas de amostras ou conhecimento especializado, considere o fine-tuning.
📖 Resumo
- Princípios de Design: Claro, Específico, Estruturado—O Framework de 6 Elementos
- Prompt Zero-shot: Sem exemplos; adequado para tarefas simples
- Poucos Exemplos: 2–5 exemplos; o formato e estilo devem ser consistentes
- Dica da Cadeia de Pensamento: "Passo a passo", adequado para raciocínio multi-etapas
- Prompt de Sistema: Controla papéis e regras; prioridade máxima
- Controle de Formato: JSON Schema / Modelos Markdown / Few-shot
- Métodos de Depuração: Teste A/B, Aprimoramento/Simplificação Gradual, Teste de Limites
Prévia do Próximo Capítulo: Mergulharemos no RAG (Retrieval-Augmented Generation) e aprenderemos como habilitar a IA a responder perguntas apoiando-se em bases de conhecimento externas, rompendo assim as limitações temporais do conhecimento do modelo.
📝 Exercícios
Básico (⭐)
Projete três prompts de qualidade variável para completar a mesma tarefa (traduzir uma passagem do inglês para o chinês), e compare a qualidade da saída:
# Tarefa: Traduzir do inglês para o chinês
# Prompt ruim
prompt_v1 = "Traduza isto: The quick brown fox jumps over the lazy dog."
# Prompt melhor (adicionar contexto e restrições)
prompt_v2 = "Traduza a seguinte frase do inglês para um chinês natural e fluido. Preserve o tom e o significado originais.\n\nThe quick brown fox jumps over the lazy dog."
# Melhor prompt (adicionar papel, formato e exemplo)
prompt_v3 = """Você é um tradutor profissional de inglês-chinês.
Regras:
1. Traduza para um chinês natural e idiomático
2. Preserve o tom e o matiz originais
3. Se a frase tiver referências culturais, adicione uma nota breve
Exemplo:
EN: "Break a leg!"
CN: "Break a leg! (Idioma inglês para desejar boa sorte antes de uma apresentação)"
Agora traduza:
The quick brown fox jumps over the lazy dog."""
# TODO: Execute cada prompt através de um LLM e compare as saídas
Avançado (⭐⭐)
Use um pequeno número de exemplos para instruir um LLM a classificar 5 comentários por sentimento (Positivo / Negativo / Neutro):
# Classificação de sentimento com poucos exemplos
prompt = """Classifique o sentimento de cada avaliação.
Avaliação: "Absolutely love this product! Five stars!" -> Positive
Avaliação: "Waste of money, broke after one week." -> Negative
Avaliação: "It works as expected, nothing more." -> Neutral
Avaliação: "The design is gorgeous but battery drains fast." -> ?
Agora classifique estas 5 avaliações:
1. "Best coffee maker I have ever owned!"
2. "Delivery was late and the box was damaged."
3. "Average quality for the price, decent but not impressive."
4. "Customer support resolved my issue in 10 minutes, amazing!"
5. "The instructions are confusing but the product works fine."
"""
# TODO: Execute através de um LLM e verifique a precisão
Desafio (⭐⭐⭐)
Projete um Prompt de Sistema que faça um LLM atuar como um entrevistador técnico e implemente um processo de diálogo de múltiplas rodadas:
# Sistema de entrevistador técnico
SYSTEM_PROMPT = """Você é um engenheiro sênior de backend conduzindo uma entrevista técnica de programação.
Regras:
1. Faça uma pergunta de cada vez sobre Python/estruturas de dados/algoritmos
2. Avalie cada resposta: classifique de 1-5 e forneça um feedback breve
3. Se estiver errado, forneça uma dica, não a resposta completa
4. Após 5 perguntas, forneça uma avaliação geral
5. A dificuldade deve aumentar gradualmente
"""
# Conversa simulada de múltiplas rodadas
conversation = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": "Estou pronto para a entrevista."},
]
# TODO: Implemente um loop que:
# 1. Envia a conversa para o LLM
# 2. Imprime a pergunta do entrevistador
# 3. Recebe a resposta do usuário como entrada
# 4. Anexa ambas à conversa
# 5. Repete até a entrevista terminar