Podobně jako mnoho dalších mobilních vývojářů jsme i my z Etnetera Flow zavítali na letošní mDevCamp v Praze. A jedno z témat, které nás nejvíce zaujalo, bylo zapojení generativní AI do aplikací. V interním PoC s názvem Floutek jsme si pak během několika dní sami ověřili, že zapojit AI do aplikací může být docela snadné a přínosné. Stačí mít jen správný nápad a trochu zkušeností. Věříme, že našeho Floutka posuneme z PoC fáze do plnohodnotné implementace, která nám pomocí AI bude zjednodušovat každodenní workflow.
Po dlouhé pauze byl celý mDevCamp opět offline, což mu dodalo skvělou atmosféru a umožnilo osobní setkání s dalšími nadšenci do technologií. Přednášky byly nejen poučné, ale také inspirativní. Náš tým na mDevCampu nejvíc zaujaly přednášky:
Technologie nás v Etnetera Flow baví a neustále hledáme způsoby, jak si jejich využitím usnadnit práci. Jedním z takových příkladů je i automatická detekce a zadávání home office, kterou řešíme pomocí nástroje Floutek.
Floutek je naše interní Java Virtual Machine (JVM) aplikace, která pomocí detekce dostupných IP adres určuje, zda je daný kolega v kanceláři nebo mimo ni. Pokud je mimo kancelář, vytvoří se v HR nástroji událost home office. Pro přehlednost Floutek ještě pošle souhrnnou informaci do specifického kanálu ve Slacku.
Floutek je také skvělé místo pro experimentování s novými technologiemi. A proto vznikl nápad na vlastní proof of concept (PoC) pro využití AI pro automatickou detekci dovolené z textu Slack zpráv.
Naše řešení v rámci PoC zahrnuje následující kroky:
(Pozn. Samotnému odesílání události do HR nástroje se nyní v rámci PoC nevěnujeme. V odpovědi pouze připravíme požadované tlačítko.)
Po vzoru výše zmíněné přednášky na mDevCampu jsme jako AI zvolili Gemini, ke které přistupujeme přes službu Firebase. Vzhledem k tomu, že naše řešení využívá i Firebase Functions a Firestore, bylo využití Firebase pro přístup k Gemini logickou volbou.
Naše řešení využívá následující komponenty:
Klíčovým aspektem generativních AI je správné nastavení promptu, tedy způsobu, jakým se AI dotazujeme. Po několika iteracích jsme zjistili, že nejlépe funguje struktura promptu, která obsahuje:
Náš prompt aktuálně vypadá takto:
Příklad odpovědi:
Nová verze Gemini 1.5 Pro Preview podporuje i JSON formát jako výstup, což nám umožňuje prompt výrazně zjednodušit. Schválně jsme však strukturu ponechali pro zpětnou kompatibilitu s Gemini 1.0 Pro.
Je fascinující, co vše lze dnes s AI udělat. Pomocí krátkého promptu jsme dokázali vyřešit úkoly, které by jinými metodami byly časově náročné a složité. Velkou výhodou je i podpora českého jazyka, kterou například Google Assistant nikdy nezískal.
Výsledek PoC můžete posoudit sami v krátkém videu.
Pár komentářů k současnému stavu PoC:
Generativní umělá inteligence (Generativní AI) je rychle se rozvíjející oblast, která umožňuje vytvářet nové a originální obsahy, jako jsou texty, obrazy, hudba a videa, pomocí pokročilých algoritmů, jako jsou hluboké neuronové sítě. Na rozdíl od tradičních AI systémů, které rozpoznávají vzory a provádějí specifické úkoly, generativní AI generuje odpovědi a obsah na základě vstupních dat. Mezi známé příklady patří GPT od OpenAI, který produkuje plynulý text z jednoduchých promptů, a Gemini od společnosti Google, jež podporují kreativní spolupráci a asistují tvůrcům obsahu.