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