Сравнить коммиты

...

3 коммитов

Автор SHA1 Сообщение Дата
  kira 17a0d93f95 yinruoxi 1 год назад
  kira e23fcda446 yinruoxi 1 год назад
  kira f92acd7b42 yinruoxi 1 год назад
4 измененных файлов: 79 добавлений и 10 удалений
  1. +4
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteBroadcastService.java
  2. +45
    -10
      xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/controller/DmIntentController.java
  3. +2
    -0
      xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/template/MovieChatTemplate.java
  4. +28
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmBroadcastController.java

+ 4
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/digitalmans/feign/RemoteBroadcastService.java Просмотреть файл

@@ -21,4 +21,8 @@ public interface RemoteBroadcastService {
public R<List<DmBroadcastVo>> innerlist(@RequestParam("manCode") String manCode,
@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@GetMapping("/broadcast/inner/selectById")
public R<DmBroadcastVo> innerSelectById(@RequestParam("id") Long id,
@RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

}

+ 45
- 10
xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/controller/DmIntentController.java Просмотреть файл

@@ -46,10 +46,8 @@ import com.xueyi.nlt.nlt.template.MovieChatTemplate;
import com.xueyi.system.api.digitalmans.domain.dto.DmManDeviceDto;
import com.xueyi.system.api.digitalmans.domain.dto.DmSkillDto;
import com.xueyi.system.api.digitalmans.domain.vo.DmBatchQuestionsVo;
import com.xueyi.system.api.digitalmans.feign.RemoteDigitalmanService;
import com.xueyi.system.api.digitalmans.feign.RemoteManDeviceService;
import com.xueyi.system.api.digitalmans.feign.RemoteQuestionanswersService;
import com.xueyi.system.api.digitalmans.feign.RemoteSkillService;
import com.xueyi.system.api.digitalmans.domain.vo.DmBroadcastVo;
import com.xueyi.system.api.digitalmans.feign.*;
import com.xueyi.system.api.model.Source;
import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto;
import com.xueyi.system.api.organize.feign.RemoteEnterpriseService;
@@ -145,6 +143,9 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt
@Autowired
RemoteDigitalmanService remoteDigitalmanService;

@Autowired
RemoteBroadcastService remoteBroadcastService;

@Autowired
RemoteEnterpriseService remoteEnterpriseService;
@Autowired
@@ -386,15 +387,12 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt
@ResponseBody
public R<JSONObject> conversationInner(@RequestBody DmIntentVo intent) {
JSONObject joResult = null;
if (intent.getMode() !=null && intent.getMode().equals(MessageConstants.MODE_FREE_CHAT)) {
// 闲聊
joResult = movieChatTemplate.handle(intent.getDevId(),intent.getContent());
return R.ok(joResult);
}


String enterpriseId = (String)SecurityContextHolder.getLocalMap().get("enterprise_id");
String enterpriseName = "";
R<SysEnterpriseDto> enterpriseDtoR = remoteEnterpriseService.getInfo(Long.valueOf(enterpriseId));
Source source = SourceUtil.getSourceCache(enterpriseDtoR.getData().getStrategyId());
if (enterpriseDtoR.isOk()) {
enterpriseName = enterpriseDtoR.getData().getName();
}
@@ -418,7 +416,44 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt
content = qajson.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("knowledge_lib");
}
pushIntoDashboardRedis(enterpriseName,content,"knowledge");
return R.ok(JSONObject.from(qaAjax.get("data")));
// 判断当前模式是否为MODE_FREE_CHAT,如果为MODE_FREE_CHAT,将问题与答案存入redis
if (intent.getMode() !=null && intent.getMode().equals(MessageConstants.MODE_FREE_CHAT )) {
String answer = qajson.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("answer");
String type = qajson.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("model_type");
String accurate = qajson.getJSONObject("data").getString("accurate");
if (accurate.equals("1")) {
// 如果type == 0, 直接将问题/答案存入缓存
if (type.equals("0")) {
redisTemplate2.opsForList().rightPush("group:nlt" + ":" + enterpriseId + ":" + intent.getOperator(), intent.getContent());
redisTemplate2.opsForList().rightPush("group:nlt" + ":" + enterpriseId + ":" + intent.getOperator(), answer);
} else {
// 获取播报信息,将播报信息存入缓存
Long broadcastId = Long.parseLong(answer);
R<DmBroadcastVo> rBroadcastVo = remoteBroadcastService.innerSelectById(broadcastId,Long.parseLong(enterpriseId),source.getMaster(),SecurityConstants.INNER);
List<JSONObject> broadcastResourceList = rBroadcastVo.getData().getResource();
String result = "";
for (JSONObject jo : broadcastResourceList) {
String tts = jo.getString("ttsText");
if (StringUtils.isNotEmpty(tts)) {
result += tts;
}
}
// 将拼接好的tts添加到缓存
redisTemplate2.opsForList().rightPush("group:nlt" + ":" + enterpriseId + ":" + intent.getOperator(), intent.getContent());
redisTemplate2.opsForList().rightPush("group:nlt" + ":" + enterpriseId + ":" + intent.getOperator(), result);
}

return R.ok(JSONObject.from(qaAjax.get("data")));
}
} else {
return R.ok(JSONObject.from(qaAjax.get("data")));
}

}
if (intent.getMode() !=null && intent.getMode().equals(MessageConstants.MODE_FREE_CHAT)) {
// 闲聊
joResult = movieChatTemplate.handle(intent.getDevId(),intent.getContent());
return R.ok(joResult);
}
SkillType.BOOK_MEETING_ROOM.getCode();
// 判断skill code的值


+ 2
- 0
xueyi-modules/xueyi-nlt/src/main/java/com/xueyi/nlt/nlt/template/MovieChatTemplate.java Просмотреть файл

@@ -68,6 +68,8 @@ public class MovieChatTemplate implements BaseTemplate{
}
}
if(!StringUtils.isEmpty(result)){
// 判断如果回答内容与问题完全相同不追加到redis中
//
redisTemplate.opsForList().rightPush(redisKey,content);
redisTemplate.opsForList().rightPush(redisKey,result);
}


