Strona główna / Artykuły

16 architektur RAG porównanych: który wzorzec pasuje do którego problemu

Przewodnik po szesnastu wzorcach RAG w czterech poziomach, od standardowego i hybrydowego wyszukiwania po rozwiązania oparte na agentach, grafach i federacjach, wraz z planem realizacji miesiąc po miesiącu.

Wydawca: REACTAPP.TOP14 min czytania3330 słów

Źródła: I Built 16 RAG Systems From Scratch — Here’s What Actually Works

Boty czatowe, które podają wymyślone fakty, zapominają wszystko pomiędzy wiadomościami lub nie potrafią znaleźć odpowiedniego dokumentu, zazwyczaj cierpią na ten sam podstawowy problem: proces wyszukiwania zaprojektowany zbyt prostym sposobem do realizacji tego zadania. Istnieje szesnaście architektur RAG, od najprostszych procesów wyszukiwania po systemy federacyjne chroniące prywatność, a każda z nich rozwiązuje określoną słabość. Poniżej omówiono, czym jest każda z nich, w jakich sytuacjach się sprawdza oraz co odróżnia ją od pozostałych.

Trzy problemy stojące za RAG

Wielkie modele językowe są imponujące, jednak trzy podstawowe wady sprawiają, że są niewiarygodne w praktycznych zastosowaniach.

Po pierwsze, halucynacje. Model może z przekonaniem podawać fałszywe informacje, i to nie sporadycznie, lecz regularnie, ponieważ nie ma pojęcia o tym, czego nie wie. Po drugie, ograniczenie wiedzy: każdy model zostaje zamrożony po zakończeniu szkolenia i nie wie nic o wydarzeniach, które nastąpiły później. Po trzecie, niewiedza na temat danych prywatnych. Dokumenty wewnętrzne, bazy danych produktów oraz umowy z klientami nigdy nie były częścią jego szkolenia.

RAG rozwiązuje wszystkie te problemy, dostarczając modelowi przed udzieleniem odpowiedzi zestaw prawdziwych dokumentów. Porównaj te dwa sposoby działania. Bez wyszukiwania:

Without RAG:
  User: "What's our refund policy?"
  LLM:  "I believe you offer a 14-day return..." (guessing)

A wraz z nim:

With RAG:
  User: "What's our refund policy?"
  → Step 1: Search internal docs → Finds: "Refunds within 30 days..."
  → Step 2: LLM reads the doc and answers accurately
  LLM:  "Your refund policy allows returns within 30 days..."

Koncepcja jest prosta, a wyniki imponujące, chociaż system staje się coraz bardziej skomplikowany wraz z rozwijaniem się przypadków użycia. Podstawowym procesem składającym się z czterech kroków we wszystkich wariantach jest indeksowanie, wyświetlanie, uzupełnianie i generowanie.

Szesnaście wzorców w czterech poziomach

Sortowanie wzorców według ich wpływu w rzeczywistym świecie daje cztery poziomy. Pierwszy obejmuje to, czego potrzebuje mniej więcej 80% systemów produkcyjnych, natomiast pozostałe adresują specjalistyczne problemy.

Poziom 1: konieczne do znania

1. Standardowy RAG – podstawa

Poziom trudności: początkujący. Najlepszy na początku pracy. Każdy projekt RAG zaczyna się tutaj, a proces składa się z czterech etapów:

  1. Indeksowanie: dzielenie dokumentów na fragmenty, przekształcanie ich w wektory i przechowywanie w bazie danych wektorowej.
  2. Wyświetlanie: przekształcanie zapytania użytkownika w wektor i wyszukiwanie podobnych fragmentów.
  3. Uzupełnianie: włączanie znalezionych fragmentów do wiadomości do przetworzenia.
  4. Generowanie: LLM odpowiada na podstawie tego rzeczywistego kontekstu.

Podstawowy cykl mieści się w około dziesięciu liniach:

# The core loop in ~10 lines
query_embedding = embed(user_query)
relevant_docs = vector_store.search(query_embedding, top_k=5)
context = "\n".join(relevant_docs)
prompt = f"Answer using this context:\n{context}\n\nQuestion: {user_query}"
answer = llm.generate(prompt)

