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.
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-smallOpenAI 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:
| Komponent | Pierwsza wersja | Wersja produkcyjna |
|---|---|---|
| Parser PDF | PyPDF2 | Unstructured.io + ręczne tagowanie tabel |
| Chunking | 1000 znaków stały | Semantyczny po sekcjach + tabele jako 1 chunk |
| Embeddings | OpenAI text-embedding-3-small | Cohere embed-multilingual-v3 + Bielik tokenizer dla query |
| Vector store | Pinecone | Qdrant on-prem (dane nie wychodzą z firmy) |
| Metadane | brak | wersja_dokumentu, dział, obowiązuje_od, obowiązuje_do |
| Reranker | brak | Cohere Rerank 3.5 (top-20 → top-4) |
| Generator | Claude Sonnet 3.5 | Claude 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
- Nie zaczynaj od "wszystkie nasze dokumenty" — zacznij od 5-10 najczęstszych przypadków użycia. Reszta przyjdzie w iteracji 2.
- Metadane są ważniejsze niż embeddings — bez wersji dokumentu, działu i daty obowiązywania, najlepsze nawet embeddings dadzą cyrk.
- Tabele to osobny problem — domyślny parser PDF spłaszcza tabele do tekstu, tracąc strukturę. Unstructured.io lub LlamaParse są obowiązkowe.
- Reranker zwiększa trafność o ~20 punktów procentowych w naszych testach. Bez niego top-k z vector store nie wystarcza.
- 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