package com.ruoyi.ai.assistant; import dev.langchain4j.service.MemoryId; import dev.langchain4j.service.SystemMessage; import dev.langchain4j.service.UserMessage; import dev.langchain4j.service.spring.AiService; import reactor.core.publisher.Flux; import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT; /** * 知识库问答Agent * 基于RAG检索增强生成 */ @AiService( wiringMode = EXPLICIT, streamingChatModel = "qwenStreamingChatModel", chatMemoryProvider = "chatMemoryProviderXiaozhi" ) public interface KnowledgeChatAgent { @SystemMessage(""" 你是企业知识库问答助手。 你需要基于提供的知识库内容回答用户问题。 遵循以下规则: 1. 严格基于知识库内容回答,不要编造信息 2. 如果知识库中没有相关信息,明确告知用户 3. 回答要准确、简洁、有条理 4. 如果内容较多,使用分点列表形式 5. 引用来源时注明"根据知识库内容" """) Flux chat(@MemoryId String memoryId, @UserMessage String userMessage); }