Jest prosty w użyciu, radzi sobie z większością rzeczywistych przypadków zastosowania, a wszystko inne opiera się na nim. Wybierz go przy tworzeniu pierwszego bota do odpowiadania na pytania na podstawie dokumentów firmowych, plików PDF, zgłoszeń obsługi klienta lub dowolnej statycznej bazy wiedzy.

2. Hybrid RAG – największy wzrost jakości

Poziom trudności: początkujący. Najlepszy, gdy ważna jest jakość wyszukiwania. Wyszukiwanie semantyczne za pomocą embeddingów pomija dokładne dopasowania słów kluczowych, natomiast wyszukiwanie słów kluczowych z użyciem BM25 pomija znaczenie, dlatego w wersji hybrydowej wykorzystuje się oba podejścia.

User: "React useState hook"
→ Semantic search finds: "state management in React components"
→ BM25 finds: docs with exact string "useState"
→ Hybrid (RRF fusion): gets the best of both

Fuzja wzajemnych rankingów (RRF) łączy dwie listy z rankami bez konieczności normalizacji ich wyników, co czyni ją elegancką i skuteczną. Wiele zespołów odnotowuje wzrost dokładności o 10 do 20 procent już dzięki tej zmianie. Nadaje się do każdego systemu produkcyjnego, szczególnie do dokumentacji kodu, podręczników technicznych i dokumentów prawniczych, gdzie ważne są zarówno dokładne terminy, jak i ich znaczenie.

3. RAG do wyszukiwania w kontekście, stworzone do dialogu

Poziom trudności: średni. Wybierz tę metodę, gdy pojawią się pytania dodatkowe. Częsty błąd polega na tym, że ktoś pyta o plan Premium, a potem o jego cenę. Standardowe RAG szuka czegoś w rodzaju „it cost” i nie znajduje nic przydatnego. Ta wersja przepisuje zapytanie, wykorzystując historię rozmowy, przed przeprowadzeniem wyszukiwania.

User turn 1: "Tell me about the Premium plan"
User turn 2: "How much does it cost?"
Before search, rewrite → "How much does the Premium plan cost?"
Now retrieve → finds the pricing document ✓

To kroku przepisywania, często nazywany kontekstualizacją zapytania, jest niezbędny w każdym botie konwersacyjnym wieloetapowym, ponieważ rozmowa się rozpada w momencie, gdy ktoś używa zaimka. Jest to wymagane, jeśli użytkownicy mogą zadawać dodatkowe pytania.

Poziom 2: przewaga konkurencyjna

4. Agentic RAG – najgorętszy trend w latach 2025 i 2026

Poziom trudności: średni. Najlepiej nadaje się wtedy, gdy bot musi robić coś więcej niż tylko wyszukiwać. Standardowy RAG pobiera jedynie dokumenty, natomiast agentic RAG dostarcza modelowi zestaw narzędzi i pozwala mu wybierać spośród nich.

User: "What was NVDA's stock return last quarter vs its historical average?"
Agentic RAG decides:
  → Use web_search tool for current stock data
  → Use calculator tool for return calculation
  → Use document_retrieval tool for historical reports
  → Synthesize all three into one answer

Agent stosuje wzorzec ReAct, łącząc rozumowanie z działaniem: zastanawia się, co robić, wykonuje to, obserwuje wynik i ponownie się zastanawia. Oznacza to planowanie i odzyskiwanie informacji w pętli. Pasuje do asystentów finansowych, narzędzi badawczych oraz narzędzi programistycznych, tam gdzie występuje kilka źródeł danych lub aktualnych informacji.

5. Self-RAG – gdy błędy są nie do przyjęcia

