· Prompt Engineering

Guia Pratico: Few-Shot Prompts para Extrair Tabelas de Textos Nao Estruturados

1. O Desespero do Update na Paulista

Eram exatamente 14h30 em um escritório movimentado na Avenida Paulista, em São Paulo. O ar-condicionado zumbia baixo enquanto eu olhava para a tela do meu monitor com uma sensação familiar de pânico gelado. Na semana anterior, nossa automação de processamento de faturas e relatórios jurídicos não estruturados rodava como um relógio suiço. Mas, após a última atualização silenciosa do modelo de IA que usamos no backend, o castelo de cartas desabou.

O prompt que funcionava perfeitamente com zero-shot — aquele clássico “leia este texto e monte uma tabela Markdown” — submeteu-se a uma amnésia funcional. O modelo começou a alucinar colunas, quebrar quebras de linha em JSONs internos e ignorar completamente campos monetários complexos. Nossos relatórios para os clientes estavam saindo corrompidos, e a diretoria exigia uma solução antes da reunião de fechamento de sprint. O prompt antigo precisava de uma reestruturação cirúrgica. A única saída viável para estabilizar o comportamento do modelo diante de atualizações imprevisíveis era migrar para uma arquitetura robusta de Few-Shot Prompts com delimitadores rígidos.

How to Write Few-Shot Prompts to Extract Tabular Data from Unstructured Text Prompt Guide

2. Por que o Zero-Shot Falha e a Arquitetura Few-Shot Salva o Dia

Quando as grandes empresas de tecnologia atualizam seus pesos de modelos ou ajustam o alinhamento de segurança, o comportamento padrão muda. Prompts baseados apenas em instruções textuais abstratas perdem precisão porque o modelo tenta adivinhar a intenção sem um “gabarito” estrutural.

A engenharia de Few-Shot Prompting resolve isso injetando exemplos concretos de entrada e saída (Input/Output) diretamente no contexto. Para extração de dados tabulares de textos bagunçados (como e-mails de clientes, contratos escaneados ou atas de reuniões), fornecer exemplos força o modelo a mimetizar o padrão exato de formatação que você deseja, reduzindo a taxa de alucinação a quase zero.

Regra de Ouro do Dracula Dev: Nunca confie apenas na instrução verbal. Dê ao modelo pelo menos dois exemplos reais de "Texto Cru" versus "Tabela Markdown Esperada" para travar o comportamento de saída.

3. O Master Prompt Template

Abaixo está o template definitivo que desenvolvi para resgatar nossa automação. Você pode copiá-lo e colá-lo diretamente nas Configurações do seu ChatGPT, Claude ou Gemini, ajustando apenas as variáveis de acordo com a sua necessidade.

### Papel
Voce e um extrator de dados sênior especializado em converter textos juridicos e financeiros nao estruturados em tabelas Markdown limpas.

### Regras de Ouro
1. Extraia apenas as informacoes explicitas no texto. Nao invente dados.

2. Se um campo estiver ausente, preencha com "Nao informado".

3. Mantenha estritamente o formato de saida em tabela Markdown especificado nos exemplos.

### Exemplo 1
[TEXTO_CRU]
Contrato 0192. Contratante: Tech Solutions Ltda (CNPJ 12.345.678/0001-99). Valor mensal: R 5.400,00 com vencimento todo dia 10.
[/TEXTO_CRU]

[TABELA_SAIDA]
| Contrato | Contratante | CNPJ | Valor Mensal | Vencimento |
| :--- | :--- | :--- | :--- | :--- |
| 0192 | Tech Solutions Ltda | 12.345.678/0001-99 | R 5.400,00 | Dia 10 |
[/TABELA_SAIDA]

### Exemplo 2
[TEXTO_CRU]
Termo Aditivo 44. Empresa parceira: Inova SP Servicos. Investimento total de dez mil reais, pago em parcela única em 15/11/2026.
[/TEXTO_CRU]

[TABELA_SAIDA]
| Contrato | Contratante | CNPJ | Valor Mensal | Vencimento |
| :--- | :--- | :--- | :--- | :--- |
| 44 | Inova SP Servicos | Nao informado | R$ 10.000,00 (Parcela unica) | 15/11/2026 |
[/TABELA_SAIDA]

### Dados Atuais para Processamento
[TEXTO_CRU]
[Insira seu texto nao estruturado aqui]
[/TEXTO_CRU]

[TABELA_SAIDA]

4. Variacoes Praticas e Dicas de Seguranca

Para garantir que sua automação continue resiliente mesmo se houver novas atualizações na API dos provedores de IA, siga estas recomendações práticas:

  • Delimitadores Fortes: Use tags claras como [TEXTO_CRU] e [TABELA_SAIDA]. Os modelos modernos compreendem muito bem essas fronteiras estruturais e evitam misturar conversas com dados.
  • Controle de Tokens: Se os textos forem muito longos (como editais de licitação), divida-os em blocos de 3.000 caracteres antes de alimentar o prompt.
  • Temperatura Baixa: Configure a Temperatura do modelo entre 0.0 e 0.2 na sua API ou interface. Tarefas de extração tabulada exigem determinismo absoluto, não criatividade literária.

5. Perguntas Frequentes

Q: O que fazer se o modelo ignorar um dos exemplos e mudar o formato da tabela?

A: Isso geralmente acontece porque o prompt ficou muito longo e o modelo sofreu de perda de atenção no meio do contexto (Lost in the Middle). Reduza para dois exemplos altamente representativos e coloque-os o mais próximo possível da seção de dados atuais.

Q: Posso usar esse mesmo template para exportar para JSON em vez de Markdown?

A: Sim, basta alterar a tag [TABELA_SAIDA] para [JSON_SAIDA] e substituir os blocos de exemplo por estruturas JSON válidas. A lógica de poucos exemplos funciona de forma idêntica para qualquer formato estruturado.

Q: Como lidar com quebras de linha dentro das células da tabela?

A: Instrua explicitamente no prompt que quebras de linha dentro do texto original devem ser substituídas por espaços simples ou barras verticais (/) para evitar que a estrutura da tabela Markdown quebre na renderização final.

Share:
Back to Blog