0Pricing
AI Prompt Engineering · Aula

Removendo ambiguidades das solicitações

Técnicas para eliminar múltiplas interpretações em suas instruções.

Removendo ambiguidades das solicitações é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 2 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.

O que a ambiguidade causa na IA

Instruções ambíguas obrigam o modelo a escolher entre várias interpretações válidas. Ele escolhe uma — geralmente a mais comum — e prossegue com confiança, sem indicar que fez uma escolha.

O resultado: você recebe uma resposta perfeitamente bem formulada para a pergunta errada. Reconhecer e eliminar a ambiguidade antes do envio é mais rápido do que reescrever a saída depois.

O clássico: 'Torne isto melhor'

'Torne isto melhor' talvez seja a instrução mais ambígua que existe. Melhor de que maneira?

  • Mais curta? Mais longa?
  • Mais formal? Mais informal?
  • Mais exemplos? Menos?
  • Tom diferente? Estrutura diferente?
  • Gramática corrigida? Vocabulário diferente?

O modelo escolhe uma dimensão e a altera. Se essa não for a dimensão que você queria, ficará preso em um ciclo de reescritas.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

original_text = (
    'Our software helps companies manage their data. '
    'It has many features. Customers like it a lot.'
)

# Ambiguous improvement request
vague = f'Make this better:\n\n{original_text}'

# Unambiguous improvement request
specific = (
    f'Rewrite this product description to be exactly 50% shorter, '
    f'more confident in tone, and replace vague phrases like "many features" '
    f'and "a lot" with specific claims. Do not add new features I have not mentioned.\n\n'
    f'{original_text}'
)

for label, prompt in [('VAGUE', vague), ('SPECIFIC', specific)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.content[0].text)
    print()

Múltiplas interpretações: exemplos práticos

Qualquer instrução com um pronome sem referente definido, um adjetivo relativo ou um sujeito ausente pode ser ambígua. Exemplos:

  • 'Melhore o desempenho' — de quê? Velocidade, precisão, envolvimento dos usuários?
  • 'Escreva sobre o impacto' — positivo, negativo, econômico, social?
  • 'Corrija isto' — corrija a lógica, o estilo, a formatação ou a gramática?
  • 'Deixe profissional' — vocabulário formal? Parágrafos estruturados? Remover emojis?
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Disambiguating 'fix this code'
buggy_code = 'def divide(a, b): return a / b'

ambiguous = f'Fix this:\n{buggy_code}'

unambiguous = (
    f'Fix only the division-by-zero bug in this function. '
    f'Add a guard that raises a ValueError with message "b cannot be zero" when b=0. '
    f'Do not change anything else — keep the function signature and return type identical.\n\n'
    f'{buggy_code}'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': unambiguous}]
)
print(response.choices[0].message.content)

Técnica de desambiguação: declarar a interpretação

Se você sabe que sua instrução pode ser interpretada de várias maneiras, declare explicitamente qual interpretação deseja.

Modelo: 'Quando digo [termo ambíguo], quero dizer [definição específica].'

Exemplos:

  • 'Quando digo editar, quero dizer corrigir apenas a gramática e a ortografia — não altere o conteúdo.'
  • 'Quando digo breve, quero dizer no máximo 3 frases.'
  • 'Quando digo profissional, quero dizer sem pronomes de primeira pessoa e sem contrações.'
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    messages=[{
        'role': 'user',
        'content': (
            'Edit the following paragraph. '
            'When I say "edit", I mean: fix grammar and punctuation only. '
            'Do NOT change vocabulary, sentence structure, or content. '
            'When done, list each change you made in a numbered list below the edited text.\n\n'
            'The team have went to the meeting early, but the manager '
            'werent there so they waited for alot of time before leaving.'
        )
    }]
)
print(response.content[0].text)

Técnica de desambiguação: definir o escopo

A ambiguidade de escopo é comum ao solicitar melhorias ou expansões. Resolva-a definindo exatamente o que está dentro e fora do escopo.

Dentro do escopo: o que o modelo tem permissão para alterar
Fora do escopo: o que deve permanecer inalterado

