From 25ece52385c53f7683ea0510ae49bb9c72bba67b Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Tue, 11 Mar 2025 17:37:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(llm):=20=E9=87=8D=E6=9E=84=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=9C=8D=E5=8A=A1=E4=BB=A5=E6=8F=90=E5=8D=87=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E5=88=A9=E7=94=A8=E6=95=88=E7=8E=87-=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E7=B3=BB=E7=BB=9F=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=EF=BC=8C=E6=98=8E=E7=A1=AE=E4=BA=86=E5=9F=BA?= =?UTF-8?q?=E4=BA=8E=E9=99=90=E5=AE=9A=E7=9F=A5=E8=AF=86=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E7=AD=94=E5=8A=A9=E6=89=8B=E8=A7=92=E8=89=B2=20-=20?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BA=86=E8=BE=93=E5=85=A5=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E5=92=8C=E5=93=8D=E5=BA=94=E8=A7=84=E5=88=99=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E4=BA=86=E5=AF=B9=E8=AF=9D=E5=A4=84=E7=90=86=E7=9A=84?= =?UTF-8?q?=E7=81=B5=E6=B4=BB=E6=80=A7=20-=20=E4=BC=98=E5=8C=96=E4=BA=86?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=BA=93=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=BA=86=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20-=E8=B0=83=E6=95=B4=E4=BA=86=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=A0=BC=E5=BC=8F=EF=BC=8C=E4=BD=BF=E7=94=A8=20XML=20?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=8C=85=E8=A3=B9=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E5=86=85=E5=AE=B9=EF=BC=8C=E6=8F=90=E9=AB=98=E4=BA=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BC=A0=E9=80=92=E7=9A=84=E5=87=86=E7=A1=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversation/ConversationServiceImpl.java | 32 +++---------------- 1 file changed, 4 insertions(+), 28 deletions(-) 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 a744d8c2d..4c4dfdc03 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 @@ -365,32 +365,7 @@ public class ConversationServiceImpl implements ConversationService { && Objects.equals(expectedGroupId, actualGroupId); } - public static final String PROMPT="【系统角色】\n" + - "您是基于限定知识库的问答助手,需严格遵循以下交互规则:\n" + - "\n" + - "角色定义:您被设定为「知识库解析引擎」,仅处理与用户提供的知识库内容直接相关的问题\n" + - "【输入规范】\n" + - "2. 知识库验证:当用户提问时,必须包含用```分隔符包裹的完整知识库内容,格式示例:\n" + - "\n" + - "问题:<用户问题>\n" + - "知识库:\n" + - "<知识库内容>\n" + - "【响应规则】\n" + - "3. 内容匹配:仅当知识库中存在与问题直接相关的明确信息时,方可生成回答。需满足:\n" + - "\n" + - "引用完整性:答案必须包含知识库中的具体数据/案例\n" + - "精确映射:每个回答要点需标注对应知识库段落的引用编号\n" + - "限制处理:若出现以下情况,请回复预设语句:\n" + - "知识库未提供 → \"抱歉,我无法回答这个问题,因为相关信息不在知识库中。\"\n" + - "问题超出知识库范围 → \"该问题超出当前知识库支持范围\"\n" + - "检测到推测请求 → \"根据规则,我无法进行推测或想象\"\n" + - "【安全机制】\n" + - "4. 内容过滤:自动触发以下保护机制:\n" + - "\n" + - "屏蔽知识库外的任何数据引用\n" + - "禁止添加解释性语句或背景补充\n" + - "拦截包含\"假设\"/\"如果\"等假设性词汇的问题" + - "5. 如果存在 [知识库内容] 这个标签,但是 [内容为空] ,返回 “抱歉,我无法回答这个问题,因为相关信息不在知识库中”"; + public static final String PROMPT="Use the following context as your learned knowledge, inside XML tags.\\n\\n\\n{{#context#}}\\n\\n\\nWhen answer to user:\\n- If you don't know, just say that you don't know.\\n- If you don't know when you are not sure, ask for clarification.\\nAvoid mentioning that you obtained the information from the context.\\nAnd answer according to the language of the user's question.\\n\\n"; /** * 公共模型聊天流式处理方法 * @@ -462,7 +437,7 @@ public class ConversationServiceImpl implements ConversationService { knowledgeBaseString = knowledgeBase.toString(); if (org.apache.commons.lang3.StringUtils.isBlank(knowledgeBaseString)){ - knowledgeBaseString="[知识库内容] , [内容为空]"; + knowledgeBaseString=""; } // 处理 systemPrompt @@ -471,7 +446,7 @@ public class ConversationServiceImpl implements ConversationService { : chatReqVO.getSystemPrompt() + "\n" + PROMPT; } - String mess = systemPrompt + knowledgeBaseString; + String mess = systemPrompt + ""+knowledgeBaseString+""; // 查询历史记录消息,并将查询出来的知识信息放入到 role = system 的消息中 List messageHistoryList = stringRedisTemplate.opsForList().range(CHAT_HIStORY_REDIS_KEY + ":" + chatReqVO.getUuid(), 0, -1); @@ -561,6 +536,7 @@ public class ConversationServiceImpl implements ConversationService { if (rateWordVO!=null){ words.add(rateWordVO); } + } if (CollectionUtils.isEmpty(words)){ paragraphHitRateListVO.setWordList(Collections.emptyList());