AI Prompt Engineering · Aula

Escolhendo parâmetros para seu caso de uso

Configurações recomendadas para perguntas e respostas factuais, escrita criativa, código e chat.

Aula 4 de 413 etapas

Escolhendo parâmetros para seu caso de uso é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.

Estrutura para decidir os parâmetros

Escolher parâmetros de amostragem não é uma questão de tentativa e erro — isso segue uma lógica baseada nos requisitos da sua tarefa. Duas dimensões principais determinam a configuração adequada:

  1. Precisão da saída: qual é a importância de a saída estar correta e ser previsível?
  2. Diversidade da saída: qual é a importância de as saídas variarem e explorarem possibilidades?

Alta precisão → temperatura baixa. Alta diversidade → temperatura alta. A maioria das tarefas fica em algum ponto entre esses extremos.

Perguntas e respostas factuais: a precisão é tudo

Para responder a perguntas factuais, normalmente existe uma única resposta correta. Qualquer aleatoriedade aumenta a chance de uma resposta errada. Use:

  • temperatura = 0: decodificação gulosa, totalmente determinística
  • probabilidade acumulada = 1,0: deixe sem restrições; com temperatura=0, a probabilidade acumulada não tem efeito

Isso garante que o modelo sempre escolha a resposta em que tem mais confiança, que é a mais provável de estar correta.

import openai
client = openai.OpenAI(api_key='sk-...')

# Factual Q&A configuration
def factual_qa(question):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'Answer factual questions concisely and accurately.'},
            {'role': 'user', 'content': question}
        ],
        temperature=0,
        top_p=1.0
    )
    return resp.choices[0].message.content

answer = factual_qa('What is the boiling point of water at sea level?')
print(answer)  # Always: '100 degrees Celsius (212 degrees Fahrenheit).'

Geração de código: quase gulosa

O código precisa estar sintaticamente correto e ser semanticamente preciso. A aleatoriedade causa erros de sintaxe, nomes de variáveis incorretos ou lógica errada. Use:

  • temperatura = 0–0,2: quase gulosa — permite pequenas variações, mas favorece fortemente escolhas corretas de tokens
  • probabilidade acumulada = 0,95: elimina tokens da cauda extrema que poderiam causar erros de sintaxe
# Code generation configuration
def generate_code(task):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are an expert Python programmer. Write clean, correct code.'},
            {'role': 'user', 'content': task}
        ],
        temperature=0.1,
        top_p=0.95
    )
    return resp.choices[0].message.content

code = generate_code('Write a Python function that merges two sorted lists.')
print(code)

Resumo: configurações moderadas

A sumarização precisa de precisão (não distorça os fatos), mas se beneficia de uma variação moderada (execuções diferentes podem enfatizar aspectos diferentes). Use:

  • temperatura = 0,3–0,5: uma aleatoriedade leve preserva formulações naturais
  • probabilidade acumulada = 1,0: nenhuma restrição de núcleo é necessária em temperaturas baixas
# Summarization configuration
def summarize(text):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'Summarize the following text in 3 sentences.'},
            {'role': 'user', 'content': text}
        ],
        temperature=0.4,
        top_p=1.0
    )
    return resp.choices[0].message.content

summary = summarize(long_article)
print(summary)

Conversa por chat: variação natural

As respostas de chat se beneficiam de uma variação natural — a mesma pergunta não deve sempre produzir exatamente a mesma formulação. Aleatoriedade excessiva torna as respostas incoerentes. Use:

  • temperatura = 0,7–0,9: conversa natural e variada
  • probabilidade acumulada = 0,9–0,95: elimina tokens improváveis da cauda que produzem formulações artificiais
# Chat configuration
def chat_response(user_message, history):
    messages = history + [{'role': 'user', 'content': user_message}]
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are a friendly, helpful assistant.'},
            *messages
        ],
        temperature=0.8,
        top_p=0.9
    )
    reply = resp.choices[0].message.content
    history.append({'role': 'user', 'content': user_message})
    history.append({'role': 'assistant', 'content': reply})
    return reply, history

Escrita criativa: alta diversidade

A escrita criativa valoriza a originalidade e o inesperado. Temperaturas baixas produzem saídas clichês e previsíveis. Temperaturas altas produzem escolhas vívidas e inesperadas — embora valores altos demais causem incoerência. Use:

  • temperatura = 0,9–1,2: vocabulário diversificado, escolhas de palavras não óbvias
  • probabilidade acumulada = 0,95: evita tokens incoerentes da cauda e permite uma exploração ampla
# Creative writing configuration
def write_story_opening(prompt):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are a creative fiction writer. Write vivid, original prose.'},
            {'role': 'user', 'content': f'Write a story opening for: {prompt}'}
        ],
        temperature=1.1,
        top_p=0.95
    )
    return resp.choices[0].message.content

opening = write_story_opening('A detective discovers her partner is the killer.')
print(opening)

Geração de ideias

Para gerar ideias, o objetivo é obter a máxima diversidade — incluindo ideias incomuns ou inesperadas. Use a temperatura prática mais alta:

  • temperatura = 1,0–1,5: exploração ampla do espaço de ideias
  • probabilidade acumulada = 0,95–1,0: restrição mínima

Execute várias vezes e reúna todas as saídas — depois filtre manualmente as melhores ideias. As instruções para gerar ideias se beneficiam de pedidos explícitos de variedade: 'Dê-me 10 abordagens diferentes, incluindo algumas incomuns.'

# Brainstorming: run multiple times for variety
def brainstorm(topic, n_runs=5):
    ideas = []
    for _ in range(n_runs):
        resp = client.chat.completions.create(
            model='gpt-4o',
            messages=[
                {'role': 'system', 'content': 'Generate creative, diverse ideas. Include unusual approaches.'},
                {'role': 'user', 'content': f'Give me 3 ideas for: {topic}'}
            ],
            temperature=1.3,
            top_p=0.95
        )
        ideas.append(resp.choices[0].message.content)
    return ideas

