Commit b5aa0712 authored by R10's avatar R10

历史记录重写接口

parent cab016c0
......@@ -48,7 +48,7 @@ public interface AiDialoguesService {
* @param type 对话类型
* @param userId 用户ID
*/
List<AiDialoguesRecordDto> getList(AiDialoguesTypeEnum type, Long userId) throws Exception;
List<AiDialoguesRecordDto> getList(List<AiDialoguesTypeEnum> typeList, Long userId) throws Exception;
/**
......
......@@ -7,6 +7,8 @@ import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum;
import cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesGuessYouAskEntity;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryCondition;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryItem;
import cn.com.poc.ai_dialogues.query.ProblemAssociationQueryItem;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService;
......@@ -91,14 +93,16 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
}
@Override
public List<AiDialoguesRecordDto> getList(AiDialoguesTypeEnum type, Long userId) throws Exception {
logger.info("get ai dialogues list type:{}, userId:{}", type, userId);
public List<AiDialoguesRecordDto> getList(List<AiDialoguesTypeEnum> typeEnumList, Long userId) throws Exception {
logger.info("get ai dialogues list type:{}, userId:{}", JsonUtils.serialize(typeEnumList), userId);
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesType(type.getType());
bizAiDialoguesEntity.setMemberId(userId);
bizAiDialoguesEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiDialoguesEntity> entities = bizAiDialoguesService.findByExample(bizAiDialoguesEntity, null);
List<String> typeList = typeEnumList.stream().map(item -> item.getType()).collect(Collectors.toList());
AiDialoguesQueryCondition condition = new AiDialoguesQueryCondition();
condition.setDialoguesTypeList(typeList);
condition.setMemberId(userId);
condition.setIsDeleted(CommonConstant.IsDeleted.N);
List<AiDialoguesQueryItem> entities = bizAiDialoguesService.queryAiDialoguesQuery(condition, null);
List<AiDialoguesRecordDto> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(entities)) {
......
SELECT
id,
dialogues_id,
dialogues_type,
member_id,
is_deleted,
title,
file_url
FROM
biz_ai_dialogues
WHERE 1=1
<< AND id = :id >>
<< AND dialogues_id = :dialoguesId>>
<< AND dialogues_type in (:dialoguesTypeList)>>
<< AND member_id = :memberId>>
<< AND is_deleted = :isDeleted>>
\ No newline at end of file
package cn.com.poc.ai_dialogues.query;
import java.io.Serializable;
import java.util.List;
/**
* Query Condition class for AiDialoguesQuery
*/
public class AiDialoguesQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.String id;
public java.lang.String getId(){
return this.id;
}
public void setId(java.lang.String id){
this.id = id;
}
private java.lang.String dialoguesId;
public java.lang.String getDialoguesId(){
return this.dialoguesId;
}
public void setDialoguesId(java.lang.String dialoguesId){
this.dialoguesId = dialoguesId;
}
private List<String> dialoguesTypeList;
public List<String> getDialoguesTypeList(){
return this.dialoguesTypeList;
}
public void setDialoguesTypeList(List<String> dialoguesTypeList){
this.dialoguesTypeList = dialoguesTypeList;
}
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
}
\ No newline at end of file
package cn.com.poc.ai_dialogues.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for AiDialoguesQuery
*/
@Entity
public class AiDialoguesQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** id
*id
*/
private java.lang.Long id;
@Column(name = "id")
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** dialogues_id
*dialogues_id
*/
private java.lang.String dialoguesId;
@Column(name = "dialogues_id")
public java.lang.String getDialoguesId(){
return this.dialoguesId;
}
public void setDialoguesId(java.lang.String dialoguesId){
this.dialoguesId = dialoguesId;
}
/** dialogues_type
*dialogues_type
*/
private java.lang.String dialoguesType;
@Column(name = "dialogues_type")
public java.lang.String getDialoguesType(){
return this.dialoguesType;
}
public void setDialoguesType(java.lang.String dialoguesType){
this.dialoguesType = dialoguesType;
}
/** member_id
*member_id
*/
private java.lang.Long memberId;
@Column(name = "member_id")
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** is_deleted
*is_deleted
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted")
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** title
*title
*/
private java.lang.String title;
@Column(name = "title")
public java.lang.String getTitle(){
return this.title;
}
public void setTitle(java.lang.String title){
this.title = title;
}
/** file_url
*file_url
*/
private java.lang.String fileUrl;
@Column(name = "file_url")
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR", length = 225)
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER", length = 225)
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
}
\ No newline at end of file
......@@ -27,9 +27,9 @@ public interface AiDialoguesRest extends BaseRest {
/**
* 获取对话列表
*
* @param type 对话类型 - AiDialoguesTypeEnum
* @param typeList 对话类型 - AiDialoguesTypeEnum
*/
List<AiDialoguesRecordDto> getList(@RequestParam String type) throws Exception;
List<AiDialoguesRecordDto> getList(@RequestParam List<String> typeList) throws Exception;
/**
......
......@@ -12,9 +12,11 @@ import cn.com.poc.expose.dto.DialoguesContextDto;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Component
......@@ -38,13 +40,22 @@ public class AiDialoguesRestImpl implements AiDialoguesRest {
}
@Override
public List<AiDialoguesRecordDto> getList(String type) throws Exception {
Assert.notBlank(type, "对话类型不能为空");
public List<AiDialoguesRecordDto> getList(List<String> typeList) throws Exception {
if (CollectionUtils.isEmpty(typeList)) {
throw new BusinessException("对话类型不能为空");
}
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (ObjectUtil.isEmpty(userBaseEntity)) {
throw new BusinessException("用户未登录");
}
return aiDialoguesService.getList(AiDialoguesTypeEnum.getByType(type), userBaseEntity.getUserId());
List<AiDialoguesTypeEnum> typeEnumList = new ArrayList<>();
for (String type : typeList) {
typeEnumList.add( AiDialoguesTypeEnum.getByType(type));
}
return aiDialoguesService.getList(typeEnumList, userBaseEntity.getUserId());
}
@Override
......
package cn.com.poc.ai_dialogues.service;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryCondition;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryItem;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
......@@ -28,4 +30,5 @@ public interface BizAiDialoguesService extends BaseService {
void deletedById(java.lang.Long id) throws Exception;
List<AiDialoguesQueryItem> queryAiDialoguesQuery(AiDialoguesQueryCondition condition, PagingInfo pagingInfo) throws Exception;
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ package cn.com.poc.ai_dialogues.service.impl;
import cn.com.poc.ai_dialogues.convert.BizAiDialoguesConvert;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.model.BizAiDialoguesModel;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryCondition;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryItem;
import cn.com.poc.ai_dialogues.repository.BizAiDialoguesRepository;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.utils.UUIDTool;
......@@ -135,4 +137,9 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl
}
}
@Override
public List<AiDialoguesQueryItem> queryAiDialoguesQuery(AiDialoguesQueryCondition condition, PagingInfo pagingInfo) throws Exception {
return this.sqlDao.query(condition, AiDialoguesQueryItem.class, pagingInfo);
}
}
\ No newline at end of file
......@@ -22,4 +22,8 @@ public interface AiLawService {
*/
void call(String dialoguesId, String input, boolean enableSearchEngine, boolean enableDeepThinking, String fileUrl, Integer[] knowledgeIds, Integer[] databaseIds, Long userId) throws Exception;
/**
* @throws Exception
*/
void templateCall(String dialoguesId, String input, String fileUrl, Long userId) throws Exception;
}
......@@ -189,11 +189,42 @@ public class AiLawServiceImpl implements AiLawService {
bizAgentApplicationDialoguesRecordService.save(inputRecord);
bizAgentApplicationDialoguesRecordService.save(assistantRecord);
}
/**
* @param dialoguesId
* @param input
* @param fileUrl
* @param userId
* @throws Exception
*/
@Override
public void templateCall(String dialoguesId, String input, String fileUrl, Long userId) throws Exception {
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesId(dialoguesId);
bizAiDialoguesEntity.setMemberId(userId);
bizAiDialoguesEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiDialoguesEntity> bizAiDialoguesEntities = bizAiDialoguesService.findByExample(bizAiDialoguesEntity, null);
if (CollectionUtils.isEmpty(bizAiDialoguesEntities)) {
throw new BusinessException("当前对话不存在");
}
BizAiDialoguesEntity aiDialoguesEntity = bizAiDialoguesEntities.get(0);
if (StringUtils.isBlank(aiDialoguesEntity.getTitle())) {
aiDialoguesEntity.setTitle(input);
bizAiDialoguesService.update(aiDialoguesEntity);
}
}
private List<Message> buildMessages(String dialogsId, Long userId, String input, String fileUrl, List<KnowledgeContentResult> knowledgeContentResults, ToolFunction toolFunction) throws Exception {
// 获取对话提示词
String promptCode = "AiPortalPrompt";
String promptCode = "AILawyerWritingPrompt";
BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode);
if (documentDialoguePrompt == null || StringUtils.isBlank(documentDialoguePrompt.getConfigSystem())) {
logger.error("获取对话提示词失败 , configCode:{}", promptCode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment