Co to jest RAG i dlaczego to ważne?
RAG (Retrieval Augmented Generation) to technika która łączy model językowy z Twoją własną bazą wiedzy. Zamiast polegać wyłącznie na tym, czego model nauczył się podczas trenowania, RAG pozwala mu najpierw wyszukać relevantną informację z Twoich dokumentów, a dopiero potem sformułować odpowiedź.
Efekt: asystent który mówi "strzyżenie klasyczne kosztuje 80 zł" zamiast "nie posiadam aktualnych informacji o cenach w tym salonie" — albo co gorsza, podaje wymyśloną kwotę.
Bez RAG:
- AI odpowiada na podstawie wiedzy z trenowania (odcięta data)
- Nie zna Twoich dokumentów, cenników, procedur
- Halucynuje — podaje brzmiące wiarygodnie, ale błędne dane
Z RAG:
- AI przeszukuje Twoją bazę wiedzy przed odpowiedzią
- Odpowiada tylko na podstawie Twoich danych
- Jeśli nie znajdzie informacji — mówi wprost że nie wie
Czego potrzebujesz?
Trzy komponenty:
- Model AI (mózg) — w tym tutorialu: OpenAI GPT-4.1 mini (tani, szybki)
- Baza wektorowa (pamięć) — Qdrant, open-source, instalujesz na swoim serwerze
- Silnik automatyzacji — n8n, który to wszystko łączy
Plus serwer VPS — bo asystent który działa tylko gdy masz otwarty laptop to nie asystent, to zabawka.
Krok 1: Baza wektorowa Qdrant na Docker
Qdrant to baza danych specjalnie zaprojektowana do przechowywania embeddingów (wektorowych reprezentacji tekstu). Open-source, działa lokalnie, zero opłat licencyjnych.
Dodaj do swojego docker-compose.yml:
YAML1 2 3 4 5 6 7 8 9 10services: qdrant: image: qdrant/qdrant:latest ports: - "6333:6333" volumes: - qdrant_data:/qdrant/storage volumes: qdrant_data:
Kluczowe szczegóły:
- Port 6333 — port API Qdrant (używasz tego wewnątrz sieci Docker)
- Port 6334 — port zewnętrzny (jeśli potrzebujesz dostępu z zewnątrz)
- Volume
qdrant_data— bez tego po restarcie serwera asystent traci całą wiedzę
Uruchom:
Bash1docker compose up -d
Sprawdź czy działa: http://twoj-serwer:6333/dashboard
Krok 2: Workflow zasilający bazę danymi
W n8n tworzysz workflow który wczytuje Twoje dokumenty i ładuje je do Qdrant. Składa się z kilku węzłów:
Węzły:
- Manual Trigger — uruchamiasz raz, gdy dodajesz nowe dokumenty
- Read Binary Files — wczytuje PDF, DOCX lub TXT z dysku
- Extract Document Text — wyciąga tekst z pliku
- Recursive Character Text Splitter — dzieli tekst na kawałki (chunki)
- Qdrant Vector Store — zapisuje chunki do bazy
Ustawienia Text Splittera:
- Chunk size: 500 — wielkość kawałka. Przy cennikach: tyle żeby zmieścić jedną usługę z ceną
- Chunk overlap: 50 — zakładka między kawałkami, żeby żaden kontekst nie został ucięty na granicy
Ustawienia Qdrant:
- URL:
http://qdrant:6333(adres wewnątrz sieci Docker) - Collection name: nazwa Twojej kolekcji, np.
cennik_firmy - Embedding model:
text-embedding-3-small(OpenAI) — musi być identyczny w tym węźle i w węźle agenta
Po uruchomieniu workflow zobaczysz w Qdrant ile dokumentów (chunks) zostało zaindeksowanych. Dla 2-stronicowego cennika to zazwyczaj 6-15 wpisów.
Krok 3: Agent który odpowiada na pytania
Drugi workflow obsługuje rozmowę. Schemat:
Chat Trigger → Agent → Qdrant Tool + OpenAI Embedding
Chat Trigger
Domyślnie chat jest widoczny tylko wewnętrznie. Gdy zaznaczysz "Make chat publicly available" — dostajesz publiczny URL który możesz osadzić na stronie.
Konfiguracja Agenta:
- Chat Model:
gpt-4.1-mini(szybki i tani do Q&A) - Memory: włącz — agent będzie pamiętał kontekst rozmowy
- Tool: Qdrant Vector Store
- Operation mode: Retrieve Documents (As Tool)
- Collection: nazwa Twojej kolekcji
- Limit: 4 (ile fragmentów z bazy agent dostaje przy każdym pytaniu)
- Description:
Use this tool any time you get a question on chat
- Embedding:
text-embedding-3-small— dokładnie ten sam model co przy zasilaniu bazy
System prompt agenta:
Odpowiadaj tylko na podstawie danych z bazy wektorowej.
Jeśli tej informacji tam nie ma, napisz że nie wiesz.
Nie szukaj wiedzy w innych miejscach.
To kluczowe. Bez tego ograniczenia agent będzie "pomagał" i odpowiadał z ogólnej wiedzy modelu — co niszczy cały sens RAG.
Jak to wygląda w działaniu?
Po uruchomieniu chatu:
Pytanie: Ile kosztuje pietruszka na targu?
Agent: Nie posiadam tej informacji. W czym mogę pomóc?
Pytanie: Ile kosztuje proste strzyżenie?
Agent: Strzyżenie klasyczne (maszynka + nożyczki) kosztuje 80 zł.
Źródło: Cennik Salon Prestige Cut and Glow.
Agent sięga do Qdrant, pobiera 4 najbardziej pasujące fragmenty, buduje odpowiedź wyłącznie na ich podstawie. Jeśli informacji nie ma w Twoich dokumentach — nie zmyśla.
Koszty
| Składnik | Koszt |
|---|---|
| Qdrant (self-hosted) | 0 zł |
| n8n (self-hosted) | 0 zł |
| OpenAI API (embeddingi + odpowiedzi) | ~kilka zł / miesiąc przy normalnym użyciu |
| VPS (np. 2 vCPU, 4GB RAM) | 25-50 zł / miesiąc |
Łącznie: 30-55 zł miesięcznie za asystenta który zna Twoje dane i odpowiada 24/7.
Agencja za podobne rozwiązanie policzy 5 000 - 20 000 zł jednorazowo plus abonament.
Co możesz zasilić bazą?
Qdrant przechowuje tekst — więc wszystko co możesz zamienić na tekst:
- Cenniki i oferty — asystent obsługi klienta który zna ceny
- Baza FAQ — odpowiada na najczęstsze pytania
- Procedury wewnętrzne — onboarding, instrukcje dla pracowników
- Umowy i regulaminy — prawnik AI który przeszukuje dokumenty
- Strona internetowa — chatbot który zna Twoją ofertę
Dalej
Film z budową tego systemu od zera znajdziesz na YouTube — zobaczyć konfigurację Qdrant, workflow n8n i agenta w działaniu:
[Własne AI, które nie kłamie — RAG z n8n i Qdrant (YouTube)](
)
Jeśli chcesz wdrożyć RAG w swojej firmie bez konfigurowania infrastruktury samodzielnie — porozmawiajmy. Umów konsultację →
