|
|
|
@@ -1,6 +1,5 @@ |
|
|
|
package com.xueyi.nlt.nlt.controller; |
|
|
|
import co.elastic.clients.elasticsearch.ElasticsearchClient; |
|
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.MatchAllQuery; |
|
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.MatchQuery; |
|
|
|
import co.elastic.clients.elasticsearch.core.SearchResponse; |
|
|
|
import co.elastic.clients.elasticsearch.core.search.Hit; |
|
|
|
@@ -10,8 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
|
|
|
import com.xueyi.common.cache.utils.SourceUtil; |
|
|
|
import com.xueyi.common.core.constant.basic.SecurityConstants; |
|
|
|
import com.xueyi.common.core.constant.digitalman.MessageConstants; |
|
|
|
import com.xueyi.common.core.constant.digitalman.SkillConstants.SkillType; |
|
|
|
import com.xueyi.common.core.context.SecurityContextHolder; |
|
|
|
import com.xueyi.common.core.utils.core.ListUtil; |
|
|
|
import com.xueyi.common.core.utils.core.IdUtil; |
|
|
|
import com.xueyi.common.core.web.result.AjaxResult; |
|
|
|
import com.xueyi.common.core.web.result.R; |
|
|
|
import com.xueyi.common.core.web.validate.V_A; |
|
|
|
@@ -20,11 +20,16 @@ import com.xueyi.common.log.annotation.Log; |
|
|
|
import com.xueyi.common.log.enums.BusinessType; |
|
|
|
import com.xueyi.common.security.annotation.Logical; |
|
|
|
import com.xueyi.common.security.annotation.RequiresPermissions; |
|
|
|
import com.xueyi.common.security.utils.SecurityUtils; |
|
|
|
import com.xueyi.common.web.entity.controller.BaseController; |
|
|
|
import com.xueyi.nlt.api.netty.domain.vo.DmWebSocketMessageVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.*; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.response.DmIntentResponse; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.CoversationSessionVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.DmIntentVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.DmLandingLlmVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.DmRecognitionVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.KnowledgeVo; |
|
|
|
import com.xueyi.nlt.api.nlt.domain.vo.TaskKnowledgeVo; |
|
|
|
import com.xueyi.nlt.api.nlt.feign.RemoteIntentService; |
|
|
|
import com.xueyi.nlt.api.nlt.feign.RemoteLandingLlmService; |
|
|
|
import com.xueyi.nlt.api.nlt.feign.RemoteQAService; |
|
|
|
@@ -33,6 +38,7 @@ import com.xueyi.nlt.nlt.context.TerminalSecurityContextHolder; |
|
|
|
import com.xueyi.nlt.nlt.domain.dto.DmIntentDto; |
|
|
|
import com.xueyi.nlt.nlt.domain.query.DmIntentQuery; |
|
|
|
import com.xueyi.nlt.nlt.domain.vo.IntentTemplateVo; |
|
|
|
import com.xueyi.nlt.nlt.domain.vo.MarkRecordVo; |
|
|
|
import com.xueyi.nlt.nlt.service.IDmIntentService; |
|
|
|
import com.xueyi.nlt.nlt.template.FreeChatTemplate; |
|
|
|
import com.xueyi.nlt.nlt.template.GenerativeKnowledgeTemplate; |
|
|
|
@@ -47,17 +53,21 @@ import com.xueyi.system.api.digitalmans.feign.RemoteSkillService; |
|
|
|
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.xueyi.tenant.api.tenant.domain.dto.TeTenantDto; |
|
|
|
import com.xueyi.tenant.api.tenant.feign.RemoteTenantService; |
|
|
|
import org.apache.commons.lang.time.DateUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.data.redis.core.RedisTemplate; |
|
|
|
import org.springframework.data.redis.core.StringRedisTemplate; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
import com.xueyi.common.core.constant.digitalman.SkillConstants.SkillType; |
|
|
|
import org.springframework.web.bind.annotation.DeleteMapping; |
|
|
|
import org.springframework.web.bind.annotation.GetMapping; |
|
|
|
import org.springframework.web.bind.annotation.PathVariable; |
|
|
|
import org.springframework.web.bind.annotation.PostMapping; |
|
|
|
import org.springframework.web.bind.annotation.PutMapping; |
|
|
|
import org.springframework.web.bind.annotation.RequestBody; |
|
|
|
import org.springframework.web.bind.annotation.RequestMapping; |
|
|
|
import org.springframework.web.bind.annotation.ResponseBody; |
|
|
|
import org.springframework.web.bind.annotation.RestController; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.io.Serializable; |
|
|
|
@@ -68,9 +78,12 @@ import java.time.Instant; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.ZoneId; |
|
|
|
import java.util.concurrent.CountDownLatch; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.regex.Matcher; |
|
|
|
import java.util.regex.Pattern; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import static com.xueyi.common.core.constant.digitalman.MessageConstants.SYS_DICT_DATA_SPLITED; |
|
|
|
@@ -316,6 +329,19 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
return AjaxResult.success(joResult); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 数字人提交问答请求 |
|
|
|
*/ |
|
|
|
@PostMapping("/api/commitKnowledgeRecord") |
|
|
|
@ResponseBody |
|
|
|
public AjaxResult commitKnowledgeRecord(@RequestBody MarkRecordVo recordVo) { |
|
|
|
log.info("提交记录:{}", recordVo.toString()); |
|
|
|
recordVo.setId(IdUtil.getSnowflakeNextId()); |
|
|
|
redisTemplate.opsForHash().put("nlt:record:origin",recordVo.getId(),recordVo); |
|
|
|
// return remoteQAService.query(manDeviceDtoR.getData().getManCode(),intent.getContent(),manDeviceDtoR.getData().getTId()); |
|
|
|
return AjaxResult.success(null); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 意图请求列表 |
|
|
|
@@ -519,6 +545,32 @@ public class DmIntentController extends BaseController<DmIntentQuery, DmIntentDt |
|
|
|
return R.ok(null,"处理成功"); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 意图管理 |
|
|
|
列表 |
|
|
|
*/ |
|
|
|
@GetMapping("/getRecordList") |
|
|
|
public AjaxResult getRecordList(MarkRecordVo recordVo) { |
|
|
|
// 获取缓存nlt:record:origin前十的列表 |
|
|
|
Map<Object,Object> records = redisTemplate2.opsForHash().randomEntries("nlt:record:origin", 10); |
|
|
|
if (records == null || records.isEmpty()) { |
|
|
|
return AjaxResult.success("没有数据"); |
|
|
|
} |
|
|
|
List result = records.values().stream().toList(); |
|
|
|
|
|
|
|
return AjaxResult.success(result); |
|
|
|
} |
|
|
|
|
|
|
|
@PostMapping("/commitRecord") |
|
|
|
public AjaxResult commitRecordList(MarkRecordVo recordVo) { |
|
|
|
// 获取缓存nlt:record:origin前十的列表 |
|
|
|
if (redisTemplate2.opsForHash().hasKey("nlt:record:origin",recordVo.getId())) { |
|
|
|
redisTemplate.opsForList().rightPush("nlt:record:marked", JSONObject.toJSONString(recordVo)); |
|
|
|
redisTemplate.opsForHash().delete("nlt:record:origin",recordVo.getId()); |
|
|
|
} |
|
|
|
return AjaxResult.success(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询意图管理 |
|
|
|
列表 |
|
|
|
|