Cloud Native 5 min read

Build a Retrieval‑Augmented Generation (RAG) App with Spring Cloud Alibaba AI and Redis

This guide explains how to implement a Retrieval‑Augmented Generation (RAG) workflow by loading a beer‑info JSON dataset into a Redis vector store, wiring it with Spring Cloud Alibaba AI Starter, and exposing a web API that returns LLM‑generated answers.

Alibaba Cloud Native
Alibaba Cloud Native
Alibaba Cloud Native
Build a Retrieval‑Augmented Generation (RAG) App with Spring Cloud Alibaba AI and Redis

Overview

Retrieval‑Augmented Generation (RAG) combines external documents with a large language model (LLM) to produce context‑aware answers. The process loads documents into a vector database (Redis), retrieves the most similar documents for a user query, and feeds the retrieved context together with the query to the LLM.

Dataset and Vector Store

The example uses a small beer dataset with fields id, name, description, abv, and ibu. Example JSON document:

{
  "id": "00gkb9",
  "name": "Smoked Porter Ale",
  "description": "The Porter Pounder Smoked Porter is a dark rich flavored ale that is made with 5 malts that include smoked and chocolate roasted malts. It has coffee and mocha notes that create a long finish that ends clean with the use of just a bit of dry hopping",
  "abv": 8,
  "ibu": 36
}

Records are inserted into Redis using the RagDataLoader class.

RAG Service Logic

Compute an embedding vector for the user prompt.

Query the Redis vector store to retrieve the most relevant documents.

Combine the retrieved documents with the original prompt to build a new prompt.

Invoke the ChatClient (LLM) with the constructed prompt and return the generated response.

Running the Example

The application exposes an HTTP endpoint /rag/chat. Invoke it with curl: curl http://127.0.0.1:8081/rag/chat A typical response:

Bieré De Ménage would pair well with smoked meats due to its high ABV (8%) and potentially the influence of oak barrels from the winemaking process, which can complement the rich flavors of smoked dishes.

When accessed via a browser, the response is rendered as an HTML page.

RAG API response screenshot
RAG API response screenshot

Reference Implementation

The full source code is available at https://sca.aliyun.com. It demonstrates how Spring Cloud Alibaba AI Starter and Spring AI Redis can be combined with a few classes to build a functional RAG application.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaAIRAGRedisvector databaseSpring Cloud Alibaba AI
Alibaba Cloud Native
Written by

Alibaba Cloud Native

We publish cloud-native tech news, curate in-depth content, host regular events and live streams, and share Alibaba product and user case studies. Join us to explore and share the cloud-native insights you need.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.