Adriana Cukaj · AI automatizacija i integracija procesa

Tri sistema. Svi rade. Proverite sami.

Gradim automatizacije i AI sisteme koji rade u produkciji i ostaju u pogonu — sa urednom obradom grešaka, čvrstim bezbednosnim granicama i odlukama koje se mogu proveriti.

Glasovni asistent
Prima pozive
Vodi razgovor na nemačkom, proverava kalendar, zakazuje termine, a u slučaju nedoumice prosleđuje razgovor čoveku.
Pozovi demo
Test broj glasovnog asistenta
+43 670 3015023
Agent za pregledač
Radi sa sistemima bez interfejsa
Prenosi podatke između aplikacija koje nemaju API — i prepoznaje manipulisan sadržaj stranica.
Pokreni demo
Otvara se u novom prozoru
Operativni agent
Odlučuje i dokumentuje
Prati zalihe, odlučuje o naručivanju i obrazlaže svaku odluku običnim jezikom.
Pogledaj kontrolnu tablu
Otvara se u novom prozoru
Skroluj

Šta ovi sistemi umeju

Tri sistema koja sam napravila i koja održavam. Svaki rešava problem koji se jednostavnom automatizacijom ne može rešiti.

01
01
Glasovni asistent
AI glasovni asistent za telefoniju

Sistem prima dolazne pozive i vodi razgovor na nemačkom u realnom vremenu. Utvrđuje o čemu se radi, proverava slobodne termine u pravom Google kalendaru, zakazuje termin i na kraju ga potvrđuje sažetkom. Ista logika obrađuje i SMS poruke. Ako sporazumevanje postane nesigurno ili pozivalac ima zahtev van predviđenog toka, sistem prosleđuje razgovor čoveku — umesto da nagađa.

Tehnički izazov

Telefonski razgovor ne oprašta kašnjenje. Čim između kraja izgovorene rečenice i odgovora prođe više od otprilike dve sekunde, sagovornik deluje odsutno, a ljudi počinju da govore ili spuštaju slušalicu. Istovremeno se jedan za drugim izvršavaju tri računski zahtevna koraka: pretvaranje govora u tekst, generisanje odgovora, pretvaranje teksta nazad u govor.

Druga teškoća je ozbiljnija i uočava se tek kasno: jezički model može u tekstu da kaže „Zakazujem Vam sada termin”, a da rezervaciju zapravo ne pokrene. Pozivalac zadovoljno spusti slušalicu, a u kalendaru nema ničega.

Termin koji je potvrđen, a ne postoji, pravi više štete nego razgovor koji traje dve sekunde duže.
Kako sam to rešila

Prepoznavanje govora i sinteza glasa rade kao tok podataka, a ne kao zatvoreni upiti. Prepoznavanje isporučuje međurezultate već dok se govori. Sistem ne čeka da sinteza glasa bude gotova, već je dekodira u hodu — čim se pojave prvi upotrebljivi audio podaci, blokovi od 20 milisekundi idu na telefonsku liniju. Izmereni start sinteze glasa je medijana od 193 milisekunde. Dodatno, sistem prepoznaje kada pozivalac upadne u reč i odmah prekida sopstveni govor. Bez tog prepoznavanja prekida glasovni asistent zvuči kao automatska poruka.

Kod samog jezičkog modela svesno sam odustala od strimovanja odgovora. Kod tipičnih kratkih rečenica dobitak u vremenu bio bi između nula i 150 milisekundi — a zauzvrat bi asistent mogao da najavi rezervaciju pre nego što je kalendar uopšte proveren. Ta odluka je dokumentovana u projektu i doneta namerno.

Rezervacije koje ne mogu da promaše

Svaka rezervacija neposredno pre upisa u kalendar još jednom proverava dostupnost tačno istog termina — bez obzira na to kojim putem je pokrenuta. Ako jezički model najavi rezervaciju samo u tekstu, bez pozivanja alata za rezervaciju, server iznuđuje taj poziv, kontroliše podatke i tek onda izvršava rezervaciju. Broj koji prosledi telefonska mreža uvek ostaje verifikovani glavni broj; drugi broj naveden u razgovoru se dodatno čuva, ali ga nikada ne zamenjuje. Tako pogrešno shvaćena reč ne može da prepiše pravi kontakt broj.

