| @@ -23,7 +23,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); | |||
| } | |||
| } | |||
| @@ -15,6 +15,7 @@ import com.xueyi.nlt.nlt.domain.dto.DmPromptDto; | |||
| import com.xueyi.nlt.nlt.service.IDmHotspotService; | |||
| import com.xueyi.nlt.nlt.service.IDmPromptService; | |||
| 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; | |||
| @@ -104,6 +105,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; | |||
| @@ -139,6 +141,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"> | |||