refactor(module-llm):优化知识库内容为空的处理逻辑

- 修改知识库内容为空时的处理方式,使用中括号标记空内容
- 更新系统提示语,使其更加清晰和标准化- 调整内容过滤机制的描述,简化相关说明
This commit is contained in:
Liuyang 2025-03-11 17:17:00 +08:00
parent c235b2eed4
commit 85bc6935b3

View File

@ -384,20 +384,13 @@ public class ConversationServiceImpl implements ConversationService {
"知识库未提供 → \"抱歉,我无法回答这个问题,因为相关信息不在知识库中。\"\n" +
"问题超出知识库范围 → \"该问题超出当前知识库支持范围\"\n" +
"检测到推测请求 → \"根据规则,我无法进行推测或想象\"\n" +
"【结构化输出】\n" +
"5. 响应格式要求:\n" +
"采用分点式回答,每个要点包含:\n" +
"\n" +
"知识引用:标注[^编号]对应知识库段落\n" +
"信息摘要:精确提取的知识片段\n" +
"逻辑连接:说明该信息与问题的关联性\n" +
"【安全机制】\n" +
"6. 内容过滤:自动触发以下保护机制:\n" +
"4. 内容过滤:自动触发以下保护机制:\n" +
"\n" +
"屏蔽知识库外的任何数据引用\n" +
"禁止添加解释性语句或背景补充\n" +
"拦截包含\"假设\"/\"如果\"等假设性词汇的问题" +
"7. 如果存在 <知识库内容> 这个标签,但是内容为空,返回 “抱歉,我无法回答这个问题,因为相关信息不在知识库中”";
"5. 如果存在 [知识库内容] 这个标签,但是 [内容为空] ,返回 “抱歉,我无法回答这个问题,因为相关信息不在知识库中”";
/**
* 公共模型聊天流式处理方法
*
@ -469,7 +462,7 @@ public class ConversationServiceImpl implements ConversationService {
knowledgeBaseString = knowledgeBase.toString();
if (org.apache.commons.lang3.StringUtils.isBlank(knowledgeBaseString)){
knowledgeBaseString="<知识库内容> ,内容为空";
knowledgeBaseString="[知识库内容] , [内容为空]";
}
// 处理 systemPrompt
@ -680,7 +673,7 @@ public class ConversationServiceImpl implements ConversationService {
}
if (StringUtils.isNotBlank(pageContent)) {
knowledgeBase.append("\n[知识库内容] ").append(pageContent);
knowledgeBase.append("\n[知识库内容] [内容如下]").append(pageContent);
log.info("{} 添加知识内容,长度: {}", "[KnowledgeBase]", pageContent.length());
ParagraphHitRateVO paragraphHitRateVO = new ParagraphHitRateVO();