Šta se dešava kada nešto pođe naopako

Ako prepoznavanje govora protumači izjavu sa sigurnošću manjom od 75 procenata, sistem ne nagađa, već ljubazno moli za ponavljanje. Za kratke potvrde tipa „da” ili „odgovara” važi poseban, niži prag, jer se kratke reči sistematski lošije ocenjuju. Prazni rezultati prepoznavanja koji nastaju tokom sopstvenog govora se odbacuju, da sistem ne bi odgovarao na sopstveni eho. Kod pitanja o medicinskom savetu, izričite molbe za zaposlenog ili nedostupnog kalendara sistem prosleđuje razgovor čoveku. Limit troškova od pet evra dnevno, najviše osam minuta po pozivu i ograničenje po telefonskom broju sprečavaju da greška ili zloupotreba neprimetno stvaraju troškove.

PythonFastAPIWebSocketsTwilio Deepgram Nova-2ElevenLabsOpenAI Function Calling Google CalendarFFmpegSQLite
Sinteza glasa
193 ms
izmerena medijana do prvog audio bloka na liniji
Pokrivenost testovima
0
automatizovanih testova, poslednji put svi prošli
Limit troškova
5 € / dan
dodatno najviše osam minuta po pozivu
Tok razgovora · isečak
Pozivalac
Dobar dan, želeo bih da zakažem termin.
Asistent
Dobar dan! Naravno. O čemu se radi kod tog termina?
Pozivalac
Konsultacije, najradije sledeće nedelje u utorak.
Asistent
U utorak 18. imam slobodno u 10:00 i u 14:30. Odgovara li Vam neki od njih?
Pozivalac
14:30 bi bilo savršeno.
Asistent
Odlično. Koristiću broj sa kog upravo zovete — termin je upisan. Prijatno!
Na početku razgovora asistent napominje da je reč o AI sistemu. Pre svakog upisa u kalendar server ponovo proverava dostupnost. Razgovor se vodi na nemačkom, ovde je u prevodu.
02
02
Agent za pregledač
Agent za pregledač za sisteme bez interfejsa

Mnoge firme rade sa softverom koji ne nudi upotrebljiv interfejs — godinama razvijana granska rešenja, stariji administrativni sistemi, portali dobavljača. Prenos podataka između takvih sistema u praksi znači: neko ih prekucava. Ovaj agent preuzima upravo taj posao.

Tehnički izazov

Klasičan pristup bila bi automatizacija koja klikće na fiksne pozicije na ekranu ili se kači na tehničke identifikatore u kodu stranice. Oboje se lomi čim neko promeni raspored, pomeri kolonu ili softver dobije ažuriranje. U praksi to znači: automatizaciju treba doterivati posle svake izmene — i otkazuje tačno onda kada niko to ne očekuje.

Agent ne traži treće polje odozgo, već polje sa oznakom Prezime.
Kako sam to rešila

Agent na svakom koraku iznova posmatra stranicu — kao sliku i dodatno preko strukture pristupačnosti, koja opisuje značenje elemenata. Posle svake akcije proverava da li je očekivani rezultat zaista nastupio: da li vrednost stvarno stoji u polju? da li se navigacija dogodila? da li rezime pokazuje prave podatke? Tek onda sledi naredni korak. Kao dokaz, demo sadrži dugme koje menja raspored ciljne stranice — zamenjuje kolone, preformuliše oznake, menja izgled. Upravo na tome pada klasična automatizacija.

Zaštita od manipulisanog sadržaja stranica

