Build radar
Źródła 33Wiadomości zawsze najświeższe
0 Newsletter
Animowana ilustracja do wpisu: RAG krok po kroku: od dokumentów do odpowiedzi ze źródłem
Zautomatyzuj · Pamięć agentów · Poradnik · 10 min czytania

RAG krok po kroku: od dokumentów do odpowiedzi ze źródłem

Podział na fragmenty, embeddingi, wyszukiwanie hybrydowe z BM25 i dołączanie wyników do prompta. Co robić po kolei i jak sprawdzić, że RAG naprawdę działa.

W skrócie
  • RAG dzieli dokumenty na fragmenty, zamienia je na embeddingi i przy pytaniu dokłada najbardziej pasujące do prompta.
  • Wyszukiwanie semantyczne warto łączyć z BM25, bo ten drugi lepiej łapie dokładne kody i nazwy.
  • Dodanie kontekstu do fragmentów obniżyło odsetek nieudanych wyszukiwań w badaniu Anthropic o 35–49%, a skuteczność zawsze sprawdzaj własnym zestawem pytań.

Zanim zbudujesz RAG, sprawdź, czy go potrzebujesz. Jeśli twoja baza wiedzy zmieści się w oknie kontekstu, najprostsze będzie wstawienie jej do prompta, o czym piszę w artykule o pamięci agenta. Gdy dokumentów jest więcej, RAG przestaje być fanaberią. Poniżej cały proces od dokumentów do odpowiedzi, oparty na opisie z tekstu Anthropic o Contextual Retrieval.

Krok 1: podział na fragmenty

Pierwszy krok to rozcięcie dokumentów na mniejsze kawałki, zwykle nie dłuższe niż kilkaset tokenów. Powód jest prosty: do prompta chcesz dołączyć kilka najbardziej pasujących akapitów, a nie całe książki. Anthropic zwraca uwagę, że wybór rozmiaru fragmentu, jego granic i nakładania się sąsiednich fragmentów wpływa na wyniki wyszukiwania. Dobra praktyka to cięcie po naturalnych granicach, takich jak nagłówki i akapity, zamiast po stałej liczbie znaków, i zachowanie przy każdym fragmencie informacji o tytule dokumentu oraz sekcji.

Krok 2: embeddingi i baza wektorowa

Każdy fragment zamieniasz na wektor liczb, czyli embedding, który koduje znaczenie tekstu. Robi to osobny model embeddingowy, oferowany między innymi w dokumentacji Anthropic i OpenAI. Wektory zapisujesz w bazie, która umie szukać po podobieństwie. W czasie pytania zamieniasz pytanie na wektor tym samym modelem i pobierasz fragmenty o najbliższych wektorach. Ten wzorzec opisała praca o RAG z 2020 roku, gdzie pamięć zewnętrzna to gęsty indeks wektorowy dokumentów.

Krok 3: dołóż wyszukiwanie słów kluczowych

Embeddingi świetnie łapią sens, ale potrafią przegapić dokładne dopasowanie. Przykład z tekstu Anthropic: zapytanie o „Error code TS-999” w bazie wsparcia technicznego. Model embeddingowy znajdzie treści o kodach błędów w ogóle, a może nie trafić w dokładny ciąg TS-999. Tu pomaga starsza technika BM25, funkcja rankingowa oparta na dopasowaniu słów, rozwijająca ideę TF-IDF. Rozwiązanie hybrydowe wykonuje oba wyszukiwania, łączy i usuwa duplikaty z wyników techniką fuzji rankingów, a następnie bierze najlepsze fragmenty.

  1. 01
    FragmentyDziel po nagłówkach i akapitach.
  2. 02
    EmbeddingiWektor dla każdego fragmentu.
  3. 03
    BM25Indeks słów kluczowych obok wektorów.
  4. 04
    WyszukiwanieOba sposoby, potem fuzja wyników.
  5. 05
    PromptDołącz najlepsze fragmenty z podpisem źródła.
  6. 06
    OcenaMierz trafność na własnych pytaniach.

Krok 4: dodaj kontekst do fragmentów

Częsty problem polega na tym, że fragment wyrwany z dokumentu traci kontekst. Zdanie „przychód wzrósł o 3% w porównaniu z poprzednim kwartałem” nie mówi, o jaką firmę i okres chodzi. Contextual Retrieval rozwiązuje to, doklejając do każdego fragmentu krótki opis (zwykle 50–100 tokenów) wygenerowany przez model na podstawie całego dokumentu, zanim fragment trafi do embeddingu i indeksu BM25. W eksperymentach autorów kontekstowe embeddingi obniżyły odsetek nieudanych wyszukiwań w 20 najlepszych fragmentach o 35% (z 5,7% do 3,7%), a połączenie z kontekstowym BM25 o 49% (do 2,9%). To wyniki z ich zbiorów danych, więc u ciebie mogą wyglądać wyraźnie inaczej i trzeba je zweryfikować.

Krok 5: prompt, źródła i pomiar

Do prompta dołączasz najlepsze fragmenty i prosisz o odpowiedź wyłącznie na ich podstawie, z podaniem, z którego fragmentu pochodzi każde twierdzenie. W badaniu Anthropic z liczb 5, 10 i 20 fragmentów najlepiej wypadło 20, ale zastrzeżono, że nadmiar informacji bywa rozpraszający, więc wartość dobierasz eksperymentem. Najważniejsza uwaga w całym procesie brzmi: zawsze uruchamiaj ewaluacje. Zbuduj zestaw pytań z oczekiwanymi źródłami i zmierz, jak często właściwy fragment trafia do wyników, zanim zaczniesz stroić model odpowiadający. Jak taki pomiar zorganizować, opisuję w artykule Jak ocenić agenta, zanim mu zaufasz.

Na koniec zadbaj o to, co psuje RAG po cichu: nieaktualne dokumenty. W praktyce to częstsza przyczyna złych odpowiedzi niż wybór modelu embeddingowego. Ustal, kto i jak często odświeża indeks, i zapisuj datę źródła obok fragmentu, żeby odpowiedź mogła ostrzec, że informacja jest stara. O pojęciach przeczytasz w haśle słownika o RAG.

Stan wiedzy: 20 października 2026. Narzędzia do wektorów i modele embeddingowe zmieniają się często; zasady procesu pozostają te same.

Najczęstsze pytania

Jak duże powinny być fragmenty?
Anthropic opisuje fragmenty rzędu kilkuset tokenów, ale rozmiar, granice i nakładanie się fragmentów wpływają na wyniki, więc traktuj je jako parametry do przetestowania na własnych danych.
Dlaczego potrzebuję BM25, skoro mam embeddingi?
Embeddingi dobrze oddają znaczenie, ale mogą pominąć dokładne dopasowania, na przykład kod błędu. BM25 szuka konkretnych słów i ciągów znaków, więc oba podejścia się uzupełniają.
Ile fragmentów dołączać do prompta?
W badaniu Anthropic z opcji 5, 10 i 20 najlepiej wypadło 20, ale więcej informacji bywa też rozpraszające. Wybierz liczbę eksperymentem na własnych pytaniach.
Skąd wiem, że RAG działa?
Przygotuj zestaw pytań z oczekiwanymi źródłami i mierz, jak często właściwy fragment trafia do wyników. Bez takiego pomiaru oceniasz tylko wrażenie.

Źródła

Pamięć agentów

Powiązane