11.11.2025 toimunud MMT5790 TARKVARATEHNOLOOGIATE (Taltech) loengusse olin kutsunud külalisettekannet tegema tarkvaraarendaja Kaidur Roht’i, kes jagas oma teekonda ja tutvustas enda loodud tehisintellektil põhinevat tööriista. Kaiduri esitlus pakkus sügava sissevaate tänapäevasse LLM-põhisesse tarkvaraarendusse.
Tarkvaraarendaja Kaidur Roht
Kaidur Roht on kogenud IT-spetsialist, kes on lõpetanud Tallinna Tehnikaülikooli informaatika eriala juba 25 aastat tagasi. Tema karjäär on olnud mitmekülgne: alustades analüütikuna, liikudes edasi programmeerijaks ning tegeledes alati tihedalt ka äriprotsesside poolega. Ta on spetsialiseerunud Microsofti tehnoloogiatele, eriti SharePointile, millega töötas aastaid nii Eestis kui ka Ameerikas, luues lahendusi suurtele pankadele.
Pärast Eestisse naasmist töötas Kaidur tehnoloogiajuhina (CTO) mitmes idufirmas. Nüüd on ta aga pühendunud omaenda tehisintellektil põhineva tööriista arendamisele, mis sündis reaalsest vajadusest ja on ehitatud üles tänapäevaste vahenditega, millest olulisim on AI-koodimisabiline Claude Code.
Koduleht https://kaidur.com/
Käimasolev projekt: AI-tööriist suurte dokumendikogude analüüsiks
Kaiduri arendatav lahendus on mõeldud suhtlemiseks suurte, struktureerimata dokumendihulkadega, näiteks tuhandete PDF-lepingutega. See võimaldab kasutajatel esitada loomulikus keeles küsimusi ja saada kiirelt kätte olulise info, mis muidu nõuaks päevi või nädalaid käsitsi tööd.
Motivatsioon
Idee sai alguse praktilisest tööst ÜRO agentuuri heaks. Neil oli arhiivis ligi 4000 PDF-formaadis lepingut, millest oli vaja kiiresti leida spetsiifilist infot: lepingute tähtaegu, doonoritega seotud makseid ja muid detaile. Kuna paljud dokumendid olid skaneeritud pildifailid, polnud neis isegi tekstiotsing võimalik. Kaidur lõi neile semantilise otsingumootori, mis lahendas probleemi edukalt. See kogemus inspireeriski teda looma sarnast, kuid laiemale publikule suunatud tööriista.
Potentsiaalsed kasutajad
Tööriist on kasulik kõigile, kes puutuvad kokku suurte dokumendiarhiividega:
- Juristid ja advokaadibürood, kes peavad analüüsima sadu lepinguid ja leidma neist spetsiifilisi klausleid.
- Finantsasutused, kes haldavad kliendilepinguid ja peavad tagama vastavuse regulatsioonidele.
- Projekteerimis- ja ehitusettevõtted, kellel on vaja hallata jooniseid ja seletuskirju.
- Suured organisatsioonid, kes soovivad oma sise-eeskirjadest ja protseduuridest kiirelt infot leida.
Funktsionaalsus
Esitluses demonstreeritud rakendus võimaldab:
- Dokumentide laadimist: Süsteemi demos laaditi üles näiteks 100 PDF-dokumenti.
- Andmete eeltöötlust: Rakendus teostab pildipõhistel PDF-idel tähemärgituvastuse (OCR) ja seejärel tükeldab (chunking) dokumendid väiksemateks, hallatavateks osadeks.
- Küsimuste esitamist: Kasutaja saab esitada loomulikus keeles küsimusi, näiteks: “Rühmita lepingud allkirjastamise kuupäeva järgi” või “Tee kokkuvõte lepingute lõpetamise tingimustest.”
- Sünteesitud vastuste saamist: Süsteem analüüsib dokumente ja genereerib kokkuvõtva vastuse. Näiteks suutis see sekunditega leida kõikidest lepingutest üles lõpetamistingimused, tuues välja nii standardse 30-päevase reegli kui ka erandid koos viidetega konkreetsetele lepingutele.
Tehniline arhitektuur
Kogu lahendus on ehitatud muljetavaldavalt vähese käsitsi kirjutatud koodiga, kasutades peamiselt AI-koodimisabilist Claude Code.
- Tehnoloogiad: Python, Visual Studio Code, Tesseract (OCR-tööriist).
- Arhitektuur: Tegemist on RAG (Retrieval-Augmented Generation) rakendusega. See tähendab, et süsteem kõigepealt otsib vektorandmebaasist üles kõige asjakohasemad tekstilõigud (semantiline otsing) ja seejärel saadab need koos kasutaja küsimusega suurele keelemudelile (nagu GPT-4), mis koostab lõpliku vastuse.
Esitluses toodi välja kaks kriitilise tähtsusega tehnilist detaili:
- Õige manustamismudeli (embedding model) valik: Algselt kasutas Kaidur üldotstarbelist mudelit tekstide vektoriseerimiseks, kuid see ei andnud juriidiliste tekstidega häid tulemusi. Claude Code analüüsis dokumentide sisu ja soovitas spetsiaalselt juriidiliste tekstide jaoks loodud mudelit (
all-mpnet-base-v2), mis parandas tulemuste täpsust märkimisväärselt. - Päringu laiendamine (query expansion): Kui küsimustele tulid ebaolulised vastused, pakkus Claude Code välja lahenduse: päringu laiendaja (query expander). See tähendab, et kui kasutaja küsib näiteks sõna “party” (osapool), laiendab süsteem otsingut automaatselt seotud terminitega nagu “parties”, “signatory”, “entity”, “contracting party”. See aitas keelemudelil paremini mõista päringu konteksti ja leida asjakohasemat infot.
Tudengite küsimused ja Kaiduri vastused
Kas AI suudab analüüsida ka ehitusjooniseid?
Jah, tehniliselt on see täiesti teostatav. Nii AutoCADi (DWG) kui ka BIM-mudelitest on võimalik teksti- ja metaandmeid kätte saada ning neid analüüsida. Sarnaste lahendustega tegeleb juba näiteks üks Soome idufirma.
Mida arvad AI-koodimisest ja kas see on tulevikuoskus?
See ei ole tulevik, see on olevik. Kaiduri sõnul peaksid kõik valgekraed seda juba täna kasutama. AI-tööriistad on muutmas tööturgu – näiteks juunior-programmeerijate ametikohad on kadumas, kuna AI suudab selle taseme ülesanded ära teha. Programmeerija taust ei olegi alati vajalik, piisab uudishimust ja soovist katsetada.
Mis on sinu nõuanne AI-koodimisabiliste kasutamisel?
Kasutage versioonihaldust (nt Git). AI võib teha koodis suuri muudatusi ning Git võimaldab jälgida, mida täpselt muudeti, ja vajadusel eelmise seisu taastada.
Kuidas on lood turvariskidega suurtes ja vastutusrikastes projektides?
Kaidur nõustus, et praegune AI on tasemelt võrreldav juunior- või kesktaseme programmeerijaga, mitte süsteemiarhitektiga. Suurte ja kriitiliste süsteemide puhul on iniminseneri roll endiselt asendamatu, et arhitektuuri planeerida ja turvalisust tagada. AI on võimas abivahend, kuid lõplik kontroll peab jääma inimesele.
Miks ja kuidas sa dokumente anonüümisid?
Lepingud sisaldavad konfidentsiaalset infot (nimed, summad), mida ei saanud saata välistesse teenustesse nagu OpenAI. Selleks tuli tundlikud andmed enne töötlemist eemaldada ehk anonüümida. Toimiva lahenduse puhul hoitakse ettevõtte-siseselt kaarti, mis seob anonüümse tähise (nt “Leping 123”) tegeliku kliendiga. Nii on välistatud risk, et kolmanda osapoole AI mudeli kaudu tundlik info majast välja saaks.
Kuidas vältida keelemudelite hallutsineerimist?
Seda riski saab maandada, seadistades keelemudeli “temperatuuri” parameetri madalaks (lähedale nullile). See muudab mudeli vähem loominguliseks ja faktipõhisemaks. Kui mudel vastust ei tea, siis ta pigem tunnistab seda kui mõtleb midagi välja. Samuti on hea lisada vastustele kindlusskoor, et kasutaja teaks, milliseid tulemusi tasuks üle kontrollida.
Õppetunnid äpi ehitamisel
Oluline on teada domeeni (n legal terminoloogiat, kontseptsioone) kui sellele rakendusi ehitada. Vajalik on oskus esitada küsimusi, et testida olatvormi kasulikkust.
AI-koodikirjutajate abi kasutamisel häid tulemusi annab suunis “make this app using best practices“, sest siis võtab AI justkui vanemprogrammeerija roli.
Kokkuvõttes andis Kaiduri esitlus suurepärase ülevaate, kuidas AI-tööriistad on muutumas praktilisteks ja kättesaadavateks lahendusteks ka neile, kel puudub sügav tehniline taust. Võti peitub nutikas küsimises ja valmisolekus katsetada. Suur tänu Kaidurile inspireeriva ettekande eest!