Veb stranica može da sadrži tekst koji nije upućen čoveku, već agentu — skrivena uputstva koja treba da prepišu pravi zadatak. Jedna od demo stranica sadrži tačno to. Agent načelno ne tretira sadržaj stranice kao nalog, obeležava taj pokušaj u protokolu i nastavlja rad sa pravim podacima. Za automatizaciju koja radi na tuđim portalima to nije sporedna tema.

Šta se dešava kada nešto pođe naopako

Agent radi unutar čvrstih granica. Jedan prolaz sme da napravi najviše 60 koraka i posle toga se prekida, umesto da pokušava beskonačno. Ako sigurnost akcije padne ispod 60 procenata, agent je ne izvršava, već je podnosi na odobrenje — sa snimkom ekrana i obrazloženjem. Određene reči na dugmadima su zaključane: obriši, plati, kupi, konačno potvrdi. Kada model vrati neupotrebljiv odgovor, upit se ponavlja najviše dva puta, a zatim se prolaz kontrolisano prekida. Ponovljene navigacije na istu adresu agent prepoznaje, umesto da se vrti u krug. Svaki korak se čuva sa snimkom ekrana, obrazloženjem, vrednošću sigurnosti i troškom — prekinuti prolazi mogu da se nastave sa punom istorijom.

PythonPlaywrightChromium Claude Sonnet 4.5 (razumevanje slike)struktura pristupačnosti strukturirano upravljanje akcijamalista dozvoljenih domenaHuman-in-the-Loop
Pokrivenost testovima
0
automatizovanih testova, poslednji put svi prošli
Složen prolaz
35 koraka
tri kompletne porudžbine izvršene jedna za drugom
Prag odobrenja
0
ispod toga agent ne izvršava, već podnosi na odluku
PREUmetni snimak ekrana:
agent-vorher.png
POSLEUmetni snimak ekrana:
agent-nachher.png
Pre
Posle
Isti zadatak, izmenjen raspored.
Pomerite klizač.
03
03
Operativni agent
Autonomni operativni agent za onlajn prodavnicu

Onlajn prodavnica svakog dana proizvodi iste odluke: šta treba naručiti, u kojoj količini, kod kog dobavljača? Koji upit kupca može da se obradi standardno, a koji zahteva čoveka? Agent donosi te odluke samostalno — i obrazlaže svaku od njih tako da se može proveriti.

Tehnički izazov

Jednostavno pravilo tipa „zaliha ispod deset, znači naručujemo” u praksi ne funkcioniše. Jedan dobavljač isporučuje isključivo u paletama od 24 komada. Drugi naplaćuje doplatu ispod 50 komada — tada je 50 jeftinije od 30. Treći zimi treba četrnaest umesto pet dana. Tu su još i obrasci po danima u nedelji i sezona. Prava količina porudžbine zato nije prag, već odmeravanje.

Čvrsta poslovna pravila stoje u kodu. Jezički model ne može da ih zaobiđe — on ih jednostavno vidi kao datost.
Kako sam to rešila

Odluka teče na dva odvojena nivoa. Čvrsta poslovna pravila stoje u kodu programa: veličine paleta, minimalne količine, budžetske granice, blokade. Model preuzima samo ono odmeravanje iznad njih koje nijedno kruto pravilo ne pokriva. Svaki predlog obrazlaže običnim jezikom: zašto ta količina, zašto taj trenutak, zašto taj dobavljač. Koliko samostalno sme da radi podešava se u četiri stepena — od pukog predlaganja do samostalnog pokretanja. Na trenutno podešenom stepenu sme sam da pokrene porudžbine do 500 evra; iznad toga ih podnosi na odluku, čak i kada je siguran u svoju stvar.

Šta se dešava kada nešto pođe naopako

Kod protivrečnih podataka sistem ne nagađa, već iznosi slučaj. Novi prolaz ne pravi drugi zahtev za artikal za koji već čeka otvoreno odobrenje — dvostruke porudžbine tako uopšte ne mogu da nastanu. Ako jezički model odgovori u formatu koji ne odgovara očekivanoj strukturi, upit se ponavlja jednom, a zatim se slučaj eskalira. Dodatno, sistem svake nedelje poredi sopstvene prognoze sa stvarnim tokom — dakle meri sopstvenu pogođenost, umesto da je tvrdi.

