Buduję automatyzacje i systemy AI, które działają produkcyjnie i pozostają w ruchu — z porządną obsługą błędów, twardymi granicami bezpieczeństwa i decyzjami, które da się prześledzić.
Trzy systemy, które zbudowałam i które prowadzę. Każdy rozwiązuje problem, którego nie da się rozwiązać prostą automatyzacją.
System odbiera przychodzące połączenia i prowadzi rozmowę po niemiecku w czasie rzeczywistym. Ustala sprawę, sprawdza wolne terminy w prawdziwym kalendarzu Google, rezerwuje termin i na koniec potwierdza go podsumowaniem. Ta sama logika obsługuje też SMS-y. Jeśli porozumienie staje się niepewne albo dzwoniący ma życzenie wykraczające poza przewidziany scenariusz, system przekazuje rozmowę człowiekowi — zamiast zgadywać.
Rozmowa telefoniczna nie wybacza opóźnień. Gdy między końcem wypowiedzi a odpowiedzią mija więcej niż mniej więcej dwie sekundy, rozmówca sprawia wrażenie nieobecnego, a ludzie zaczynają mówić albo się rozłączają. Jednocześnie po kolei wykonują się trzy kosztowne obliczeniowo kroki: zamiana mowy na tekst, wygenerowanie odpowiedzi, zamiana tekstu z powrotem na mowę.
Druga trudność jest poważniejsza i przy budowaniu widać ją dopiero późno: model językowy może napisać „Rezerwuję teraz dla Pana termin”, nie uruchamiając w rzeczywistości rezerwacji. Dzwoniący odkłada słuchawkę zadowolony, a w kalendarzu nie ma nic.
Termin, który został potwierdzony, ale nie istnieje, wyrządza więcej szkody niż rozmowa trwająca dwie sekundy dłużej.
Rozpoznawanie mowy i synteza głosu działają jako strumień danych, a nie jako zamknięte zapytania. Rozpoznawanie dostarcza wyniki pośrednie już w trakcie mówienia. Na syntezę głosu system nie czeka do końca, tylko dekoduje ją na bieżąco — gdy tylko pojawią się pierwsze użyteczne dane audio, bloki po 20 milisekund idą na linię telefoniczną. Zmierzony rozruch syntezy głosu to mediana 193 milisekund. Dodatkowo system rozpoznaje, gdy dzwoniący wchodzi w słowo, i natychmiast przerywa własną wypowiedź. Bez tego rozpoznawania przerwań asystent głosowy brzmi jak automatyczna zapowiedź.
W samym modelu językowym świadomie zrezygnowałam ze strumieniowania odpowiedzi. Przy typowych krótkich zdaniach zysk czasu wyniósłby od zera do 150 milisekund — w zamian asystent mógłby zapowiedzieć rezerwację, zanim kalendarz w ogóle został sprawdzony. Ta decyzja jest udokumentowana w projekcie i podjęta świadomie.
Każda rezerwacja bezpośrednio przed wpisem do kalendarza jeszcze raz sprawdza dostępność dokładnie tego samego terminu — niezależnie od tego, którą drogą została uruchomiona. Jeśli model językowy zapowie rezerwację tylko w tekście, nie wywołując narzędzia rezerwacji, serwer wymusza to wywołanie, kontroluje dane i dopiero potem wykonuje rezerwację. Numer przekazany przez sieć telefoniczną pozostaje zawsze zweryfikowanym numerem głównym; inny numer podany w rozmowie zapisywany jest dodatkowo, ale nigdy go nie zastępuje. Dzięki temu źle zrozumiane słowo nie może nadpisać prawdziwego numeru kontaktowego.
Jeśli rozpoznawanie mowy odczyta wypowiedź z pewnością niższą niż 75 procent, system nie zgaduje, tylko uprzejmie prosi o powtórzenie. Dla krótkich potwierdzeń w rodzaju „tak” czy „pasuje” obowiązuje osobny, niższy próg, bo krótkie słowa są systematycznie gorzej oceniane. Puste wyniki rozpoznawania powstające w trakcie własnej wypowiedzi są odrzucane, żeby system nie odpowiadał na własne echo. Przy pytaniach o poradę medyczną, wyraźnej prośbie o pracownika albo niedostępnym kalendarzu system przekazuje rozmowę człowiekowi. Limit kosztów pięciu euro dziennie, maksymalnie osiem minut na rozmowę i limit na numer telefonu zapobiegają temu, żeby błąd albo nadużycie niepostrzeżenie generowały koszty.
Wiele firm pracuje na oprogramowaniu, które nie udostępnia użytecznego interfejsu — rozbudowywane latami systemy branżowe, starsze systemy administracyjne, portale dostawców. Przenoszenie danych między takimi systemami w praktyce oznacza: ktoś je przepisuje ręcznie. Ten agent przejmuje dokładnie to zadanie.
Klasyczne podejście to automatyzacja, która klika w stałe pozycje na ekranie albo czepia się technicznych identyfikatorów w kodzie strony. Jedno i drugie psuje się, gdy tylko ktoś zmieni układ, przesunie kolumnę albo oprogramowanie dostanie aktualizację. W praktyce znaczy to: automatyzację trzeba poprawiać po każdej zmianie — i przestaje działać dokładnie wtedy, kiedy nikt się tego nie spodziewa.
Agent nie szuka trzeciego pola od góry, tylko pola z etykietą Nazwisko.
Agent przy każdym kroku ogląda stronę na nowo — jako obraz i dodatkowo przez strukturę dostępności, która opisuje znaczenie elementów. Po każdej akcji sprawdza, czy oczekiwany rezultat rzeczywiście nastąpił: czy wartość naprawdę jest w polu? czy nawigacja się odbyła? czy podsumowanie pokazuje właściwe dane? Dopiero potem następuje kolejny krok. Dla dowodu demo zawiera przycisk, który zmienia układ strony docelowej — zamienia kolumny, przeformułowuje etykiety, zmienia wygląd. Właśnie na tym wykłada się klasyczna automatyzacja.
Strona internetowa może zawierać tekst skierowany nie do człowieka, lecz do agenta — ukryte polecenia, które mają nadpisać właściwe zadanie. Jedna ze stron demonstracyjnych zawiera dokładnie coś takiego. Agent zasadniczo nie traktuje treści strony jako polecenia, oznacza taką próbę w protokole i pracuje dalej na prawdziwych danych. Dla automatyzacji działającej na cudzych portalach to nie jest temat poboczny.
Agent pracuje w twardych granicach. Jeden przebieg może wykonać najwyżej 60 kroków i potem się przerywa, zamiast próbować w nieskończoność. Jeśli pewność akcji spada poniżej 60 procent, agent jej nie wykonuje, tylko przedstawia do zatwierdzenia — ze zrzutem ekranu i uzasadnieniem. Określone słowa na przyciskach są zablokowane: usuń, zapłać, kup, ostatecznie potwierdź. Gdy model zwróci nieużyteczną odpowiedź, zapytanie ponawiane jest najwyżej dwa razy, a potem przebieg kończy się w kontrolowany sposób. Powtarzające się nawigacje pod ten sam adres agent rozpoznaje, zamiast chodzić w kółko. Każdy krok zapisywany jest ze zrzutem ekranu, uzasadnieniem, wartością pewności i kosztem — przerwane przebiegi można wznowić z pełną historią.
Sklep internetowy codziennie generuje te same decyzje: co trzeba domówić, w jakiej ilości, u którego dostawcy? Które zapytanie klienta da się obsłużyć standardowo, a które wymaga człowieka? Agent podejmuje te decyzje samodzielnie — i uzasadnia każdą z nich w sposób możliwy do prześledzenia.
Prosta reguła w rodzaju „stan poniżej dziesięciu, więc zamawiamy” w praktyce nie działa. Jeden dostawca dostarcza wyłącznie w paletach po 24 sztuki. Inny nalicza dopłatę poniżej 50 sztuk — wtedy 50 wychodzi taniej niż 30. Trzeci potrzebuje zimą czternastu zamiast pięciu dni. Do tego dochodzą wzorce dni tygodnia i sezonowość. Właściwa wielkość zamówienia to więc nie próg, tylko rozważenie.
Twarde reguły biznesowe siedzą w kodzie. Model językowy nie może ich obejść — po prostu widzi je jako dane z góry.
Decyzja przebiega na dwóch rozdzielonych poziomach. Twarde reguły biznesowe siedzą w kodzie programu: wielkości palet, ilości minimalne, granice budżetu, blokady. Model przejmuje tylko to rozważenie ponad nimi, którego nie obejmuje żadna sztywna reguła. Każdą propozycję uzasadnia zwykłym językiem: dlaczego ta ilość, dlaczego ten moment, dlaczego ten dostawca. To, jak samodzielnie może działać, ustawia się w czterech stopniach — od samego proponowania po samodzielne uruchamianie. Na obecnie ustawionym stopniu może samodzielnie zlecać zamówienia do 500 euro; powyżej przedstawia je do decyzji, nawet jeśli jest swojej sprawy pewien.
Przy sprzecznych danych system nie zgaduje, tylko przedstawia sprawę. Kolejny przebieg nie zakłada drugiego wniosku dla towaru, dla którego czeka już otwarte zatwierdzenie — podwójne zamówienia w ogóle nie mogą powstać. Jeśli model językowy odpowie w formacie niezgodnym z oczekiwaną strukturą, zapytanie ponawiane jest raz, a potem sprawa jest eskalowana. Dodatkowo system co tydzień porównuje własne prognozy z rzeczywistym przebiegiem — mierzy więc własną skuteczność, zamiast ją deklarować.
Poza tym w codziennym użyciu działają kolejne moje systemy — między innymi do automatycznego researchu i przygotowania danych oraz do tworzenia treści.
Trzy zasady, które u mnie należą do zakresu dostawy i nie są przedmiotem osobnych negocjacji.
Obsługa błędów, logika ponawiania, monitoring i limity kosztów należą do zakresu dostawy. System, który działa tylko w idealnym przypadku, nie jest skończony.
Na życzenie całość działa self-hosted na własnych serwerach, bez chmury amerykańskiej. Dla branż, które nie mogą wypuścić danych poza firmę.
Wymagania zbieram sama i sama je wdrażam — bez pętli tłumaczenia. Po niemiecku, polsku lub serbsku.
Od 2022 roku prowadzę własną działalność w obszarze automatyzacji i systemów cyfrowych. Wcześniej obsługa klienta i administracja — tam nauczyłam się, jak wyglądają procesy, które dziś automatyzuję.
Urodzona i wychowana w Wiedniu. Polski jest moim językiem ojczystym, po niemiecku i serbsku mówię na poziomie ojczystym, bez akcentu. W projektach z bezpośrednim kontaktem z klientem to jest regularnie ten punkt, w którym się zacina — móc zebrać wymagania, zrozumieć je i potem samodzielnie wdrożyć oszczędza całą pętlę tłumaczenia.
Jasne warunki, żebyśmy szybko przeszli do rzeczy.
Jednorazowe wdrożenie z ryczałtem za uruchomienie albo bieżąca opieka jako ryczałt miesięczny. Współpraca na fakturę (B2B) lub umowa o dzieło. Obszar działania: Austria, Niemcy i Szwajcaria.
Proszę mi powiedzieć, który proces kosztuje u Państwa czas — powiem uczciwie, czy automatyzacja się dla niego opłaca.
Odpowiedź zwykle w ciągu kilku godzin.
Dane zgodnie z § 5 ECG i § 25 MedienG (prawo austriackie)
Adriana Cukaj
[uzupełnić adres]
Austria
E-mail: adrianacukaj@gmail.com
Telefon: +43 676 3584739
Usługi w zakresie automatycznego przetwarzania danych i informatyki
[uzupełnić po rejestracji działalności]
[uzupełnić, jeśli istnieje]
Przed publikacją uzupełnić w całości i dać do sprawdzenia prawnikowi.
Adriana Cukaj, [adres], adrianacukaj@gmail.com
Jeśli skontaktują się Państwo ze mną mailowo lub telefonicznie, przekazane dane przetwarzam wyłącznie w celu obsługi zapytania. Podstawa prawna: art. 6 ust. 1 lit. b i f RODO.
Zapytania są usuwane, gdy tylko zostaną załatwione i nie stoją temu na przeszkodzie ustawowe obowiązki przechowywania.
Przy połączeniu z numerem demonstracyjnym rozmowa jest transkrybowana i protokołowana w celu kontroli działania. Asystent informuje o tym na początku rozmowy. Zapisy są usuwane po 30 dniach.
Mają Państwo prawo do informacji, sprostowania, usunięcia, ograniczenia przetwarzania, przenoszenia danych i sprzeciwu. Organem nadzorczym jest austriacki organ ochrony danych.
Linkowane aplikacje demonstracyjne działają na Replit. Przy ich otwarciu dane połączenia są przekazywane do tego dostawcy.
Przed publikacją uzupełnić w całości i dać do sprawdzenia prawnikowi.