AI w firmie
Czym jest RAG i jak podłączyć AI do dokumentów firmy
RAG (Retrieval-Augmented Generation) to technika, w której system AI przed udzieleniem odpowiedzi wyszukuje pasujące fragmenty Twoich dokumentów i każe modelowi odpowiadać na ich podstawie. Dzięki temu asystent zna aktualne procedury, umowy i dokumentację firmy, a każdą odpowiedź popiera odnośnikiem do źródła.
Nazwa pochodzi z publikacji zespołu Patricka Lewisa z 2020 roku. Od tamtej pory RAG stał się najczęstszym sposobem łączenia modeli językowych z wiedzą firmową. Poniżej znajdziesz opis działania, porównanie z alternatywami i plan wdrożenia bez marketingowych obietnic.
Dlaczego AI zmyśla, gdy pytasz o dane firmy
Model językowy uczył się na danych publicznych do określonej daty. Nie widział Twojego regulaminu reklamacji, cennika z tego kwartału ani notatek z projektu. Zapytany o nie, generuje tekst, który brzmi prawdopodobnie, bo do tego służy. Nie ma wbudowanego mechanizmu, który powiedziałby mu „tej informacji nie znasz”.
Efekt znasz, jeśli testowałeś czat AI na pytaniach o własną firmę: pewnym tonem podany termin zwrotu, który nie istnieje, albo procedura z innej branży. RAG zmienia zadanie modelu. Zamiast przypominać sobie, model czyta dostarczone fragmenty i streszcza je z odnośnikami. Nie usuwa to błędów całkowicie, ale czyni je sprawdzalnymi.
Jak działa RAG krok po kroku
System RAG składa się z dwóch części: przygotowania wiedzy (dzieje się raz i przy każdej zmianie dokumentów) oraz obsługi zapytania (dzieje się przy każdym pytaniu).
1. Pozyskanie i przygotowanie dokumentów
Konektory pobierają dokumenty ze źródeł: SharePointa, Dysku Google, Confluence, udziałów sieciowych, systemu zgłoszeń. Z każdego pliku wyciągasz tekst i metadane: tytuł, datę, wersję, właściciela, dział i listę osób lub grup z dostępem. Na tym etapie usuwasz duplikaty i nieaktualne wersje. Śmieci wpuszczone do indeksu wrócą w odpowiedziach.
2. Podział na fragmenty (chunking)
Dokumenty dzielisz na fragmenty, bo do modelu trafia tylko kilka najlepiej pasujących kawałków, a nie całe archiwum. Dziel według struktury: rozdziałów, paragrafów umowy, sekcji procedury. Podział co stałą liczbę znaków potrafi przeciąć tabelę albo oddzielić warunek od wyjątku.
Fragment wyrwany z kontekstu bywa bezużyteczny. Zdanie „termin wynosi 14 dni” nic nie znaczy bez informacji, o jaki dokument i jaki termin chodzi. Dlatego do każdego fragmentu dołącz tytuł dokumentu i nagłówek sekcji. Anthropic opisał rozwinięcie tej idei pod nazwą Contextual Retrieval: model dopisuje do fragmentu krótkie zdanie wyjaśniające jego kontekst, zanim fragment trafi do indeksu.
3. Embeddingi i baza wektorowa
Każdy fragment zamieniasz na embedding, czyli wektor liczb opisujący jego znaczenie. Fragmenty o podobnej treści mają podobne wektory, nawet gdy używają innych słów. Wektory trafiają do bazy, która umie szybko znaleźć najbliższych sąsiadów. Nie musi to być nowy produkt: PostgreSQL z rozszerzeniem pgvector, Elasticsearch czy OpenSearch obsługują takie wyszukiwanie.
Dla dokumentów po polsku wybierz model embeddingów, który dobrze radzi sobie z tym językiem. Pamiętaj też, że zmiana modelu embeddingów oznacza ponowne przeliczenie całego indeksu.
4. Wyszukiwanie hybrydowe i reranking
Samo wyszukiwanie wektorowe słabo radzi sobie z dokładnymi ciągami: numerem umowy, kodem błędu, symbolem produktu, NIP-em. Tu wygrywa klasyczne wyszukiwanie pełnotekstowe, np. algorytm BM25. Wyszukiwanie hybrydowe uruchamia oba i łączy wyniki, na przykład metodą Reciprocal Rank Fusion. Przy polskich tekstach zadbaj o analizę fleksji, bo „umowa”, „umowy” i „umowie” to dla prostego indeksu trzy różne słowa.
Reranking to drugi etap: osobny model ocenia kilkadziesiąt kandydatów pod kątem trafności względem pytania i wybiera kilka najlepszych. Ten krok zwykle wyraźnie poprawia jakość, kosztem dodatkowego opóźnienia.
5. Generowanie odpowiedzi z cytatami
Wybrane fragmenty trafiają do promptu razem z pytaniem i instrukcją: odpowiadaj wyłącznie na podstawie załączonych fragmentów, przy każdym stwierdzeniu podaj źródło, a gdy fragmenty nie zawierają odpowiedzi, powiedz to wprost. Interfejs powinien pokazywać cytowane fragmenty z linkiem do oryginału, żeby użytkownik mógł sprawdzić odpowiedź jednym kliknięciem.
Agentic RAG
W klasycznym RAG wyszukiwanie odbywa się raz, dokładnie na treści pytania. W agentic RAG agent sam decyduje, czy i czego szukać: przeformułowuje zapytanie, wykonuje kilka wyszukiwań, sięga po inne narzędzia (np. zapytanie do bazy danych) i sprawdza, czy zebrał wystarczająco informacji. Radzi sobie z pytaniami złożonymi, ale jest wolniejszy, droższy i trudniejszy do testowania. Wyszukiwarkę dokumentów możesz udostępnić agentowi jako narzędzie na serwerze MCP.
RAG, fine-tuning czy długie okno kontekstu
To trzy różne narzędzia i często myli się ich zastosowania. Porównanie w najważniejszych dla firmy aspektach:
| Kryterium | RAG | Fine-tuning | Długie okno kontekstu |
|---|---|---|---|
| Do czego służy | Odpowiedzi na podstawie dużego, zmieniającego się zbioru dokumentów | Zmiana stylu, formatu lub zachowania modelu w wąskim zadaniu | Analiza jednego lub kilku dokumentów wklejonych do zapytania |
| Aktualność wiedzy | Po ponownym zaindeksowaniu dokumentu | Wymaga ponownego treningu | Zawsze aktualna, bo dokument dołączasz przy każdym pytaniu |
| Cytowanie źródeł | Naturalne | Praktycznie niemożliwe | Możliwe |
| Kontrola uprawnień | Filtrowanie przy wyszukiwaniu | Brak kontroli nad tym, co model zapamiętał | Kontrolujesz, co dołączasz |
| Główny koszt | Budowa i utrzymanie indeksu | Przygotowanie danych treningowych i powtarzanie treningu | Rośnie z długością każdego zapytania |
| Słaby punkt | Jakość zależy od wyszukiwania | Nie nadaje się do przechowywania faktów | Modele gorzej wykorzystują informacje ze środka długiego kontekstu |
Ostatni wiersz opiera się na badaniu „Lost in the Middle”, w którym skuteczność modeli spadała, gdy potrzebna informacja leżała w środku długiego kontekstu. Nowsze modele radzą sobie lepiej, ale nie zakładaj tego bez testu na własnych danych.
Przy małych bazach wiedzy RAG bywa zbędny. Anthropic sugeruje, że jeśli cała baza ma mniej niż około 200 tysięcy tokenów (według firmy to około 500 stron), można ją w całości umieścić w prompcie i skorzystać z cache'owania promptów.
Uprawnienia: każdy widzi tylko swoje dokumenty
To najczęściej pomijany element pierwszych wdrożeń. Jeśli do jednego indeksu trafią procedury ogólne, umowy z klientami i dokumenty kadrowe, asystent odpowie na pytanie o wynagrodzenia każdemu, kto je zada. OWASP w liście ryzyk dla aplikacji LLM wymienia wprost wyciek kontekstu między użytkownikami i grupami, które współdzielą bazę wektorową.
- Przy indeksowaniu zapisuj przy każdym fragmencie listę uprawnionych użytkowników lub grup, pobraną z systemu źródłowego.
- Filtruj wyniki na etapie wyszukiwania, na podstawie tożsamości zalogowanego użytkownika. Model nie powinien nigdy zobaczyć fragmentu, do którego pytający nie ma dostępu.
- Synchronizuj zmiany uprawnień, a nie tylko treści. Osoba odsunięta od projektu traci dostęp także w asystencie.
- Usunięcie dokumentu w źródle musi usuwać go z indeksu. Ma to też znaczenie przy realizacji żądań z RODO.
- Pamiętaj, że logi zapytań i odpowiedzi zawierają te same wrażliwe dane co dokumenty.
Jak ocenić, czy RAG działa dobrze
Bez pomiaru każda zmiana podziału na fragmenty, modelu czy promptu to zgadywanie. Zacznij od zestawu testowego: kilkudziesięciu do stu prawdziwych pytań od przyszłych użytkowników, z oczekiwanym dokumentem źródłowym i wzorcową odpowiedzią przygotowaną przez eksperta.
Mierz dwie rzeczy osobno, bo mają różne przyczyny i różne naprawy:
- Jakość wyszukiwania: czy właściwy fragment znalazł się wśród zwróconych wyników i jak wysoko. Jeśli nie, problem leży w przygotowaniu danych, podziale na fragmenty albo metodzie wyszukiwania.
- Wierność odpowiedzi: czy każde stwierdzenie w odpowiedzi wynika z dostarczonych fragmentów i czy odpowiedź dotyczy pytania. Jeśli wyszukiwanie działa, a odpowiedź jest zła, poprawiasz prompt lub model.
Biblioteki takie jak Ragas mają gotowe metryki: context precision i context recall dla wyszukiwania oraz faithfulness i response relevancy dla odpowiedzi. Część z nich używa modelu językowego jako oceniającego, więc na początku porównaj jego oceny z ocenami człowieka. Po starcie monitoruj też produkcję: pytania bez wyników, odpowiedzi „nie wiem” i oceny użytkowników.
Najczęstsze problemy z RAG i jak ich uniknąć
Zły podział na fragmenty
Fragmenty zbyt krótkie gubią kontekst, zbyt długie rozmywają dopasowanie. Przecięta tabela albo oddzielony od paragrafu wyjątek dają odpowiedzi formalnie oparte na źródle i jednocześnie błędne. Przeglądaj próbki fragmentów ręcznie, zanim zaczniesz stroić parametry.
Nieaktualne dane
Trzy wersje tej samej procedury w indeksie to przepis na sprzeczne odpowiedzi. Potrzebujesz synchronizacji ze źródłem, metadanych „obowiązuje od” i właściciela treści, który odpowiada za archiwizację starych wersji.
Skany PDF i OCR
Zeskanowany dokument bez warstwy tekstowej jest dla indeksu pustą stroną. OCR odzyska tekst, ale z błędami, zwłaszcza przy pieczątkach, słabej jakości skanach i piśmie odręcznym. Sprawdź, jaki odsetek Twoich dokumentów to skany, zanim obiecasz komukolwiek termin.
Tabele i dane liczbowe
Spłaszczona do tekstu tabela traci związek między wierszem a kolumną. Zamieniaj tabele na strukturę (np. Markdown lub HTML) albo opisuj każdy wiersz osobno. Pytania typu „ile umów wygasa w tym kwartale” w ogóle nie są zadaniem dla RAG. Wymagają zliczenia danych, więc lepiej obsłuży je zapytanie do bazy lub system raportowy, o czym piszemy w tekście o automatycznych raportach z AI.
Jak wdrożyć RAG w firmie: realistyczny plan
- Wybierz jeden obszar i jedną grupę użytkowników. Na przykład dział obsługi klienta i bazę procedur. „Wszystkie dokumenty dla wszystkich” to najczęstszy powód porażek.
- Zbierz pytania testowe. Poproś przyszłych użytkowników o pytania, które naprawdę zadają, i przygotuj wzorcowe odpowiedzi.
- Zrób audyt źródeł. Gdzie leżą dokumenty, ile jest wersji, kto jest właścicielem, jak wyglądają uprawnienia, ile jest skanów.
- Zbuduj prototyp z pomiarem. Przygotowanie dokumentów, wyszukiwanie hybrydowe, cytaty i automatyczny test na zestawie pytań od pierwszego dnia.
- Uruchom pilotaż. Niewielka grupa użytkowników, możliwość oceny każdej odpowiedzi, cotygodniowy przegląd błędów.
- Przygotuj produkcję. Synchronizacja treści i uprawnień, monitoring, zasady retencji logów, właściciel merytoryczny bazy.
- Rozszerzaj stopniowo. Kolejne źródła i działy dodawaj dopiero wtedy, gdy wyniki testów na pierwszym obszarze są stabilne.
RAG to zwykle jeden z pierwszych projektów w szerszym planie, dlatego warto osadzić go w strategii opisanej w przewodniku jak wdrożyć AI w firmie. Jeśli chcesz, żeby ktoś z doświadczeniem przeprowadził audyt źródeł i zbudował prototyp z pomiarem jakości, zajmujemy się tym w ramach naszych usług.
Najczęściej zadawane pytania
Czy RAG całkowicie eliminuje halucynacje AI?
Nie. RAG wyraźnie ogranicza zmyślanie, bo model dostaje konkretne fragmenty dokumentów, ale nadal może je źle zinterpretować albo dopowiedzieć coś od siebie. Dlatego odpowiedzi powinny zawierać cytaty, a system musi umieć odpowiedzieć „nie znalazłem tego w dokumentach”.
Czy do RAG potrzebna jest osobna baza wektorowa?
Niekoniecznie. Jeśli firma używa PostgreSQL, rozszerzenie pgvector obsługuje wyszukiwanie wektorowe i można je łączyć z pełnotekstowym wyszukiwaniem Postgresa. Elasticsearch i OpenSearch też obsługują wektory. Osobną bazę wybierz dopiero wtedy, gdy obecna infrastruktura przestanie wystarczać.
Czy dokumenty firmy trafiają do trenowania modelu?
W samym RAG dokumenty nie służą do trenowania, tylko są wklejane do kontekstu konkretnego zapytania. To, czy dostawca modelu może użyć tych danych do innych celów, zależy od umowy i planu. Przy danych firmowych korzystaj z API lub planów biznesowych, w których trenowanie na danych klienta jest domyślnie wyłączone.
Ile trwa wdrożenie RAG w firmie?
Prototyp na jednym, uporządkowanym zbiorze dokumentów da się zbudować w kilka tygodni. Najwięcej czasu zajmuje zwykle uporządkowanie źródeł, uprawnień i przygotowanie pytań testowych, a nie samo programowanie. Wdrożenie produkcyjne z synchronizacją i monitoringiem to już projekt na miesiące.
Czy RAG dobrze działa z dokumentami po polsku?
Tak, pod warunkiem że dobierzesz wielojęzyczny model embeddingów i zadbasz o wyszukiwanie słów kluczowych z uwzględnieniem polskiej fleksji, np. przez analizator języka polskiego w Elasticsearch. Bez tego zapytanie o „umowę” może nie znaleźć dokumentu, w którym występuje tylko słowo „umowy”.
Źródła
- Lewis i in. (2020): Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
- Anthropic: Introducing Contextual Retrieval
- Liu i in.: Lost in the Middle, How Language Models Use Long Contexts
- OWASP Top 10 for LLM 2025: LLM08 Vector and Embedding Weaknesses
- Ragas: dostępne metryki oceny RAG
- pgvector: wyszukiwanie wektorowe w PostgreSQL
- Elasticsearch: wtyczka analizy języka polskiego Stempel