Blog

Jak zbudować potok ingestii RAG, który naprawdę działa

10 sierpnia 2026 · 5 min czytania


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

  1. Dokument → Markdown — konwertuj PDF, DOCX, PPTX i inne formaty do czystego, ustrukturyzowanego Markdown przez API AnyMD.
  2. Markdown → Fragmenty — dziel według nagłówków i akapitów, semantycznie, a nie stałej liczby tokenów.
  3. Fragmenty → Embeddingi — przekaż każdy fragment do modelu embeddingów.
  4. 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.


← Czytaj dalej →