Možno si poviete, že RxOps projekt vznikol ako výsledok jedného večera a nejakého „brainstormingu“ s AI agentom. Pokiaľ ide o spôsob, nie ste ďaleko od pravdy. Časovo to však zďaleka nesedí. Cesta k tomuto bodu bola dlhá a skúšal som rôzne veci. Súčasná podoba RxOps je výsledkom viacerých prototypov a dlhého premýšľania nad tým, čo dáva zmysel a do čoho investovať svoj drahocenný čas.
Nápad
Na začiatku stála jednoduchá otázka, ktorá je pre mňa dodnes ústredná:
Ako zapojiť veľké jazykové modely (LLM) do pracovného postupu farmaceuta tak, aby to pôsobilo prirodzene a prinieslo reálnu hodnotu?
Postupne sa pridali ďalšie otázky, nad ktorými stále premýšľam:
- „Ako dosiahnuť, aby nový nástroj neodvádzal farmaceuta od osobnej odbornej konzultácie, ale naopak, aby ju podporoval a vylepšoval?“
- „Čo sa oplatí vyvinúť samostatne a ktorú časť pracovného postupu ponechať existujúcim špičkovým nástrojom?“
- „Ako docieliť čo najvyššiu spoľahlivosť a ako v takom regulovanom prostredí vysvetliť, že odpoveď AI sa môže pri rovnakom zadaní líšiť?“
Je toho ešte viac. Po ôsmich rokoch od odchodu z lekárne ma k tomuto projektu ťahá aj vnútorná túžba vrátiť sa k farmácii. V hlave mi už dlho zreje myšlienka, ako prirodzene podporiť odbornú úlohu lekárne a lekárnika, aby vyvažovala marketingové ťaženie súčasných (nielen) lekárenských sietí na Slovensku.
Inšpirácia v právnom sektore
-
Praktik AI – slovenský startup, ktorý predáva špecializovaného AI chatbota pre právnikov (momentálne už aj kopu ďalších vedľajších produktov). Jeho pridanou hodnotou je priame napojenie na Zbierku zákonov SR a hlavne judikatúru (súdne rozhodnutia) – pôvodne si pamätám, že aj konkrétne spomínali na stránke, že je to spracované vo forme RAG.
-
Pre iného klienta pracujem vo väčšom tíme rovnako na vývoji chatbota pre právny sektor.
Právnici sú vďačnou cieľovou skupinou. Už teraz často trávia veľa času rešeršami a hľadaním relevantných zákonov. Sedia sami v kancelárii za počítačom a majú na to vyhradený dlhší čas na sústredenú prácu. Majú teda priestor aj na hlbšiu diskusiu s AI nástrojom. Napadlo mi, či by niečo podobné nesedelo aj do farmaceutického sektora.
Ten zahŕňa viacero povolaní v rôznych prostrediach, pričom každé poskytuje iný priestor na prácu s AI. Určite existujú zaujímavé možnosti využitia napríklad vo farmaceutickom výskume, na špecializovaných pozíciách vo farmaceutických firmách, vo farmakovigilancii či pri klinických štúdiách. Rozhodol som sa však siahnuť po mne najbližšom povolaní a zamerať sa naň – na povolanie lekárnika, ktoré je asi aj najrozšírenejšie v povedomí verejnosti.
Rozhodnutie padlo na základe toho, že som približne dva roky pracoval na tejto pozícii a viem odhadnúť, ako priebeh práce vyzerá. Z toho vyplýva aj najväčšie úskalie, ktoré som mal od začiatku na pamäti, no nie vždy som mu venoval plnú pozornosť – farmaceut v lekárni má v tradičnom procese (klasická stručná dispenzácia lieku a poskytnutie základných informácií) málo času zapojiť AI hlbšie a nemá čas čakať na odpoveď. Aj tak som sa však rozhodol najprv skúsiť cestu, ktorá sa veľmi podobala Praktik AI, keďže som videl, ako to u nich funguje, a myslel som si, že pre farmaceutov to bude fungovať rovnako.
Materia Medica – prvý projekt

