06 - Como dizer ao modelo o tipo de leitura

TL;DR

A mesma imagem rende outputs radicalmente diferentes dependendo do tipo de leitura que você pede. “Descreva esta tela” vs “Analise esta tela quanto a problemas de acessibilidade” vs “Extraia os campos de formulário desta tela” entregam respostas que mal se reconhecem como vindas do mesmo input. Esta nota cobre seis tipos de leitura — descritiva, analítica, extrativa, comparativa, diagnóstica, avaliativa — e um template prático com quatro slots: Reading instruction, Focus, Ignore, Output. É a técnica que mais melhora qualidade sem trocar de modelo, sem subir resolução, sem mais tokens de input.

Por que dizer o tipo de leitura importa

Um modelo multimodal recebe a imagem e tem que decidir o quê “ver”. Sem instrução explícita, ele cai no comportamento default — geralmente descrição genérica do que está visualmente saliente, contaminada pelos exemplos do treino (“foi treinado pra fazer caption ⇒ entrega caption”). Resultado: você queria diagnóstico, recebeu descrição. Queria extração, recebeu narração.

A solução não é melhor modelo nem mais resolução. É declarar, no prompt, qual processo cognitivo o modelo deveria seguir. Mudança barata, ganho grande.

Caso concreto. Mesma imagem (screenshot de tela de login com problemas de UX), três prompts:

Prompt 1: “Descreva esta imagem.” Output: “A imagem mostra uma tela de login com um campo de email, um campo de senha, um botão azul escrito ‘Entrar’, e um link ‘Esqueci minha senha’.”

Prompt 2: “Analise esta tela quanto a problemas de UX.” Output: “Problemas visíveis: (1) o campo de senha não tem toggle de visibilidade; (2) o label ‘Email’ não está associado ao input via for/id, prejudicando acessibilidade; (3) não há indicador visual do estado de erro ou validação…”

Prompt 3: “Extraia o estado atual do formulário e retorne em JSON.” Output: {"campos": [{"label": "Email", "preenchido": false, "tipo": "email"}, ...]}

Três outputs úteis — três outputs diferentes — três tarefas diferentes. O modelo não adivinha; você manda.

Os seis tipos de leitura

Útil pensar em seis modos de leitura que cobrem 95% dos casos:

1. Descritiva

“O que está na imagem?” — Caption, alt text, indexação. Modelo descreve o que vê, sem julgar nem extrair.

Quando: alt text, indexação semântica, descrição pra acessibilidade.

Descreva esta imagem em uma frase curta, otimizada para alt text.
Foque no conteúdo principal e na função visual. Não invente detalhes
que não consegue ver claramente.

2. Analítica

“O que essa imagem significa? O que ela demonstra?” — Interpretação de gráfico, conclusão a partir de evidência visual.

Quando: análise de dashboard, leitura de gráfico, interpretação de mockup.

Analise este gráfico de receita trimestral. Identifique:
- A tendência geral (alta, baixa, estável)
- Pontos de inflexão e possíveis causas observáveis
- Quaisquer anomalias visuais (escalas distorcidas, eixo Y não começando em zero)

3. Extrativa

“Liste os fatos contidos na imagem.” — OCR + estruturação.

Quando: captura de formulário, extração de tabela, transcrição.

Extraia desta imagem em JSON:
- nome do produto
- preço (apenas o número)
- moeda
- avaliação em estrelas (1-5, decimal)
Se algum campo não for visível ou for ilegível, marque null. Não invente.

4. Comparativa

“Compare A com B e diga o que difere.” — Before/after, A/B test, design review.

Quando: revisão de mudança, comparação de duas versões, contraste de opções.

Compare as duas telas (A = primeira, B = segunda).
Liste apenas diferenças visíveis e relevantes para UX:
- Estrutura de layout
- Hierarquia visual (tamanho, contraste, peso tipográfico)
- Estados de interação (foco, hover, disabled)
Ignore: diferenças de pixel resultantes de compressão ou anti-aliasing.

5. Diagnóstica

“O que está errado aqui? Por quê?” — Debug, troubleshoot, RCA visual.

Quando: bug em UI, falha em layout, erro em screenshot de monitoramento.

Esta é uma captura de tela de bug em produção.
Comportamento esperado: <descreva>
Comportamento observado: o dropdown aparece atrás do modal.

