feat(llm): 添加知识库问答模式
- 在 ConversationServiceImpl 中增加了知识库处理逻辑 - 当 chatReqVO 的 knowledge 字段不为空时,添加特定的 prompt 作为知识库问答规则 - 如果 chatReqVO 的 prompt 字段为空,
This commit is contained in:
parent
335793247f
commit
3c32819345
@ -431,6 +431,18 @@ public class ConversationServiceImpl implements ConversationService {
|
||||
|
||||
StringBuilder knowledgeBase = getKnowledgeBase(chatReqVO);
|
||||
|
||||
if(chatReqVO.getKnowledge()!=null){
|
||||
String prompt = "你是一个只能基于给定知识库回答问题的助手。以下是你的规则:\n" +
|
||||
"1. 你只能依据知识库中的内容回答问题。\n" +
|
||||
"2. 如果问题的答案不在知识库中,回答:“抱歉,我无法回答这个问题,因为相关信息不在知识库中。”\n" +
|
||||
"3. 不允许进行推测、想象或生成与知识库无关的内容。\n" +
|
||||
"4. 请严格遵守以上规则。";
|
||||
if (StringUtils.isBlank(chatReqVO.getPrompt())){
|
||||
chatReqVO.setPrompt(prompt);
|
||||
}else {
|
||||
chatReqVO.setPrompt(chatReqVO.getPrompt()+"\n"+prompt);
|
||||
}
|
||||
}
|
||||
String mess = chatReqVO.getSystemPrompt() + knowledgeBase.toString();
|
||||
// 查询历史记录消息,并将查询出来的知识信息放入到 role = system 的消息中
|
||||
List<String> messageHistoryList = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user