Commit fa60f81ab46712af2020d818fe7c64878000934b
1 parent
ffda9953
添加向量库
Showing
3 changed files
with
17 additions
and
15 deletions
src/main/java/com/xly/service/XlyErpService.java
| @@ -125,7 +125,7 @@ public class XlyErpService { | @@ -125,7 +125,7 @@ public class XlyErpService { | ||
| 125 | // 3. 未选场景:先展示场景选择界面,处理用户序号选择 | 125 | // 3. 未选场景:先展示场景选择界面,处理用户序号选择 |
| 126 | if (!session.isSceneSelected() && ValiDataUtil.me().isPureNumber(input)){ | 126 | if (!session.isSceneSelected() && ValiDataUtil.me().isPureNumber(input)){ |
| 127 | // 3.1 尝试处理场景选择(输入序号则匹配,否则展示选择提示) | 127 | // 3.1 尝试处理场景选择(输入序号则匹配,否则展示选择提示) |
| 128 | - AiResponseDTO aiResponseDTO = handleSceneSelect(userId, input, session,1); | 128 | + AiResponseDTO aiResponseDTO = handleSceneSelect(userId, input, session,1,0); |
| 129 | return Flux.just(aiResponseDTO); | 129 | return Flux.just(aiResponseDTO); |
| 130 | } | 130 | } |
| 131 | // 4. 构建Agent,执行业务交互,如果返回为null,说明大模型没有判段出场景,必判断出后才能继续 | 131 | // 4. 构建Agent,执行业务交互,如果返回为null,说明大模型没有判段出场景,必判断出后才能继续 |
| @@ -241,10 +241,11 @@ public class XlyErpService { | @@ -241,10 +241,11 @@ public class XlyErpService { | ||
| 241 | String sSubsidiaryId, | 241 | String sSubsidiaryId, |
| 242 | String sUserType, | 242 | String sUserType, |
| 243 | String authorization, | 243 | String authorization, |
| 244 | - Integer iPage) { | 244 | + Integer iPage, |
| 245 | + Integer pageCount) { | ||
| 245 | // 1. 初始化用户场景会话(权限内场景) | 246 | // 1. 初始化用户场景会话(权限内场景) |
| 246 | UserSceneSession session = userSceneSessionService.getUserSceneSession(userId,sUserName,sBrandsId,sSubsidiaryId,sUserType,authorization); | 247 | UserSceneSession session = userSceneSessionService.getUserSceneSession(userId,sUserName,sBrandsId,sSubsidiaryId,sUserType,authorization); |
| 247 | - return getChange(session, iPage); | 248 | + return getChange(session, iPage, pageCount); |
| 248 | } | 249 | } |
| 249 | 250 | ||
| 250 | /*** | 251 | /*** |
| @@ -290,7 +291,7 @@ public class XlyErpService { | @@ -290,7 +291,7 @@ public class XlyErpService { | ||
| 290 | // 3. 未选场景:先展示场景选择界面,处理用户序号选择 | 291 | // 3. 未选场景:先展示场景选择界面,处理用户序号选择 |
| 291 | if (!session.isSceneSelected() && ValiDataUtil.me().isPureNumber(input)){ | 292 | if (!session.isSceneSelected() && ValiDataUtil.me().isPureNumber(input)){ |
| 292 | // 3.1 尝试处理场景选择(输入序号则匹配,否则展示选择提示) | 293 | // 3.1 尝试处理场景选择(输入序号则匹配,否则展示选择提示) |
| 293 | - return handleSceneSelect(userId, input, session,1); | 294 | + return handleSceneSelect(userId, input, session,1,0); |
| 294 | } | 295 | } |
| 295 | // 4. 构建Agent,执行业务交互,如果返回为null,说明大模型没有判段出场景,必判断出后才能继续 | 296 | // 4. 构建Agent,执行业务交互,如果返回为null,说明大模型没有判段出场景,必判断出后才能继续 |
| 296 | ErpAiAgent aiAgent = createErpAiAgent(userId, input, session); | 297 | ErpAiAgent aiAgent = createErpAiAgent(userId, input, session); |
| @@ -962,7 +963,7 @@ public class XlyErpService { | @@ -962,7 +963,7 @@ public class XlyErpService { | ||
| 962 | /** | 963 | /** |
| 963 | * 处理用户场景选择:输入序号→匹配场景→更新会话状态 | 964 | * 处理用户场景选择:输入序号→匹配场景→更新会话状态 |
| 964 | */ | 965 | */ |
| 965 | - private AiResponseDTO handleSceneSelect(String userId, String userInput, UserSceneSession session,Integer page) { | 966 | + private AiResponseDTO handleSceneSelect(String userId, String userInput, UserSceneSession session,Integer page,Integer pageCount) { |
| 966 | // 1. 尝试根据序号匹配场景 | 967 | // 1. 尝试根据序号匹配场景 |
| 967 | boolean selectSuccess = session.selectSceneByInput(userInput); | 968 | boolean selectSuccess = session.selectSceneByInput(userInput); |
| 968 | String sceneName = StrUtil.EMPTY; | 969 | String sceneName = StrUtil.EMPTY; |
| @@ -974,7 +975,7 @@ public class XlyErpService { | @@ -974,7 +975,7 @@ public class XlyErpService { | ||
| 974 | UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); | 975 | UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); |
| 975 | //清除记忆缓存 | 976 | //清除记忆缓存 |
| 976 | operableChatMemoryProvider.clearSpecifiedMemory(userId); | 977 | operableChatMemoryProvider.clearSpecifiedMemory(userId); |
| 977 | - return getChange( session, page); | 978 | + return getChange( session, page,pageCount); |
| 978 | } else { | 979 | } else { |
| 979 | // 3. 选择失败:重新展示场景选择提示 | 980 | // 3. 选择失败:重新展示场景选择提示 |
| 980 | return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(session.buildSceneSelectHint()).build(); | 981 | return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(session.buildSceneSelectHint()).build(); |
| @@ -988,13 +989,13 @@ public class XlyErpService { | @@ -988,13 +989,13 @@ public class XlyErpService { | ||
| 988 | * @return com.xly.entity.AiResponseDTO | 989 | * @return com.xly.entity.AiResponseDTO |
| 989 | * @Description 用户输入数字换一换 | 990 | * @Description 用户输入数字换一换 |
| 990 | **/ | 991 | **/ |
| 991 | - private AiResponseDTO getChange(UserSceneSession session,Integer page){ | 992 | + private AiResponseDTO getChange(UserSceneSession session,Integer page,Integer pageCount){ |
| 992 | StringBuffer aiText = new StringBuffer().append(" <div style='line-height:1.8;width:100%;'>") | 993 | StringBuffer aiText = new StringBuffer().append(" <div style='line-height:1.8;width:100%;'>") |
| 993 | .append("<div style=\"color: #333;\">") | 994 | .append("<div style=\"color: #333;\">") |
| 994 | .append("智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")") | 995 | .append("智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")") |
| 995 | .append("</div>"); | 996 | .append("</div>"); |
| 996 | //插入用户常用问题 | 997 | //插入用户常用问题 |
| 997 | - aiText.append(getSelectAgent(session,page)); | 998 | + aiText.append(getSelectAgent(session,page,pageCount)); |
| 998 | String sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY; | 999 | String sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY; |
| 999 | String methodName = ObjectUtil.isNotEmpty(session.getCurrentTool())?session.getCurrentTool().getSControlName():StrUtil.EMPTY; | 1000 | String methodName = ObjectUtil.isNotEmpty(session.getCurrentTool())?session.getCurrentTool().getSControlName():StrUtil.EMPTY; |
| 1000 | return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText.toString()).sSceneName(session.getCurrentScene().getSSceneName()).build(); | 1001 | return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText.toString()).sSceneName(session.getCurrentScene().getSSceneName()).build(); |
| @@ -1009,14 +1010,14 @@ public class XlyErpService { | @@ -1009,14 +1010,14 @@ public class XlyErpService { | ||
| 1009 | * @return java.lang.String | 1010 | * @return java.lang.String |
| 1010 | * @Description 选择智能体成功后获取高频问题列表 | 1011 | * @Description 选择智能体成功后获取高频问题列表 |
| 1011 | **/ | 1012 | **/ |
| 1012 | - private String getSelectAgent(UserSceneSession session,Integer page){ | 1013 | + private String getSelectAgent(UserSceneSession session,Integer page,Integer pageCount){ |
| 1013 | List<ToolMeta> toolMetaAll = session.getAuthTool(); | 1014 | List<ToolMeta> toolMetaAll = session.getAuthTool(); |
| 1014 | String sSceneId = session.getCurrentScene().getSId(); | 1015 | String sSceneId = session.getCurrentScene().getSId(); |
| 1015 | toolMetaAll = toolMetaAll.stream().filter(to-> to.getSSceneId().equals(session.getCurrentScene().getSId())).collect(Collectors.toUnmodifiableList()); | 1016 | toolMetaAll = toolMetaAll.stream().filter(to-> to.getSSceneId().equals(session.getCurrentScene().getSId())).collect(Collectors.toUnmodifiableList()); |
| 1016 | StringBuffer sb = new StringBuffer(); | 1017 | StringBuffer sb = new StringBuffer(); |
| 1017 | //获取用户最近五次问题 | 1018 | //获取用户最近五次问题 |
| 1018 | List<Map<String,Object>> data = getAiUserAgentQuestion(session.getUserName(),sSceneId, page,3); | 1019 | List<Map<String,Object>> data = getAiUserAgentQuestion(session.getUserName(),sSceneId, page,3); |
| 1019 | - Integer iPageCount = 0; | 1020 | + Integer iPageCount = pageCount; |
| 1020 | if(page==1){ | 1021 | if(page==1){ |
| 1021 | iPageCount =getAiUserAgentQuestionCount(session.getUserName(),sSceneId); | 1022 | iPageCount =getAiUserAgentQuestionCount(session.getUserName(),sSceneId); |
| 1022 | iPageCount = (int) Math.ceil(iPageCount/3); | 1023 | iPageCount = (int) Math.ceil(iPageCount/3); |
src/main/java/com/xly/tts/bean/TTSRequestDTO.java
| @@ -15,8 +15,9 @@ public class TTSRequestDTO { | @@ -15,8 +15,9 @@ public class TTSRequestDTO { | ||
| 15 | private String rate = "+10%"; | 15 | private String rate = "+10%"; |
| 16 | private String volume = "+0%"; | 16 | private String volume = "+0%"; |
| 17 | private Boolean voiceless; | 17 | private Boolean voiceless; |
| 18 | - private Integer iPage; | ||
| 19 | - private String sSceneId; | 18 | + private Integer page; |
| 19 | + private Integer pageCount; | ||
| 20 | + private String sceneId; | ||
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | } | 23 | } |
| 23 | \ No newline at end of file | 24 | \ No newline at end of file |
src/main/java/com/xly/tts/service/PythonTtsProxyService.java
| @@ -75,15 +75,15 @@ public class PythonTtsProxyService { | @@ -75,15 +75,15 @@ public class PythonTtsProxyService { | ||
| 75 | * @Description 换一换 | 75 | * @Description 换一换 |
| 76 | **/ | 76 | **/ |
| 77 | public ResponseEntity<TTSResponseDTO> change(TTSRequestDTO request) { | 77 | public ResponseEntity<TTSResponseDTO> change(TTSRequestDTO request) { |
| 78 | - String userInput = request.getText(); | ||
| 79 | String sUserId = request.getUserid(); | 78 | String sUserId = request.getUserid(); |
| 80 | String sUserName = request.getUsername(); | 79 | String sUserName = request.getUsername(); |
| 81 | String sBrandsId = request.getBrandsid(); | 80 | String sBrandsId = request.getBrandsid(); |
| 82 | String sSubsidiaryId = request.getSubsidiaryid(); | 81 | String sSubsidiaryId = request.getSubsidiaryid(); |
| 83 | String sUserType = request.getUsertype(); | 82 | String sUserType = request.getUsertype(); |
| 84 | String authorization = request.getAuthorization(); | 83 | String authorization = request.getAuthorization(); |
| 85 | - Integer iPage = request.getIPage(); | ||
| 86 | - AiResponseDTO voiceText = xlyErpService.change(sUserId, sUserName , sBrandsId , sSubsidiaryId, sUserType, authorization,iPage); | 84 | + Integer iPage = request.getPage(); |
| 85 | + Integer pageCount = request.getPageCount(); | ||
| 86 | + AiResponseDTO voiceText = xlyErpService.change(sUserId, sUserName , sBrandsId , sSubsidiaryId, sUserType, authorization,iPage, pageCount); | ||
| 87 | return synthesizeStreamAi(request, voiceText); | 87 | return synthesizeStreamAi(request, voiceText); |
| 88 | } | 88 | } |
| 89 | 89 |