Icon
 Oferta PDF						Oferta PDF Icon
 Napisz						Napisz Icon
 Zadzwoń						Zadzwoń Icon
 Projekty						Projekty
Wróć do listy

Asystent AI z RAG na prywatnej infrastrukturze

Wyzwanie

Większość dzisiejszych projektów z asystentami AI działa według tego samego schematu: wysłanie zapytania użytkownika do hostowanego API modelu językowego i odebranie odpowiedzi.
Wymagania klienta wykluczały takie podejście. Musieliśmy zbudować i uruchomić cały stos AI – model językowy, embeddingi, wyszukiwanie wektorowe, składanie kontekstu – na serwerach klienta, przy ograniczonych zasobach GPU.
Cztery ograniczenia wpłynęły na nasze decyzje techniczne.

Prywatność danych
Profile użytkowników, historia konwersacji i dokumenty źródłowe nie mogły opuszczać serwerów klienta. To wykluczyło hostowane API AI.
Budżet sprzętowy
System musiał działać na ograniczonych zasobach GPU, co ograniczało rozmiar wykorzystywanych modeli.
Wielojęzyczność
Asystent musiał obsługiwać wiele języków – przełączając się naturalnie w zależności od danych wejściowych użytkownika.
Dane na żywo
Asystent musiał pracować z codziennie aktualizowanymi rekordami, a nie ze statycznymi informacjami.
Szukasz doświadczonego zespołu programistycznego? Porozmawiajmy o konkretach.
Rozwiązanie
Architekturacztery warstwy

Warstwa aplikacji
Obsługuje routing, uwierzytelnianie i zarządzanie sesjami

Platforma AI
Uruchamia modele językowe lokalnie, bez zewnętrznych wywołań sieciowych

Baza wektorowa
Przechowuje reprezentacje dokumentów i wyszukuje podobieństwa w celu pobrania kontekstu

Transport czasu rzeczywistego
Strumieniuje odpowiedzi AI na frontend, zapewniając responsywność interfejsu

Pipeline RAG

Gdy użytkownik wysyła wiadomość, najpierw przechodzi ona przez warstwę zabezpieczeń (guardrail), która sprawdza zagrożenia bezpieczeństwa.

Po walidacji wiadomość trafia do modelu językowego, który decyduje, jakich informacji potrzebuje do udzielenia odpowiedzi. W zależności od zapytania model wywołuje konkretne narzędzia retrieval – przeszukując dokumenty polityk, rekordy pracownicze lub jedno i drugie.

Wyszukiwanie działa na zasadzie podobieństwa wektorowego. Zapytanie jest embeddowane za pomocą wielojęzycznego modelu, a następnie dopasowywane do zapisanych wektorów w PostgreSQL przez podobieństwo cosinus. Wyniki można filtrować po metadanych (np. region).

Pobrany kontekst jest następnie składany w prompt razem z danymi profilu użytkownika i ostatnią historią konwersacji – wszystko skompresowane tak, by zmieścić się w budżecie tokenów modelu. Model generuje odpowiedź na podstawie tego połączonego kontekstu. Output jest streamowany do frontendu w czasie rzeczywistym przez Mercure/SSE – użytkownik widzi odpowiedź w trakcie jej pisania, zamiast czekać na pełny rezultat.

Co zbudowaliśmy

Indeksowanie dokumentów
Zautomatyzowane narzędzia do ładowania i wektoryzacji plików z politykami.

Pipeline synchronizacji rekordów
Codzienny import i czyszczenie danych z zewnętrznego API.

Narzędzia retrieval
Wyspecjalizowane funkcje wyszukiwania dostępne dla agenta AI.

Zarządzanie sesjami
Systemy obsługi profili użytkowników i historii czatów w ramach ścisłych ograniczeń.

Wyzwania techniczne i ich rozwiązania

Self-hosting asystenta AI na ograniczonym sprzęcie oznacza rozwiązywanie problemów, które hostowane API rozwiązują za Ciebie – lub całkowicie ignorują.

Bezpieczeństwo modelu, budżetowanie kontekstu, jakość embeddingów i przetwarzanie danych – wszystko to wymagało opracowania.

Każde ograniczenie kierowało nas w stronę rozwiązań trudniejszych w budowie, ale dających klientowi pełną kontrolę nad kosztami, prywatnością i zachowaniem systemu.

