Skip to main content
Spring AI Alibaba

检索百炼知识库

在 Spring AI 中使用百炼知识库进行 RAG 检索

本文介绍如何在 Spring AI Alibaba 中集成百炼知识库,实现 RAG(检索增强生成)功能。

前提条件

  • 已添加 Spring AI Alibaba 依赖
  • 已配置百炼 API Key
  • 已在百炼控制台创建知识库并上传文档

使用示例

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);
    }
}

配置项

配置说明默认值
spring.ai.dashscope.api-keyAPI Key-
spring.ai.dashscope.rag.index-id知识库索引 ID-
spring.ai.dashscope.rag.workspace-id业务空间 ID-
spring.ai.dashscope.rag.top-k返回结果数量5

结合 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(
            "基于以下知识回答问题:\n%s\n\n问题:%s",
            context, question
        );

        return chatClient.call(prompt);
    }
}
Managed Agent API
RAG API
Connector API
Memory API