Por que dar Markdown a um modelo em vez de um PDF
Quando você anexa um PDF a um chat, o aplicativo extrai o texto por você, e você não vê o que o modelo recebeu de fato. Converter antes tem três vantagens:
- Você vê o texto. Tabelas quebradas, colunas embaralhadas e páginas sem texto aparecem antes de confundir o modelo, não depois.
- A estrutura sobrevive. Títulos, listas e tabelas ficam em Markdown, que os modelos leem bem, em vez de uma sequência plana de linhas.
- Custa menos tokens. Números de página, cabeçalhos repetidos, hifenização no fim da linha e preenchimento de layout são removidos, então mais da janela de contexto vai para o conteúdo.
Esta página abre com configurações pensadas para isso: sem imagens, com um comentário <!-- Page N --> onde cada página começa para o modelo poder citar páginas, e sem linhas de imagem.
Contagem de tokens confiável
O número acima do Markdown é a quantidade exata de tokens do que você vai copiar ou baixar, incluindo front matter e marcas de página. Ele é calculado com o200k_base, a codificação do GPT-4o e dos modelos seguintes da OpenAI. Outros modelos, entre eles o Claude, usam seus próprios tokenizadores, então para eles trate o número como uma estimativa próxima, não como valor exato.
Cada opção em Enxugar para LLMs mostra quantos tokens economiza no seu arquivo antes de você ativá-la:
| Opção | O que faz |
|---|---|
| Tirar endereços dos links | Mantém o texto do link e remove a URL |
| Tirar negrito e itálico | Remove as marcas ** e * |
| Tirar linhas de imagem | Sem marcadores nem links de imagem |
| Texto simples no lugar de tags HTML | <sup>, <sub> e <br> viram texto simples |
| Normalizar caracteres | Ligaduras como fi viram fi; espaços estranhos viram espaços comuns |
| Tabelas compactas | Remove colunas vazias e o preenchimento das células |
As opções se aplicam em milissegundos, já que o PDF não é lido de novo.
Chunks para RAG
A recuperação precisa do documento em pedaços pequenos o bastante para gerar embeddings e que façam sentido sozinhos. A aba Chunks divide o Markdown para você:
- Primeiro nos títulos. Um chunk nunca começa no meio de uma seção se puder evitar, então cada um cobre um só assunto.
- Dentro do limite de tokens que você escolher, de 256 a 8.192. Uma seção maior que o limite é dividida entre frases, e uma tabela grande entre linhas, repetindo a linha de cabeçalho.
- Com o caminho de títulos. Cada chunk sabe os títulos acima dele, como
Métodos › Coleta de dados, e pode começar com eles, então um chunk recuperado ainda diz de onde veio. - Com suas páginas, para que uma resposta aponte para a página 12 do original.
Baixar JSONL gera um objeto JSON por linha:
{
"id": "report.pdf#3",
"source": "report.pdf",
"chunk": 3,
"headings": ["Methods", "Data collection"],
"page_start": 4,
"page_end": 5,
"tokens": 812,
"text": "..."
}
Poucas linhas de código carregam isso no banco vetorial que você usa.
Um fluxo que funciona
- Solte o PDF e olhe primeiro Páginas a conferir. Corrija ou passe pelo OCR qualquer página que tenha saído errada.
- Ative os cortes cuja economia compensa; mantenha os links se quiser que o modelo cite fontes.
- Para um chat, copie o Markdown e cole. Para um pipeline, use os chunks em JSONL.
Tudo acontece no seu navegador, e aqui isso importa: os documentos que as pessoas dão aos modelos costumam ser relatórios internos, contratos ou pesquisas que não deveriam ir para mais um serviço.
Perguntas frequentes
Markdown é mesmo melhor que texto simples para um LLM?
Em documentos com estrutura, costuma ajudar: os títulos dizem ao modelo como as seções se encaixam, e as tabelas mantêm cada número junto dos seus rótulos. Numa página só de prosa, a diferença é pequena. As opções deixam você manter ou tirar essa estrutura.
Que tamanho de chunk devo usar?
Comece com 512 ou 1.024 tokens para perguntas e respostas sobre documentos. Chunks menores casam com mais precisão com perguntas específicas; maiores mantêm mais contexto junto. O resumo na aba Chunks mostra quantos são e o maior, então você vê o efeito na hora.
A contagem de tokens acontece no meu dispositivo?
Sim. O tokenizador roda na aba, como o resto do conversor. Nada é enviado à OpenAI nem a ninguém para contar.
Dá para processar muitos PDFs para um conjunto de dados?
Você pode soltar até 20 de uma vez e baixar todos num único .zip. Para milhares de arquivos, um script é a ferramenta melhor; veja PDF para Markdown em Python.