PDF para Markdown para LLMs

Markdown limpo para ChatGPT, Claude ou o seu próprio pipeline, com a contagem de tokens à vista, opções que mostram quanto cada corte economiza e chunks que você baixa em JSONL.

Solte os PDFs aqui

Ou cole um, ou escolha os arquivos. Até 20 por vez, convertidos nesta aba.

Sem arquivo à mão? Teste

Seus arquivos são lidos nesta aba do navegador e nunca são enviados.

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çãoO que faz
Tirar endereços dos linksMantém o texto do link e remove a URL
Tirar negrito e itálicoRemove as marcas ** e *
Tirar linhas de imagemSem marcadores nem links de imagem
Texto simples no lugar de tags HTML<sup>, <sub> e <br> viram texto simples
Normalizar caracteresLigaduras como fi viram fi; espaços estranhos viram espaços comuns
Tabelas compactasRemove 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

  1. Solte o PDF e olhe primeiro Páginas a conferir. Corrija ou passe pelo OCR qualquer página que tenha saído errada.
  2. Ative os cortes cuja economia compensa; mantenha os links se quiser que o modelo cite fontes.
  3. 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.