Dátovým základom aplikácie mala byť zbierka súhrnov charakteristických vlastností liekov (SPC) pre všetky registrované lieky. SPC som získaval automatizovaným sťahovaním zo ŠÚKL-u a EMA. Dokumenty som potom priradil k registrovaným prípravkom v databáze a rozdelil na menšie časti. Pomocou lokálneho modelu na svojom hernom počítači s grafickou kartou som z nich vytvoril „embeddingy“ – číselné reprezentácie textu na vyhľadávanie relevantných pasáží. Tie slúžili ako kontext pri tvorbe odpovede AI v rámci prístupu RAG.
Do aplikácie som zakomponoval aj prehľadné vyhľadávanie vo všetkých registrovaných liekoch zo ŠÚKL-u. Nielen podľa obchodného názvu, ale aj podľa účinných látok. Toto vyhľadávanie fungovalo v osobitnej sekcii aplikácie, no najlepšie bolo, že používateľ mohol priamo cez vyhľadanie prepojiť lieky s promptom pre AI a zakomponovať ich do kontextu.

Postupne som pridal aj napojenie na MZ SR a kategorizáciu, takže každý liek, ktorý bol kategorizovaný, mal pod sebou v dátach aj aktuálny doplatok. V pláne bolo ešte pridať ďalšie prepojenia na PubMed alebo ScienceDirect.

Po čase som však projekt nechal tak. Zo všetkých uvádzaných projektov som na ňom strávil asi najviac času. Pri testovaní aplikácie a premýšľaní nad jej použitím som však pochopil viacero vecí:
-
Vyvíjať systém, ktorý sa bude rovnať kvalite ChatGPT a ďalších špičkových nástrojov (Claude, Gemini), je pre samostatného vývojára náročné (aj pri vývoji riadenom AI).
-
Informácie, ktoré som spracúval v rámci RAG, si AI často dokázala vyhľadať a prečítať aj po jednoduchom nasmerovaní v prompte.
-
Ako sa to bude používať v lekárni? To mi najviac vŕtalo hlavou. Analýza trvala pridlho. Na dobré sa čaká, ale toto čakanie už bolo pre bežnú prácu v lekárni pridlhé.
Najmä prvý bod ma priviedol k nápadu na ďalší projekt. Ľudia už známe chatboty používajú a ich poskytovatelia ich priebežne vylepšujú. Prišlo mi preto výhodnejšie vybudovať nadstavbu, „plugin“, v ktorom by som sa mohol venovať hlavne promptom pre AI a kontextu. Práve v tom som videl hlavnú hodnotu projektu, nie vo vývoji a dizajne ďalšieho softvéru.
ai-pharmacist – sada nástrojov pre Codex
Už pred projektom Materia Medica som na vývoj softvéru používal desktopovú aplikáciu Codex od OpenAI. Rozdiel oproti webovej aplikácii je ten, že si tam dokážete otvoriť lokálny priečinok a AI agent dokáže (rovnako ako iné programovacie nástroje, napríklad Claude Code či OpenCode) bez problémov a efektívne vytvárať, upravovať a mazať súbory, ktoré tam máte uložené. Dokáže používať nástroje príkazového riadka (CLI), ale aj napr. Docker a celkovo nástroje vášho počítača, ktoré nie sú priamo dostupné na webe (v cloude poskytovateľa) z rôznych príčin (napr. cena výpočtovej jednotky za operáciu, bezpečnosť a pod.).
Napadlo mi spraviť v tomto novozaloženom projekte súbor „skillov“ – to sú akoby špeciálne inštrukcie pre AI agenta zabalené do štandardizovaných súborov, ktoré môže AI agent podľa potreby použiť (nemusí; dá sa to aj zakázať a „skill“ môže vyvolať len zadávateľ). Pre zjednodušenie si predstavte kufrík s náradím a AI agent si podľa toho, čo vytvára, strieda „kladivo, pílku, meter…“.
„Skilly“, ktoré som spravil, pokrývali podobné veci, aké používala aj Materia Medica – verejne dostupné zdroje zo ŠÚKL-u, MZ SR, no tentoraz aj z NCZI, „skilly“ na čítanie vedeckých zdrojov, ale napr. aj na vizualizáciu medicínskej analýzy. Niektoré „skilly“ slúžili ako „orchestrátor“ – napr. slovak-health-context len rozdeľoval úlohy ďalším „skillom“, ktoré operovali so slovenskými dátami.

