@@ -20,7 +20,7 @@ public class RemoteQAFallbackFactory implements FallbackFactory<RemoteQAService> | |||
@Override | |||
public RemoteQAService create(Throwable throwable) { | |||
log.error("短信服务调用失败:{}", throwable.getMessage()); | |||
log.error("知识库服务调用失败:{}", throwable.getMessage()); | |||
return new RemoteQAService() { | |||
@Override | |||
public AjaxResult query(String manCode, String question, Long tenantId) { | |||
@@ -7,7 +7,7 @@ | |||
<!-- 控制台输出 --> | |||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
</appender> | |||
@@ -22,7 +22,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -44,7 +44,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -22,7 +22,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -44,7 +44,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -78,10 +78,6 @@ public class ChatServerHandler extends SimpleChannelInboundHandler<TextWebSocket | |||
} | |||
@Override | |||
protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) throws Exception { | |||
tLogRPCHandler.processProviderSide(new TLogLabelBean()); | |||
Channel channel = channelHandlerContext.channel(); | |||
// 判断textWebSocketFrame.text()是否为空,如果为空,则直接返回 | |||
if (StringUtils.isEmpty(textWebSocketFrame.text()) || StringUtils.isEmpty(textWebSocketFrame.text().trim()) ) { | |||
@@ -52,6 +52,7 @@ import com.xueyi.nlt.nlt.domain.vo.DmKnowledgeLibAskVo; | |||
import com.xueyi.nlt.nlt.domain.vo.IntentTemplateVo; | |||
import com.xueyi.nlt.nlt.domain.vo.MarkRecordVo; | |||
import com.xueyi.nlt.nlt.domain.vo.*; | |||
import com.xueyi.nlt.nlt.domain.vo.NLPLogVo; | |||
import com.xueyi.nlt.nlt.mapper.DmRegularMapper; | |||
import com.xueyi.nlt.nlt.service.*; | |||
import com.xueyi.nlt.nlt.service.impl.DmSensitiveWordServiceImpl; | |||
@@ -95,6 +96,8 @@ import java.util.Map; | |||
import java.time.LocalDateTime; | |||
import java.util.*; | |||
import java.time.format.DateTimeFormatter; | |||
import java.time.LocalDateTime; | |||
import java.util.*; | |||
import java.util.regex.Matcher; | |||
import java.util.regex.Pattern; | |||
import java.util.stream.Collectors; | |||
@@ -901,6 +904,9 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt | |||
return AjaxResult.success(); | |||
} | |||
private Integer uploadLog(NLPLogVo vo) { | |||
return 0; | |||
} | |||
/** | |||
* 查询意图管理 | |||
列表 | |||
@@ -0,0 +1,191 @@ | |||
package com.xueyi.nlt.nlt.domain.vo; | |||
import com.alibaba.fastjson2.JSONObject; | |||
import com.fasterxml.jackson.annotation.JsonFormat; | |||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; | |||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |||
import com.xueyi.common.core.utils.time.LocalDateTimeSerializer; | |||
import com.xueyi.common.core.utils.time.LocalDatetimeDeserializer; | |||
import lombok.Data; | |||
import java.io.Serial; | |||
import java.io.Serializable; | |||
import java.time.LocalDateTime; | |||
import java.util.List; | |||
@Data | |||
public class NLPLogVo implements Serializable { | |||
@Serial | |||
private static final long serialVersionUID = 1L; | |||
protected Long id; | |||
/** 租户号 */ | |||
protected Long tenantId; | |||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") | |||
@JsonDeserialize(using = LocalDatetimeDeserializer.class) // 反序列化 | |||
@JsonSerialize(using = LocalDateTimeSerializer.class) | |||
protected LocalDateTime createTime; | |||
/** | |||
* 设备信息 | |||
*/ | |||
protected Device device; | |||
/** | |||
* 图片集合 | |||
*/ | |||
protected List<Image> images; | |||
/** | |||
* NLP相关日志 | |||
*/ | |||
protected NLP nlp; | |||
/** | |||
* 设备信息 | |||
*/ | |||
@Data | |||
class Device { | |||
// 设备id | |||
String devId; | |||
// 麦阵方案 | |||
String micOption; | |||
} | |||
/** | |||
* 图片信息 | |||
*/ | |||
@Data | |||
class Image { | |||
// 图片id | |||
String id; | |||
// 时间戳 | |||
Long timestamp; | |||
// 图像识别方案 | |||
String faceDetectOption; | |||
// 人脸结果图片集 | |||
List<FaceResult> faces; | |||
/** | |||
* 人脸结果 | |||
*/ | |||
@Data | |||
class FaceResult { | |||
/** 文件名 */ | |||
String filename; | |||
/** 人脸结果参数 */ | |||
Face face; | |||
} | |||
/** | |||
* 人脸识别信息 | |||
*/ | |||
@Data | |||
class Face { | |||
Integer trackID; | |||
Integer index; | |||
Float confidence; | |||
Float pitch; | |||
Float yaw; | |||
Float roll; | |||
Integer leftEyeType; | |||
Integer rightEyeType; | |||
Integer mouthType; | |||
Float minority; | |||
Float blurness; | |||
Float age; | |||
Float female; | |||
Float male; | |||
Rect rect; | |||
GazeResult gazeResult; | |||
} | |||
/** | |||
* 矩形框 | |||
*/ | |||
@Data | |||
class Rect { | |||
Float x; | |||
Float y; | |||
Float width; | |||
Float height; | |||
} | |||
/** | |||
* 视线结果 | |||
*/ | |||
@Data | |||
class GazeResult { | |||
GazeInfo leftEyeGaze; | |||
GazeInfo rightEyeGaze; | |||
} | |||
/** | |||
* 视线信息 | |||
*/ | |||
@Data | |||
class GazeInfo { | |||
Float centerX; | |||
Float centerY; | |||
Float vectorX; | |||
Float vectorY; | |||
Float vectorZ; | |||
Float roll; | |||
Float pitch; | |||
Float yaw; | |||
} | |||
} | |||
/** | |||
* ASR相关日志 | |||
*/ | |||
@Data | |||
class ASR { | |||
// VAD 开始时间 | |||
Long vadStartTime; | |||
// VAD 结束时间 | |||
Long vadEndTime; | |||
// ASR 方案 | |||
String asrOption; | |||
// 文件名 | |||
String filename; | |||
// 识别结果 | |||
String result; | |||
} | |||
/** | |||
* NLP相关日志 | |||
*/ | |||
@Data | |||
class NLP { | |||
// 问题 | |||
String question; | |||
/** 答案 */ | |||
String answer; | |||
/** 选项 */ | |||
List<String> options; | |||
/** 匹配的的模型 | |||
* -1: 未匹配模型 | |||
* 0: 正则表达式 | |||
* 1: 星火大模型 | |||
* 2: 文心一言 | |||
* 3: ChatGPT | |||
* 4:智普AI | |||
* 5:联动北方Lagi | |||
*/ | |||
Integer model; | |||
/** 响应时间 */ | |||
Long responseTime; | |||
// 用户选择的答案 | |||
Integer choose; | |||
} | |||
public String toJSONString() { | |||
return JSONObject.toJSONString(this); | |||
} | |||
} |
@@ -9,6 +9,7 @@ import com.xueyi.nlt.nlt.domain.LlmContext; | |||
import com.xueyi.nlt.nlt.domain.LlmParam; | |||
import com.xueyi.nlt.nlt.domain.LlmResponse; | |||
import com.xueyi.nlt.nlt.service.ISysLlmService; | |||
import com.yomahub.tlog.core.annotation.TLogAspect; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
@@ -85,6 +86,7 @@ public class FreeChatTemplate implements BaseTemplate{ | |||
return resultJson; | |||
} | |||
@TLogAspect(str = "DGMAN-NLT") | |||
public JSONObject handle(String dev, String content, boolean stream) { | |||
Long operatorId = TerminalSecurityContextHolder.getOperatorId(); | |||
String redisKey = "group:nlp:" + SecurityContextHolder.getLocalMap().get("enterprise_id") + ":" + operatorId; | |||
@@ -117,6 +119,7 @@ public class FreeChatTemplate implements BaseTemplate{ | |||
llmContext.setDevId(dev); | |||
LlmParam param = new LlmParam(); | |||
LlmResponse response = sysLlmService.stream(llmContext,param); | |||
log.info("llmContext:{}",llmContext); | |||
JSONObject resultJson = new JSONObject(); | |||
resultJson.put("tts","让我想一想。"); | |||
@@ -7,7 +7,7 @@ | |||
<!-- 控制台输出 --> | |||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
</appender> | |||
@@ -135,11 +135,10 @@ public class DmManDeviceController extends BaseController<DmManDeviceQuery, DmMa | |||
/** 根据设备id获取数字人信息 */ | |||
@GetMapping("/inner/info/{devId}") | |||
R<DmManDeviceDto> manDeviceInfoInner(@RequestParam(value = "devId") String devId) { | |||
System.out.println("manDeviceInfoInner:" + devId); | |||
DmManDeviceDto dto = super.baseService.manDeviceInfoInner(devId); | |||
System.out.println("manDeviceInfoInner:dto:" + dto.getTId()); | |||
SysEnterpriseDto enterpriseDto = enterpriseService.selectById(dto.getTId()); | |||
dto.setStrategyId(enterpriseDto.getStrategyId()); | |||
log.info("获取租户信息:" + dto); | |||
return R.ok(dto); | |||
} | |||
@@ -7,7 +7,7 @@ | |||
<!-- 控制台输出 --> | |||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
</appender> | |||
@@ -22,7 +22,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -44,7 +44,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -7,7 +7,7 @@ | |||
<!-- 控制台输出 --> | |||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
</appender> | |||
@@ -22,7 +22,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||
@@ -44,7 +44,7 @@ | |||
<!-- 日志最大的历史 60天 --> | |||
<maxHistory>60</maxHistory> | |||
</rollingPolicy> | |||
<encoder> | |||
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder"> | |||
<pattern>${log.pattern}</pattern> | |||
</encoder> | |||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> | |||