|
|
|
@@ -67,6 +67,7 @@ import com.xueyi.system.api.model.LoginUser; |
|
|
|
import com.xueyi.system.api.model.Source; |
|
|
|
import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto; |
|
|
|
import com.xueyi.system.api.organize.feign.RemoteEnterpriseService; |
|
|
|
import com.yomahub.tlog.core.annotation.TLogAspect; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@@ -87,8 +88,13 @@ import org.springframework.web.bind.annotation.RestController; |
|
|
|
import java.io.Serializable; |
|
|
|
import java.text.DateFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.*; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.regex.Matcher; |
|
|
|
import java.util.regex.Pattern; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
@@ -223,6 +229,7 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
return AjaxResult.success(jsonObjectR.getData()); |
|
|
|
} |
|
|
|
|
|
|
|
@TLogAspect(str="DGMAN-NLT") |
|
|
|
@PostMapping("/api/skill-intent") |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult skillIntentApi(@RequestBody DmIntentVo intent) { |
|
|
|
@@ -361,10 +368,19 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
/** |
|
|
|
* 联动北方大模型请求 |
|
|
|
*/ |
|
|
|
@TLogAspect(str="DGMAN-NLT") |
|
|
|
@PostMapping("/api/searchQuestionAnswer") |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult searchQuestionAnswer(@RequestBody DmIntentVo intent) { |
|
|
|
log.info("交互对象:{}",intent.toString()); |
|
|
|
// 定义标注日志对象 |
|
|
|
MarkRecordVo recordVo = new MarkRecordVo(); |
|
|
|
recordVo.setDevId(intent.getDevId()); |
|
|
|
recordVo.setId(IdUtil.getSnowflakeNextId()); |
|
|
|
recordVo.setCreateTime(LocalDateTime.now()); |
|
|
|
recordVo.setQuestion(intent.getContent()); |
|
|
|
recordVo.setHit(1); |
|
|
|
|
|
|
|
redisTemplate.opsForValue().increment("dashboard:server", 1); |
|
|
|
R<DmManDeviceDto> manDeviceDtoR = manDeviceService.manDeviceInfoInner(intent.getDevId()); |
|
|
|
if (manDeviceDtoR.isFail()) { |
|
|
|
@@ -376,8 +392,8 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
if (enterpriseDtoR.isOk()) { |
|
|
|
enterpriseName = enterpriseDtoR.getData().getName(); |
|
|
|
} |
|
|
|
recordVo.setTenantId(Long.valueOf(manDeviceDtoR.getData().getTId())); |
|
|
|
DmIntentResponse response = new DmIntentResponse(); |
|
|
|
|
|
|
|
//先调用意图 |
|
|
|
//根据技能调用知识库或大模型 |
|
|
|
CoversationSessionVo sessionObject = (CoversationSessionVo) redisTemplate2.opsForValue().get("group:device" + ":" + intent.getDevId() + ":" +"session"); |
|
|
|
@@ -385,6 +401,13 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
response.setMsg(""); |
|
|
|
response.setSkillCode("34"); |
|
|
|
response.setH5(flightMessageTemplate.handle(intent.getDevId(),intent.getContent())); |
|
|
|
recordVo.setType(2); |
|
|
|
recordVo.setSkillCode("34"); // 航班查询 |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getH5().toJSONString()); |
|
|
|
recordVo.setAnswers(answers); |
|
|
|
// 记录log |
|
|
|
log.info(recordVo.toString()); |
|
|
|
return AjaxResult.success(response); |
|
|
|
|
|
|
|
} |
|
|
|
@@ -394,6 +417,12 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
redisTemplate.opsForValue().increment("dashboard:flight", 1); |
|
|
|
pushIntoDashboardRedis(enterpriseName, "查询航班信息", "skill"); |
|
|
|
response.setH5(flightMessageTemplate.handle(intent.getDevId(), intent.getContent())); |
|
|
|
recordVo.setType(2); |
|
|
|
recordVo.setSkillCode("34"); // 航班查询 |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getH5().toJSONString()); |
|
|
|
recordVo.setAnswers(answers); |
|
|
|
log.info(recordVo.toString()); |
|
|
|
return AjaxResult.success(response); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -410,6 +439,12 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
content = qaAjax.getResult().get(0).getKnowledgeLib(); |
|
|
|
pushIntoDashboardRedis(enterpriseName,content,"knowledge"); |
|
|
|
response.setH5(JSONObject.from(qaAjax)); |
|
|
|
recordVo.setType(0); |
|
|
|
recordVo.setSkillCode("34"); // 航班查询 |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getH5().getJSONArray("result").getJSONObject(0).getString("answer")); |
|
|
|
recordVo.setAnswers(answers); |
|
|
|
log.info(recordVo.toString()); |
|
|
|
return AjaxResult.success(response); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -468,6 +503,14 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
joImage.put("msg","抱歉,您的问题我无法解答。"); |
|
|
|
response.setH5(joImage); |
|
|
|
} |
|
|
|
// 记录日志 |
|
|
|
recordVo.setType(1); |
|
|
|
recordVo.setSkillCode("30"); // 航班查询 |
|
|
|
recordVo.setLlm("lagi"); |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getH5().getString("msg")); |
|
|
|
recordVo.setAnswers(answers); |
|
|
|
log.info(recordVo.toString()); |
|
|
|
return AjaxResult.success(response); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -572,11 +615,20 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
/** |
|
|
|
* 意图请求列表 |
|
|
|
*/ |
|
|
|
@TLogAspect(str="DGMAN-NLT") |
|
|
|
@PostMapping("/inner/conversation") |
|
|
|
@ResponseBody |
|
|
|
public R<DmIntentResponse> conversationInner(@RequestBody DmIntentVo intent) { |
|
|
|
DmIntentResponse response = new DmIntentResponse(); |
|
|
|
|
|
|
|
// 记录 |
|
|
|
// 定义标注日志对象 |
|
|
|
MarkRecordVo recordVo = new MarkRecordVo(); |
|
|
|
recordVo.setDevId(intent.getDevId()); |
|
|
|
recordVo.setId(IdUtil.getSnowflakeNextId()); |
|
|
|
recordVo.setCreateTime(LocalDateTime.now()); |
|
|
|
recordVo.setQuestion(intent.getContent()); |
|
|
|
recordVo.setHit(1); |
|
|
|
|
|
|
|
String enterpriseId = (String)SecurityContextHolder.getLocalMap().get("enterprise_id"); |
|
|
|
String enterpriseName = ""; |
|
|
|
@@ -595,6 +647,11 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
if (response == null || StringUtils.isEmpty(response.getSkillCode())) { |
|
|
|
// 做场景1、2处理 |
|
|
|
if (!StringUtils.isEmpty(response.getMsg())) { |
|
|
|
// 记录log |
|
|
|
recordVo.setType(2); |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getMsg()); |
|
|
|
recordVo.setAnswers(answers); // 航班查询 |
|
|
|
return R.ok(response); |
|
|
|
} |
|
|
|
else { |
|
|
|
@@ -609,6 +666,11 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
content = qaAjax.getResult().get(0).getKnowledgeLib(); |
|
|
|
pushIntoDashboardRedis(enterpriseName,content,"knowledge"); |
|
|
|
response.setH5(JSONObject.from(qaAjax)); |
|
|
|
// 记录log |
|
|
|
recordVo.setType(2); |
|
|
|
List answers = new ArrayList(); |
|
|
|
answers.add(response.getMsg()); |
|
|
|
recordVo.setAnswers(answers); // 航班查询 |
|
|
|
return R.ok(response); |
|
|
|
} |
|
|
|
else { |
|
|
|
@@ -749,8 +811,6 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 意图请求 |
|
|
|
列表 |
|
|
|
|