Analise a imagem e proponha hipóteses ordenadas pela evidência visual,
da mais provável pra menos provável. Pra cada hipótese, indique:
- O que da imagem sustenta a hipótese
- Que evidência adicional seria necessária pra confirmar

6. Avaliativa

“Isso atende a este critério?” — Compliance, conformidade, auditoria.

Quando: checagem de acessibilidade, conformidade com brand guidelines, auditoria de heurística.

Avalie este mockup contra as 10 heurísticas de Nielsen.
Para cada heurística, indique:
- Atende (sim / parcialmente / não)
- Evidência visual da resposta
- Severidade se não atende (1-5)

Heurísticas:
1. Visibility of system status
2. Match between system and the real world
...

O template — quatro slots

Pra qualquer leitura, quatro slots cobrem o essencial:

Reading instruction: <um dos 6 tipos — descritiva, analítica, extrativa,
                     comparativa, diagnóstica, avaliativa>
Focus:              <o que o modelo deve atender com cuidado>
Ignore:             <o que o modelo deve descartar ou tratar como ruído>
Output:             <forma final esperada — prosa, JSON, lista, tabela>

Exemplo aplicado a screenshot de dashboard financeiro:

Reading instruction: Análise.
Focus:               KPIs do topo, variação YoY, formatação condicional
                     (verde/vermelho) que indica status.
Ignore:              Header, footer, navegação lateral, ícones decorativos.
Output:              JSON com {kpi, valor, variacao_yoy, status}.

Os slots não precisam virar literalmente esses tokens. Podem ser parágrafo natural. A função é forçar você a tomar quatro decisões explícitas antes de enviar.

Pares before/after

Caso A — Mockup de homepage

Before:

O que tem nessa página?

Output esperado: descrição genérica (“hero com título grande, três cards com features, footer com links…”).

After:

Reading instruction: Avaliativa.
Focus: Hierarquia visual (qual é o CTA principal?), contraste de texto sobre
       imagem do hero, alt-text inferível em cada imagem.
Ignore: Cores específicas de brand, escolha tipográfica.
Output: Lista numerada de problemas, cada um com (a) qual elemento, (b) qual
        princípio é violado, (c) severidade 1-5.

Output esperado: lista priorizada de issues, útil pra design review.

Caso B — Print de erro do navegador

Before:

Que erro é esse?

Output esperado: leitura do texto do erro (“Stack overflow at line 42”).

After:

Reading instruction: Diagnóstica.
Focus: Mensagem do erro, stack trace visível, estado do DevTools (Network,
       Console, Sources se aparecer).
Ignore: Layout da página subjacente, conteúdo não relacionado ao erro.
Output: (1) Hipótese mais provável de causa, com 1-2 linhas de justificativa;
        (2) Próximo passo concreto pra confirmar.

Output esperado: hipótese acionável.

Caso C — Tabela de extrato bancário

Before:

Extraia os dados.

Output esperado: dump bagunçado, talvez perdendo coluna de saldo.

After:

Reading instruction: Extrativa.
Focus: Todas as transações listadas, com data (DD/MM/YYYY), descrição,
       valor (negativo se débito), saldo após transação.
Ignore: Cabeçalho do banco, rodapé com termos legais, marca d'água.
Output: JSON array. Schema: [{data, descricao, valor, saldo}]. Use null se
        ilegível. Não invente valores.

Output esperado: JSON estruturado, auditável.

Compondo tipos — quando encadear chamadas

Algumas tarefas precisam de mais de um tipo de leitura. O padrão correto não é misturá-los no prompt, mas encadeá-los em chamadas separadas, passando o output de uma como contexto pra próxima:

Chamada 1 (Extrativa): extraia campos do formulário → JSON com {label, valor, status}
Chamada 2 (Analítica):  usando o JSON extraído + a imagem, identifique problemas de UX
Chamada 3 (Avaliativa): avalie cada problema de UX contra as heurísticas de Nielsen

Vantagens: (1) cada chamada é focada e entrega output de qualidade; (2) debugging simples — se o JSON da chamada 1 está errado, você sabe que o problema está na extração, não na análise; (3) você pode reutilizar o JSON em múltiplas chamadas analíticas sem pagar o custo de extração toda vez.

Desvantagem: mais chamadas = mais latência. Em fluxo interativo onde o usuário espera, concatenar pode ser necessário se latência for crítica — mas aceite qualidade menor como tradeoff.

