David Šenica & Bojan Miličić2 September 2025

Kako smo v Mediusu zgradili most med LLM-ji in našim Java svetom

Veliki jezikovni modeli (LLM) so v zadnjem času postali sinonim za preboj umetne inteligence. A čeprav so njihovi rezultati impresivni, je vprašanje, kako jih vključiti v obstoječe sisteme, še vedno zelo aktualno. Še posebej za podjetja, kot je Medius, ki temelji na robustnih backend rešitvah, zgrajenih v Javi. Zato smo se odločili, da preverimo, kako lahko LLM-je vključimo neposredno v naš Java ekosistem, brez ločenih servisov in dodatnih nivojev. Na internem Pizza Dayu smo preizkusili integracijo obstoječe knjižnice znotraj Quarkus okolja.

V nadaljevanju razkrivamo, zakaj smo se odločili za ta korak, kako smo ga izvedli, kaj to pomeni za naše naročnike, in zakaj verjamemo, da je takšen pristop prihodnost, vsaj tam, kjer je uporaba LLM le en del širše rešitve.

a group of pink and blue balls on a black background

Fotografija: Jona na Unsplash

Zakaj je smiselno razmišljati o LLM-jih v Javi?

Ko pride do LLM-jev, se pogosto domneva, da “moramo” izbrati Python. Python ima dolgo tradicijo na področju strojnega učenja in bogat ekosistem knjižnic. A integracija LLM-ja ni isto kot učenje modela. Veliko pogosteje gre za posredovanje vprašanja modelu in interpretacijo njegovega odgovora. To je v osnovi backend logika, ki ni vezana na določen jezik.

Rešitve, ki jih gradimo, morajo biti robustne, dolgoročne in varne. Ker smo v Mediusu primarno Java razvijalci, ima večina naših rešitev že postavljen močan Java backend, kjer so:

  • urejena avtorizacija in dostopi,

  • uveljavljena poslovna pravila,

  • procesi za varnost in nadzor nad delovanjem,

  • infrastruktura za razširjanje in testiranje.

Naša ideja je bila preprosta, zakaj ne bi LLM-jev integrirali v obstoječi Java backend, kjer imamo vse pod nadzorom?

Kako smo to naredili in kaj vse takšen sistem zmore?

Ko smo iskali način, kako LLM-je najlažje integrirati v Javo, se je LangChain4j izkazal kot odlična izbira. Gre za rešitev, ki omogoča, da naš backend “govori” z LLM-jem, pa naj bo to OpenAI, naš lokalni model ali kaj tretjega.

Najbolj nas je presenetilo, kako hitro smo lahko prišli do prvega konkretnega primera. V nekaj dneh smo postavili:

  • Lasten LLM, ki zna odgovarjati na vprašanja.

  • API, prek katerega backend sprejema vprašanja od uporabnikov.

  • Integracijo z bazo, kjer LLM sam izbere ustrezne podatkovne tabele.

Rezultat? Uporabnik lahko v naravnem jeziku vpraša: “Kakšna je bila prodaja v regiji X v zadnjem četrtletju?”, naš sistem v ozadju analizira vprašanje, izbere prave tabele, zgradi potrebno poizvedbo (query) in vrne strukturiran odgovor. V naslednjem koraku razvijamo funkcionalnost, kjer bo LLM znal generirati tudi vizualizacije (grafi, diagrami), kar bo še izboljšalo uporabniško izkušnjo.

linked neon lights under white painted basement

Fotografija: Marius Masalar na Unsplash

Zakaj je to pomembno?

Enoten backend pomeni manj težav. Da ostanemo znotraj enega jezika in enega sistema, za nas pomeni manj vzdrževanja, večjo stabilnost razvitih rešitev, boljša varnost (ker imamo vse avtorizacije že postavljene), lažje testiranje in hitrejši razvoj. Za naročnika pa to pomeni nižjo kompleksnost sistema in manjše tveganje za napake. Ker je vse znotraj istega backenda, odpadejo dodatne integracije in nadzor nad komunikacijo med različnimi sistemi.

LangChain4j deluje modularno, kar pomeni, da lahko glede na različne primere in potrebe strank v projekt dodamo le tisto, kar potrebujemo. Če želimo podporo za RAG (Retrieval-Augmented Generation), jo vključimo kot dodatek. Kadar morajo agenti dostopati do baze ali klicati določene funkcije, tudi to lahko vključimo po potrebi. 

Zaradi modularnosti takšne integracije niso “enkratne”, saj ne gre za eksperiment ampak način dela, ki ga bomo lahko uporabljali naprej pri drugih projektih.

Pogled naprej

Naš naslednji korak je, da agentu omogočimo generiranje vizualizacij, torej, da bo uporabniku ne le odgovoril, ampak tudi sam izbral pravi način prikaza (graf, tabela, poročilo). Hkrati razvijamo boljše povezave z vektorskimi bazami, ki omogočajo še bolj natančne odgovore, tudi pri kompleksnih dokumentih.

Verjamemo, da se bodo LLM-ji vse bolj vključevali kot komponente znotraj večjih sistemov, ne pa vedno kot samostojne aplikacije. Naš cilj je, da poskušamo skupaj s strankami razumeti, kdaj je uporaba umetne inteligence smiselna in kako jo vključiti na način, ki je dolgoročno vzdržen.

Tudi vi razmišljate, kako bi jezikovni modeli lahko izboljšali vaše sisteme ali avtomatizirali določene procese? Z veseljem vam pokažemo, kaj je že mogoče narediti danes, brez prekomerne kompleksnosti in v okolju, ki ga že poznate.

Cookie Settings

We use third-party cookies to analyze web traffic. This allows us to deliver and improve our web content. Our website uses cookies for these purposes only.

Copyright © 2026 Medius Inc.All rights reserved.
Facebook iconInstagram iconLinkedIn icon