Poziom trudności: zaawansowany. Najlepiej nadaje się w sytuacjach, gdy dokładność ma kluczowe znaczenie. Kontrola jakości jest wbudowana w sam proces, a system nie odpowiada ślepo po odnalezieniu informacji. Informacje przechodzą przez cztery etapy weryfikacji. Pierwszy etap sprawdza, czy w ogóle konieczne jest odnalezienie danych dla danego zapytania. Drugi etap ocenia, czy znaleziony dokument jest rzeczywiście istotny. Trzeci etap sprawdza, czy odpowiedź opiera się na odnalezionych faktach, a czwarty etap ocenia, czy odpowiedź jest przydatna. Nieprzejście któregokolwiek z tych etapów oznacza, że system ponownie szuka informacji, je je poprawia lub odmawia udzielenia odpowiedzi. Systemy medyczne, sztuczna inteligencja stosowana w prawie oraz doradcy finansowi to naturalne obszary zastosowania tego rozwiązania, wszędzie tam, gdzie błędna odpowiedź może spowodować rzeczywistą szkodę.

6. HyDE RAG – most słownictwa

Poziom trudności: zaawansowany. Najlepiej sprawdza się, gdy użytkownicy mówią inaczej niż w dokumentach. HyDE to skrót od Hypothetical Document Embeddings. Wyobraź sobie użytkownika, który pyta, dlaczego rzeczy spadają, podczas gdy dokumenty mówią o przyspieszeniu grawitacyjnym wynoszącym 9,81 m/s². Obie grupy prawie nie mają wspólnego słownictwa, więc wyszukiwanie za pomocą embeddingów prawdopodobnie nie przyniesie rezultatów. Trik HyDE polega na najpierw stworzeniu fałszywej odpowiedzi i przeprowadzeniu wyszukiwania na jej podstawie.

User: "Why do things fall down?"
→ LLM generates hypothesis: "Objects fall due to gravitational force..."
→ Search with the hypothesis (technical vocabulary)
→ Find the actual document about gravitational acceleration
→ Answer using the real document

Nie wymaga żadnego szkolenia i działa od razu z każdym LLM. Nadaje się do produktów skierowanych do konsumentów, w których zwykli użytkownicy szukają informacji w dokumentacji technicznej.

Poziom 3: specjaliści o dużym wpływie

7. Graph RAG – do rozumowania relacyjnego

Poziom trudności: średni. Najlepiej nadaje się, gdy musisz odpowiedzieć na pytanie o związek między X a Y. Szukanie wektorowe znajduje podobne dokumenty, ale nie potrafi odpowiedzieć na pytania typu, które firmy są powiązane z daną osobą przynajmniej przez dwóch członków zarządu, co wymaga przeszukiwania grafu. Graph RAG tworzy graf wiedzy na podstawie dokumentów, przy czym entity stanowią węzły, a relacje – krawędzie, a zapytania przemieszczają się po tym grafie.

Text: "Dr. Chen collaborated with Dr. Patel on a 2022 study funded by NIH."
Graph nodes: Dr. Chen, Dr. Patel, 2022 study, NIH
Graph edges: COLLABORATED_WITH, FUNDED_BYQuery: "Who funded Dr. Chen's work?" → traverse: Chen → study → NIH

Największe korzyści przynosi zgodność z przepisami prawnymi, zarządzanie wiedzą, literatura naukowa oraz sieci organizacyjne.

8. Memory-Augmented RAG – bot, który pamięta o tobie

Poziom trudności: średni. Najlepiej nadaje się w sytuacjach, gdy chatbot musi pamiętać o swoich użytkownikach pomiędzy sesjami. W przypadku standardowego bota każda rozmowa zaczyna się od zera. Ta wersja dodaje trzy rodzaje pamięci: pamięć rozmowy dla bieżącej konwersacji, pamięć semantyczną zawierającą informacje o użytkowniku, takie jak preferencje dotyczące wyjaśnień technicznych, oraz pamięć epizodyczną zapisującą poprzednie sesje, np. pytanie dotyczące jakiegoś tematu z dwóch tygodni temu.

user_profile = memory.get_user_facts(user_id)
recent_context = memory.get_recent_conversations(user_id, k=3)
answer = rag_with_context(query, user_profile, recent_context)
memory.update(user_id, query, answer)

Aplikacje do korepetycji, boty ds. sukcesu klienta oraz asystenci produktywności osobistej czerpią z tego największe korzyści.

9. Modularny RAG – wymiana dowolnej części bez przepisywania kodu

