Shaaf's blog

A technical blog about Java, Kubernetes and things that matter

TechTalk - Java + LLMs: A hands-on guide to building LLM Apps in Java with Jakarta

Langchain4j is my favorite framework for working with large language models and Java. In the last couple of weeks, both Bazlur and I have presented to multiple user groups and conferences. This week, we had the privilege of presenting at the Jakarta Tech Talk, which both of us were looking very much forward to. We now have so much demo code on the topic that we cannot present all the variations in one hour.

A Quarkus minio tutorial - Store and retrieve objects from Minio

Consider a web application that needs to store user-generated content, such as images, videos, and documents. Instead of storing them in a file systems or using a database, the web application can use an object store. An object store can handle objects as a single unit, providing metadata about each object and abstracting away from the underlying storage which can be local or distributed. In this blog post I will explain a local setup for minio using docker.

Migrating JavaEE apps using Generative AI and Konveyor AI

Static code analysis + Gen-AI

Konveyor AI is a tool used to migrate Java applications to different Java frameworks, such as from JavaEE to Quarkus or Spring or from Spring 5 to 6, using Generative AI and static code analysis. I wrote a detailed post about this last year for the Java Advent Calendar. Most recently, we have all been hard at work, bringing a preview for our community of users. In this post, I will outline how you can install and configure Konveyor AI using OpenAI and make meaningful generations.

Java + LLMs: A hands-on guide to building LLM Apps in Java with Jakarta

Java is an amazing language to work with. Millions of developers use it for daily work routines, and many mission-critical applications run on Java today. Whether we talk about banks, stock exchanges, or space, Java is prevalent and a language of choice. With the advent of Large Language Models(LLM), new opportunities are at play. While Python has been the dominating language runtime for apparent reasons, there is a misconception that creating applications, agents, or other components for LLMs should also be done in Python.

Embracing the Future of Application Modernization with KAI

Konveyor’s main strength lies in its comprehensive approach to migration and modernization. At the core of Konveyor’s functionality is its powerful analysis engine. This engine performs static source code analysis, identifying anti-patterns and issues that might hinder the application’s operation on a target platform. Utilizing community standards like the Language Server Protocol, Konveyor’s analysis engine uses rules designed to aid in various migration scenarios. Users can also create custom rules to address specific migration needs, enhancing Konveyor’s flexibility and adaptability.