Wróć do listy artykułów

    Jak zbudować prywatnego asystenta AI na własnej dokumentacji (RAG w 5 krokach)

    Zespół SkySysNet10 czerwca 202610 min czytania
    Jak zbudować prywatnego asystenta AI na własnej dokumentacji (RAG w 5 krokach)

    Po co firmie własny asystent AI

    ChatGPT odpowie Ci na pytania o świat. Ale nie odpowie, jak wygląda procedura serwisowa modelu X w Twojej firmie, kto był odpowiedzialny za projekt Y w 2023 albo co mówi załącznik 3 do umowy z klientem Z.

    RAG (Retrieval-Augmented Generation) rozwiązuje ten problem: AI najpierw przeszukuje Twoją bazę dokumentów, wybiera istotne fragmenty i dopiero potem generuje odpowiedź. W efekcie dostajesz asystenta, który zna Twoją firmę od środka — bez wysyłania dokumentów do OpenAI.

    Czym RAG różni się od fine-tuningu

    Dwa podejścia, które ludzie często mylą:

    Fine-tuning — uczenie modelu od nowa na Twoich danych. Drogie (GPU, czas, ekspertyza), trwałe, ale model "pamięta" tylko to, co widział podczas treningu. Nowe dokumenty wymagają retrainingu.

    RAG — model pozostaje niezmieniony. Twoje dokumenty są indeksowane do bazy wektorowej. Przy każdym pytaniu system wyszukuje 3-10 najtrafniejszych fragmentów i wstrzykuje je do promptu. Tani, szybki w aktualizacji, idealny dla baz wiedzy, które się zmieniają.

    Dla 95% wdrożeń firmowych RAG jest właściwym wyborem. Fine-tuning ma sens dopiero, gdy potrzebujesz specyficznego stylu pisania albo wąskiej domeny.

    Stack on-premise

    Co konkretnie stawiamy u klienta:

    1. LLM: Llama 3 8B lub 70B (przez Ollama lub vLLM).
    2. Embeddingi: nomic-embed-text lub bge-large-en-v1.5 (też lokalnie).
    3. Baza wektorowa: Qdrant (open-source, on-prem).
    4. Orkiestracja: LangChain albo LlamaIndex.
    5. Frontend: Open WebUI z SSO, albo własny React.
    6. Hardware: serwer z RTX 4090 (dla 8B) lub A100 (dla 70B).

    Wszystko działa offline. Dane nigdy nie opuszczają sieci klienta.

    Krok 1: Audyt dokumentów

    Najgorszy błąd to wrzucić wszystko, co firma ma na dyskach. RAG na chaosie daje chaotyczne odpowiedzi.

    Co robimy na początku:

    • Lista źródeł: SharePoint, Confluence, Google Drive, mailboxy, repo, intranet.
    • Klasyfikacja: które dokumenty są aktualne, które nieaktualne, które poufne.
    • Wybór subzbioru: zaczynamy od 200-2000 dokumentów z jednego obszaru (np. procedury HR, dokumentacja produktu, baza wiedzy supportu).
    • Polityka aktualizacji: kto, jak często, według jakiej reguły dodaje nowe dokumenty do bazy.

    Bez tego kroku 3 miesiące później klient zgłasza: "AI mówi nieprawdę". Bo bierze treść z dokumentu z 2019, który nikt nie usunął.

    Krok 2: Indeksacja (chunking + embeddingi)

    Dokumenty są tnięte na fragmenty (chunki) o długości 300-800 tokenów z 50-100 tokenowym overlapem. Każdy fragment idzie do modelu embeddingowego, który zamienia go na wektor liczbowy (typowo 768 lub 1024 wymiarów).

    Wektory są zapisywane w Qdrant razem z metadanymi (źródło, data, autor, sekcja, tagi). Metadane są kluczowe — dzięki nim można filtrować: "tylko procedury HR z 2025", "tylko dokumenty oznaczone jako 'aktualne'".

    Pułapki:

    • Tabele i obrazy — proste chunkowanie tekstu je gubi. Trzeba użyć parsera (Unstructured.io, LlamaParse), który rozumie strukturę.
    • PDF skanowane — wymaga OCR (Tesseract, Azure Document Intelligence on-prem).
    • Załączniki w mailu — często mają najwięcej wiedzy, ale są pomijane przez systemy indeksujące.

    Krok 3: Retrieval (wyszukiwanie)

    Gdy użytkownik pisze pytanie, system robi cztery rzeczy:

    1. Pytanie idzie do modelu embeddingowego.
    2. Wektor pytania jest porównywany z wektorami w Qdrant (cosine similarity).
    3. Zwracane jest top-K najbliższych fragmentów (typowo 5-10).
    4. Opcjonalnie reranker (np. bge-reranker-large) sortuje je dokładniej.

    Dla większych baz dodajemy hybrid search — kombinacja wektorowego + klasycznego BM25 (Elasticsearch lub Qdrant BM25). To daje lepsze wyniki dla zapytań z konkretnymi nazwami (numery dokumentów, kody, nazwiska).

    Krok 4: Generation (LLM odpowiada)

    Wyselekcjonowane fragmenty są wklejane do promptu razem z pytaniem użytkownika i instrukcjami systemowymi. Typowy prompt wygląda tak:

    Jesteś asystentem firmy X. Odpowiadaj wyłącznie na podstawie poniższych
    fragmentów dokumentacji firmowej. Jeśli nie znajdziesz odpowiedzi we
    fragmentach, powiedz "Nie znalazłem odpowiedzi w bazie wiedzy".
    Zawsze cytuj numer dokumentu źródłowego.
    
    [FRAGMENT 1] ...
    [FRAGMENT 2] ...
    ...
    
    Pytanie użytkownika: ...
    

    Llama 3 70B odpowiada, dodając numery źródeł. Frontend renderuje odpowiedź z klikalnymi cytatami do oryginalnych dokumentów.

    Krok 5: Ewaluacja i poprawki

    Po wdrożeniu testujemy z prawdziwymi pytaniami od pracowników:

    • Czy odpowiedź jest poprawna? (manualnie, na próbie 100-200 pytań).
    • Czy cytuje właściwe źródła?
    • Czy halucynacje są pod kontrolą? (model nie wymyśla informacji, których nie ma w bazie).
    • Czy odmawia, gdy nie wie? (zamiast zmyślać).

    Typowe ulepszenia po pierwszym tygodniu:

    • Dodanie reguł filtrowania (pomiń dokumenty starsze niż 2 lata).
    • Zwiększenie K (z 5 do 10 fragmentów).
    • Reranker dla pytań trudnych.
    • Lepsze chunkowanie tabel.
    • Aktualizacja embeddingów dla nowo dodanych dokumentów (cron co noc).

    Bezpieczeństwo i kontrola dostępu

    W firmie z różnymi działami nie chcesz, żeby asystent HR-u widział dokumenty księgowości.

    Co budujemy:

    • Filtry metadanych przy retrieval: SSO przekazuje rolę użytkownika do RAG-a, query do Qdrant ma filter: { department: "HR" }.
    • Logi zapytań: kto, co, kiedy pytał — przechowywane lokalnie, retention np. 90 dni.
    • Polityka dostępu do dokumentów: ACL na poziomie fragmentów (Qdrant payload filtering).
    • Tryb "explain": użytkownik może zobaczyć dokładnie, które fragmenty model zobaczył.

    Koszty wdrożenia

    Realistyczne widełki:

    • Pilot (jeden obszar, 500-1000 dokumentów, RTX 4090) — 25-45 tys. zł.
    • Wdrożenie produkcyjne (RAG na całej firmie, A100, integracje) — 80-150 tys. zł.
    • Utrzymanie miesięczne — 2-5 tys. zł (monitoring, aktualizacje, dokupy modeli).

    Zwrot widzimy zwykle w 6-9 miesięcy na czasie oszczędzonym przez supportowców, prawników, konsultantów i HR-owców, którzy przestają szukać dokumentów ręcznie.

    Checklist startowy

    Zanim zaczniesz wdrożenie RAG, sprawdź:

    • Wybrany obszar pilotażowy (jeden dział, jeden typ dokumentów).
    • Lista 200-2000 dokumentów do indeksacji.
    • Polityka aktualizacji bazy (kto, jak często).
    • Wymagania dostępowe (czy potrzebujesz ACL per rola).
    • Sprzęt — czy masz serwer GPU, czy zaczynamy od chmury prywatnej.
    • Plan ewaluacji — kto testuje odpowiedzi w pierwszych 2 tygodniach.

    Co dalej

    Jeśli chcesz, umówimy konsultację AI on-premise — pokażemy działający proof-of-concept RAG-a na Twoich dokumentach przed podjęciem decyzji o pełnym wdrożeniu. Możesz też przeczytać porównanie ChatGPT Enterprise i lokalnego Llama 3 zanim zdecydujesz o architekturze.

    Powiązane artykuły

    Zanim wyślesz zapytanie, sprawdź podstawy

    Checklista pomaga szybko ocenić monitoring, backup, dostępność usług i odpowiedzialność za krytyczne elementy IT.

    Pobierz checklistę

    Potrzebujesz pomocy z infrastrukturą IT?

    Doradzimy, zaprojektujemy i wdrożymy rozwiązanie dopasowane do Twojej firmy.