Complementing LLM with agentic AI: a Quarkus story on Artificial Intelligence
Conference (INTERMEDIATE level)
What AI can do nowadays is simply mind-blowing. I must admit that I cannot stop being surprised and sometimes literally jumping from my seat thinking: "I didn't imagine that AI could ALSO do this!". What is a bit misleading here is that today what we tend to identify with Artificial Intelligence is actually the employment of Large Language Model which is only a subset of all AI technologies available: ML is a fraction of the whole AI-story, while agentic AI enables the implementation of more general use cases, for instance also involving the usage of Symbolic AI to encode the business logic of a specific domain through a set of human-readable and transparent rules.
In fact there are many situations where being surprised is the last thing that you may want. You don't want to jump from your seat when your bank refuses your mortgage without any human understandable reason, but only because AI said no. And even the bank may want to grant their mortgages only to applicants who are considered viable under their strict and well-defined business rules.
Given these premises, it is interesting to mix different complementary technologies in order to overcome the limited auditability and the risk of hallucinations implicit in the usage of a Large Language Model alone. In this talk we will discuss, with practical examples, some of the multiple patterns emerging in this field like RAG, external tools invocation and guardrails. We will also demonstrate why this could be a winning architectural choice in many common situations and how Quarkus through its langchain4j and drools extensions makes the development of applications integrating those technologies straightforward.
In fact there are many situations where being surprised is the last thing that you may want. You don't want to jump from your seat when your bank refuses your mortgage without any human understandable reason, but only because AI said no. And even the bank may want to grant their mortgages only to applicants who are considered viable under their strict and well-defined business rules.
Given these premises, it is interesting to mix different complementary technologies in order to overcome the limited auditability and the risk of hallucinations implicit in the usage of a Large Language Model alone. In this talk we will discuss, with practical examples, some of the multiple patterns emerging in this field like RAG, external tools invocation and guardrails. We will also demonstrate why this could be a winning architectural choice in many common situations and how Quarkus through its langchain4j and drools extensions makes the development of applications integrating those technologies straightforward.
Mario Fusco
Red Hat
Mario is a senior principal software engineer at Red Hat working as Drools project lead. He has a huge experience as Java developer having been involved in (and often leading) many enterprise level projects in several industries ranging from media companies to the financial sector. Among his interests there are also functional programming and Domain Specific Languages. By leveraging these 2 passions he created the open source library lambdaj with the purposes of providing an internal Java DSL for manipulating collections and allowing a bit of functional programming in Java. He is also a Java Champion, the JUG Milano coordinator a frequent speaker and the co-author of "Modern Java in Action" published by Manning.
Daniele Zonca
Red Hat
Daniele Zonca is a Senior Principal Software Engineer and Architect for model serving of Red Hat OpenShift AI, Red Hat's flagship AI product combining multiple stacks. He has the responsibility for the architecture of serving components: model server management, model registry, monitoring and trustworthy AI. On the community side he is one of the founders of the TrustyAI project focused on responsible and trustworthy AI and involved with KServe, ModelMesh and Kubeflow model registry projects