Spring Boot with AI

Spring Boot with AI – Bringing Intelligence to Your Backend

Spring Boot is a popular framework for building robust Java applications. What if we could add intelligence to those apps? With the rise of AI APIs and Java ML libraries, integrating AI into your backend is easier than ever.

🤖 What Kind of AI Can You Add to Spring Boot?

🔌 Example 1: Using OpenAI API in Spring Boot

1. Add dependencies (Maven)

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. Create a REST controller to call the AI API

import org.springframework.web.bind.annotation.*;
import java.net.http.*;
import java.net.URI;
import java.net.http.HttpRequest.*;
import java.util.Map;

@RestController
@RequestMapping("/ai")
public class AiController {

    private static final String API_KEY = "your-openai-api-key";

    @PostMapping("/generate")
    public String generateText(@RequestBody Map<String, String> payload) throws Exception {
        String prompt = payload.get("prompt");

        String requestBody = """
            {
              "model": "gpt-3.5-turbo",
              "messages": [{"role": "user", "content": "%s"}]
            }
        """.formatted(prompt);

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.openai.com/v1/chat/completions"))
            .header("Authorization", "Bearer " + API_KEY)
            .header("Content-Type", "application/json")
            .POST(BodyPublishers.ofString(requestBody))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        return response.body();
    }
}

3. Test with cURL or Postman

curl -X POST http://localhost:8080/ai/generate \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Write a Java joke."}'

🧠 Example 2: Sentiment Analysis Using Hugging Face API

You can use the Hugging Face Inference API similarly to analyze sentiment.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api-inference.huggingface.co/models/distilbert-base-uncased-finetuned-sst-2-english"))
    .header("Authorization", "Bearer YOUR_HF_API_KEY")
    .POST(HttpRequest.BodyPublishers.ofString("{\"inputs\": \"This product is amazing!\"}"))
    .build();

🧮 Example 3: Train Your Own ML Model (Deeplearning4j)

Want to train a model right inside your Java app? Use DL4J (Deeplearning4j):

// Configure a neural network
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
  .list()
  .layer(new DenseLayer.Builder().nIn(10).nOut(5).build())
  .layer(new OutputLayer.Builder().nIn(5).nOut(2).build())
  .build();

Train the model and expose it via a Spring Boot REST endpoint.

💡 Real-World Use Cases for Spring + AI

  • 🛍 E-commerce: Product recommendations, smart search
  • 🏦 FinTech: Fraud detection, predictive analysis
  • 📞 Customer Support: Chatbots and voice assistants
  • 📃 Docs & Content: Summarization, translation, classification

📦 Bonus: Spring AI Project (Preview)

Spring AI is an experimental project from the Spring team that makes it easier to integrate LLMs into Spring Boot apps. Stay tuned!

GitHub: spring-projects/spring-ai

🧭 Conclusion

Spring Boot is a rock-solid platform for building backends, and now with AI integrations, it’s also smart. Whether you’re consuming APIs like OpenAI or training models yourself with DL4J, Java devs have powerful tools to build intelligent apps at scale.

🔥 Want to see a chatbot with Spring Boot and WebSocket? Or a LangChain-style app in Java? Let me know!

Comments

Popular posts from this blog

Voice & Chatbots – AI-Assisted Conversational Apps

Java 17 Features