Praktyka

Pierwszy RAG na 50 dokumentach PDF — co działa, co nie, ile to kosztuje

RAG (retrieval augmented generation) to najczęściej nadużywane słowo w sprzedaży AI w 2025. Klient pyta "czy nasz model będzie znał nasze procedury" — odpowiedź to RAG. Ale jak to wygląda gdy faktycznie usiądziecie i zrobicie pierwszy projekt na 50 PDF-ach? Opowiadamy o wdrożeniu w firmie meblowej z lipca 2025 — bez upiększania.

⏱ 10 min czytania · 📅 08.07.2025 · 👁 1 715 wyświetleń

RAG brzmi w sprzedaży prosto: "podpinamy Wasze dokumenty pod AI i odpowiada na pytania znając Wasze procedury". W praktyce na pierwszych 50 PDF-ach klient zobaczy: model wymyśla zawartość której nie ma w dokumentach, miesza dokumenty z różnych lat, nie potrafi znaleźć tego co dosłownie napisane na stronie 3. Ten artykuł to instrukcja jak tego uniknąć — z konkretnym wdrożeniem w 38-osobowej firmie meblowej.

Klient: firma meblowa, baza wiedzy = 50 PDF

Firma z Małopolski produkuje meble kuchenne na zamówienie. 38 pracowników, 6 osób w biurze obsługi klienta. Pytania klientów są monotonne: "czy frezowanie X jest możliwe w blacie laminowanym 28 mm", "ile czasu schnie lakier UV", "co z reklamacją gdy widoczna rysa po 14 miesiącach". Odpowiedzi są w PDF-ach: 8 specyfikacji technicznych, 6 procedur reklamacyjnych, 12 katalogów produktowych, 24 instrukcje montażowe.

Założenia początkowe (które okazały się błędne)

Klient i my zaczęliśmy z założeniem: "wrzucamy 50 PDF do vector store, podpinamy Claude, odpowiada". W tydzień zrobiliśmy MVP i… 41% odpowiedzi było niepoprawnych. Najgorsze: model brzmiał pewnie, więc BOK nie miał jak wykryć błędu bez ręcznego sprawdzania.

Co poszło źle w pierwszej wersji

  • Chunking po 1000 znaków — domyślnie LangChain tnie po N znaków. PDF specyfikacji ma tabele rozjeżdżające się między chunkami. Wiersz "Blat 28mm — frezowanie ZAKAZANE" rozjeżdżał się na dwa chunki: "Blat 28mm — frezowanie" w jednym, "ZAKAZANE" w drugim. Retrieval znajdował pierwszy, model odpowiadał TAK.
  • Mieszanie wersji — w 50 PDF były 3 wersje katalogu (2023, 2024, 2025). Bez metadanych model cytował "produkt P-42" z katalogu 2023, którego od 2024 już nie ma.
  • Embeddings po angielsku — domyślny text-embedding-3-small OpenAI radzi sobie z polskim, ale słabiej niż z angielskim. Słowa "lakier" i "lakierowany" miały embedingi w 0,71 odległości cosinusowej, gdy powinno być >0,85.
  • Brak rerankera — top-5 z vector store często nie zawierało najtrafniejszego chunka (był na pozycji 8 lub 12).

Co działało w wersji finalnej

Po 3 tygodniach iteracji architektura wyglądała tak:

KomponentPierwsza wersjaWersja produkcyjna
Parser PDFPyPDF2Unstructured.io + ręczne tagowanie tabel
Chunking1000 znaków stałySemantyczny po sekcjach + tabele jako 1 chunk
EmbeddingsOpenAI text-embedding-3-smallCohere embed-multilingual-v3 + Bielik tokenizer dla query
Vector storePineconeQdrant on-prem (dane nie wychodzą z firmy)
Metadanebrakwersja_dokumentu, dział, obowiązuje_od, obowiązuje_do
RerankerbrakCohere Rerank 3.5 (top-20 → top-4)
GeneratorClaude Sonnet 3.5Claude Sonnet 4 + cytaty z numerami stron
Trafność (test 200 pytań)59%91%

Cytaty z numerami stron — przełom

Najważniejsza zmiana z perspektywy BOK: każda odpowiedź modelu kończy się sekcją "Źródła:" z listą {{dokument, strona, fragment cytowany dosłownie}}. Pracownik widzi od razu, czy AI cytuje katalog 2025 czy 2023, czy z procedury reklamacyjnej czy specyfikacji technicznej.

Koszty wdrożenia — uczciwa rozpiska

  • Setup (przygotowanie 50 PDF, parsowanie, tagowanie metadanych, konfiguracja): 64 godziny naszej pracy.
  • Infrastruktura Qdrant (prywatna instancja w infrastrukturze klienta): w pakiecie wdrożenia rozszerzonego.
  • Cohere embeddings: ~12 USD/mies. dla 50 PDF + 3 200 zapytań/mies.
  • Claude Sonnet 4 (generowanie): ~340 zł/mies. przy aktualnym ruchu BOK.
  • Cohere Rerank: ~28 USD/mies.

Łącznie po wdrożeniu: ~620 zł/mies. operacyjnie. Wcześniej BOK potrzebowało 1,4 etatu na obsługę pytań technicznych. Po: 0,6 etatu. Oszczędność: ~6 200 zł/mies. (0,8 etatu × pełen koszt pracodawcy).

Lekcje na przyszłe wdrożenia RAG

  1. Nie zaczynaj od "wszystkie nasze dokumenty" — zacznij od 5-10 najczęstszych przypadków użycia. Reszta przyjdzie w iteracji 2.
  2. Metadane są ważniejsze niż embeddings — bez wersji dokumentu, działu i daty obowiązywania, najlepsze nawet embeddings dadzą cyrk.
  3. Tabele to osobny problem — domyślny parser PDF spłaszcza tabele do tekstu, tracąc strukturę. Unstructured.io lub LlamaParse są obowiązkowe.
  4. Reranker zwiększa trafność o ~20 punktów procentowych w naszych testach. Bez niego top-k z vector store nie wystarcza.
  5. Pokaż cytaty — bez tego BOK nie zaufa modelowi.

Co dalej

Po dwóch miesiącach produkcji rozbudowujemy bazę o 80 kolejnych dokumentów (mailing serwisowy, FAQ, instrukcje montażowe partnerskich blatów). Każdy dokument musi przejść proces: metadane → parsing tabel → walidacja na 10 testowych pytaniach. Czas: średnio 38 minut na dokument.

Jeśli macie 30+ PDF i widzicie, że BOK / dział techniczny powtarza odpowiedzi — umówmy 30 minut i pokażemy ten setup na 5 Waszych dokumentach na żywo.

Chcesz przetestować, jak AI rozwiąże to u Ciebie?

30 minut rozmowy + pokaz działającego wdrożenia u klienta. Bez NDA.

Umów demo

Może Cię też zainteresować

Newsletter redai

Dostawaj kolejne wpisy do skrzynki

Co dwa tygodnie: nowy case, nowe moduły AI, błędy klientów. Bez spamu.