Author: Marcus Hellberg

Retrieval Augmented Generation (RAG) has become a standard approach for enhancing LLM responses with domain-specific knowledge. While basic RAG implementations can be straightforward, building production-grade solutions often requires more sophisticated techniques. Spring AI provides several advanced RAG features that can help you build more robust and effective applications.

Extracting structured data from images using AI in Java
As AI models have become better at handling multimodal input like images, new opportunities have opened up for us when building business applications in Java. In this blog post, I'll examine how we can use Open AI and Spring AI to extract information from an image into a Java record that we can use ...

Displaying streaming markdown in Java and React UIs with Spring AI
Tools like Spring AI make it easy to call LLMs from Java. However, interacting with LLMs has created a new challenge when building UIs: How do we stream the generated Markdown content to the UI and render it efficiently? In this blog post, I'll show you how you can display live-updating markdown ...

Calling ChatGPT and OpenAI APIs in Spring Boot with Java
This article will guide you on integrating OpenAI APIs, such as ChatGPT, in your Spring Boot application. We will cover moderation, embedding, and chat completion requests. It is a part of our Building an AI chatbot in Java series. Prerequisites This tutorial assumes you already have a Spring Boot ...

Building a custom AI agent in Java: A hands-on guide
Large Language Models (LLMs) are amazing tools. We can ask them to do things for us in plain language, and they use their vast knowledge of the world to deliver an answer in an instant. But when it comes to building AI-powered applications, there's a big problem: LLMs are generic, while our ...

Using AI to summarize documents in Java
In my previous article, I showed how to use an LLM to make sentiment analysis, draft responses to customer feedback, and create a chat-with-documents experience that uses your content. In this blog post, I continue exploring business use cases for AI by summarizing an uploaded document. I use ...

Introducing file-based routing in Vaadin 24.4: Simplify Hilla app creation
With the release of Vaadin 24.4, developers building Hilla applications now have access to a powerful new feature: file-based routing. This enhancement streamlines the process of adding new views and configuring view properties directly within your React components. In this blog post, we'll explore ...

Building AI-Powered Java Applications
Over the past few months, I’ve spoken at Java conferences and developer events worldwide about building AI-powered applications with Java. What I’ve seen is that Java developers are curious and eager to learn, but AI can seem like a big and daunting new area to get into. Most of us have demanding ...

The New Vaadin Forum is Live!
We're happy to announce that the new Vaadin Forum is now live on vaadin.com/forum. The Vaadin Forum is a central place for you to get help, share information, and connect with other Vaadin Community members. Forum and chat in one place. The Vaadin Forum brings both forums and chat together in one ...

Announcing the new Vaadin Forum
tl;dr: In early March, we are launching a new Vaadin Forum for all community discussions. It will replace the Vaadin Discord server and the old Vaadin Forum. At Vaadin, our community is at the heart of everything we do. As an open source company, we rely on feedback, contributions, and ...