Os pipelines RAG (Retrieval-Augmented Generation) são tão bons quanto os dados que recuperam. E esses dados dependem da análise dos documentos que alimenta o chunker e o embedder.
O erro mais comum é enviar texto PDF bruto para uma base de dados vetorial e perguntar porque a recuperação é fraca. PDFs não contêm texto estruturado, mas glifos posicionados: parágrafos são blocos soltos, tabelas são coordenadas e títulos são texto maior em negrito.
O pipeline
- Documento → Markdown — Converta PDF, DOCX, PPTX ou qualquer formato em Markdown estruturado com a API AnyMD.
- Markdown → Chunks — Divida por títulos e parágrafos, semanticamente.
- Chunks → Embeddings — Passe cada chunk pelo modelo de embeddings.
- Embeddings → Vector store — Indexe para pesquisa por semelhança.
É no primeiro passo que muitos pipelines RAG falham silenciosamente: lixo entra, lixo sai.
Porque Markdown é o melhor formato intermédio
Markdown preserva títulos, listas, tabelas e blocos de código num formato leve que chunkers e modelos de embeddings compreendem nativamente.
Texto PDF bruto:
Revenue Q1 Q2 Q3
EU €1.2M €1.4M €1.1M
US €0.9M €1.1M €1.3MDepois da conversão AnyMD:
| Region | Q1 | Q2 | Q3 |
| :----- | :---- | :---- | :---- |
| EU | €1.2M | €1.4M | €1.1M |
| US | €0.9M | €1.1M | €1.3M |A versão Markdown tem significado semântico. Um chunker pode dividir nos limites dos títulos e o modelo de embeddings produz melhores vetores para uma tabela. Quando alguém pergunta «qual foi a receita da UE no T2?», é recuperada a tabela real com cabeçalhos, não números isolados.
Exemplo prático
# Convert a quarterly report to Markdown
curl -X POST https://anymd.net/api/convert \
-H "Authorization: Bearer your-key" \
-F "file=@quarterly-report.pdf" \
-o report.mdA saída preserva títulos, tabelas, listas e parágrafos, pronta para LangChain, LlamaIndex ou outro framework RAG.