15 小时以前 3d2fd3a3f7d0571721b0f894e07c80553fd1e26c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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<String> chat(@MemoryId String memoryId, @UserMessage String userMessage);
}