Wyzwanie
Klient na stronie inwestycji chce wiedzieć jedno: czy to mieszkanie jest jeszcze wolne i ile kosztuje. Deweloper miał już asystenta AI, ale w próbie porównawczej wyszły błędy, których w sprzedaży nie można zaakceptować. Lokal zarezerwowany opisywał jako dostępny, na pytanie o trzy pokoje podawał mieszkania dwupokojowe, a liczbę wolnych lokali liczył z bazy wiedzy zamiast z oferty.
Drugim problemem była architektura. Poprzednie rozwiązanie obsługiwało jednego klienta i trudno było je rozwijać. Chcieliśmy platformy, na którą można bezpiecznie wpiąć kolejnych deweloperów, z osobnymi danymi, limitami kosztów i panelem.
Podejście
Przyjęliśmy zasadę, że liczby i ceny pochodzą wyłącznie z danych na żywo. Twarde kryteria, takie jak liczba pokoi, budżet czy inwestycja, rozwiązuje zwykłe zapytanie do bazy, a model dostaje pełną listę pasujących lokali, nie próbkę. Wyszukiwanie semantyczne zostało do pytań opisowych: o okolicę, standard, terminy.
Model wybraliśmy po teście sześciu kandydatów pod kątem trafności, odporności na ataki, kosztu i czasu do pierwszego słowa. Tam, gdzie zakaz w instrukcji dla modelu okazywał się zbyt słaby, regułę egzekwuje kod. Przykład: podsumowania rozmów sprawdza osobny filtr, bo sam prompt nie wystarczał.
Wdrożenie
Platformę zbudowaliśmy od zera jako system wielu klientów: API, panel z rozmowami i leadami, widget osadzany na stronie (ok. 5,5 KB) oraz wtyczkę WordPress. Ofertę można zasilić z pliku, feedu, WordPressa albo z danych publikowanych na dane.gov.pl. Duże wycofania lokali czekają na zatwierdzenie, żeby błąd w imporcie nie wyczyścił oferty.
Bezpieczeństwo ma kilka warstw: niewidoczna weryfikacja ruchu, izolacja danych klientów na poziomie bazy (RLS), filtr prób prompt injection przed modelem i strażnik na wyjściu, który przerywa odpowiedź przy próbie wycieku instrukcji. Przełączenie pierwszego klienta odbyło się 29 września 2026, ze starym systemem utrzymanym jako ścieżka powrotu.
Wyniki
W teście porównawczym na 106 scenariuszach nowa wersja wygrała 81 razy, zremisowała 18 i przegrała 6. Odpowiedzi ze zmyślonymi faktami spadły z 5 do 0. Średnia ocena trafności wzrosła z 3,38 do 4,16 w skali 1-5, a mediana długości odpowiedzi skróciła się z 403 do 178 znaków. Oceniał niezależny model-sędzia, bez wiedzy, która wersja jest nowa.
Optymalizacja promptu pod cache obniżyła koszt jednej odpowiedzi o 59%, a czas do pierwszego słowa spadł z 1,6 do 0,85 s. W testach bezpieczeństwa asystent odparł 20 z 20 prób ataku. Wpływ na liczbę zapytań sprzedażowych będziemy mierzyć po pełnym sezonie.











