Commit b5aa0712 authored by R10's avatar R10

历史记录重写接口

parent cab016c0
...@@ -48,7 +48,7 @@ public interface AiDialoguesService { ...@@ -48,7 +48,7 @@ public interface AiDialoguesService {
* @param type 对话类型 * @param type 对话类型
* @param userId 用户ID * @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; ...@@ -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.dto.AiDialoguesRecordDto;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesGuessYouAskEntity; 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.query.ProblemAssociationQueryItem;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService;
...@@ -91,14 +93,16 @@ public class AiDialoguesServiceImpl implements AiDialoguesService { ...@@ -91,14 +93,16 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
} }
@Override @Override
public List<AiDialoguesRecordDto> getList(AiDialoguesTypeEnum type, Long userId) throws Exception { public List<AiDialoguesRecordDto> getList(List<AiDialoguesTypeEnum> typeEnumList, Long userId) throws Exception {
logger.info("get ai dialogues list type:{}, userId:{}", type, userId); logger.info("get ai dialogues list type:{}, userId:{}", JsonUtils.serialize(typeEnumList), userId);
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesType(type.getType()); List<String> typeList = typeEnumList.stream().map(item -> item.getType()).collect(Collectors.toList());
bizAiDialoguesEntity.setMemberId(userId); AiDialoguesQueryCondition condition = new AiDialoguesQueryCondition();
bizAiDialoguesEntity.setIsDeleted(CommonConstant.IsDeleted.N); condition.setDialoguesTypeList(typeList);
List<BizAiDialoguesEntity> entities = bizAiDialoguesService.findByExample(bizAiDialoguesEntity, null); condition.setMemberId(userId);
condition.setIsDeleted(CommonConstant.IsDeleted.N);
List<AiDialoguesQueryItem> entities = bizAiDialoguesService.queryAiDialoguesQuery(condition, null);
List<AiDialoguesRecordDto> result = new ArrayList<>(); List<AiDialoguesRecordDto> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(entities)) { 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 { ...@@ -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; ...@@ -12,9 +12,11 @@ import cn.com.poc.expose.dto.DialoguesContextDto;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Component @Component
...@@ -38,13 +40,22 @@ public class AiDialoguesRestImpl implements AiDialoguesRest { ...@@ -38,13 +40,22 @@ public class AiDialoguesRestImpl implements AiDialoguesRest {
} }
@Override @Override
public List<AiDialoguesRecordDto> getList(String type) throws Exception { public List<AiDialoguesRecordDto> getList(List<String> typeList) throws Exception {
Assert.notBlank(type, "对话类型不能为空"); if (CollectionUtils.isEmpty(typeList)) {
throw new BusinessException("对话类型不能为空");
}
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (ObjectUtil.isEmpty(userBaseEntity)) { if (ObjectUtil.isEmpty(userBaseEntity)) {
throw new BusinessException("用户未登录"); 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 @Override
......
package cn.com.poc.ai_dialogues.service; 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.yict.framemax.core.service.BaseService;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.yict.framemax.data.model.PagingInfo; import cn.com.yict.framemax.data.model.PagingInfo;
...@@ -28,4 +30,5 @@ public interface BizAiDialoguesService extends BaseService { ...@@ -28,4 +30,5 @@ public interface BizAiDialoguesService extends BaseService {
void deletedById(java.lang.Long id) throws Exception; 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; ...@@ -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.convert.BizAiDialoguesConvert;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.model.BizAiDialoguesModel; 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.repository.BizAiDialoguesRepository;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.utils.UUIDTool; import cn.com.poc.common.utils.UUIDTool;
...@@ -135,4 +137,9 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl ...@@ -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 { ...@@ -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; 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 { ...@@ -189,11 +189,42 @@ public class AiLawServiceImpl implements AiLawService {
bizAgentApplicationDialoguesRecordService.save(inputRecord); bizAgentApplicationDialoguesRecordService.save(inputRecord);
bizAgentApplicationDialoguesRecordService.save(assistantRecord); 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 { 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); BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode);
if (documentDialoguePrompt == null || StringUtils.isBlank(documentDialoguePrompt.getConfigSystem())) { if (documentDialoguePrompt == null || StringUtils.isBlank(documentDialoguePrompt.getConfigSystem())) {
logger.error("获取对话提示词失败 , configCode:{}", promptCode); 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