Poziom trudności: średni. Najlepszy, gdy potrzebujesz szybko wprowadzać zmiany. Jest to filozofia architektoniczna, w której każdy komponent łańcucha może być wymieniany niezależnie. Przejście z FAISS na ChromaDB zajmuje jedną linię kodu, a testy A/B BM25 w porównaniu z metodami intensywnego wyszukiwania nie wymagają refaktoryzacji.

Standard RAG:   [fixed retriever] → [fixed reranker] → [fixed LLM]
Modular RAG:    [pluggable retriever] → [pluggable reranker] → [pluggable LLM]
                     ↑ swap anytime         ↑ swap anytime        ↑ swap anytime

Odbiorcami są zespoły, które aktywnie eksperymentują, badają różne rozwiązania, oraz wszelkie projekty, których technologia ma się rozwijać.

10. RAG specyficzne dla danej dziedziny, stworzone dla konkretnej branży

Poziom trudności: zaawansowany. Wybierz go do medycyny, prawa lub finansów. Skrót MI oznacza atak serca dla kardiologa, natomiast chatbot pozbawiony wiedzy specjalistycznej interpretuje go jako stan Michigan. Ogólne rozwiązania typu RAG zawodzą w specjalistycznych dziedzinach, i to nie dlatego, że proces wyszukiwania jest błędny – system po prostu nie rozumie żargonu, wymogów regulacyjnych ani ograniczeń bezpieczeństwa. Różnicę sprawiają trzy elementy: słownictwo specjalistyczne zawierające własne terminy, skróty i synonimy danej dziedziny; zasady zgodności, takie jak umieszczanie oświadczeń o wyłączeniu odpowiedzialności i cytowanie źródeł za każdym razem; oraz mechanizmy bezpieczeństwa, np. odmowa proponowania konkretnych dawek i skierowanie użytkownika do specjalisty. Typowymi zastosowaniami są wsparcie decyzji klinicznych, badania prawnicze, analiza finansowa oraz monitorowanie zgodności z przepisami.

11. Ulepszone RAG – trzy źródła i jedna odpowiedź

Poziom trudności: zaawansowany. Najlepiej nadaje się w sytuacjach, gdy potrzebne są jednocześnie dane strukturyzowane i niestrukturyzowane. Jedno zapytanie łączy bazy danych SQL lub inne strukturyzowane bazy danych w celu uzyskania dokładnych liczb, grafy wiedzy do reprezentacji relacji oraz embeddingi dokumentów do kontekstu narracyjnego.

Query: "Tell me about the Mars Exploration Program"
→ SQL: "Mars: 1.52 AU from sun, 687-day orbit"
→ Graph: Mars → explored_by → Curiosity Rover, Perseverance
→ Text: "Mars is the fourth planet... known as the Red Planet..."→ Fused Answer: Combines all three for comprehensive, expert-level response

Narzędzia badań naukowych, platformy analityki finansowej oraz bazy wiedzy korporacyjne z mieszanymi typami danych czerpią z tego korzyści.

12. RAG rekurencyjne lub wieloetapowe, do złożonych pytań

Poziom trudności: zaawansowany. Wybierz go wtedy, gdy jedno poszukiwanie nie może odpowiedzieć na pytanie. Niektóre pytania wymagają łańcucha wiedzy. Wyjaśnienie, jak wynalezienie tranzystora doprowadziło do współczesnej sztucznej inteligencji, wymaga co najmniej pięciu kroków: tranzystor, układ scalony, CPU, GPU, uczenie głębokie, LLM. RAG rekurencyjne pobiera informacje, uczy się i ponownie je pobiera.

Round 1: Retrieve about transistors → learn about miniaturization
Round 2: Retrieve about integrated circuits → learn about computing power
Round 3: Retrieve about GPUs → learn about parallel processing
Round 4: Retrieve about deep learning → learn about compute requirements
Round 5: Synthesize the full chain into a coherent answer

Asystenci badawczy, narzędzia akademickie, analiza strategiczna oraz wszelkie pytania wymagające wieloetapowej obróbki wymagają jego użycia.

