Commit dad21e4d authored by alex yao's avatar alex yao

feat: ai写作 优化

parent da5a7be2
package cn.com.poc.writing.aggregate; package cn.com.poc.writing.aggregate;
import cn.com.poc.writing.dto.AiWritingDialoguesContextDto;
import cn.com.poc.writing.dto.AiWritingExampleDto; import cn.com.poc.writing.dto.AiWritingExampleDto;
import cn.com.poc.writing.dto.AiWritingExampleTypeDto; import cn.com.poc.writing.dto.AiWritingExampleTypeDto;
import cn.com.poc.writing.dto.AiWritingTitleGenerationDto; import cn.com.poc.writing.dto.AiWritingTitleGenerationDto;
...@@ -48,4 +49,13 @@ public interface AiWritingService { ...@@ -48,4 +49,13 @@ public interface AiWritingService {
AiWritingTitleGenerationDto titleGeneration(String input); AiWritingTitleGenerationDto titleGeneration(String input);
/**
* 获取对话上下文
*
* @param dialogueId
* @return
*/
List<AiWritingDialoguesContextDto> getDialogueContext(String dialogueId);
} }
package cn.com.poc.writing.aggregate.impl; package cn.com.poc.writing.aggregate.impl;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Tool; import cn.com.poc.expose.dto.DialoguesContextDto;
import com.google.common.collect.Maps; import cn.com.poc.writing.dto.AiWritingDialoguesContextDto;
import cn.com.poc.writing.entity.BizAiWritingDialoguesRecordEntity;
import cn.com.poc.writing.query.AiWritingDialoguesRecordQueryItem;
import cn.com.poc.writing.service.BizAiWritingDialoguesRecordService;
import cn.com.poc.agent_application.entity.BizAgentApplicationDialoguesRecordEntity; import cn.com.poc.agent_application.entity.BizAgentApplicationDialoguesRecordEntity;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity; import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.agent_application.entity.KnowledgeContentResult; import cn.com.poc.agent_application.entity.KnowledgeContentResult;
import cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService; import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum; import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.SSEUtil; import cn.com.poc.common.utils.SSEUtil;
...@@ -22,7 +23,6 @@ import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity; ...@@ -22,7 +23,6 @@ import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.query.KnowledgeDocumentRelationQueryItem; import cn.com.poc.knowledge.query.KnowledgeDocumentRelationQueryItem;
import cn.com.poc.knowledge.service.BizKnowledgeDocumentService; import cn.com.poc.knowledge.service.BizKnowledgeDocumentService;
import cn.com.poc.long_document.domain.LongtextDialoguesResult; import cn.com.poc.long_document.domain.LongtextDialoguesResult;
import cn.com.poc.long_document.service.BizLongTextExampleService;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.DemandKnowledgeService; import cn.com.poc.thirdparty.resource.demand.ai.aggregate.DemandKnowledgeService;
import cn.com.poc.thirdparty.resource.demand.ai.constants.KnowledgeSearchTypeEnum; import cn.com.poc.thirdparty.resource.demand.ai.constants.KnowledgeSearchTypeEnum;
import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum; import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum;
...@@ -68,17 +68,11 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -68,17 +68,11 @@ public class AiWritingServiceImpl implements AiWritingService {
@Resource @Resource
private LLMService llmService; private LLMService llmService;
@Resource
private BizFileUploadRecordService bizFileUploadRecordService;
@Resource @Resource
private BizAiDialoguesService bizAiDialoguesService; private BizAiDialoguesService bizAiDialoguesService;
@Resource @Resource
private BizAgentApplicationDialoguesRecordService bizAgentApplicationDialoguesRecordService; private BizAiWritingDialoguesRecordService bizAiWritingDialoguesRecordService;
@Resource
private BizLongTextExampleService bizLongTextExampleService;
@Resource @Resource
private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService; private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService;
...@@ -119,11 +113,11 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -119,11 +113,11 @@ public class AiWritingServiceImpl implements AiWritingService {
aiDialoguesEntity.setTitle(input.substring(0, Math.min(input.length(), 150))); aiDialoguesEntity.setTitle(input.substring(0, Math.min(input.length(), 150)));
aiDialoguesEntity = bizAiDialoguesService.update(aiDialoguesEntity); aiDialoguesEntity = bizAiDialoguesService.update(aiDialoguesEntity);
} }
BizAgentApplicationDialoguesRecordEntity dialoguesRecordEntity = new BizAgentApplicationDialoguesRecordEntity(); BizAiWritingDialoguesRecordEntity dialoguesRecordEntity = new BizAiWritingDialoguesRecordEntity();
dialoguesRecordEntity.setDialogsId(dialoguesId); dialoguesRecordEntity.setDialogsId(dialoguesId);
dialoguesRecordEntity.setMemberId(userId); dialoguesRecordEntity.setMemberId(userId);
dialoguesRecordEntity.setIsDeleted(CommonConstant.IsDeleted.N); dialoguesRecordEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAgentApplicationDialoguesRecordEntity> dialoguesRecordEntities = bizAgentApplicationDialoguesRecordService.findByExample(dialoguesRecordEntity, null); List<BizAiWritingDialoguesRecordEntity> dialoguesRecordEntities = bizAiWritingDialoguesRecordService.findByExample(dialoguesRecordEntity, null);
boolean isInit = false; boolean isInit = false;
if (CollectionUtils.isEmpty(dialoguesRecordEntities)) { if (CollectionUtils.isEmpty(dialoguesRecordEntities)) {
...@@ -167,9 +161,15 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -167,9 +161,15 @@ public class AiWritingServiceImpl implements AiWritingService {
sseUtil.send(JsonUtils.serialize(result)); sseUtil.send(JsonUtils.serialize(result));
} }
//作文标题生成
AiWritingTitleGenerationDto aiWritingTitleGenerationDto = titleGeneration(input);
Boolean needWriting = aiWritingTitleGenerationDto.getNeedWriting();
if (needWriting && StringUtils.isNotBlank(aiWritingTitleGenerationDto.getTitle())) {
sseUtil.send(JsonUtils.serialize(aiWritingTitleGenerationDto));
}
//组装请求参数 //组装请求参数
List<Message> messages = buildMessages(dialoguesId, userId, input, fileUrl, knowledgeResult); List<Message> messages = buildMessages(dialoguesId, userId, input, fileUrl, knowledgeResult, aiWritingTitleGenerationDto);
LargeModelResponse largeModelResponse = new LargeModelResponse(); LargeModelResponse largeModelResponse = new LargeModelResponse();
largeModelResponse.setModel("deepseek-chat"); largeModelResponse.setModel("deepseek-chat");
largeModelResponse.setMessages(messages.toArray(new Message[0])); largeModelResponse.setMessages(messages.toArray(new Message[0]));
...@@ -179,7 +179,7 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -179,7 +179,7 @@ public class AiWritingServiceImpl implements AiWritingService {
// 保存用户输入记录 // 保存用户输入记录
BizAgentApplicationDialoguesRecordEntity inputRecord = new BizAgentApplicationDialoguesRecordEntity(); BizAiWritingDialoguesRecordEntity inputRecord = new BizAiWritingDialoguesRecordEntity();
inputRecord.setMemberId(userId); inputRecord.setMemberId(userId);
inputRecord.setContent(input); inputRecord.setContent(input);
if (isFileUrlChanged) { if (isFileUrlChanged) {
...@@ -190,16 +190,19 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -190,16 +190,19 @@ public class AiWritingServiceImpl implements AiWritingService {
inputRecord.setTimestamp(inputTimestamp); inputRecord.setTimestamp(inputTimestamp);
// 保存AI回复记录 // 保存AI回复记录
BizAgentApplicationDialoguesRecordEntity assistantRecord = new BizAgentApplicationDialoguesRecordEntity(); BizAiWritingDialoguesRecordEntity assistantRecord = new BizAiWritingDialoguesRecordEntity();
assistantRecord.setMemberId(userId); assistantRecord.setMemberId(userId);
assistantRecord.setContent(longtextDialoguesResult.getMessage()); assistantRecord.setContent(longtextDialoguesResult.getMessage());
assistantRecord.setReasoningContent(longtextDialoguesResult.getReasoningContent()); assistantRecord.setReasoningContent(longtextDialoguesResult.getReasoningContent());
if (needWriting) {
assistantRecord.setDocumentTitle(aiWritingTitleGenerationDto.getTitle());
}
assistantRecord.setDialogsId(dialoguesId); assistantRecord.setDialogsId(dialoguesId);
assistantRecord.setRole(LLMRoleEnum.ASSISTANT.getRole()); assistantRecord.setRole(LLMRoleEnum.ASSISTANT.getRole());
assistantRecord.setTimestamp(System.currentTimeMillis()); assistantRecord.setTimestamp(System.currentTimeMillis());
bizAgentApplicationDialoguesRecordService.save(inputRecord); bizAiWritingDialoguesRecordService.save(inputRecord);
bizAgentApplicationDialoguesRecordService.save(assistantRecord); bizAiWritingDialoguesRecordService.save(assistantRecord);
} }
...@@ -284,14 +287,14 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -284,14 +287,14 @@ public class AiWritingServiceImpl implements AiWritingService {
} }
String substring = message.substring(startEnd, endIndex + 1); String substring = message.substring(startEnd, endIndex + 1);
AiWritingTitleGenerationDto aiWritingTitleGenerationDto = JsonUtils.deSerialize(substring, AiWritingTitleGenerationDto.class); AiWritingTitleGenerationDto aiWritingTitleGenerationDto = JsonUtils.deSerialize(substring, AiWritingTitleGenerationDto.class);
if (aiWritingTitleGenerationDto == null){ if (aiWritingTitleGenerationDto == null) {
aiWritingTitleGenerationDto.setNeedWriting(false); aiWritingTitleGenerationDto.setNeedWriting(false);
aiWritingTitleGenerationDto.setTitle(StringUtils.EMPTY); aiWritingTitleGenerationDto.setTitle(StringUtils.EMPTY);
} }
return aiWritingTitleGenerationDto; return aiWritingTitleGenerationDto;
} }
private List<Message> buildMessages(String dialogsId, Long userId, String input, String fileUrl, List<KnowledgeContentResult> knowledgeContentResults) throws Exception { private List<Message> buildMessages(String dialogsId, Long userId, String input, String fileUrl, List<KnowledgeContentResult> knowledgeContentResults, AiWritingTitleGenerationDto aiWritingTitleGenerationDto) throws Exception {
// 获取对话提示词 // 获取对话提示词
String promptCode = "AiWritingPrompt"; String promptCode = "AiWritingPrompt";
BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode); BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode);
...@@ -308,7 +311,6 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -308,7 +311,6 @@ public class AiWritingServiceImpl implements AiWritingService {
fileContent = DocumentLoad.documentToText(file); fileContent = DocumentLoad.documentToText(file);
} }
// 加载对话提示词 // 加载对话提示词
String prompt = documentDialoguePrompt.getConfigSystem(); String prompt = documentDialoguePrompt.getConfigSystem();
if (CollectionUtils.isNotEmpty(knowledgeContentResults)) { if (CollectionUtils.isNotEmpty(knowledgeContentResults)) {
...@@ -317,6 +319,11 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -317,6 +319,11 @@ public class AiWritingServiceImpl implements AiWritingService {
} else { } else {
prompt = prompt.replace("${knowledgeContent}", StringUtils.EMPTY); prompt = prompt.replace("${knowledgeContent}", StringUtils.EMPTY);
} }
if (aiWritingTitleGenerationDto != null && aiWritingTitleGenerationDto.getNeedWriting()) {
prompt = prompt.replace("${title}", aiWritingTitleGenerationDto.getTitle());
} else {
prompt = prompt.replace("${title}", StringUtils.EMPTY);
}
prompt = prompt.replace("${fileContent}", fileContent); prompt = prompt.replace("${fileContent}", fileContent);
...@@ -328,13 +335,13 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -328,13 +335,13 @@ public class AiWritingServiceImpl implements AiWritingService {
messages.add(systemMessage); messages.add(systemMessage);
// 对话记录 // 对话记录
BizAgentApplicationDialoguesRecordEntity recordEntity = new BizAgentApplicationDialoguesRecordEntity(); BizAiWritingDialoguesRecordEntity recordEntity = new BizAiWritingDialoguesRecordEntity();
recordEntity.setDialogsId(dialogsId); recordEntity.setDialogsId(dialogsId);
recordEntity.setIsDeleted(CommonConstant.IsDeleted.N); recordEntity.setIsDeleted(CommonConstant.IsDeleted.N);
recordEntity.setMemberId(userId); recordEntity.setMemberId(userId);
List<BizAgentApplicationDialoguesRecordEntity> recordEntities = bizAgentApplicationDialoguesRecordService.findByExample(recordEntity, null); List<BizAiWritingDialoguesRecordEntity> recordEntities = bizAiWritingDialoguesRecordService.findByExample(recordEntity, null);
if (CollectionUtils.isNotEmpty(recordEntities)) { if (CollectionUtils.isNotEmpty(recordEntities)) {
for (BizAgentApplicationDialoguesRecordEntity entity : recordEntities) { for (BizAiWritingDialoguesRecordEntity entity : recordEntities) {
Message message = new Message(); Message message = new Message();
message.setContent(entity.getContent()); message.setContent(entity.getContent());
message.setRole(entity.getRole()); message.setRole(entity.getRole());
...@@ -345,7 +352,7 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -345,7 +352,7 @@ public class AiWritingServiceImpl implements AiWritingService {
if (CollectionUtils.isNotEmpty(messages)) { if (CollectionUtils.isNotEmpty(messages)) {
if (LLMRoleEnum.USER.getRole().equals(messages.get(messages.size() - 1).getRole())) { if (LLMRoleEnum.USER.getRole().equals(messages.get(messages.size() - 1).getRole())) {
Long recordId = recordEntities.get(recordEntities.size() - 1).getId(); Long recordId = recordEntities.get(recordEntities.size() - 1).getId();
bizAgentApplicationDialoguesRecordService.deletedById(recordId); bizAiWritingDialoguesRecordService.deletedById(recordId);
messages.remove(messages.size() - 1); messages.remove(messages.size() - 1);
} }
} }
...@@ -359,6 +366,28 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -359,6 +366,28 @@ public class AiWritingServiceImpl implements AiWritingService {
return messages; return messages;
} }
@Override
public List<AiWritingDialoguesContextDto> getDialogueContext(String dialogueId) {
List<AiWritingDialoguesRecordQueryItem> items = bizAiWritingDialoguesRecordService.getDialogueRecord(dialogueId);
if (CollectionUtils.isNotEmpty(items)) {
return items.stream().map(value -> {
AiWritingDialoguesContextDto dto = new AiWritingDialoguesContextDto();
dto.setRole(value.getRole());
dto.setAgentId(value.getAgentId());
dto.setDocumentTitle(value.getDocumentTitle());
dto.setContent(value.getContent());
dto.setReasoningContent(value.getReasoningContent());
dto.setTimestamp(value.getTimestamp());
dto.setAgentTitle(value.getAgentTitle());
dto.setAgentAvatar(value.getAgentAvatar());
return dto;
}
).collect(Collectors.toList());
}
return Collections.emptyList();
}
/** /**
* 文本输出结果 * 文本输出结果
* *
......
package cn.com.poc.writing.convert;
import cn.com.poc.writing.model.BizAiWritingDialoguesRecordModel;
import cn.com.poc.writing.entity.BizAiWritingDialoguesRecordEntity;
import cn.com.poc.writing.dto.BizAiWritingDialoguesRecordDto;
public class BizAiWritingDialoguesRecordConvert {
public static BizAiWritingDialoguesRecordEntity modelToEntity(BizAiWritingDialoguesRecordModel model){
BizAiWritingDialoguesRecordEntity entity = new BizAiWritingDialoguesRecordEntity();
entity.setId(model.getId());
entity.setRole(model.getRole());
entity.setAgentId(model.getAgentId());
entity.setDialogsId(model.getDialogsId());
entity.setMemberId(model.getMemberId());
entity.setContent(model.getContent());
entity.setDocumentTitle(model.getDocumentTitle());
entity.setTimestamp(model.getTimestamp());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
entity.setReasoningContent(model.getReasoningContent());
entity.setFileUrl(model.getFileUrl());
return entity;
}
public static BizAiWritingDialoguesRecordModel entityToModel(BizAiWritingDialoguesRecordEntity entity){
BizAiWritingDialoguesRecordModel model = new BizAiWritingDialoguesRecordModel();
model.setId(entity.getId());
model.setRole(entity.getRole());
model.setAgentId(entity.getAgentId());
model.setDialogsId(entity.getDialogsId());
model.setMemberId(entity.getMemberId());
model.setContent(entity.getContent());
model.setDocumentTitle(entity.getDocumentTitle());
model.setTimestamp(entity.getTimestamp());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
model.setReasoningContent(entity.getReasoningContent());
model.setFileUrl(entity.getFileUrl());
return model;
}
public static BizAiWritingDialoguesRecordDto entityToDto(BizAiWritingDialoguesRecordEntity entity){
BizAiWritingDialoguesRecordDto dto = new BizAiWritingDialoguesRecordDto();
dto.setId(entity.getId());
dto.setRole(entity.getRole());
dto.setAgentId(entity.getAgentId());
dto.setDialogsId(entity.getDialogsId());
dto.setMemberId(entity.getMemberId());
dto.setContent(entity.getContent());
dto.setDocumentTitle(entity.getDocumentTitle());
dto.setTimestamp(entity.getTimestamp());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
dto.setReasoningContent(entity.getReasoningContent());
dto.setFileUrl(entity.getFileUrl());
return dto;
}
public static BizAiWritingDialoguesRecordEntity dtoToEntity(BizAiWritingDialoguesRecordDto dto){
BizAiWritingDialoguesRecordEntity entity = new BizAiWritingDialoguesRecordEntity();
entity.setId(dto.getId());
entity.setRole(dto.getRole());
entity.setAgentId(dto.getAgentId());
entity.setDialogsId(dto.getDialogsId());
entity.setMemberId(dto.getMemberId());
entity.setContent(dto.getContent());
entity.setDocumentTitle(dto.getDocumentTitle());
entity.setTimestamp(dto.getTimestamp());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
entity.setReasoningContent(dto.getReasoningContent());
entity.setFileUrl(dto.getFileUrl());
return entity;
}
}
\ No newline at end of file
package cn.com.poc.writing.dto;
import java.io.Serializable;
public class AiWritingDialoguesContextDto implements Serializable {
/**
* role
* 角色 user-用户 assistant-助手
*/
private String role;
public String getRole() {
return this.role;
}
public void setRole(String role) {
this.role = role;
}
/**
* agent_id
* agent应用ID
*/
private String agentId;
public String getAgentId() {
return this.agentId;
}
public void setAgentId(String agentId) {
this.agentId = agentId;
}
/**
* 文档标题
*/
private String documentTitle;
public String getDocumentTitle() {
return documentTitle;
}
public void setDocumentTitle(String documentTitle) {
this.documentTitle = documentTitle;
}
/**
* content
* 内容
*/
private String content;
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
/**
* 推理内容
*/
private String reasoningContent;
public String getReasoningContent() {
return reasoningContent;
}
public void setReasoningContent(String reasoningContent) {
this.reasoningContent = reasoningContent;
}
/**
* timestamp
* 时间戳
*/
private Long timestamp;
public Long getTimestamp() {
return this.timestamp;
}
public void setTimestamp(Long timestamp) {
this.timestamp = timestamp;
}
/**
* 应用名
*/
private String agentTitle;
public String getAgentTitle() {
return agentTitle;
}
public void setAgentTitle(String agentTitle) {
this.agentTitle = agentTitle;
}
/**
* 应用头像
*/
private String agentAvatar;
public String getAgentAvatar() {
return agentAvatar;
}
public void setAgentAvatar(String agentAvatar) {
this.agentAvatar = agentAvatar;
}
}
package cn.com.poc.writing.dto;
public class BizAiWritingDialoguesRecordDto {
private static final long serialVersionUID = 1L;
/** id
*主键ID
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** role
*角色 user-用户 assistant-助手
*/
private java.lang.String role;
public java.lang.String getRole(){
return this.role;
}
public void setRole(java.lang.String role){
this.role = role;
}
/** agent_id
*agent应用ID
*/
private java.lang.String agentId;
public java.lang.String getAgentId(){
return this.agentId;
}
public void setAgentId(java.lang.String agentId){
this.agentId = agentId;
}
/** dialogs_id
*会话ID
*/
private java.lang.String dialogsId;
public java.lang.String getDialogsId(){
return this.dialogsId;
}
public void setDialogsId(java.lang.String dialogsId){
this.dialogsId = dialogsId;
}
/** member_id
*用户ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** content
*内容
*/
private java.lang.String content;
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
}
/** document_title
*文章标题
*/
private java.lang.String documentTitle;
public java.lang.String getDocumentTitle(){
return this.documentTitle;
}
public void setDocumentTitle(java.lang.String documentTitle){
this.documentTitle = documentTitle;
}
/** timestamp
*时间戳
*/
private java.lang.Long timestamp;
public java.lang.Long getTimestamp(){
return this.timestamp;
}
public void setTimestamp(java.lang.Long timestamp){
this.timestamp = timestamp;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
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;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
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;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
/** reasoning_content
*推理内容
*/
private java.lang.String reasoningContent;
public java.lang.String getReasoningContent(){
return this.reasoningContent;
}
public void setReasoningContent(java.lang.String reasoningContent){
this.reasoningContent = reasoningContent;
}
/** file_url
*对话文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
}
\ No newline at end of file
package cn.com.poc.writing.entity;
public class BizAiWritingDialoguesRecordEntity {
private static final long serialVersionUID = 1L;
/** id
*主键ID
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** role
*角色 user-用户 assistant-助手
*/
private java.lang.String role;
public java.lang.String getRole(){
return this.role;
}
public void setRole(java.lang.String role){
this.role = role;
}
/** agent_id
*agent应用ID
*/
private java.lang.String agentId;
public java.lang.String getAgentId(){
return this.agentId;
}
public void setAgentId(java.lang.String agentId){
this.agentId = agentId;
}
/** dialogs_id
*会话ID
*/
private java.lang.String dialogsId;
public java.lang.String getDialogsId(){
return this.dialogsId;
}
public void setDialogsId(java.lang.String dialogsId){
this.dialogsId = dialogsId;
}
/** member_id
*用户ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** content
*内容
*/
private java.lang.String content;
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
}
/** document_title
*文章标题
*/
private java.lang.String documentTitle;
public java.lang.String getDocumentTitle(){
return this.documentTitle;
}
public void setDocumentTitle(java.lang.String documentTitle){
this.documentTitle = documentTitle;
}
/** timestamp
*时间戳
*/
private java.lang.Long timestamp;
public java.lang.Long getTimestamp(){
return this.timestamp;
}
public void setTimestamp(java.lang.Long timestamp){
this.timestamp = timestamp;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
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;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
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;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
/** reasoning_content
*推理内容
*/
private java.lang.String reasoningContent;
public java.lang.String getReasoningContent(){
return this.reasoningContent;
}
public void setReasoningContent(java.lang.String reasoningContent){
this.reasoningContent = reasoningContent;
}
/** file_url
*对话文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
}
\ No newline at end of file
package cn.com.poc.writing.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_ai_writing_dialogues_record
* AI写作-用户对话记录
*/
@Entity
@Table(name = "biz_ai_writing_dialogues_record")
@DynamicInsert
@DynamicUpdate
public class BizAiWritingDialoguesRecordModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** id
*主键ID
*/
private java.lang.Long id;
@Column(name = "id",length = 19)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
super.addValidField("id");
}
/** role
*角色 user-用户 assistant-助手
*/
private java.lang.String role;
@Column(name = "role",length = 100)
public java.lang.String getRole(){
return this.role;
}
public void setRole(java.lang.String role){
this.role = role;
super.addValidField("role");
}
/** agent_id
*agent应用ID
*/
private java.lang.String agentId;
@Column(name = "agent_id",length = 200)
public java.lang.String getAgentId(){
return this.agentId;
}
public void setAgentId(java.lang.String agentId){
this.agentId = agentId;
super.addValidField("agentId");
}
/** dialogs_id
*会话ID
*/
private java.lang.String dialogsId;
@Column(name = "dialogs_id",length = 100)
public java.lang.String getDialogsId(){
return this.dialogsId;
}
public void setDialogsId(java.lang.String dialogsId){
this.dialogsId = dialogsId;
super.addValidField("dialogsId");
}
/** member_id
*用户ID
*/
private java.lang.Long memberId;
@Column(name = "member_id",length = 19)
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
super.addValidField("memberId");
}
/** content
*内容
*/
private java.lang.String content;
@Column(name = "content",length = 2147483647)
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
super.addValidField("content");
}
/** document_title
*文章标题
*/
private java.lang.String documentTitle;
@Column(name = "document_title",length = 120)
public java.lang.String getDocumentTitle(){
return this.documentTitle;
}
public void setDocumentTitle(java.lang.String documentTitle){
this.documentTitle = documentTitle;
super.addValidField("documentTitle");
}
/** timestamp
*时间戳
*/
private java.lang.Long timestamp;
@Column(name = "timestamp",length = 19)
public java.lang.Long getTimestamp(){
return this.timestamp;
}
public void setTimestamp(java.lang.Long timestamp){
this.timestamp = timestamp;
super.addValidField("timestamp");
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted",length = 1)
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** 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;
super.addValidField("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;
super.addValidField("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;
super.addValidField("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;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
/** reasoning_content
*推理内容
*/
private java.lang.String reasoningContent;
@Column(name = "reasoning_content",length = 2147483647)
public java.lang.String getReasoningContent(){
return this.reasoningContent;
}
public void setReasoningContent(java.lang.String reasoningContent){
this.reasoningContent = reasoningContent;
super.addValidField("reasoningContent");
}
/** file_url
*对话文件地址
*/
private java.lang.String fileUrl;
@Column(name = "file_url",length = 120)
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
super.addValidField("fileUrl");
}
}
\ No newline at end of file
select baadr.role,
baadr.agent_id,
baadr.dialogs_id,
baadr.member_id,
baadr.content,
baadr.reasoning_content,
baadr.document_title,
baadr.`timestamp`,
baap.agent_avatar,
baap.agent_title
from biz_ai_writing_dialogues_record baadr
left join biz_agent_application_publish baap on baadr.agent_id = baap.agent_id and baap.is_deleted = 'N'
where baadr.is_deleted = 'N' <<and baadr.dialogs_id = :dialogueId>>
order by baadr.`timestamp` asc
\ No newline at end of file
package cn.com.poc.writing.query;
import java.io.Serializable;
/**
* Query Condition class for AgentApplicationDialoguesRecordQuery
*/
public class AiWritingDialoguesRecordQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private String dialogueId;
public String getDialogueId(){
return this.dialogueId;
}
public void setDialogueId(String dialogueId){
this.dialogueId = dialogueId;
}
}
\ No newline at end of file
package cn.com.poc.writing.query;
import cn.com.yict.framemax.data.model.BaseItemClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.io.Serializable;
/**
* Query Item class for AgentApplicationDialoguesRecordQuery
*/
@Entity
public class AiWritingDialoguesRecordQueryItem extends BaseItemClass implements Serializable {
private static final long serialVersionUID = 1L;
/**
* role
* role
*/
private String role;
@Column(name = "role")
public String getRole() {
return this.role;
}
public void setRole(String role) {
this.role = role;
}
/**
* agent_id
* agent_id
*/
private String agentId;
@Column(name = "agent_id")
public String getAgentId() {
return this.agentId;
}
public void setAgentId(String agentId) {
this.agentId = agentId;
}
/**
* dialogs_id
* dialogs_id
*/
private String dialogsId;
@Column(name = "dialogs_id")
public String getDialogsId() {
return this.dialogsId;
}
public void setDialogsId(String dialogsId) {
this.dialogsId = dialogsId;
}
/**
* member_id
* member_id
*/
private Long memberId;
@Column(name = "member_id")
public Long getMemberId() {
return this.memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
/**
* document_title
*/
private String documentTitle;
@Column(name = "document_title")
public String getDocumentTitle() {
return documentTitle;
}
public void setDocumentTitle(String documentTitle) {
this.documentTitle = documentTitle;
}
/**
* content
* content
*/
private String content;
@Column(name = "content")
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
/**
* reasoning_content
*/
private String reasoningContent;
@Column(name = "reasoning_content")
public String getReasoningContent() {
return reasoningContent;
}
public void setReasoningContent(String reasoningContent) {
this.reasoningContent = reasoningContent;
}
/**
* timestamp
* timestamp
*/
private Long timestamp;
@Column(name = "timestamp")
public Long getTimestamp() {
return this.timestamp;
}
public void setTimestamp(Long timestamp) {
this.timestamp = timestamp;
}
/**
* agent_avatar
* agent_avatar
*/
private String agentAvatar;
@Column(name = "agent_avatar")
public String getAgentAvatar() {
return this.agentAvatar;
}
public void setAgentAvatar(String agentAvatar) {
this.agentAvatar = agentAvatar;
}
/**
* agent_title
* agent_title
*/
private String agentTitle;
@Column(name = "agent_title")
public String getAgentTitle() {
return this.agentTitle;
}
public void setAgentTitle(String agentTitle) {
this.agentTitle = agentTitle;
}
}
\ No newline at end of file
package cn.com.poc.writing.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.writing.model.BizAiWritingDialoguesRecordModel;
public interface BizAiWritingDialoguesRecordRepository extends Repository<BizAiWritingDialoguesRecordModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.writing.rest; package cn.com.poc.writing.rest;
import cn.com.poc.expose.dto.DialoguesContextDto;
import cn.com.poc.writing.dto.*; import cn.com.poc.writing.dto.*;
import cn.com.yict.framemax.core.rest.BaseRest; import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access; import cn.com.yict.framemax.web.permission.Access;
...@@ -25,4 +26,11 @@ public interface AiWritingRest extends BaseRest { ...@@ -25,4 +26,11 @@ public interface AiWritingRest extends BaseRest {
AiWritingTitleGenerationDto titleGeneration(@RequestBody TitleGenerationDto titleGenerationDto); AiWritingTitleGenerationDto titleGeneration(@RequestBody TitleGenerationDto titleGenerationDto);
/**
* 获取对话上下文
*
* @param dialogueId 对话ID
*/
List<AiWritingDialoguesContextDto> getDialogueContext(@RequestParam String dialogueId) throws Exception;
} }
package cn.com.poc.writing.rest;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.poc.writing.dto.BizAiWritingDialoguesRecordDto;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
public interface BizAiWritingDialoguesRecordRest extends BaseRest {
BizAiWritingDialoguesRecordDto getById(java.lang.Long id) throws Exception;
List<BizAiWritingDialoguesRecordDto> getList(BizAiWritingDialoguesRecordDto example,PagingInfo pagingInfo) throws Exception;
BizAiWritingDialoguesRecordDto save(BizAiWritingDialoguesRecordDto dto) throws Exception;
BizAiWritingDialoguesRecordDto update(BizAiWritingDialoguesRecordDto dto) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
...@@ -55,4 +55,10 @@ public class AiWritingRestImpl implements AiWritingRest { ...@@ -55,4 +55,10 @@ public class AiWritingRestImpl implements AiWritingRest {
Assert.notBlank(titleGenerationDto.getInput(), "input is null"); Assert.notBlank(titleGenerationDto.getInput(), "input is null");
return aiWritingService.titleGeneration(titleGenerationDto.getInput()); return aiWritingService.titleGeneration(titleGenerationDto.getInput());
} }
@Override
public List<AiWritingDialoguesContextDto> getDialogueContext(String dialogueId) throws Exception {
Assert.notBlank(dialogueId, "dialogues id is null");
return aiWritingService.getDialogueContext(dialogueId);
}
} }
package cn.com.poc.writing.rest.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cn.com.poc.writing.rest.BizAiWritingDialoguesRecordRest;
import cn.com.poc.writing.service.BizAiWritingDialoguesRecordService;
import cn.com.poc.writing.dto.BizAiWritingDialoguesRecordDto;
import cn.com.poc.writing.entity.BizAiWritingDialoguesRecordEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.poc.writing.convert.BizAiWritingDialoguesRecordConvert;
import java.util.stream.Collectors;
import org.springframework.util.Assert;
@Component
public class BizAiWritingDialoguesRecordRestImpl implements BizAiWritingDialoguesRecordRest {
@Resource
private BizAiWritingDialoguesRecordService service;
public BizAiWritingDialoguesRecordDto getById(java.lang.Long id) throws Exception{
Assert.notNull(id);
return BizAiWritingDialoguesRecordConvert.entityToDto(service.get(id));
}
public List<BizAiWritingDialoguesRecordDto> getList(BizAiWritingDialoguesRecordDto dto,PagingInfo pagingInfo) throws Exception{
return service
.findByExample(BizAiWritingDialoguesRecordConvert.dtoToEntity(dto),pagingInfo)
.stream()
.map(BizAiWritingDialoguesRecordConvert::entityToDto)
.collect(Collectors.toList());
}
public BizAiWritingDialoguesRecordDto save(BizAiWritingDialoguesRecordDto dto) throws Exception{
Assert.notNull(dto);
BizAiWritingDialoguesRecordEntity entity = BizAiWritingDialoguesRecordConvert.dtoToEntity(dto);
return BizAiWritingDialoguesRecordConvert.entityToDto(service.save(entity));
}
public BizAiWritingDialoguesRecordDto update(BizAiWritingDialoguesRecordDto dto) throws Exception{
Assert.notNull(dto);
BizAiWritingDialoguesRecordEntity entity = BizAiWritingDialoguesRecordConvert.dtoToEntity(dto);
return BizAiWritingDialoguesRecordConvert.entityToDto(service.update(entity));
}
public void deletedById(java.lang.Long id) throws Exception{
Assert.notNull(id);
service.deletedById(id);
}
}
\ No newline at end of file
package cn.com.poc.writing.service;
import cn.com.poc.writing.query.AiWritingDialoguesRecordQueryItem;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.writing.entity.BizAiWritingDialoguesRecordEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizAiWritingDialoguesRecordService extends BaseService {
BizAiWritingDialoguesRecordEntity get(java.lang.Long id) throws Exception;
List<BizAiWritingDialoguesRecordEntity> findByExample(BizAiWritingDialoguesRecordEntity example, PagingInfo pagingInfo) throws Exception;
BizAiWritingDialoguesRecordEntity save(BizAiWritingDialoguesRecordEntity entity) throws Exception;
BizAiWritingDialoguesRecordEntity update(BizAiWritingDialoguesRecordEntity entity) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
List<AiWritingDialoguesRecordQueryItem> getDialogueRecord(String dialogueId);
}
\ No newline at end of file
package cn.com.poc.writing.service.impl;
import cn.com.poc.writing.query.AiWritingDialoguesRecordQueryCondition;
import cn.com.poc.writing.query.AiWritingDialoguesRecordQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.writing.service.BizAiWritingDialoguesRecordService;
import cn.com.poc.writing.model.BizAiWritingDialoguesRecordModel;
import cn.com.poc.writing.entity.BizAiWritingDialoguesRecordEntity;
import cn.com.poc.writing.convert.BizAiWritingDialoguesRecordConvert;
import cn.com.poc.writing.repository.BizAiWritingDialoguesRecordRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizAiWritingDialoguesRecordServiceImpl extends BaseServiceImpl
implements BizAiWritingDialoguesRecordService {
@Resource
private BizAiWritingDialoguesRecordRepository repository;
public BizAiWritingDialoguesRecordEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizAiWritingDialoguesRecordModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizAiWritingDialoguesRecordConvert.modelToEntity(model);
}
public List<BizAiWritingDialoguesRecordEntity> findByExample(BizAiWritingDialoguesRecordEntity example, PagingInfo pagingInfo) throws Exception {
List<BizAiWritingDialoguesRecordEntity> result = new ArrayList<BizAiWritingDialoguesRecordEntity>();
BizAiWritingDialoguesRecordModel model = new BizAiWritingDialoguesRecordModel();
if (example != null) {
model = BizAiWritingDialoguesRecordConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizAiWritingDialoguesRecordModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizAiWritingDialoguesRecordConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizAiWritingDialoguesRecordEntity save(BizAiWritingDialoguesRecordEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizAiWritingDialoguesRecordModel model = BizAiWritingDialoguesRecordConvert.entityToModel(entity);
BizAiWritingDialoguesRecordModel saveModel = this.repository.save(model);
return BizAiWritingDialoguesRecordConvert.modelToEntity(saveModel);
}
public BizAiWritingDialoguesRecordEntity update(BizAiWritingDialoguesRecordEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizAiWritingDialoguesRecordModel model = this.repository.get(entity.getId());
if (entity.getRole() != null) {
model.setRole(entity.getRole());
}
if (entity.getAgentId() != null) {
model.setAgentId(entity.getAgentId());
}
if (entity.getDialogsId() != null) {
model.setDialogsId(entity.getDialogsId());
}
if (entity.getMemberId() != null) {
model.setMemberId(entity.getMemberId());
}
if (entity.getContent() != null) {
model.setContent(entity.getContent());
}
if (entity.getDocumentTitle() != null) {
model.setDocumentTitle(entity.getDocumentTitle());
}
if (entity.getTimestamp() != null) {
model.setTimestamp(entity.getTimestamp());
}
if (entity.getIsDeleted() != null) {
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null) {
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null) {
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null) {
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null) {
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null) {
model.setSysVersion(entity.getSysVersion());
}
if (entity.getReasoningContent() != null) {
model.setReasoningContent(entity.getReasoningContent());
}
if (entity.getFileUrl() != null) {
model.setFileUrl(entity.getFileUrl());
}
BizAiWritingDialoguesRecordModel saveModel = this.repository.save(model);
return BizAiWritingDialoguesRecordConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizAiWritingDialoguesRecordModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
@Override
public List<AiWritingDialoguesRecordQueryItem> getDialogueRecord(String dialogueId) {
AiWritingDialoguesRecordQueryCondition condition = new AiWritingDialoguesRecordQueryCondition();
condition.setDialogueId(dialogueId);
return this.sqlDao.query(condition, AiWritingDialoguesRecordQueryItem.class);
}
}
\ No newline at end of file
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