Introduction
Hey Developers today we are going to learn about Spring AI Tutorial: Build a Smart Chat App with Spring Boot, As artificial intelligence becomes more accessible to developers, integrating AI-powered features into applications is easier than ever. One exciting innovation is Spring AI, a project from the Spring ecosystem that simplifies the integration of AI models like OpenAI’s ChatGPT into Java applications. In this tutorial, you’ll learn how to use Spring AI’s ChatClient with Spring Boot to build a smart, conversational chat app in just a few steps.

Whether you’re building a chatbot, support assistant, or AI-driven recommendation system, this tutorial gives you the foundation to get started with Spring AI ChatClient.
What is Spring AI?
Spring AI is a Spring-native abstraction over popular AI models like OpenAI, Hugging Face, and more. It provides developer-friendly components like the ChatClient
to simplify prompt creation, response parsing, and integration into Spring Boot apps.
Prerequisites
Before you start, make sure you have the following installed:
- Java 17+
- Maven or Gradle
- Spring Boot 3.1+ project
- An API key from OpenAI or another supported AI provider
Step 1: Create a Spring Boot Project
Start with Spring Initializr and include the following dependencies:
- Spring Web
- Spring Boot Actuator (optional)
- Spring AI (add manually)
Your pom.xml
should include the Spring AI dependency:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.7.0</version>
</dependency>
Step 2: Configure the OpenAI API Key
In your application.properties
or application.yml
, add:
spring.ai.openai.api-key=your_openai_api_key
spring.ai.openai.chat.model=gpt-3.5-turbo
Step 3: Inject the ChatClient Bean
Spring AI automatically configures a ChatClient
bean. You can inject it into your service or controller:
import org.springframework.ai.chat.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ChatService {
@Autowired
private ChatClient chatClient;
public String askQuestion(String prompt) {
return chatClient.call(prompt);
}
}
Step 4: Build a REST Controller
Create a simple API to send prompts and receive responses:
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/chat")
public class ChatController {
private final ChatService chatService;
public ChatController(ChatService chatService) {
this.chatService = chatService;
}
@PostMapping
public String chat(@RequestBody String prompt) {
return chatService.askQuestion(prompt);
}
}
Step 5: Test the Chat Endpoint
Run your Spring Boot application and send a POST
request to /api/chat
with a JSON body containing your prompt, for example:
"What's the capital of France?"
Expected response:
"Paris is the capital of France."
Bonus: Handle Structured Prompts
Spring AI also supports more complex prompt building using PromptTemplate
and message roles. Explore these to create rich multi-turn conversations.
Conclusion
With just a few lines of code, you can integrate powerful AI capabilities into your Spring Boot applications using Spring AI’s ChatClient. This opens the door to intelligent features like chatbots, summarizers, or AI-enhanced search.
Start experimenting today, and explore the possibilities of combining Spring Boot with modern AI models!