Posmatranje
Odobravanje
Autonomija u granicama
Puna autonomija
Trenutno podešeno: stepen 3 — samostalno do 500 evra vrednosti porudžbine.
PythonLLM interfejsprognoza potražnje revizorski protokolraspoređivanje po vremenusamoprocena stepeni autonomije
Kvalitet prognoze
0
izmereno na 1.120 pojedinačnih prognoza artikal-dan
Odstupanje
0,78 kom.
prosečna apsolutna greška po artiklu i danu
Granica autonomije
500 €
iznad toga uvek odlučuje čovek
Protokol odlukePredmet #4
Vreme
24.08.2026, 21:06
Artikal
Zemlja za paradajz 40 l · Dobavljač A
Stanje
Zaliha 11 kom. · prognoza 1,66 kom./dan · rok isporuke 5 dana
Količina
24 kom. — najmanja puna paleta pri izračunatoj potrebi od 17
Vrednost
1.138,32 €
Odluka
Nije izvršeno — podneto na odobrenje
„Dobavljač A isporučuje isključivo u punim paletama od 24 komada. Izračunata potreba iznosila je 17 komada, pa je zaokruženo na najbližu punu paletu. Nastala vrednost porudžbine od 1.138,32 € prelazi limit od 500,00 € dozvoljen za autonomne odluke. Porudžbina nije izvršena autonomno, već je eskalirana na ručno odobrenje.”
Vrednost sigurnosti ovde uopšte nije izračunata: čvrsto pravilo o vrednosti porudžbine se aktiviralo pre nego što je jezički model došao do bilo kakve ocene. Tako i treba — granica leži u kodu, a ne u proceni modela.

Pored toga, u svakodnevnom radu su i drugi moji sistemi — između ostalog za automatizovano istraživanje i pripremu podataka, kao i za izradu sadržaja.

Kako radim

Tri načela koja kod mene spadaju u obim isporuke i o kojima se posebno ne pregovara.

Spremno za produkciju, a ne prototip

Obrada grešaka, logika ponavljanja, nadzor i limiti troškova spadaju u obim isporuke. Sistem koji radi samo u idealnom slučaju nije završen.

Podaci ostaju tamo gde im je mesto

Po želji sve radi self-hosted na sopstvenim serverima, bez američkog klauda. Za delatnosti koje svoje podatke ne smeju da puste iz kuće.

Direktno sa stručnom službom

Zahteve prikupljam sama i sama ih sprovodim — bez petlje prevođenja. Na nemačkom, poljskom ili srpskom.

O meni

Od 2022. godine radim samostalno u oblasti automatizacije i digitalnih sistema. Pre toga rad sa klijentima i administracija — tamo sam naučila kako izgledaju procesi koje danas automatizujem.

Rođena i odrasla u Beču. Poljski mi je maternji jezik, nemački i srpski govorim na maternjem nivou, bez akcenta. U projektima sa direktnim kontaktom sa klijentom to je redovno tačka na kojoj zapinje — moći prikupiti zahteve, razumeti ih i zatim ih samostalno sprovesti štedi celu petlju prevođenja.

Poljskimaternji jezik
Nemačkimaternji nivo, bez akcenta
Srpskimaternji nivo, bez akcenta
Engleskiosnove, u razvoju

Saradnja

Jasni uslovi, da brzo pređemo na stvar.

Dostupnost
odmah
Mesto rada
100 % daljinski
Honorar
prema obimu projekta

Jednokratna realizacija sa paušalom za postavljanje ili tekuće održavanje kao mesečni paušal. Saradnja po fakturi (B2B) ili ugovoru o delu. Područje rada: Austrija, Nemačka i Švajcarska.

Hajde da porazgovaramo.

Recite mi koji proces kod Vas oduzima vreme — pošteno ću Vam reći da li se automatizacija za njega isplati.

Odgovor najčešće u roku od nekoliko sati.