Commit fa60f81ab46712af2020d818fe7c64878000934b

Authored by qianbao
1 parent ffda9953

添加向量库

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  
... ...