Potoki RAG (Retrieval-Augmented Generation) są tak dobre, jak dane, które pobierają. A pobierane dane są tak dobre, jak etap parsowania dokumentów zasilający dzielenie na fragmenty i embeddingi.
Najczęstszy błąd: wysłanie surowego tekstu PDF do bazy wektorowej i zastanawianie się, czemu jakość wyszukiwania jest słaba. PDF-y nie zawierają tekstu strukturalnego, lecz pozycjonowane glify. „Akapit” to luźny zbiór bloków tekstu, tabele to współrzędne, a nagłówki to tylko pogrubiony tekst większą czcionką.
Potok
- Dokument → Markdown — konwertuj PDF, DOCX, PPTX i inne formaty do czystego, ustrukturyzowanego Markdown przez API AnyMD.
- Markdown → Fragmenty — dziel według nagłówków i akapitów, semantycznie, a nie stałej liczby tokenów.
- Fragmenty → Embeddingi — przekaż każdy fragment do modelu embeddingów.
- Embeddingi → Magazyn wektorowy — zaindeksuj do wyszukiwania podobieństwa.
Większość potoków RAG po cichu zawodzi właśnie w kroku pierwszym. Śmieci na wejściu, śmieci na wyjściu.
Dlaczego Markdown jest najlepszym formatem pośrednim
Markdown zachowuje strukturę dokumentu — nagłówki, listy, tabele i bloki kodu — w lekkim formacie natywnie rozumianym przez dzielniki i modele embeddingów.
Surowy tekst PDF:
Revenue Q1 Q2 Q3
EU €1.2M €1.4M €1.1M
US €0.9M €1.1M €1.3M
Po konwersji AnyMD:
| Region | Q1 | Q2 | Q3 |
| :----- | :---- | :---- | :---- |
| EU | €1.2M | €1.4M | €1.1M |
| US | €0.9M | €1.1M | €1.3M |
Wersja Markdown ma znaczenie semantyczne. Dzielnik może podzielić ją na granicach nagłówków, a model embeddingów tworzy lepsze wektory dla tabeli niż dla bloku tekstu z odstępami. Pytanie o przychód UE w Q2 zwraca prawdziwą tabelę z nagłówkami, a nie osierocone liczby.
Praktyczny przykład
# 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.md
# Now feed that Markdown into your chunker/embedder pipeline
Wynik Markdown zachowuje każdy nagłówek, tabelę, listę i akapit, gotowy do ingestii przez LangChain, LlamaIndex lub własny framework RAG.
Wydajność ma znaczenie w skali
AnyMD konwertuje 48-stronicowy raport w mniej niż sekundę. Przy 10 000 dokumentów dziennie oznacza to 2,2 godziny konwersji zamiast 16–39 godzin dla alternatyw Python. W skali RAG opóźnienie konwersji jest wąskim gardłem przepustowości.