Tipos de Prompt

Ao interagir com LLMs, a forma como estruturamos o prompt influencia diretamente a qualidade e a precisão da resposta. Existem diferentes estratégias para projetar prompts, cada uma adequada a um cenário específico.

No Zero-shot Prompting, o modelo recebe apenas a instrução, sem exemplos prévios. É útil quando a tarefa é simples ou o modelo já tem conhecimento suficiente. A vantagem é que é mais rápido e direto, mas a desvantagem é que pode gerar respostas menos consistentes em tarefas complexas. Exemplo: Traduza o texto para inglês: "Eu gosto de programar em Python."

No One-shot Prompting, o prompt inclui um único exemplo antes da solicitação. É indicado quando queremos guiar o modelo com um exemplo claro. A vantagem é que dá contexto sem alongar muito o prompt, mas a desvantagem é que um único exemplo pode não cobrir todas as variações. Exemplo: Exemplo: Português: "Bom dia" → Inglês: "Good morning". Agora traduza: Português: "Boa noite" → Inglês:

No Few-shot Prompting, o prompt inclui vários exemplos antes da solicitação. É útil quando a tarefa exige consistência e formato específico. A vantagem é que melhora a precisão e o estilo da resposta, mas a desvantagem é que o prompt fica mais longo e com maior custo de tokens. Exemplo: Exemplo 1: Produto: Caneca térmica → "Mantenha seu café quente." Exemplo 2: Produto: Mochila urbana → "Leve tudo com estilo." Agora gere slogans para: Fone sem fio

Já no Chain-of-Thought (CoT) Prompting, o prompt incentiva o modelo a explicar o raciocínio passo a passo antes de dar a resposta final. É indicado para problemas de lógica, matemática ou raciocínio complexo. A vantagem é que melhora a precisão em tarefas que exigem múltiplos passos, mas a desvantagem é que a resposta tende a ser mais longa. Exemplo: Resolva passo a passo: Se João tem 3 maçãs e compra mais 2, quantas maçãs ele terá no total?

A técnica ReAct Prompting (que combina raciocínio e ação) será abordada mais adiante, na seção de Agentes.

import os
from openai import OpenAI

api_key = os.environ.get('OPENAI_API_KEY')
client = OpenAI(api_key=api_key)

def gerar_resposta(prompt, titulo):
    print(titulo)
    resposta = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.7
    )
    print(resposta.choices[0].message.content)
    print("====================")

# Zero-shot
prompt_zero = 'Traduza o texto para inglês: "Eu gosto de programar em Python."'
gerar_resposta(prompt_zero, "Zero-shot Prompting")

# One-shot
prompt_one = (
    'Exemplo:\\n'
    'Português: "Bom dia"\\n'
    'Inglês: "Good morning"\\n\\n'
    'Agora traduza:\\n'
    'Português: "Boa noite"\\n'
    'Inglês:'
)
gerar_resposta(prompt_one, "One-shot Prompting")

# Few-shot
prompt_few = (
    'Exemplo 1:\\n'
    'Produto: Caneca térmica -> "Mantenha seu café quente."\\n\\n'
    'Exemplo 2:\\n'
    'Produto: Mochila urbana -> "Leve tudo com estilo."\\n\\n'
    'Agora gere slogans para: Fone sem fio'
)
gerar_resposta(prompt_few, "Few-shot Prompting")

# Chain-of-Thought
prompt_cot = (
    "Resolva passo a passo:\\n"
    "Se João tem 3 maçãs e compra mais 2, quantas maçãs ele terá no total?"
)
gerar_resposta(prompt_cot, "Chain-of-Thought Prompting")