Isso é especialmente importante na edição de código, na revisão de documentos e em tarefas de processamento de conjuntos de dados, nas quais alterações não intencionais podem causar problemas graves.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code_block = '''
def calculate_tax(income, rate):
    return income * rate

def calculate_net(income, tax):
    return income - tax
'''

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Add Python type hints to the following code.\n'
            'IN SCOPE: adding type hints to parameters and return values only.\n'
            'OUT OF SCOPE: changing function names, logic, docstrings, or formatting.\n'
            'Do not add any comments or docstrings.\n\n'
            + code_block
        )
    }]
)
print(response.choices[0].message.content)

Técnica de desambiguação: especificar o formato da saída

A ambiguidade da saída ocorre quando você deseja um formato específico, mas não o informa. 'Dê-me os dados' — em um parágrafo? Em uma lista? Em uma tabela? Em um objeto JSON?

Sempre indique exatamente o formato de saída que espera. Quando receber essa informação explicitamente, o modelo o seguirá com precisão.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

candidates_text = (
    'Alice: 5 years Python, worked at Stripe, has a CS degree.\n'
    'Bob: 3 years JavaScript, worked at a startup, self-taught.\n'
    'Carol: 8 years Java, worked at Google, has an MS in CS.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Extract the candidate data below into a JSON array. '
            'Each object must have exactly these keys: name, years_experience, primary_language, '
            'previous_employer, education_level. '
            'education_level values: DEGREE, MASTERS, SELF_TAUGHT.\n\n'
            + candidates_text
        )
    }]
)
print(response.content[0].text)

Técnica de desambiguação: pedir esclarecimentos ao modelo

Ao escrever uma instrução complexa que você sabe ser ambígua, pode instruir o modelo a fazer perguntas de esclarecimento antes de tentar realizar a tarefa.

Isso é especialmente útil ao criar assistentes de IA — você quer que o modelo reúna informações em vez de fazer suposições, assim como faria um bom consultor humano.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {
            'role': 'system',
            'content': (
                'You are a professional copywriter. '
                'Before starting any writing task, ask exactly 3 clarifying questions '
                'that would most improve the output quality. '
                'Only proceed to write after the user answers those questions.'
            )
        },
        {
            'role': 'user',
            'content': 'Write a landing page headline for my business.'
        }
    ]
)
print(response.choices[0].message.content)

Termos relativos que precisam de ancoragem

Os termos relativos não têm um significado fixo — eles significam coisas diferentes para pessoas diferentes:

  • 'Breve' — 1 frase? 3 frases? 1 parágrafo?
  • 'Formal' — sem contrações? Estilo de citação acadêmica? Linguagem jurídica?
  • 'Simples' — nível de leitura do 5.º ano? Sem termos técnicos? Apenas frases curtas?
  • 'Abrangente' — abranger todos os casos principais? Incluir casos-limite? Com exemplos?

Substitua cada termo relativo por um equivalente concreto e mensurável.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Relative terms mapped to concrete equivalents
mapping = [
    ('Give me a brief summary',   'Summarize in exactly 2 sentences'),
    ('Write something formal',    'Write using no contractions, no first person, and Flesch-Kincaid grade 12+'),
    ('Make it simple',            'Use only words a 10-year-old would know; max 15 words per sentence'),
    ('Be comprehensive',          'Cover at least 5 distinct subtopics with one example each'),
]

for vague, concrete in mapping:
    print(f'Vague:    "{vague}"')
    print(f'Concrete: "{concrete}"')
    print()

Ambiguidade do sujeito: quem executa a ação?

A ambiguidade do sujeito ocorre quando não está claro quem ou o que é afetado pela instrução.

'Reescreva a introdução' — de quê? Do documento que você colou? Daquele que discutimos há 5 interações? De um novo documento?

'Traduza isto' — qual parte? A resposta inteira? Apenas a seção de resumo? Os comentários do código?

Sempre indique o objeto ou a seção específica a que se refere, especialmente em conversas com várias interações.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Clear subject reference prevents wrong-section edits
contract_text = (
    '## Section 1: Payment Terms\nPayment is due within 30 days.\n\n'
    '## Section 2: Termination\nEither party may terminate with 30 days notice.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'In the contract below, rewrite ONLY Section 2 (Termination). '
            'Change the notice period from 30 days to 90 days. '
            'Do not change Section 1 or any other text.\n\n'
            + contract_text
        )
    }]
)
print(response.choices[0].message.content)

