diff --git a/src/main/java/com/xly/service/XlyErpService.java b/src/main/java/com/xly/service/XlyErpService.java
index 83b4b4c..54c383f 100644
--- a/src/main/java/com/xly/service/XlyErpService.java
+++ b/src/main/java/com/xly/service/XlyErpService.java
@@ -1,5 +1,6 @@
package com.xly.service;
+import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
import java.time.Duration;
import java.util.*;
+import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@@ -452,15 +454,53 @@ public class XlyErpService {
UserSceneSessionService.ERP_AGENT_CACHE.remove(userId);
//清除记忆缓存
operableChatMemoryProvider.clearSpecifiedMemory(userId);
- String aiText = "智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")";
+ StringBuffer aiText = new StringBuffer().append("
")
+ .append("
")
+ .append("智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")")
+ .append("
");
+ //插入用户常用问题
+ aiText.append(getSelectAgent(session,1));
sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY;
methodName = ObjectUtil.isNotEmpty(session.getCurrentTool())?session.getCurrentTool().getSControlName():StrUtil.EMPTY;
- return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText).sSceneName(session.getCurrentScene().getSSceneName()).build();
+ return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText.toString()).sSceneName(session.getCurrentScene().getSSceneName()).build();
} else {
// 3. 选择失败:重新展示场景选择提示
return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(session.buildSceneSelectHint()).build();
}
}
+ /***
+ * @Author 钱豹
+ * @Date 11:45 2026/3/13
+ * @Param []
+ * @return java.lang.String
+ * @Description 选择智能体成功后获取高频问题列表
+ **/
+ private String getSelectAgent(UserSceneSession session,Integer page){
+ List
toolMetaAll = session.getAuthTool();
+ String sSceneId = session.getCurrentScene().getSId();
+ toolMetaAll = toolMetaAll.stream().filter(to-> to.getSSceneId().equals(session.getCurrentScene().getSId())).collect(Collectors.toUnmodifiableList());
+ StringBuffer sb = new StringBuffer();
+ List> firstFive = ListUtil.split(toolMetaAll,5);
+ List showList;
+ if(ObjectUtil.isNotEmpty(firstFive.get(page-1))){
+ showList = firstFive.get(page-1);
+ page = page + 1;
+ }else{
+ showList = firstFive.get(0);
+ page = 1;
+ }
+ showList.forEach(one->{
+ sb.append("")
+ .append("")
+ .append(one.getSMethodName())
+ .append("
");
+ });
+ sb.append("
");
+ sb.append(" ");
+ sb.append(" 换一换").append("
");
+ return sb.toString();
+ }
/***
* @Author 钱豹
diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java
index bba185a..26a8d6d 100644
--- a/src/main/java/com/xly/tool/DynamicToolProvider.java
+++ b/src/main/java/com/xly/tool/DynamicToolProvider.java
@@ -578,11 +578,9 @@ public class DynamicToolProvider implements ToolProvider {
}
//{"1":"存储过程","2":"SQL查询","3":"第三方API","4":"ERP未清","5":"ERP列表(报表)","6":"ERP单据","7":"其它","8":"自然语言TEXT2SQL"}
- if((isConfirmed && 4== meta.getIBizType())
- || 1== meta.getIBizType()
+ if((isConfirmed && (4== meta.getIBizType() ||1== meta.getIBizType()))
|| 2== meta.getIBizType()
|| 3== meta.getIBizType()
- || 5== meta.getIBizType()
|| 6== meta.getIBizType()
|| 7== meta.getIBizType()
|| 8== meta.getIBizType()
@@ -896,7 +894,7 @@ public class DynamicToolProvider implements ToolProvider {
* @Description 返回结果后 执行业务类
**/
private String executeToolAfter(ToolMeta meta, Map args,ToolExecutionRequest toolExecutionRequest,List paramDefs,UserSceneSession session) {
-// {"1":"存储过程","2":"SQL查询","3":"第三方API","4":"窗体查询","5":"按钮执行","6":"其它"}
+// {"1":"存储过程","2":"SQL查询","3":"第三方API","4":"ERP未清","5":"ERP列表(报表)","6":"ERP单据","7":"其它","8":"自然语言TEXT2SQL"}
String sBizContent = meta.getSBizContent();
Integer iBizType = meta.getIBizType();
args.put("sUserId", session.getUserId());
diff --git a/src/main/resources/templates/chat.html b/src/main/resources/templates/chat.html
index 496a20f..3cc9564 100644
--- a/src/main/resources/templates/chat.html
+++ b/src/main/resources/templates/chat.html
@@ -468,7 +468,7 @@
let subsidiaryid= "1111111111";
let usertype= "sysadmin";
// let usertype= "General";
- let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D5FA8B0D3F9AA55B209A9A2798D3F79A4ECD1B659CAFFD18F0B02D3B44E333373538155B7ADAEE71E899235DC1122F426";
+ let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1D59FCE41E63C9FE20948A232F9F67AAE5687D4EF8281542FFC87C4EB776974C6A538155B7ADAEE71E899235DC1122F426";
let hrefLock = window.location.origin+"/xlyAi";
// ==================== 配置部分 ====================
const CONFIG = {