From 3c32819345a6a201b9961c7144d17911edf8c610 Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Mon, 10 Mar 2025 15:45:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(llm):=20=E6=B7=BB=E5=8A=A0=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E9=97=AE=E7=AD=94=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ConversationServiceImpl 中增加了知识库处理逻辑 - 当 chatReqVO 的 knowledge 字段不为空时,添加特定的 prompt 作为知识库问答规则 - 如果 chatReqVO 的 prompt 字段为空, --- .../conversation/ConversationServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java index 3eafdca9a..7b406b654 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java @@ -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 messageHistoryList = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1);