Como usar PDFs com um modelo de IA local sem enviar nada pra nuvem
Rodando um LLM local mas ainda mandando PDFs pra nuvem na extração? Aqui está um pipeline totalmente local que mantém seus documentos na sua máquina.
Rodar um modelo de linguagem na própria máquina ficou bem acessível. Ferramentas como Ollama, LM Studio e llama.cpp deixam você usar modelos capazes no seu próprio hardware sem mandar nada pra uma API. Mas tem uma lacuna que pouca gente fala: mesmo quando o modelo é local, os seus documentos muitas vezes ainda saem da máquina na etapa de preparação.
Este post cobre um fluxo simples que mantém o pipeline inteiro no seu dispositivo, do PDF original até a resposta do modelo.
A lacuna: modelo local, preparação do documento na nuvem
A maioria das pessoas que roda modelos de linguagem localmente ainda recorre a uma ferramenta web ou a uma API na nuvem quando precisa extrair texto de um PDF antes de alimentar o modelo. Essa etapa de extração é onde o arquivo sai quietinho do seu dispositivo.
Pra um artigo científico público, provavelmente não importa. Pra um contrato, um relatório interno ou qualquer documento que você não entregaria a um estranho, essa etapa é o vazamento numa configuração que seria toda privada.
O que um modelo local precisa de um PDF
O texto bruto de um PDF é bagunçado. A extração costuma puxar cabeçalhos e rodapés repetidos, números de página, quebras de linha no meio de frases e caracteres que não mapeiam direito. Mande isso diretamente pro modelo e a qualidade das respostas cai visivelmente.
O que ajuda o modelo de verdade é texto limpo e estruturado:
- Cabeçalhos e rodapés repetidos removidos.
- Quebras de linha no meio de frases reunidas de volta.
- Estrutura de seções preservada pra o modelo saber onde os temas mudam.
- Um bloco coerente por tópico em vez de um fragmento por página.
Markdown funciona bem como formato intermediário aqui. Mantém estrutura suficiente pra ser útil, sem adicionar ruído que atrapalha o modelo.
Um pipeline totalmente local
Aqui está um fluxo onde nada sai da sua máquina:
- Abra uma ferramenta de PDF no navegador que processe localmente. A extração roda dentro da aba do navegador. Nada é enviado.
- Converta o PDF pra Markdown. Isso roda no navegador, não num servidor.
- Salve o arquivo
.mdou copie o texto Markdown diretamente. - Cole na janela de contexto do seu modelo local, ou carregue como arquivo se a sua ferramenta de LLM suportar entrada de arquivo.
- Rode a inferência localmente como você normalmente faria.
O PDF nunca chega a um servidor. A extração, a limpeza e a inferência acontecem todas no seu hardware.
Por que a etapa de extração importa mais do que a maioria pensa
A maior variável em como um modelo local lida com um documento não é o tamanho do modelo. É a qualidade do que você alimenta. Um modelo que produz resultado mediano em um dump bruto de PDF pode produzir respostas visivelmente melhores com o mesmo conteúdo depois de uma extração limpa.
Isso se acumula em documentos mais longos. Um relatório de 40 páginas onde cada página começa com um cabeçalho repetido e termina com um número de página adiciona muito ruído ao longo de 40 repetições. O modelo gasta atenção nesse envoltório em vez de no conteúdo que você realmente quer.
Documentos escaneados também funcionam
PDFs escaneados são imagens, não texto. Obter texto legível deles exige OCR, reconhecimento óptico de caracteres. Historicamente isso significava subir o arquivo em algum lugar.
Isso não é mais necessário. OCR agora pode rodar no navegador usando WebAssembly, o que significa que até um documento escaneado não precisa sair do seu dispositivo. Defina o modo OCR pra automático e a extração cuida tanto das páginas de camada de texto quanto das de imagem em uma passagem, localmente.
Qual tamanho de modelo funciona pra documentos
Modelos locais variam em como lidam com documentos mais longos. Pra perguntas e respostas ou resumos, uma janela de contexto maior importa mais do que o tamanho bruto do modelo. Modelos na faixa de 7B a 14B, rodando numa máquina com pelo menos 16 GB de RAM, lidam bem com a maioria das tarefas de documento único.
A extração limpa geralmente importa mais do que usar um modelo maior. Teste: pegue um documento que dá trabalho pro seu modelo, faça uma extração limpa e alimente de novo. A diferença costuma ser maior do que mudar pra um modelo maior.
O PDFShore cuida da etapa de extração localmente, seja a fonte um PDF de texto ou um documento escaneado. O resultado é Markdown limpo pronto pra usar na configuração de IA local que você usar.