Poziom 4: specjalistyczne przypadki zastosowania

13. ODQA RAG – odpowiedź na wszystko

Poziom trudności: średni. Najlepiej sprawdza się, gdy baza wiedzy jest ogromna i otwarta. Odpowiadanie na pytania z dziedzin otwartych to RAG w skali masowej, obejmujący naukę, historię, geografię i kulturę. Wyzwaniem nie jest jakość wyszukiwania, lecz radzenie sobie z zakresem tematycznym oraz rozpoznawanie sytuacji, gdy odpowiedź jest nieznana. ODQA wprowadza ocenę pewności, dzięki czemu gdy znalezione dokumenty nie zawierają odpowiedzi, system przyznaje, że nie ma pewności, i nie tworzy fałszywych informacji. Są to asystenci uniwersalne, boty do wiedzy ogólnej, platformy badawcze oraz wewnętrzne bazy wiedzy międzydziedzinowe.

14. Multi-Modal RAG – tekst, obrazy i dźwięk razem

Poziom trudności: zaawansowany. Najlepiej sprawdza się, gdy baza wiedzy zawiera obrazy, wykresy lub audio. Większość systemów RAG obsługuje tylko tekst, jednak rzeczywista wiedza przychodzi również w postaci diagramów anatomicznych, zdjęć produktów, nagrań i wykresów. System multi-modalny tworzy jeden przestrzeń embeddingów wspólną dla wszystkich modalności, dzięki czemu zapytanie tekstowe może znaleźć obraz, a zapytanie obrazowe – dokument.

User (text): "Show me the anatomy of the heart"
→ Retrieves both: text descriptions AND anatomical diagrams
→ Response includes both text explanation and relevant image

Edukacja medyczna, katalogi produktów, platformy e-learningowe oraz archiwa mediów to doskonałe zastosowania.

15. Streaming RAG, wiedza w czasie rzeczywistym

Poziom trudności: średni. Najlepiej sprawdza się, gdy informacje zmieniają się co kilka minut. Pytanie zadane o 9 rano i ponownie o 11 rano wymaga różnych odpowiedzi, jeśli dane, na których się opierają, uległy zmianie. Streaming RAG utrzymuje stale aktualizowaną bazę wiedzy, indeksując nowe dokumenty w miarę ich przybywania.

Time 9:00 AM: "What's happening with NVDA?"
→ Retrieves this morning's earnings report
Time 11:30 AM (after news breaks): "What's happening with NVDA?"
→ Retrieves the breaking news from 11:15 AM

Asystenci do wiadomości finansowych, boty obsługi na żywo, monitorowanie wydarzeń oraz tablice kontrolne operacyjne polegają na tym rozwiązaniu.

16. Federated RAG, prywatność na pierwszym miejscu i wieloźródłowość

Poziom trudności: zaawansowany. Najlepiej sprawdza się w sytuacjach, gdy dane nie mogą opuścić swojego źródła. Rozwiązuje on podstawowy konflikt w sztucznej inteligencji korporacyjnej: kilku właścicieli danych chce wspólnego systemu, ale nikt nie chce dzielić się surowymi danymi. Typowym przykładem są szpitale dostarczające dane do asystenta medycznego, ponieważ rekordy pacjentów nie mogą być scentralizowane. Każde źródło uruchamia swój własny lokalny mechanizm wyszukiwania, zapytania są wysyłane do wszystkich źródeł jednocześnie, a do systemu centralnego trafiają tylko pobrane fragmenty, a nie surowe dane.

Central Query: "What's the survival rate for treatment X?"
→ Hospital A retriever: returns relevant anonymized snippets
→ Hospital B retriever: returns relevant anonymized snippets
→ Hospital C retriever: returns relevant anonymized snippets
→ Central LLM synthesizes — never saw raw patient recordsResult: HIPAA/GDPR compliant, collaborative AI

Celem są sieci opieki zdrowotnej, konsorcja finansowe, bazy danych prawnych oraz wszelkie struktury wieloorganizacyjne wymagające zasad zarządzania danymi.

Plan wdrażania miesiąc po miesiącu