all_ideas = brainstorm('reducing customer churn')

Teste de sensibilidade dos parâmetros

Antes de definir os parâmetros, execute testes de sensibilidade dos parâmetros: mantenha a instrução constante, varie um parâmetro por vez e avalie a qualidade da saída em cada configuração.

def sensitivity_test(prompt, evaluator, temperatures, n_samples=5):
    results = {}
    for temp in temperatures:
        scores = []
        for _ in range(n_samples):
            resp = client.chat.completions.create(
                model='gpt-4o',
                messages=[{'role': 'user', 'content': prompt}],
                temperature=temp
            )
            score = evaluator(resp.choices[0].message.content)
            scores.append(score)
        results[temp] = sum(scores) / len(scores)

    for temp, score in sorted(results.items()):
        print(f'T={temp}: avg score = {score:.2f}')
    best_temp = max(results, key=results.get)
    print(f'Best temperature: {best_temp}')
    return best_temp

Quando manter os valores padrão

Nem toda aplicação precisa de parâmetros personalizados. Mantenha os valores padrão quando:

  • O caso de uso for um chat geral — a temperatura padrão (1,0 na maioria das APIs) estiver bem ajustada
  • Você estiver criando um protótipo e ainda não souber quais são as configurações corretas
  • A tarefa estiver equilibrada entre precisão e criatividade (por exemplo, redigir e-mails)

Regra prática: personalize os parâmetros somente quando o comportamento padrão causar um problema de qualidade mensurável nos testes. Ajustar parâmetros prematuramente adiciona complexidade sem benefício mensurável.

# Defaults are often correct
default_resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'Draft a professional email declining a meeting.'}]
    # No temperature or top_p specified — API defaults apply
    # OpenAI default: temperature=1, top_p=1
)
print(default_resp.choices[0].message.content)

Cartão de referência rápida

Tabela resumida das configurações recomendadas por caso de uso:

PARAMETER_PRESETS = {
    # task: (temperature, top_p, notes)
    'factual_qa':        (0.0, 1.0, 'greedy, max accuracy'),
    'classification':    (0.0, 1.0, 'deterministic labels'),
    'code_generation':   (0.1, 0.95, 'near-greedy, avoid tail tokens'),
    'data_extraction':   (0.2, 1.0, 'slight variation for robustness'),
    'summarization':     (0.4, 1.0, 'preserve facts, vary phrasing'),
    'translation':       (0.3, 1.0, 'accurate but natural'),
    'chat':              (0.8, 0.9, 'natural conversation'),
    'email_drafting':    (0.7, 0.9, 'professional but varied'),
    'creative_writing':  (1.1, 0.95, 'vivid, original'),
    'brainstorming':     (1.3, 0.95, 'maximum diversity'),
}

for task, (temp, top_p, notes) in PARAMETER_PRESETS.items():
    print(f'{task:22} temp={temp}, top_p={top_p} | {notes}')

Penalidades de frequência e presença

Dois parâmetros adicionais complementam a temperatura e top-p:

  • penalidade de frequência (0–2): reduz a probabilidade dos tokens proporcionalmente à frequência com que apareceram na saída até o momento — evita a repetição de palavras
  • penalidade de presença (0–2): reduz a probabilidade de qualquer token que tenha aparecido — incentiva a diversidade de tópicos

Para escrita criativa: adicione uma penalidade de frequência de 0,5 para reduzir escolhas repetidas de palavras sem alterar a temperatura.

resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'Write a paragraph about coffee.'}],
    temperature=1.0,
    top_p=0.95,
    frequency_penalty=0.5,  # discourage repeating the same words
    presence_penalty=0.3    # encourage introducing new topics/aspects
)
print(resp.choices[0].message.content)

Verificação de conhecimentos

Para uma tarefa que gera código Python que será executado em produção, qual configuração de parâmetros é mais apropriada?

Recapitulação: escolha de parâmetros de amostragem

Combine os parâmetros com suas necessidades de precisão e diversidade:

  • Factual/código: temperatura=0–0,2, probabilidade acumulada=0,95 — precisão em primeiro lugar
  • Sumarização: temperatura=0,3–0,5 — equilíbrio
  • Chat: temperatura=0,7–0,9, probabilidade acumulada=0,9 — variação natural
  • Criativo: temperatura=0,9–1,2, probabilidade acumulada=0,95 — diversidade
  • Geração de ideias: temperatura=1,3, probabilidade acumulada=0,95 — exploração máxima

Execute testes de sensibilidade dos parâmetros. Mantenha os valores padrão quando nenhum problema de qualidade for observado. Adicione uma penalidade de frequência para problemas de repetição. Isso conclui o Curso 19. Próxima etapa: testes de instruções e regressão.

Grátis para começar

Aprenda AI Prompt Engineering com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
53
Aulas
199

Perguntas Frequentes

A aula “Escolhendo parâmetros para seu caso de uso” é grátis?

Sim — o texto completo de “Escolhendo parâmetros para seu caso de uso” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.

O que vou aprender em “Escolhendo parâmetros para seu caso de uso”?

Configurações recomendadas para perguntas e respostas factuais, escrita criativa, código e chat. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Prompt Engineering?

Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Escolhendo parâmetros para seu caso de uso”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Prompt Engineering?

Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que é temperatura em LLMs?
  2. Amostragem de núcleo top-p
  3. Amostragem top-k
  4. Escolhendo parâmetros para seu caso de uso
← Voltar para AI Prompt Engineering