Skip to main content
Spring AI Alibaba

Retrieve from Bailing Knowledge Base

Perform RAG retrieval using the Bailing knowledge base in Spring AI

This guide explains how to integrate the Bailing knowledge base into Spring AI Alibaba to implement Retrieval-Augmented Generation (RAG).

Prerequisites

  • Spring AI Alibaba dependency has been added
  • Bailing API Key has been configured
  • A knowledge base has been created and documents uploaded in the Bailing console

Usage Example

import com.alibaba.cloud.ai.dashscope.rag.DashScopeDocumentRetriever;
import org.springframework.ai.document.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class KnowledgeService {

    @Autowired
    private DashScopeDocumentRetriever retriever;

    public List<Document> search(String query) {
        return retriever.retrieve(query);
    }
}

Configuration Properties

PropertyDescriptionDefault
spring.ai.dashscope.api-keyAPI Key-
spring.ai.dashscope.rag.index-idKnowledge base index ID-
spring.ai.dashscope.rag.workspace-idWorkspace ID-
spring.ai.dashscope.rag.top-kNumber of results to return5

Integration with Chat

import org.springframework.ai.chat.ChatClient;

@Service
public class RagService {

    @Autowired
    private ChatClient chatClient;

    @Autowired
    private DashScopeDocumentRetriever retriever;

    public String answerWithKnowledge(String question) {
        List<Document> docs = retriever.retrieve(question);
        String context = docs.stream()
            .map(Document::getContent)
            .collect(Collectors.joining("\n"));

        String prompt = String.format(
            "Answer the following question based on the provided context:\n%s\n\nQuestion: %s",
            context, question
        );

        return chatClient.call(prompt);
    }
}
Overview
Managed Agent API
Sandbox API
Memory API
Flow Agent API
RAG API
Connector API
Assistant API (Deprecating)
  • Overview