Agent AI na własnych danych bez RAG — n8n i Gemini z Google Drive
Slug: agenci-ai/agent-ai-wlasne-dane-n8n-gemini
"Jak sprawić, żeby agent n8n odpowiadał na pytania z moich własnych danych?" — to jedno z najczęstszych pytań, które pojawiają się od osób stawiających pierwsze kroki z automatyzacją AI.
Zazwyczaj pada wtedy odpowiedź: "Zbuduj RAG". Wektorowa baza danych, embeddingi, retrieval pipeline — brzmi profesjonalnie. Ale często jest to rozwiązanie znacznie bardziej skomplikowane niż problem, który chcesz rozwiązać. Jeśli masz katalog produktów z 200 pozycjami, FAQ klientów w kilku plikach Worda i raport miesięczny — RAG to armata na komara.
W tym artykule pokażę alternatywę, która działa sprawnie dla małych i średnich zbiorów danych: bezpośrednie wklejenie treści dokumentów do kontekstu modelu. Dwa workflowy w n8n, Google Drive jako źródło, Gemini 2.0 Flash jako silnik.
Film: Jak zbudować agenta AI na własnych danych?
https://youtube.com/watchv9KeJxewdQ
Poniżej pełny tutorial z wyjaśnieniem kiedy RAG jest zbędny i jak podpiąć własne dane.
Tokeny i okno kontekstowe — podstawy, które musisz rozumieć
Zanim przejdziemy do konfiguracji, chwila teorii. Bez zrozumienia tokenów nie ocenisz, czy to podejście w ogóle Ci się opłaca.
Token to podstawowa jednostka tekstu dla modeli językowych. Jeden token to mniej więcej 0,75 słowa. Prościej: kartka A4 z typową gęstością tekstu to około 750 tokenów.
Każde wywołanie API modelu językowego kosztuje — płacisz za tokeny wejściowe (to, co wysyłasz: pytanie + kontekst danych) i tokeny wyjściowe (odpowiedź modelu). Ważna uwaga: dostęp przez API to nie to samo co subskrypcja ChatGPT czy Gemini Advanced. To dwa oddzielne produkty z oddzielnymi cennikami.
Okno kontekstowe to maksymalna liczba tokenów, którą model może przetworzyć w jednym wywołaniu — łącznie wejście i wyjście.
Gemini 2.0 Flash ma okno kontekstowe równe milion tokenów. To mniej więcej 1000 stron A4. Raport finansowy Apple (121 stron) zajmuje zaledwie 10% tego okna. Jeśli Twoje dane firmowe mieszczą się w kilkudziesięciu plikach — prawdopodobnie wejdą w całości do jednego wywołania.
Szacunkowe koszty Gemini 2.0 Flash (dane orientacyjne, zawsze sprawdź aktualny cennik w Google AI Studio):
| Operacja | Koszt orientacyjny |
|---|---|
| 1 strona A4 tekstu wejściowego | < 0,01 USD |
| 10-stronicowy katalog produktów | ~0,05 USD |
| Kompletna baza wiedzy 100 stron | ~0,50 USD |
Dla małego lub średniego biznesu z kilkuset dokumentami — to groszowe koszty operacyjne.
RAG vs wklejanie danych — kiedy co wybrać?
Nie ma jednej dobrej odpowiedzi. Są za to jasne kryteria:
| Kryterium | Wklejaj dane bezpośrednio | Użyj RAG |
|---|---|---|
| Liczba dokumentów | < 1000 plików | > 10 000 plików |
| Łączna objętość | Mieści się w oknie kontekstowym | Przekracza okno kontekstowe |
| Aktualność danych | Rzadkie zmiany (1-2x/tydzień) | Dane zmieniają się kilka razy dziennie |
| Złożoność wdrożenia | Godziny | Dni lub tygodnie |
| Infrastruktura | Tylko n8n | n8n + baza wektorowa + pipeline embeddingów |
| Koszt infrastruktury | Minimalny | Hosting bazy wektorowej |
RAG jest niezbędny gdy masz dziesiątki tysięcy dokumentów, potrzebujesz milisekundowych czasów wyszukiwania albo dane zmieniają się w czasie rzeczywistym. Jeśli prowadzisz agencję, sklep z kilkuset produktami albo firmę usługową z własną bazą wiedzy — proste podejście opisane w tym artykule wystarczy.
Jeśli jednak Twoja skala wymaga RAG, sprawdź artykuł o budowaniu chatbota RAG z n8n i Qdrant.
Architektura rozwiązania — dlaczego dwa oddzielne workflowy?
Rozwiązanie składa się z dwóch workflowów:
Workflow 1 — Synchronizacja danych (uruchamiany rzadko): pobiera pliki z Google Drive, ekstrahuje tekst, zapisuje do pliku tymczasowego.
Workflow 2 — Agent chat (uruchamiany przy każdym pytaniu): wczytuje plik z danymi, wkleja do kontekstu agenta, odpowiada na pytanie.
Dlaczego rozdzielone? Gdyby agent pobierał pliki z Drive przy każdym pytaniu, każde wywołanie wymagałoby autentykacji z Google API, pobrania i ekstrakcji plików — dodatkowe opóźnienie 3-10 sekund. Rozdzielenie synchronizacji od chatu sprawia, że agent odpowiada szybko, a dane są odświeżane tylko gdy to potrzebne (według harmonogramu lub gdy pojawi się nowy plik).
Workflow 1 — synchronizacja danych z Google Drive
Ten workflow pobiera pliki z wybranego folderu Drive, zamienia je na tekst i zapisuje jako jeden plik JSON.
Węzły krok po kroku
1. Trigger
Możesz użyć jednego z trzech wyzwalaczy zależnie od potrzeb:
Manual Trigger— uruchamiasz ręcznie po zmianach w dokumentachSchedule Trigger— np. codziennie o 7:00Google Drive Trigger— automatycznie przy dodaniu nowego pliku do folderu
2. Google Drive — Search Files
Węzeł Google Drive → operacja Search Files.
Ustaw filtr: szukaj plików w folderze o nazwie sample (lub innym, gdzie trzymasz dokumenty wiedzy). Węzeł zwróci listę plików z metadanymi (ID, nazwa, typ MIME).
3. Google Drive — Download Files
Drugi węzeł Google Drive → operacja Download File. Ustaw na przetwarzanie wszystkich plików z poprzedniego kroku (Process All Items).
Węzeł zwraca dane w formacie binarnym dla każdego pliku.
4. Extract from File
Węzeł Extract from File — obsługuje PDF, DOCX, XLSX, TXT. Konwertuje dane binarne na tekst płaski. Podłącz wyjście z poprzedniego węzła.
5. Edit Fields
Węzeł Edit Fields — utwórz mapowanie:
filename → {{ $json.fileName }}
content → {{ $json.text }}
Każdy item na tym etapie to jeden plik z nazwą i tekstem.
6. Code — łączenie plików w jeden obiekt
Węzeł Code (JavaScript) zbiera wszystkie pliki w jedną strukturę:
JavaScript1 2 3 4 5 6 7 8 9const knowledge = {}; for (const item of $input.all()) { const filename = item.json.filename; const content = item.json.content; knowledge[filename] = content; } return [{ json: { knowledge } }];
Efektem jest jeden obiekt JSON, gdzie klucze to nazwy plików, a wartości to ich treść.
7. Convert to JSON File
Węzeł Convert to/from Binary → konwertuje obiekt JSON na plik binarny .json.
8. Write Binary File
Węzeł Write Binary File → zapisuje plik do:
/tmp/knowledge.json
Gotowe. Po uruchomieniu tego workflow w /tmp/knowledge.json masz skompresowaną bazę wiedzy gotową do użycia przez agenta.
Workflow 2 — agent z Gemini i wklejonym kontekstem
Ten workflow obsługuje rozmowy użytkownika z agentem.
Węzły krok po kroku
1. Chat Trigger
Węzeł Chat Trigger — standardowy wyzwalacz czatu n8n. Udostępnia endpoint do rozmowy.
2. Read Binary File
Węzeł Read Binary File → ścieżka: /tmp/knowledge.json
Ten węzeł wczytuje plik z danymi za każdym razem gdy użytkownik zadaje pytanie.
3. AI Agent z Gemini 2.0 Flash
Węzeł AI Agent z modelem Gemini 2.0 Flash.
Kluczowa część to system prompt. Wklej do niego zawartość pliku JSON jako kontekst:
Jesteś pomocnym asystentem firmowym. Odpowiadaj WYŁĄCZNIE na podstawie poniższych danych — nie wymyślaj informacji spoza bazy wiedzy. Jeśli nie znasz odpowiedzi, powiedz o tym wprost.
=== BAZA WIEDZY ===
{{ $('Read Binary File').item.json.data }}
=== KONIEC BAZY WIEDZY ===
Pytanie użytkownika: {{ $json.chatInput }}
Wyrażenie $('Read Binary File').item.json.data pobiera treść pliku z poprzedniego węzła.
Dlaczego Gemini 2.0 Flash a nie GPT-4? Flash ma najszersze dostępne okno kontekstowe (1M tokenów) przy niskich kosztach. Dla zadań polegających na przeszukiwaniu i streszczaniu danych firmowych jest wystarczająco dokładny, a znacznie tańszy od modeli Premium.
Wyniki i koszt — co agent potrafi?
Przykładowe sesje
Założenie: baza wiedzy zawiera listę klientów i katalog produktów w kilku plikach.
Użytkownik: Kto jest moim klientem?
Agent: Na podstawie pliku clients.txt Twoimi klientami są:
- Sara Ito (branża: fintech)
- Marek Kowalski (branża: logistyka)
- Anna Nowak (branża: e-commerce)
Użytkownik: Jak nazywa się klient Sara?
Agent: Klientka o imieniu Sara to Sara Ito.
Użytkownik: Jakie produkty mamy w ofercie do 500 zł?
Agent: Na podstawie katalogu produktów (catalog.xlsx):
- Produkt A — 299 zł
- Produkt C — 449 zł
- Produkt F — 499 zł
Agent nie wymyśla — odpowiada tylko na podstawie danych z pliku. Jeśli informacja nie istnieje w bazie, odpowiada "Nie mam tej informacji w dostępnej bazie wiedzy."
Szacunek kosztów
Przykładowy scenariusz: firma usługowa z bazą wiedzy 50 stron (FAQ, cennik, lista klientów):
- Synchronizacja danych: 1x dziennie, koszt pomijany (brak wywołań LLM)
- Każde pytanie agenta: ~50 stron × 750 tokenów/stronę = ~37 500 tokenów wejściowych
- Gemini 2.0 Flash: ~$0.075 / 1M tokenów wejściowych
- Koszt jednego pytania: ~$0.003 (0,01 zł)
50 pytań dziennie to koszt ok. 15 groszy. Miesięcznie — około 4,50 zł.
Warto też sprawdzić artykuł o serwisie OCR dla PDF z FastAPI, Python i n8n, jeśli Twoje dokumenty to skany lub pliki PDF bez warstwy tekstowej.
Dalej w tym klastrze
- RAG chatbot z n8n i Qdrant — gdy Twoje dane rosną powyżej tysiąca dokumentów i potrzebujesz wektorowego wyszukiwania
- Serwis OCR dla PDF z FastAPI, Python i n8n — jak przetworzyć skany i PDF-y bez warstwy tekstowej na wejście dla agenta
Masz własne dane firmowe i chcesz zbudować agenta, który je obsługuje? Umów spotkanie z Kacprem — zaprojektujemy rozwiązanie dopasowane do Twojej skali.
