Artikkel · Tehisintellekt Fabricus
Kuidas testida Fabricu andmeagenti, enne kui seda usaldad
Kuidas testisime makseteenuste kliendi Fabricu andmeagenti ja tõstsime selle täpsuse enne beetatesti 75%-lt 95%-le. Lõpus praktiline kontrollnimekiri.


Microsoft Fabricu andmeagendilt saab oma andmete kohta küsida tavalises keeles. NabuMindsis ehitasime sellise agendi ühele finants- ja makseteenuste kliendile. Enne kui keegi selle vastustele toetus, testisime agenti kolmes voorus ja täpsus tõusis 75%-lt 95%-le. Rääkisin sellest 21. oktoobril 2026 Tallinn Data Weekil. Siin kirjeldan lähemalt, kuidas me seda tegime.
Miks muuta Power BI lahendust, mis töötab?
Alustasin ettekannet vana ütlusega: „Kui asi pole katki, ära seda paranda.“ Meie kliendi Power BI ei olnud katki. Aruanded valmisid igal hommikul ja keegi ei kurtnud. Just see oligi probleem.
Makseteenustes jõuab hommikune aruanne liiga hilja. Kui see näitab, et midagi läks valesti, on raha juba läinud.
NabuMinds on Tallinna andme- ja CRM-konsultatsioonifirma. Haldame selle kliendi ärianalüütika platvormi algusest lõpuni, andmete laadimisest ja semantilistest mudelitest aruannete ja hoiatusteni.
Klient kasutas Power BI-d ainult aruandluseks, eraldi andmekihti tal polnud. Viisime kliendi üle Microsoft Fabricusse. Selles artiklis räägin kahest lahendusest, mille Fabricus ehitasime: andmeagendist ja reaalajas hoiatustest.
Mis on Fabricu andmeagent ja milleks meil seda vaja oli?
Fabricu andmeagent on Microsoft Fabricu abiline, kellele saab esitada andmete kohta küsimusi tavalises keeles. Agent kirjutab päringu ise, käivitab selle küsija enda õigustega ja näitab, kuidas vastus sündis.
Kliendi äripoolelt tuleb meie meeskonnale vähemalt kümme jooksvat küsimust nädalas. Iga küsimus registreeritakse kasutajatoe pöördumisena. Tüüpilise küsimuse esitas makseteenuste juht: „Kas saaksid mulle anda nimekirja klientidest, kes tegid tehingu just selle makseviisiga?“
Vastamiseks vajalikud andmed on olemas. Ometi tuleb vastust oodata, kuni keegi meie meeskonnast pöördumisega tegelema hakkab. Agent saaks vastata kohe.
Millele agent toetub?
Agent kasutab samu andmeid nagu aruanded. Oleme andmed korraldanud medaljonarhitektuuri järgi ehk kihtidena. Pronkskihis on toorandmed, hõbekihis puhastatud andmed ja kuldkihis kasutamiseks valmis koondtabelid.
Kuldkihi andmetele toetuvad semantilised mudelid. Semantiline mudel koondab tabelid, seosed, arvutused ja ettevõttes kasutatavad nimetused, millele Power BI aruanded toetuvad. Meie mudelid kasutavad Direct Lake'i, nii et need loevad kuldkihi tabeleid otse ega vaja eraldi imporditud koopiat.
Agent toetub just nendele kuldkihi semantilistele mudelitele. Nii lähtuvad agent ja aruanded samadest definitsioonidest. Agendile on seatud ka piirid: mida ta käsitleb, milliseid juhiseid järgib ja kellel on talle ligipääs.
Miks kohelda agenti nagu analüütikut?
Armatuurlaua puhul määrad sina, mida kasutaja seal näeb ja teha saab. Agendi puhul ei tea sa, mida äripool küsima hakkab. Kui agent annab vale vastuse, on usaldus kadunud.
Ütlesin laval: „Seepärast kohtlen ma seda kui eraldi analüütikut oma meeskonnas.“ Meie jaoks tähendas see kahte sammu. Kõigepealt õpetasime agenti, siis testisime.
Mida me agendile õpetasime?
Agent näeb tabelite ja veergude nimesid. Mida need nimed sinu ettevõttes tähendavad, seda ta ise ei tea. Pieter Jansen tõi samal hommikul lihtsa näite: kui mudelis on tulul kaks eri määratlust, ei pruugi agent teada, kumba kasutada.
Seepärast õpetasime agendile kahte asja.
Väljade kirjeldused ja seosed
Kesksete semantiliste mudelite igal väljal on kirjeldus, mis ütleb, mida väli sisaldab. Kirjeldatud on ka kõik tabelitevahelised seosed. Nii ei pea agent oletama, kuidas tehing on seotud kliendi või makseviisiga.
Äripoole eelistused
Inimesed ei sõnasta küsimusi tavaliselt veerunimede järgi, vaid kasutavad oma sõnu. Seepärast lisasime äripoole eelistused Power BI semantilise mudeli seadete jaotisse „Prep data for AI“.
Need eelistused on sünonüümid, korrelatsioonid ja tavakeelsed juhised. Üht tüüpi juhis võtab asja hästi kokku: „kui küsitakse seda, mõeldakse toda“.
Pieter näitas samu seadeid oma ettekandes. Tema slaidil oli neli osa: kirjeldused ja sünonüümid, AI data schema, AI instructions ja verified answers. AI data schema on mudeli osa, mida tehisintellekt tohib kasutada. AI instructions on juhised ja verified answers kinnitatud vastused.
Kuidas me agenti testisime?
Testisime kolmes voorus ja igas voorus oli 80 küsimust.
1. voor: 80 päris küsimust, 75% õigesti
Võtsime 80 küsimust, mille äripool oli meie kasutajatoele päriselt saatnud. Agent vastas neist õigesti 75%-le. Teisisõnu oli iga neljas vastus vale.
Vaatasime valed vastused eraldi läbi. Nende põhjal täpsustasime äripoole eelistusi ja väljade kirjeldusi.
2. voor: samad 80 küsimust, 93% õigesti
Esitasime samad 80 küsimust uuesti. Seekord oli õigete vastuste osakaal 93%. Parandustest oli kasu, kuid olime agenti häälestanud just nende küsimuste järgi. Seepärast vajasime veel üht testi uute küsimustega.
3. voor: 80 uut tehisintellekti loodud küsimust, 95% õigesti
Lasime tehisintellektil koostada 80 juhuslikku küsimust. Keegi meie meeskonnast neid ei kirjutanud ja agenti polnud nende järgi häälestatud. Agent vastas neist õigesti 95%-le.
Kui aega oleks olnud rohkem, oleksin püüdnud jõuda 100%-ni. Seekord otsustasime anda agendi päris kasutajatele proovida.

