| @@ -9,8 +9,10 @@ import com.xueyi.common.core.web.result.R; | |||||
| import com.xueyi.nlt.api.nlt.domain.vo.DmIntentVo; | import com.xueyi.nlt.api.nlt.domain.vo.DmIntentVo; | ||||
| import com.xueyi.nlt.api.nlt.domain.vo.response.DmIntentResponse; | import com.xueyi.nlt.api.nlt.domain.vo.response.DmIntentResponse; | ||||
| import com.xueyi.nlt.netty.server.config.ServerConfig; | import com.xueyi.nlt.netty.server.config.ServerConfig; | ||||
| import com.xueyi.nlt.nlt.domain.vo.WordProcessVo; | |||||
| import com.xueyi.nlt.nlt.service.IDmIntentService; | import com.xueyi.nlt.nlt.service.IDmIntentService; | ||||
| import com.xueyi.nlt.nlt.service.IDmRegularService; | import com.xueyi.nlt.nlt.service.IDmRegularService; | ||||
| import com.xueyi.nlt.nlt.service.IDmWordProcessService; | |||||
| import com.xueyi.nlt.nlt.service.impl.LogServiceImpl; | import com.xueyi.nlt.nlt.service.impl.LogServiceImpl; | ||||
| import com.xueyi.nlt.nlt.template.FreeChatTemplate; | import com.xueyi.nlt.nlt.template.FreeChatTemplate; | ||||
| import com.xueyi.nlt.nlt.template.MovieChatTemplate; | import com.xueyi.nlt.nlt.template.MovieChatTemplate; | ||||
| @@ -57,6 +59,8 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| @Autowired | @Autowired | ||||
| private IDmIntentService intentService; | private IDmIntentService intentService; | ||||
| @Autowired | |||||
| private IDmWordProcessService wordProcessService; | |||||
| @Autowired | @Autowired | ||||
| private MovieChatTemplate movieChatTemplate; | private MovieChatTemplate movieChatTemplate; | ||||
| @@ -75,6 +79,7 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| INSTANCE.manDeviceService = this.manDeviceService; | INSTANCE.manDeviceService = this.manDeviceService; | ||||
| INSTANCE.remoteEnterpriseService = this.remoteEnterpriseService; | INSTANCE.remoteEnterpriseService = this.remoteEnterpriseService; | ||||
| INSTANCE.logService = this.logService; | INSTANCE.logService = this.logService; | ||||
| INSTANCE.wordProcessService = this.wordProcessService; | |||||
| } | } | ||||
| @Override | @Override | ||||
| protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception { | protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception { | ||||
| @@ -146,6 +151,32 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| return; | return; | ||||
| } | } | ||||
| else { | else { | ||||
| // 语意判断 | |||||
| WordProcessVo wordProcessVo = new WordProcessVo(); | |||||
| wordProcessVo.setMetadata(msg); | |||||
| WordProcessVo result = INSTANCE.wordProcessService.semanticIntegrityDetection(wordProcessVo); | |||||
| if (result != null) { | |||||
| System.out.println(result.getProcessedResult()); | |||||
| // 判断结果 | |||||
| switch (result.getProcessedResult()){ | |||||
| case "0": | |||||
| // 返回前端,抛弃 | |||||
| JSONObject jo = new JSONObject(); | |||||
| jo.put("action","chat"); | |||||
| jo.put("motion","idle"); | |||||
| jo.put("traceId",""); | |||||
| jo.put("status",2); | |||||
| jo.put("code", -1); | |||||
| jo.put("tts",""); | |||||
| reply(channel, msg,jo, enterpriseName,"大模型"); | |||||
| return; | |||||
| case "1": | |||||
| case "2": | |||||
| break; | |||||
| default: | |||||
| } | |||||
| } | |||||
| JSONObject jo = new JSONObject(); | JSONObject jo = new JSONObject(); | ||||
| jo.put("action","chat"); | jo.put("action","chat"); | ||||
| jo.put("motion","idle"); | jo.put("motion","idle"); | ||||
| @@ -163,6 +194,7 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| jo.put("traceId",""); | jo.put("traceId",""); | ||||
| jo.put("status",2); | jo.put("status",2); | ||||
| jo.put("tts","大模型出现异常,请稍后重试。"); | jo.put("tts","大模型出现异常,请稍后重试。"); | ||||
| jo.put("code",500); | |||||
| String str = jo.toJSONString(); | String str = jo.toJSONString(); | ||||
| log.info("发生异常client:{},内容:{}",devId,jo.toJSONString()); | log.info("发生异常client:{},内容:{}",devId,jo.toJSONString()); | ||||
| channel.writeAndFlush(new TextWebSocketFrame(str)); | channel.writeAndFlush(new TextWebSocketFrame(str)); | ||||
| @@ -236,7 +268,9 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| @TLogAspect(str = "testtest") | @TLogAspect(str = "testtest") | ||||
| // @TLogAspect({"enterpriseName","type"}) | // @TLogAspect({"enterpriseName","type"}) | ||||
| private void reply(Channel channel, String msg, JSONObject jo,String enterpriseName,String type ) { | private void reply(Channel channel, String msg, JSONObject jo,String enterpriseName,String type ) { | ||||
| if (!jo.containsKey("code")) { | |||||
| jo.put("code",0); | |||||
| } | |||||
| INSTANCE.logService.record(jo,msg,enterpriseName,type); | INSTANCE.logService.record(jo,msg,enterpriseName,type); | ||||
| channel.writeAndFlush(new TextWebSocketFrame(jo.toJSONString())); | channel.writeAndFlush(new TextWebSocketFrame(jo.toJSONString())); | ||||
| } | } | ||||
| @@ -285,6 +319,10 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||||
| log.info("断开废弃连接,userId:{},channel:{}:", userId, channel.id().asLongText()); | log.info("断开废弃连接,userId:{},channel:{}:", userId, channel.id().asLongText()); | ||||
| return; | return; | ||||
| } | } | ||||
| // 清楚traceId信息 | |||||
| if (ServerConfig.currentTraceMap.containsKey(userId)) { | |||||
| ServerConfig.currentTraceMap.remove(userId); | |||||
| } | |||||
| if (ServerConfig.sessionMap.containsKey(userId)) { | if (ServerConfig.sessionMap.containsKey(userId)) { | ||||
| ServerConfig.sessionMap.remove(userId); | ServerConfig.sessionMap.remove(userId); | ||||
| log.info("用户下线,userId:{},channel:{}:", userId, channel.id().asLongText()); | log.info("用户下线,userId:{},channel:{}:", userId, channel.id().asLongText()); | ||||