Zaujímavé bolo – a stále je, pretože projekt v mojom Codexe žije ďalej, že databázy (registrované lieky a pomôcky, kategorizácia, štatistiky z NCZI) boli na požiadanie agenta vytvárané a aktualizované v lokálnom projekte vo formáte SQLite. Čiže vždy, keď bolo potrebné použiť nejaké dáta, AI agent si zavolal skript v Pythone, ktorý na požiadanie aktualizoval lokálne dáta a na základe nich sa potom generovala odpoveď.
Úskalie tohto projektu je už, myslím, celkom zjavné: dostať ho k netechnickým používateľom – farmaceutom – by bolo náročné. Ak by cieľovou skupinou boli softvéroví inžinieri, stačilo by zdieľať verejný repozitár na GitHube. Potreboval som však niečo jednoduchšie, niečo intuitívnejšie. Z podstaty tohto projektu tiež vyplýva, že by toto nefungovalo vo webových rozhraniach. Fungovalo by to jedine v desktopových aplikáciách – a nechcel som vytvárať ďalšiu takúto bariéru pre farmaceuta.
Lily – „plugin“ pre farmaceutický softvér
Od začiatku som zvažoval dve možnosti:
- dať farmaceutovi všeobecný nástroj v podobe chatbota, ktorý prijíma text, a nechať na ňom, ako ho využije,
- alebo pripraviť nástroj na konkrétnu odbornú úlohu, aby farmaceut musel čo najmenej premýšľať nad formuláciou zadania.
Tento nápad bol akási odbočka od hlavnej myšlienkovej línie, po ktorej som sa pohyboval, no zo začiatku som mu veľmi veril, aj keď v konečnom dôsledku vytvára problémy a bariéry, ktoré je náročné prekonať.
Ústrednou myšlienkou bolo vytvoriť niečo, čo bude farmaceutovi okamžite dostupné – aby sa nemusel nikde preklikávať a mohol ostať v aplikácii, v ktorej je najčastejšie, čo je rozhranie pokladne. V slovenskom prostredí sú to hlavne programy ako WinLSS, Apostar, NRSYS a pod. Chcel som, podobne ako Pharminfo (slovenská firma, ktorá má v portfóliu napr. adcc.sk), vyvinúť „plugin“ a ponúknuť ho výrobcom tohto softvéru.
Začal som vyvíjať serverovú časť v NestJS, ktorá by cez REST API vracala súbor dispenzačných odporúčaní – krátke body, ktoré by mali tvoriť základ konzultácie s pacientom. Vstupom mal byť obsah „košíka“, ďalšie užívané lieky, o ktorých by sa farmaceut dozvedel pri konzultácii, a anamnéza alebo dôležitý klinický kontext (už sa pomaly dostávam k tomu, čo má aj RxOps 🙂).
Pointa mala spočívať v tom, že ak farmaceutovi stojí v lekárni rad pacientov, nemá čas na to, aby čakal na dlhú analýzu. A toto má byť akási pomôcka alebo osnova na to, aby bol dispenzačný rozhovor kvalitnejší.
Projekt som však nechal v počiatočnom štádiu. Zháňať firemných zákazníkov (B2B), teda výrobcov lekárenského softvéru, bez kontaktov a skúseností mi pripadalo zložité. Niečo, čo bude plne pod mojou správou a zamerané priamo na koncových používateľov (B2C), by mi sedelo viac.
Tete – vlastný server v NestJS a custom GPT
Projekt Tete je prvým pokusom upraviť ai-pharmacist tak, aby bol technicky dostupnejší aj pre netechnických používateľov.
Je to vlastne skoro to isté ako ai-pharmacist, no s využitím iných technológií. Lokálne databázy SQLite boli vymenené za mnou spravovaný server v NestJS a databázu Postgres, ktoré sú pravidelne napĺňané dátami z už spomínaných slovenských štátnych zdrojov. Používateľské rozhranie som zamýšľal spraviť ako „custom GPT“. Je to pomocou zopár inštrukcií a napojenia na externý zdroj (môj server v NestJS) vopred pripravené rozhranie pre ChatGPT, ktoré si vedel používateľ vyhľadať vo verejne dostupnej knižnici „custom GPTs“.
Áno, „vedel“. Počas toho, ako som projekt vyvíjal, v OpenAI zverejnili, že rušia verejné „custom GPTs“. „Custom GPT“ si už používatelia budú vedieť tvoriť len na súkromné použitie pre seba. Tým toto rozhranie pre mňa padlo.
OpenAI v súčasnosti vie fungovať aj cez systém „pluginov“ – no touto cestou som sa nevybral. Napadlo mi totiž čosi lepšie – a tu sa konečne dostávam k tomu, čo robím teraz.
RxOps – vyústenie všetkých nápadov
A tu sa dostávam k tomuto projektu, ktorý určite nerieši na 100 % všetky problémy, ktoré som už spomenul v tomto texte. Je to ale podľa mňa to najlepšie, čo za posledné mesiace vzišlo z mojej vývojárskej kuchyne s AI.
Ide o platformu, ktorá rieši len tú časť AI analýzy, ktorú môžem najviac ovplyvniť – vstup. Celá aplikácia – používateľské rozhranie v Next.js a databáza v Supabase (kde uchovávam aktualizovaný zoznam registrovaných liekov synchronizovaný zo ŠÚKL-u) – slúži na to, aby farmaceutovi poskytla:
- nápady, ako AI použiť,
- rýchly a odborníkom pripravený dialóg na prípravu kontextu,
- dôkladne zostavené inštrukcie pre AI, ktoré by inak musel zakaždým písať sám.
Následne s poskladaným promptom pre AI posielam farmaceuta preč z RxOps – čo je zámerná súčasť návrhu. Má to aj všeobecný úžitok, pretože veľa ľudí má už aj teraz predplatené prémiové verzie špičkových AI nástrojov. Neuzatváram ľudí v mojom ekosystéme; dávam im voľnosť vybrať si, čo použijú, lebo je toho na trhu veľa: Claude, ChatGPT, Gemini, hoci aj čínske open-weight modely alebo rôzni iní poskytovatelia.
Poskytujem nástroj na prípravu kvalitného promptu pre AI a priestor, kde vznikajú nápady na jeho užitočné využitie v praxi. Celý finálny prompt transparentne odovzdávam používateľovi – neskrývam ho ako obchodné tajomstvo. Za dôležitú považujem aj myšlienku pracovného priestoru, ktorú poznám z AI nástrojov na programovanie: vývojár vidí výstupy a môže riadiť svoj pracovný postup. RxOps má byť takýto pracovný priestor pre farmaceuta.
Predpokladám a zdôrazňujem, že konečnú podobu výsledku má v plnej moci zadávateľ. On je zodpovedný. Všetky karty dostáva do rúk. Podľa mňa sa aj pri vývoji s AI dosahujú najlepšie výsledky vtedy, keď profesionál využije AI na rozšírenie svojich schopností a nevzdá sa kontroly. A toto chcem priniesť aj v RxOps.
Vízia pre RxOps
Smerovanie produktu sa bude určite meniť. Ukazuje mi to vývoj projektu za posledné mesiace aj to, ako rýchlo sa menia možnosti a dostupnosť AI nástrojov.
V skratke by však malo ísť o projekt, ktorý farmáciu vylepší, a nie zmení. Moja túžba je, aby RxOps vylepšoval to, čo je v lekárni také cenné – priamy osobný kontakt pacienta s odborníkom. Je jedno, že prenosová kapacita obyčajnej ľudskej komunikácie nikdy nedosiahne rýchlosť, akou komunikujú počítače. Takáto komunikácia však v sebe nesie niečo hlbšie, čo sa ťažko pomenúva – možno empatiu, súcit či dobroprajnosť. Aj to môže popri vydaných liekoch prispieť k úspechu predpísanej farmakoterapie.