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