Princípios

  • Modelo default = leitura descritiva. Tudo o que não for descrição precisa ser pedido explícito.
  • Não confunda “ignore X” com “não veja X”. Ignore desloca atenção, não cega. Pra cegar, corte a imagem.
  • Output é parte do tipo de leitura. Pedir JSON força leitura extrativa; pedir prosa força narrativa.
  • Pra leitura comparativa, mande as duas imagens com rótulo claro. “A é a primeira, B é a segunda” elimina ambiguidade.
  • Combine com structured output quando tipo for extrativo ou avaliativo. Ver 04 - OpenAI Structured Outputs — strict mode ou equivalente do seu provider.

Anti-padrões

  • “Analise” como única instrução. “Analise esta imagem” é tão vago quanto “descreva” — o modelo precisa saber analisar pra quê.
  • Misturar dois tipos no mesmo prompt. “Descreva e extraia e compare e diagnostique” gera uma sopa. Divida em duas chamadas se precisar dos dois outputs.
  • Esquecer o slot Output. Sem indicar a forma final, o modelo improvisa — geralmente longas frases em prosa que sua aplicação não consegue parsear.
  • Focus + Ignore contraditórios. “Foque no header. Ignore tudo no topo da imagem.” O modelo escolhe um e o outro vira sorte.

Armadilhas comuns

"Analise" sem critério — o modelo analisa o que quiser, não o que você precisa

“Analise esta imagem” é o prompt mais comum e o mais vago. O modelo vai analisar o que for estatisticamente mais comum nos exemplos de treino — geralmente composição fotográfica, cores, ou descrição de objetos. Se você queria acessibilidade, UX, diagnóstico de bug, ou compliance de brand, vai receber algo diferente. A correção é sempre completar: “Analise esta imagem quanto a [critério específico].” Sem critério explícito, a análise é a que o modelo preferir, não a que você precisa.

Misturar extrativa com analítica no mesmo prompt — resultado é nenhuma das duas bem feita

“Extraia os campos E analise o problema de UX E compare com a versão anterior” num único prompt tende a gerar um output que faz um pouco de cada coisa e nenhuma a sério. O modelo divide atenção e trunca cada modo. O padrão correto para múltiplos objetivos é chamadas sequenciais: primeiro extrai (extrativa, output JSON), depois analisa (analítica, referenciando o JSON), depois compara (comparativa, com as duas versões explicitadas). Além de melhor resultado, debugging fica mais fácil porque você isola qual etapa errou.

Esquecer o slot "Ignore" quando a imagem tem ruído visual — modelo distrai com o irrelevante

Imagens de produção têm notificações, headers, footers, elementos decorativos, marca d’água, dados de outros usuários em screenshots de desktop. Sem slot “Ignore” explícito, o modelo pode incluir esses elementos no output — extraindo o nome do usuário da notificação no topo junto com os dados do formulário, ou analisando o ícone de bateria do celular junto com o bug de UI. “Ignore: notificações, header, footer, qualquer elemento fora da área do formulário” é proteção barata contra output poluído.

Como explicar em inglês

Interview quote: “Multimodal prompting without a reading instruction is like handing a document to someone without saying what you need from it. We use a four-slot template: Reading instruction (descriptive/analytical/extractive/comparative/diagnostic/evaluative), Focus, Ignore, and Output format. Switching from ‘describe this screen’ to an explicit reading type often triples output relevance without any other change.”

PortuguêsInglês
Tipo de leituraReading type / reading instruction
Leitura descritivaDescriptive reading
Leitura analíticaAnalytical reading
Leitura extrativaExtractive reading
Leitura comparativaComparative reading
Leitura diagnósticaDiagnostic reading
Leitura avaliativaEvaluative reading
Slot de foco / ignorar / outputFocus / Ignore / Output slot
Dirigir a leitura do modeloSteering the model’s reading mode

O que vem a seguir

Com os tipos de leitura dominados, a nota 07 fecha o galho Multimodal Prompting catalogando limites e armadilhas — os casos onde mesmo a instrução de leitura mais cuidadosa não resolve: alucinação visual, OCR fraco, raciocínio espacial, inconsistência entre chamadas, e quando recuar para pipeline tradicional.

Fontes

  • @hooeemBecome an AI Engineer, cap #17. Tese central de “dirigir a leitura”.
  • AnthropicVision (docs). Recomendação de instruções específicas.
  • OpenAIVision guide (docs). “Tell the model what to look for”.

Veja também