Produkcyjne AI na ograniczonych zasobach
Większość zaawansowanych modeli wymaga znacznych zasobów sprzętowych. Wybraliśmy kompaktowy model z silnym wsparciem wielojęzycznym i wydajnym działaniem na ograniczonym sprzęcie. Architektura RAG kompensuje mniejszy rozmiar modelu, wstrzykując konkretny kontekst w momencie zapytania.
Obrona przed prompt injection
Mniejsze modele mogą być bardziej podatne na manipulację ze strony użytkowników. Wdrożyliśmy wielowarstwową obronę, w tym guardrails oparte na wektorach, które sprawdzają zapytania na podstawie list dozwolonych/zabronionych zanim trafią do modelu, oraz specjalistyczne techniki zabezpieczania promptów.
Zarządzanie oknem kontekstu
Aby zmieścić się w limitach danych, każdy komponent został skompresowany. Obejmowało to ograniczenie historii konwersacji, wstępne streszczanie dokumentów na etapie indeksowania oraz usuwanie zbędnych pól z wyników narzędzi.
Jakość embeddingów i przetwarzanie danych
Rekordy źródłowe różniły się jakością i długością. Wdrożyliśmy automatyczne parsowanie i filtrowanie w celu oczyszczania danych, zastosowaliśmy ustrukturyzowane streszczanie przed wektoryzacją oraz ręczną segmentację dużych dokumentów według tematów, aby zapewnić lepszą trafność wyszukiwania.
The scope of our actions
Warsztaty

Wspólnie z klientem uczestniczymy w warsztatach, aby lepiej poznać jego wizję i zapewnić idealne dopasowanie do oczekiwań.

Warsztaty
Baza danych

Projektujemy i implementujemy wydajne oraz skalowalne bazy danych, zapewniając solidne fundamenty dla strony internetowej.

Baza danych
Analiza i konsultacje

Rozpoczynamy od głębokiego zrozumienia potrzeb klienta oraz celów projektu, aby zapewnić spersonalizowane rozwiązania.

Analiza i konsultacje
Audyt technologii

Przeprowadzamy szczegółowy audyt technologiczny, identyfikując najlepsze narzędzia i rozwiązania dostosowane do potrzeb projektu.

Audyt technologii
Kodowanie front-end (interface)

Tworzymy responsywne i dynamiczne interfejsy użytkownika, wykorzystując najnowsze technologie front-endowe.

Kodowanie front-end (interface)
Testy manualne

Przeprowadzamy kompleksowe testy manualne, weryfikując działanie każdej funkcjonalności na różnych, dostępnych na rynku urządzeniach, zapewniając bezbłędne działanie i wysoką jakość produktu.

Testy manualne
Wdrożenie / Release

Wdrażamy stronę internetową na serwerze produkcyjnym, zapewniając płynny przebieg procesu oraz minimalizując ewentualne zakłócenia.

Wdrożenie / Release
Opieka gwarancyjna

Udzielamy 12-miesięcznej gwarancji na wykonane prace, zapewniając klientowi pełne bezpieczeństwo i pewność działania strony internetowej po jej uruchomieniu.

Opieka gwarancyjna
Stack technologiczny

Produkcyjny asystent RAG działający na ograniczonym prywatnym sprzęcie, przetwarzający dziennie dziesiątki tysięcy rekordów, obsługujący wielojęzyczne zapytania ze współdzielonej przestrzeni wektorowej – przy zerowym wypływie danych poza infrastrukturę i zerowych kosztach per token.

Framework backendowy
Nowoczesny framework enterprise Symfony 8
Platforma AI
Ollama – lokalne środowisko hostingu modeli (alternatywnie Bedrock)
Modele
Wielojęzyczne modele językowe i embeddingowe
Baza danych
PostgreSQL z pgvector – rozwiązanie bazodanowe z obsługą wektorów
Komunikacja
Server-Sent Events – strumieniowanie w czasie rzeczywistym i asynchroniczna obsługa wiadomości
Szukasz doświadczonego zespołu programistycznego? Porozmawiajmy o konkretach.
Skontaktuj się z nami
Marcin Stawowiak
Marcin Stawowiak
Co-founder, Executive Manager
Szukasz doświadczonego zespołu programistycznego?
Porozmawiajmy o konkretach.
Smultron Web Development
ul. Sławkowska 12
31-014 Kraków
NIP: 6762482785