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.

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.

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