+ 28
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/digitalmans/controller/DmBroadcastController.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.xueyi.system.digitalmans.controller;

import com.alibaba.fastjson2.JSONObject;
import com.xueyi.common.core.constant.basic.SecurityConstants;
import com.xueyi.common.core.utils.core.IdUtil;
import com.xueyi.common.core.web.result.AjaxResult;
import com.xueyi.common.core.web.result.R;
@@ -102,6 +103,33 @@ public class DmBroadcastController extends BaseController<DmBroadcastQuery, DmBr
return R.fail("无法获取播报信息");
}

@GetMapping("/inner/selectById")
public R<DmBroadcastVo> innerSelectById(@RequestParam("id") Long id) {
DmDigitalmanQuery query = new DmDigitalmanQuery();
query.setId(id);
DmBroadcastDto dto = super.baseService.selectById(id);
DmBroadcastVo vo = new DmBroadcastVo();
vo.setId(dto.getId());
vo.setSpeed(dto.getSpeed());
vo.setRecycle(dto.getRecycle());
List<DmBroadcastResourceMerge> mergeDtos = broadcastManager.selectBroadcastResourceMerge(dto.getId());
int order = 0;
List<JSONObject> rList = new ArrayList<>();
for (DmBroadcastResourceMerge merge : mergeDtos) {
if (merge.getResourceId() != null && merge.getResourceId() > 0) {

DmResourcesDto resourcesDto = resourcesConverter.mapperDto(resourceMapper.selectById(merge.getResourceId()));
JSONObject json = new JSONObject();
json.put("order",order++);
json.put("ttsText",merge.getTtsText());
json.put("url", resourcesDto.getUrl());
rList.add(json);
}
}
vo.setResource(rList);
return R.ok(vo);
}

/**
* 查询播报列表
*/


Загрузка…
Отмена
Сохранить