Miks teha beetatest päris kasutajatega?
Andsime agendi kliendile üle nädal enne oma ettekannet. Praegu käib kuu aega kestev beetatest, milles osaleb 25 testijat. Kliendi omanik ütles, et agent aitas tal kõrvalekaldeid uurida.
Küsimuste-vastuste voorus tuli juttu sellest, kas agent õpib varasematest küsimustest. Tableau, millega meie meeskond on rohkem harjunud, jätab need meelde. Pieter vastas Fabricu kohta: andmeagendile saab lisada näidispäringuid ja näidisvastuseid.
Lisaks logitakse iga vastus ja logi hoitakse alles 28 päeva. Nii saame beetatesti ajal ja hiljemgi vaadata, mida kasutajad päriselt küsisid.
Kas agent vajab oma ressursiruumi?
Fabricus maksad ressursiruumi eest. Ressursiruum (capacity) on kindel kogus arvutusvõimsust, mida kõik sinu lahendused jagavad. Pieter võrdles seda serveri ostmisega.
Meie agendid töötavad kliendi ainsas tootmisressursiruumis. Iga agendile esitatud küsimus võtab seega samast varust kui aruanded ja andmete laadimine.
Ka Pieter hoiatas selle eest. Kui jagatud ressursiruum on üle koormatud, aeglustab Fabric tööd ja üks mahukas aruanne võib kogu ülejäänud tööd pidurdada. Tema slaidi soovitus oli anda agentidele oma ressursiruum, kui need on katsetusest kaugemale jõudnud.
Ka vajaliku arvutusvõimsuse hindamine osutus oodatust raskemaks. Alustasime F16-ressursiruumiga ja alahindasime oma andmemahtu. Kui eelarve tehakse aastaks, on ressursiruumi võimsust lihtsam vähendada kui suurendada, sest lisaraha küsimine nõuab uut ärilist põhjendust.
Alguses tuli koos andmeinseneridega oletada, millised tööd arvutusvõimsust kasutavad. Minu kõige olulisem õppetund: arvesta ressursiruumi kuludega juba esimesest nädalast peale.

