Prompt EngineeringLLMBest PracticesTesting

Além do 'Act as Expert': Prompt Engineering que Realmente Funciona

João Oliveira 2025-12-05 10 min

O Mito do Prompt Perfeito

A internet está cheia de "prompts mágicos" que prometem resultados incríveis. A verdade é mais complexa: prompts bons dependem do contexto, do modelo, e da tarefa.

Aqui estão as técnicas que usamos em produção na Sagrexia.

1. Chain-of-Thought (CoT) Prompting

Ao invés de pedir a resposta direto, pedimos ao modelo para "pensar em voz alta".

Prompt Ruim

Analise este contrato e identifique cláusulas ilegais.

Prompt Bom (CoT)

Analise este contrato seguindo estes passos:

1. Liste todas as cláusulas presentes
2. Para cada cláusula, identifique a lei aplicável
3. Avalie se a cláusula está em conformidade
4. Resuma as cláusulas ilegais encontradas

Pense passo-a-passo antes de dar a resposta final.

Resultado: Aumento de 34% na precisão de detecção de irregularidades.

2. Few-Shot Learning com Exemplos Curados

Fornecer exemplos do formato esperado é 10x mais efetivo que instruções textuais.

# Sistema
Você extrai fatos de transcrições médicas.

# Exemplos

Input: "Paciente relata dor no peito há 3 dias, sem irradiação."
Output: {{"sintoma": "dor no peito", "duracao": "3 dias", "caracteristica": "sem irradiação"}}

Input: "Alega febre de 38.5°C desde ontem à noite."
Output: {{"sintoma": "febre", "intensidade": "38.5°C", "inicio": "ontem à noite"}}

# Tarefa
Input: [transcrição do usuário]
Output:

Dica: Escolha exemplos que cubram edge cases, não só casos fáceis.

3. Role Prompting com Constraints

Definir o "papel" do modelo funciona, mas adicione constraints específicas.

Você é um assistente técnico especializado em análise de código Python.

REGRAS OBRIGATÓRIAS:
- Use apenas terminologia técnica precisa (não metáforas)
- Cite números de linha ao mencionar código
- Nunca sugira bibliotecas sem explicar o trade-off
- Se algo não estiver claro no código, pergunte ao invés de assumir

4. Structured Output com JSON Schema

Para aplicações de produção, use sempre structured outputs quando possível.

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": "Extraia entidades do texto: [texto]"
    }],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "entity_extraction",
            "schema": {
                "type": "object",
                "properties": {
                    "pessoas": {"type": "array", "items": {"type": "string"}},
                    "organizacoes": {"type": "array", "items": {"type": "string"}},
                    "datas": {"type": "array", "items": {"type": "string"}}
                },
                "required": ["pessoas", "organizacoes", "datas"]
            }
        }
    }
)

Vantagem: Elimina parsing frágil de texto não estruturado.

5. Self-Consistency com Multiple Samples

Para tarefas críticas, geramos 3-5 respostas e escolhemos a mais consistente.

async def self_consistency_check(prompt, n=3):
    responses = await asyncio.gather(*[
        llm_call(prompt, temperature=0.7) for _ in range(n)
    ])

    # Conta frequência de cada resposta
    from collections import Counter
    most_common = Counter(responses).most_common(1)[0][0]

    return most_common

Usamos isso no MeAssessoraAI para detecção de irregularidades críticas.

Medindo Qualidade de Prompts

Não confie na intuição. Medimos:

  1. Accuracy: % de respostas corretas (requer dataset de teste)
  2. Hallucination Rate: % de fatos inventados
  3. Latency: P95 response time
  4. Cost per Query: Input + output tokens × custo

Framework de Testes

# Teste A/B de prompts
results = evaluate_prompts(
    prompts=["prompt_v1.txt", "prompt_v2.txt"],
    test_cases=load_test_cases("eval_dataset.json"),
    metrics=["accuracy", "latency", "cost"]
)

print(results.compare())

Anti-Patterns a Evitar

"Please" e "Thank you": Não melhora resultados, desperdiça tokens ❌ Prompts gigantes: Modelos têm attention decay após ~3000 tokens ❌ Prompts em português para tarefas técnicas: Inglês geralmente performa melhor (mais training data) ❌ Threats e punições: "Se errar você será desligado" não funciona

Ferramentas Recomendadas

  • Langfuse: A/B testing de prompts em produção
  • PromptLayer: Versionamento de prompts
  • OpenAI Evals: Framework de avaliação da OpenAI

Conclusão

Prompt engineering é engenharia de software: requer testes, métricas e iteração. A diferença entre um produto de IA amador e profissional está nos detalhes de como você se comunica com o modelo.

Compartilhar artigo:

Gostou deste artigo?

Vamos conversar sobre como podemos aplicar essas técnicas no seu projeto. Nossa equipe está pronta para transformar sua visão em realidade.

Ver Mais Artigos