浏览代码

yinruoxi

feature:
    1.新增:语意完整性分析
tags/B.2.8.3_20240316_release
kira 1年前
父节点
当前提交
3f033eb51a
共有 1 个文件被更改,包括 39 次插入1 次删除
  1. +39
    -1
      xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/netty/server/handler/ChatServerHandler.java

+ 39
- 1
xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/netty/server/handler/ChatServerHandler.java 查看文件

@@ -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.response.DmIntentResponse;
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.IDmRegularService;
import com.xueyi.nlt.nlt.service.IDmWordProcessService;
import com.xueyi.nlt.nlt.service.impl.LogServiceImpl;
import com.xueyi.nlt.nlt.template.FreeChatTemplate;
import com.xueyi.nlt.nlt.template.MovieChatTemplate;
@@ -57,6 +59,8 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
@Autowired
private IDmIntentService intentService;

@Autowired
private IDmWordProcessService wordProcessService;

@Autowired
private MovieChatTemplate movieChatTemplate;
@@ -75,6 +79,7 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
INSTANCE.manDeviceService = this.manDeviceService;
INSTANCE.remoteEnterpriseService = this.remoteEnterpriseService;
INSTANCE.logService = this.logService;
INSTANCE.wordProcessService = this.wordProcessService;
}
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception {
@@ -146,6 +151,32 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
return;
}
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();
jo.put("action","chat");
jo.put("motion","idle");
@@ -163,6 +194,7 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
jo.put("traceId","");
jo.put("status",2);
jo.put("tts","大模型出现异常,请稍后重试。");
jo.put("code",500);
String str = jo.toJSONString();
log.info("发生异常client:{},内容:{}",devId,jo.toJSONString());
channel.writeAndFlush(new TextWebSocketFrame(str));
@@ -236,7 +268,9 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
@TLogAspect(str = "testtest")
// @TLogAspect({"enterpriseName","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);
channel.writeAndFlush(new TextWebSocketFrame(jo.toJSONString()));
}
@@ -285,6 +319,10 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket
log.info("断开废弃连接,userId:{},channel:{}:", userId, channel.id().asLongText());
return;
}
// 清楚traceId信息
if (ServerConfig.currentTraceMap.containsKey(userId)) {
ServerConfig.currentTraceMap.remove(userId);
}
if (ServerConfig.sessionMap.containsKey(userId)) {
ServerConfig.sessionMap.remove(userId);
log.info("用户下线,userId:{},channel:{}:", userId, channel.id().asLongText());


正在加载...
取消
保存