Like many other mobile developers, we from Etnetera Flow visited this year's mDevCamp in Prague. And one of the topics we were most interested in was incorporating generative AI into apps. In an internal PoC called Floutek, we then verified for ourselves that incorporating AI into apps can be quite easy and beneficial. All you need is the right idea and a bit of experience. We hope to move our Floutek from the PoC phase to a full-fledged implementation that will simplify our daily workflow using AI.
After a long break, the whole mDevCamp was offline again, which gave it a great atmosphere and allowed for face-to-face meetings with other technology enthusiasts. The presentations were not only informative but also inspiring. Our team at mDevCamp was most impressed by these presentations:
At Etnetera Flow, we enjoy technology and are constantly looking for ways to make our work easier. One such example is the automatic detection and entry of home office, which we solve with Floutek.
Floutek is our internal Java Virtual Machine (JVM) application that determines whether a colleague is in or out of the office by detecting available IP addresses. If he is out of the office, a home office event is created in the HR tool. In addition, Floutek sends summary information to a specific channel in Slack.
Floutek is also a great place to experiment with new technologies. That's where the idea for a proof of concept (PoC) for using AI to automatically detect leave from the text of Slack messages came from.
Our PoC solution includes the following steps:
(Note: We don't cover the actual sending of the event to the HR tool in PoC right now. We only prepare the required button in the response.)
Following the example of the mDevCamp presentation mentioned above, we have chosen Gemini as the AI, which we access via Firebase. Since our solution also uses Firebase Functions and Firestore, using Firebase to access Gemini was a logical choice.
Our solution uses the following components:
A key aspect of generative AI is getting the prompts right, i.e., the way we query the AI. After several iterations, we found a prompt structure that includes:
Our prompt currently looks like this:
Example response:
The new Gemini 1.5 Pro Preview version also supports JSON format as output, which allows us to simplify the prompt significantly. However, we intentionally kept the structure for backwards compatibility with Gemini 1.0 Pro.
It's fascinating what can be done with AI today. Using a short prompt, we were able to solve tasks that would have been time-consuming and complex using other methods. Another big advantage is the support of the Czech language, which, for example, Google Assistant never got.
You can review the results of PoC in this short video.
A few comments on the current state of PoC:
Generative Artificial Intelligence (Generative AI) is a rapidly growing field that enables the creation of new and original content such as text, images, music and videos using advanced algorithms such as deep neural networks. Unlike traditional AI systems that recognize patterns and perform specific tasks, generative AI generates answers and content based on input data. Well-known examples include OpenAI's GPT, which produces fluent text from simple prompts, and Google's Gemini, which supports creative collaboration and assists content creators.