Mida lisab Fabricu reaalajas analüütika?
Andmeagent vastab küsimustele. Reaalajas analüütika (Real-Time Intelligence) on Fabricu osa, mis töötab pidevalt saabuvate andmetega ja annab hoiatusi. See annab äripoolele märku enne, kui keegi jõuab küsida.
Jälgime kõiki maksetehinguid. Iga 15 minuti järel koondatakse andmed makseteenuse pakkuja kaupa. Meie andmeladu võimaldab andmeid värskendada kõige sagedamini iga 15 minuti järel.
Seejärel võrreldakse numbreid kokkulepitud piirmääradega, mida aja jooksul täpsustame. Üks hoiatus tuleb siis, kui aktsepteeritud maksete osakaal langeb alla 80%. Teised hoiatused annavad märku tagasilükatud maksete arvu järsust kasvust või oodatust väiksemast tehingumahust.
Laval nimetasin iga hoiatust nii: „signaal, mitte kohtuotsus“. See ütleb äripoolele, et teenusepakkujaga võib midagi viltu olla, ja ütleb seda piisavalt vara, et jõuaks reageerida.
See on oluline, sest probleemid on kallid. Klient kaotab keskmiselt umbes 10 000 eurot iga tunni kohta, mil mõnel makseteenuse pakkujal on probleem. Seda võib juhtuda kümme või rohkem korda kuus, seega kokku umbes 100 000 eurot kuus.
Hoiatuste juures on veel kaks olulist detaili. Hoiatus ei kordu iga 15 minuti järel. Teine hoiatus annab teada, kui numbrid on taas normis. Nii saab meeskond teada, et sekkumisest oli abi.

Mida kontrollida enne andmeagendi kasutuselevõttu?
- Kogu kokku küsimused, mida äripool juba küsib. Meil tuli neid vähemalt kümme nädalas ja igaüks oli kasutajatoe pöördumisena kirjas.
- Loo agent korrastatud semantiliste mudelite põhjal, mis toetuvad näiteks kuldkihile, mitte otse toortabelitele.
- Kirjelda nendes mudelites kõiki välju ja seoseid.
- Lisa jaotisse „Prep data for AI“ sünonüümid ja tavakeelsed juhised.
- Sea piirid enne kasutuselevõttu: mida agent käsitleb, milliseid juhiseid järgib ja kellel on ligipääs.
- Testi päris küsimustega, paranda vead ja esita samad küsimused uuesti.
- Testi veel kord küsimustega, mida keegi sinu meeskonnast pole kirjutanud.
- Tee beetatest päris kasutajatega ja loe logitud vastuseid.
- Kontrolli ressursiruumi, sest agent jagab seda aruannete ja andmete laadimisega.
Korduma kippuvad küsimused
Kui täpne andmeagent oli?
Esimeses voorus vastas agent õigesti 75%-le 80 päris küsimusest. Pärast väljade kirjelduste ja äripoole eelistuste parandamist jõudis ta samade küsimustega 93%-ni. Kaheksakümne uue tehisintellekti loodud küsimusega oli tulemus 95%.
Kas andmeagent õpib varasematest küsimustest?
Fabricu andmeagendile saab lisada näidispäringuid ja näidisvastuseid. Lisaks logitakse iga vastus ja logi hoitakse alles 28 päeva. Nii näed, mida kasutajad küsisid.
Kas andmeagent vajab oma ressursiruumi?
Meie agent töötab kliendi ainsas tootmisressursiruumis aruannete kõrval ja võtab seega samast varust. Pieter Janseni slaid soovitas anda agentidele oma ressursiruum, kui need on katsetusest kaugemale jõudnud.
Mida reaalajas maksehoiatus kontrollib?
Iga 15 minuti järel võrdleb see iga makseteenuse pakkuja numbreid kokkulepitud piirmääradega. Hoiatuse põhjus võib olla näiteks aktsepteeritud maksete osakaal alla 80%, tagasilükkamiste hüpe või liiga väike maht. Teine hoiatus annab teada, kui numbrid on taas normis.
Selle hommiku kava ja salvestus on 21. oktoobri ürituse lehel.