Nie wszystkie szesnaście elementów jest potrzebnych od samego początku. Większość systemów produkcyjnych rozwija się stopniowo.

Month 1:  Standard RAG           ← Get something working
Month 2:  + Hybrid RAG            ← Biggest retrieval quality win
Month 3:  + Contextual Retrieval  ← Multi-turn conversations work now
Month 4:  + Self-RAG              ← Stop hallucinations
Month 5:  + Agentic capabilities  ← Tools beyond just search
This covers 80-90% of production RAG needs.

Łączenie wzorców

Systemy produkcyjne niemal zawsze łączą kilka wzorców. Kilka przykładów:

  • Chatbot korporacyjny łączy wzorce Standard, Hybrid, Contextual i Memory, aby umożliwić rozmowy wieloetapowe, skuteczne wyszukiwanie informacji oraz personalizację.
  • Pomocnik medyczny łączy wzorce Domain-Specific, Self-RAG i Enhanced, ponieważ ważna jest dokładność, a dane są ustrukturyzowane.
  • Narzędzie badawcze łączy wzorce Agentic, Hybrid i Recursive, aby radzić sobie z złożonymi pytaniami, wymagającymi wielu kroków i różnych narzędzi.
  • Obsługa klienta łączy wzorce Standard, Contextual i Streaming, aby umożliwić dalsze kroki i aktualizacje w czasie rzeczywistym.
  • Badania prawnicze łączą wzorce Domain-Specific, Graph i Hybrid, aby analizować relacje pomiędzy elementami oraz uzyskiwać dokładne cytaty.
  • Analizator wiadomości łączy wzorce Streaming, ODQA i Multi-Modal, aby przetwarzać dane w czasie rzeczywistym, obsługiwać szeroki zakres tematów oraz obrazy.

Szybki wybór

Dla pierwszego bota do odpowiadania na pytania w kontekście dokumentów zacznij od Standard RAG. Aby uzyskać lepsze wyniki wyszukiwania w środowisku produkcyjnym, dodaj Hybrid. Bot do rozmów wieloetapowych wymaga Contextual Retrieval, natomiast bot korzystający z narzędzi lub API potrzebuje wersji agentic. Wysoka dokładność w medycynie lub prawie sugeruje użycie Self-RAG, natomiast osoby niebędące ekspertami pracujące z dokumentacją techniczną powinny wybrać HyDE. Pytania relacyjne wymagają Graph RAG, osobisty asystent z funkcją Memory-Augmented, eksperymenty z różnymi rozwiązaniami – Modular, a dziedziny regulowane – Domain-Specific. Mieszane dane strukturalne i niestrukturalne nadają się do Enhanced RAG, pytania wieloetapowe do Recursive RAG, a zadania ogólne do ODQA. Obrazy i dźwięk wymagają rozwiązania Multi-Modal, dane w czasie rzeczywistym – Streaming, a środowiska wieloorganizacyjne podlegające HIPAA lub GDPR – Federated.

Uruchamianie przykładów

Każda implementacja ma służyć do bezpośredniego uruchomienia: sklonuj repozytorium, zainstaluj wymagane oprogramowanie, ustaw klucz API OpenAI i rozpocznij od pierwszego wzorca.

# Clone the repo
git clone https://github.com/Manjunadh86/RAG-Materials.git
cd RAG-Materials
# Install dependencies
pip install -r requirements.txt# Set your OpenAI API key
export OPENAI_API_KEY="sk-your-key-here"# Run your first RAG system
cd 01-Standard-RAG
python hands_on.py

Każdy moduł zawiera plik README, który wyjaśnia koncepcję, architekturę oraz sytuacje, w których należy go używać, a także dostępny do uruchomienia skrypt do modyfikacji, z komentarzami do każdego kroku.

RAG rozwija się szybko. Systemy agentowe stają się coraz bardziej zaawansowane, techniki pozyskiwania informacji w wielu formatach dojrzewają, a podejścia federacyjne nabierają znaczenia wraz z coraz bardziej rygorystycznymi wymogami dotyczącymi zarządzania sztuczną inteligencją. Najlepszym sposobem na naukę RAG jest jego tworzenie.