Ambiguidade temporal: quando?

As referências temporais nas instruções podem ser ambíguas: 'recente', 'atual', 'mais recente', 'agora'.

O treinamento do modelo tem uma data de corte — ele não sabe o que 'agora' significa, a menos que você lhe diga. Sempre forneça datas explícitas para tarefas sensíveis ao tempo.

  • 'Pesquisas recentes' → 'Pesquisas publicadas em 2024 ou 2025'
  • 'Boas práticas atuais' → 'Boas práticas em janeiro de 2025'
  • 'Versão mais recente' → 'Versão 3.12 (lançada em outubro de 2024)'
import anthropic
from datetime import date

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

today = date.today().isoformat()

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    system=f'Today is {today}. Use this as the reference for any time-related words.',
    messages=[{
        'role': 'user',
        'content': (
            'Describe the best practices for Python async programming '
            'as of January 2025. If your knowledge does not cover this timeframe, '
            'say so explicitly and share what you know up to your cutoff.'
        )
    }]
)
print(response.content[0].text)

Criar um radar de ambiguidade

Antes de enviar qualquer instrução, analise-a em busca destes sinais de ambiguidade:

  • Pronomes sem referentes claros: isto, isso, aquilo, eles
  • Adjetivos relativos: melhor, mais curto, formal, simples, abrangente, recente
  • Verbos vagos: corrigir, melhorar, atualizar, fazer, fazer algo a respeito
  • Escopo ausente: nenhuma menção ao que está dentro ou fora do escopo
  • Formato ausente: o formato da saída não foi especificado
  • Contexto ausente: quem é o público e para que serve a saída
def scan_prompt_for_ambiguity(prompt):
    '''Simple heuristic scanner for common ambiguity patterns.'''
    warnings = []
    vague_verbs = ['fix', 'improve', 'make it', 'update', 'change it', 'redo']
    relative_adj = ['better', 'shorter', 'longer', 'formal', 'simple', 'recent', 'comprehensive']
    missing_format = ['json', 'table', 'list', 'bullet', 'paragraph', 'word', 'sentence']

    lower = prompt.lower()
    for v in vague_verbs:
        if v in lower:
            warnings.append(f'Vague verb detected: "{v}" — specify what change exactly')
    for a in relative_adj:
        if a in lower:
            warnings.append(f'Relative adjective: "{a}" — anchor with a measurable definition')
    if not any(f in lower for f in missing_format):
        warnings.append('No output format specified — add format, length, or structure')
    return warnings

test = 'Make the report better and more formal.'
print('Prompt:', test)
for w in scan_prompt_for_ambiguity(test):
    print(' WARNING:', w)

Verificação de conhecimento

Um desenvolvedor envia esta instrução: 'Simplifique o código.' A IA encurta o código, mas o desenvolvedor queria que ela usasse nomes de variáveis mais legíveis, não que o tornasse mais curto. Qual foi o problema central?

Eliminar a ambiguidade — recapitulação

A ambiguidade obriga o modelo a adivinhar — e a interpretação escolhida é a mais comum, não a sua. Principais técnicas de desambiguação:

  • Declare a interpretação: 'Quando digo X, quero dizer Y'
  • Defina o escopo: liste o que está dentro e fora do escopo
  • Indique o formato da saída: JSON / tabela / parágrafo / contagem de frases
  • Ancore os termos relativos: 'breve' → '2 frases', 'formal' → 'sem contrações'
  • Indique o sujeito: 'Seção 2', não 'esta parte'
  • Peça esclarecimentos: instrua o modelo a fazer perguntas antes de prosseguir

Perguntas Frequentes

A aula “Removendo ambiguidades das solicitações” é grátis?

Sim — o texto completo de “Removendo ambiguidades das solicitações” é 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 “Removendo ambiguidades das solicitações”?

Técnicas para eliminar múltiplas interpretações em suas instruções. 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 2 de 4.

Quanto tempo leva a aula “Removendo ambiguidades das solicitações”?

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. Por que a especificidade é importante
  2. Removendo ambiguidades das solicitações
  3. Adicionando detalhes concretos
  4. Comparando solicitações vagas e específicas
← Voltar para AI Prompt Engineering