Commit 9d028122 authored by R10's avatar R10

智写-文书写作模板-模板对话数据保存

parent d13fe95e
...@@ -49,6 +49,12 @@ public class AiLawDialoguesDto { ...@@ -49,6 +49,12 @@ public class AiLawDialoguesDto {
*/ */
private String templateCode; private String templateCode;
/**
* 用户模板生成,是否覆盖之前的数据
* @return
*/
private boolean ifCover;
public String getDialoguesId() { public String getDialoguesId() {
return dialoguesId; return dialoguesId;
} }
...@@ -120,4 +126,12 @@ public class AiLawDialoguesDto { ...@@ -120,4 +126,12 @@ public class AiLawDialoguesDto {
public void setTemplateCode(String templateCode) { public void setTemplateCode(String templateCode) {
this.templateCode = templateCode; this.templateCode = templateCode;
} }
public boolean getIfCover() {
return ifCover;
}
public void setIfCover(boolean ifCover) {
this.ifCover = ifCover;
}
} }
package cn.com.poc.law.dto;
public class BizAiLawyerWritingTemplateDataDto {
private static final long serialVersionUID = 1L;
/** biz_ai_lawyer_writing_template_data_id
*
*/
private java.lang.Integer bizAiLawyerWritingTemplateDataId;
public java.lang.Integer getBizAiLawyerWritingTemplateDataId(){
return this.bizAiLawyerWritingTemplateDataId;
}
public void setBizAiLawyerWritingTemplateDataId(java.lang.Integer bizAiLawyerWritingTemplateDataId){
this.bizAiLawyerWritingTemplateDataId = bizAiLawyerWritingTemplateDataId;
}
/** biz_ai_lawyer_writing_template_dialogues_id
*对话id
*/
private java.lang.String bizAiLawyerWritingTemplateDialoguesId;
public java.lang.String getBizAiLawyerWritingTemplateDialoguesId(){
return this.bizAiLawyerWritingTemplateDialoguesId;
}
public void setBizAiLawyerWritingTemplateDialoguesId(java.lang.String bizAiLawyerWritingTemplateDialoguesId){
this.bizAiLawyerWritingTemplateDialoguesId = bizAiLawyerWritingTemplateDialoguesId;
}
/** biz_ai_lawyer_writing_template_dialogues_record_id
*
*/
private java.lang.Long bizAiLawyerWritingTemplateDialoguesRecordId;
public java.lang.Long getBizAiLawyerWritingTemplateDialoguesRecordId(){
return this.bizAiLawyerWritingTemplateDialoguesRecordId;
}
public void setBizAiLawyerWritingTemplateDialoguesRecordId(java.lang.Long bizAiLawyerWritingTemplateDialoguesRecordId){
this.bizAiLawyerWritingTemplateDialoguesRecordId = bizAiLawyerWritingTemplateDialoguesRecordId;
}
/** biz_ai_lawyer_writing_template_data
*写作数据
*/
private java.lang.String bizAiLawyerWritingTemplateData;
public java.lang.String getBizAiLawyerWritingTemplateData(){
return this.bizAiLawyerWritingTemplateData;
}
public void setBizAiLawyerWritingTemplateData(java.lang.String bizAiLawyerWritingTemplateData){
this.bizAiLawyerWritingTemplateData = bizAiLawyerWritingTemplateData;
}
/** 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;
}
}
\ No newline at end of file
package cn.com.poc.law.dto;
/**
* @Author:Roger Wu
* @name:SaveTemplateDataDto
* @Date:2025-08-12 9:21
*/
public class SaveTemplateDataDto {
private Long recordId;
private String data;
public Long getRecordId() {
return recordId;
}
public void setRecordId(Long recordId) {
this.recordId = recordId;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
package cn.com.poc.law.dto;
/**
* @Author:Roger Wu
* @name:TemplateCallDto
* @Date:2025-08-12 8:56
*/
public class TemplateCallDto {
LegalTemplateDto LegalTemplateDto;
Long bizAiLawyerWritingTemplateDialoguesRecordId;
public cn.com.poc.law.dto.LegalTemplateDto getLegalTemplateDto() {
return LegalTemplateDto;
}
public void setLegalTemplateDto(cn.com.poc.law.dto.LegalTemplateDto legalTemplateDto) {
LegalTemplateDto = legalTemplateDto;
}
public Long getBizAiLawyerWritingTemplateDialoguesRecordId() {
return bizAiLawyerWritingTemplateDialoguesRecordId;
}
public void setBizAiLawyerWritingTemplateDialoguesRecordId(Long bizAiLawyerWritingTemplateDialoguesRecordId) {
this.bizAiLawyerWritingTemplateDialoguesRecordId = bizAiLawyerWritingTemplateDialoguesRecordId;
}
}
package cn.com.poc.law.ExtractEntityStrategy; package cn.com.poc.law.extractEntityStrategy;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
......
package cn.com.poc.law.ExtractEntityStrategy; package cn.com.poc.law.extractEntityStrategy;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.ExtractEntityStrategy; package cn.com.poc.law.extractEntityStrategy;
import cn.com.poc.law.ExtractEntityStrategy.ExtractEntityType.MotorVehicleDrivingComplaint; import cn.com.poc.law.extractEntityStrategy.extractEntityType.MotorVehicleDrivingComplaint;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
......
package cn.com.poc.law.ExtractEntityStrategy.ExtractEntityType; package cn.com.poc.law.extractEntityStrategy.extractEntityType;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity; import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService; import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
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.law.ExtractEntityStrategy.ExtractEntityStrategy; import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.entity.*; import cn.com.poc.law.entity.*;
import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum; import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum;
...@@ -18,7 +18,6 @@ import org.apache.commons.lang3.StringUtils; ...@@ -18,7 +18,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
package cn.com.poc.law.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_lawyer_writing_template_data
* 法律文书数据
*/
@Entity
@Table(name = "biz_ai_lawyer_writing_template_data")
@DynamicInsert
@DynamicUpdate
public class BizAiLawyerWritingTemplateDataModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** biz_ai_lawyer_writing_template_data_id
*
*/
private java.lang.Integer bizAiLawyerWritingTemplateDataId;
@Column(name = "biz_ai_lawyer_writing_template_data_id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Integer getBizAiLawyerWritingTemplateDataId(){
return this.bizAiLawyerWritingTemplateDataId;
}
public void setBizAiLawyerWritingTemplateDataId(java.lang.Integer bizAiLawyerWritingTemplateDataId){
this.bizAiLawyerWritingTemplateDataId = bizAiLawyerWritingTemplateDataId;
super.addValidField("bizAiLawyerWritingTemplateDataId");
}
/** biz_ai_lawyer_writing_template_dialogues_id
*对话id
*/
private java.lang.String bizAiLawyerWritingTemplateDialoguesId;
@Column(name = "biz_ai_lawyer_writing_template_dialogues_id",length = 255)
public java.lang.String getBizAiLawyerWritingTemplateDialoguesId(){
return this.bizAiLawyerWritingTemplateDialoguesId;
}
public void setBizAiLawyerWritingTemplateDialoguesId(java.lang.String bizAiLawyerWritingTemplateDialoguesId){
this.bizAiLawyerWritingTemplateDialoguesId = bizAiLawyerWritingTemplateDialoguesId;
super.addValidField("bizAiLawyerWritingTemplateDialoguesId");
}
/** biz_ai_lawyer_writing_template_dialogues_record_id
*
*/
private java.lang.Long bizAiLawyerWritingTemplateDialoguesRecordId;
@Column(name = "biz_ai_lawyer_writing_template_dialogues_record_id",length = 10)
public java.lang.Long getBizAiLawyerWritingTemplateDialoguesRecordId(){
return this.bizAiLawyerWritingTemplateDialoguesRecordId;
}
public void setBizAiLawyerWritingTemplateDialoguesRecordId(java.lang.Long bizAiLawyerWritingTemplateDialoguesRecordId){
this.bizAiLawyerWritingTemplateDialoguesRecordId = bizAiLawyerWritingTemplateDialoguesRecordId;
super.addValidField("bizAiLawyerWritingTemplateDialoguesRecordId");
}
/** biz_ai_lawyer_writing_template_data
*写作数据
*/
private java.lang.String bizAiLawyerWritingTemplateData;
@Column(name = "biz_ai_lawyer_writing_template_data",length = 255)
public java.lang.String getBizAiLawyerWritingTemplateData(){
return this.bizAiLawyerWritingTemplateData;
}
public void setBizAiLawyerWritingTemplateData(java.lang.String bizAiLawyerWritingTemplateData){
this.bizAiLawyerWritingTemplateData = bizAiLawyerWritingTemplateData;
super.addValidField("bizAiLawyerWritingTemplateData");
}
/** 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");
}
}
\ No newline at end of file
package cn.com.poc.law.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.law.model.BizAiLawyerWritingTemplateDataModel;
public interface BizAiLawyerWritingTemplateDataRepository extends Repository<BizAiLawyerWritingTemplateDataModel,java.lang.Integer> {
}
\ No newline at end of file
package cn.com.poc.law.rest;
import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.dto.SaveTemplateDataDto;
import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.poc.law.dto.BizAiLawyerWritingTemplateDataDto;
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;
import org.springframework.web.bind.annotation.RequestParam;
@Permission(Access.Safety)
public interface BizAiLawyerWritingTemplateDataRest extends BaseRest {
BizAiLawyerWritingTemplateDataDto getById(java.lang.Integer id) throws Exception;
List<BizAiLawyerWritingTemplateDataDto> getList(BizAiLawyerWritingTemplateDataDto example, PagingInfo pagingInfo) throws Exception;
BizAiLawyerWritingTemplateDataDto save(BizAiLawyerWritingTemplateDataDto dto) throws Exception;
BizAiLawyerWritingTemplateDataDto update(BizAiLawyerWritingTemplateDataDto dto) throws Exception;
void deletedById(java.lang.Integer id) throws Exception;
void updateTemplateData(@RequestBody SaveTemplateDataDto saveTemplateDataDto) throws Exception;
String downloadTemplateData(@RequestParam Long recordId);
TemplateCallDto getTemplateDataDetail(@RequestParam String dialoguesId) throws Exception;
}
\ No newline at end of file
package cn.com.poc.law.rest; package cn.com.poc.law.rest;
import cn.com.poc.ai_finance.dto.AiFinanceDialoguesDto;
import cn.com.poc.law.dto.AiLawDialoguesDto; import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.dto.LegalFileDto; import cn.com.poc.law.dto.LegalFileDto;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.TemplateCallDto;
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;
import cn.com.yict.framemax.web.permission.Permission; import cn.com.yict.framemax.web.permission.Permission;
...@@ -32,7 +31,7 @@ public interface LegalRest extends BaseRest { ...@@ -32,7 +31,7 @@ public interface LegalRest extends BaseRest {
/** /**
* templateAi对话 * templateAi对话
*/ */
LegalTemplateDto templateCall(@RequestBody AiLawDialoguesDto dto) throws Exception; TemplateCallDto templateCall(@RequestBody AiLawDialoguesDto dto) throws Exception;
} }
package cn.com.poc.law.rest.impl;
import java.util.List;
import javax.annotation.Resource;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.law.dto.SaveTemplateDataDto;
import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.stereotype.Component;
import cn.com.poc.law.rest.BizAiLawyerWritingTemplateDataRest;
import cn.com.poc.law.service.BizAiLawyerWritingTemplateDataService;
import cn.com.poc.law.dto.BizAiLawyerWritingTemplateDataDto;
import cn.com.poc.law.entity.BizAiLawyerWritingTemplateDataEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.poc.law.convert.BizAiLawyerWritingTemplateDataConvert;
import java.util.stream.Collectors;
import org.springframework.util.Assert;
@Component
public class BizAiLawyerWritingTemplateDataRestImpl implements BizAiLawyerWritingTemplateDataRest {
@Resource
private BizAiLawyerWritingTemplateDataService service;
public BizAiLawyerWritingTemplateDataDto getById(java.lang.Integer id) throws Exception{
Assert.notNull(id);
return BizAiLawyerWritingTemplateDataConvert.entityToDto(service.get(id));
}
public List<BizAiLawyerWritingTemplateDataDto> getList(BizAiLawyerWritingTemplateDataDto dto,PagingInfo pagingInfo) throws Exception{
return service
.findByExample(BizAiLawyerWritingTemplateDataConvert.dtoToEntity(dto),pagingInfo)
.stream()
.map(BizAiLawyerWritingTemplateDataConvert::entityToDto)
.collect(Collectors.toList());
}
public BizAiLawyerWritingTemplateDataDto save(BizAiLawyerWritingTemplateDataDto dto) throws Exception{
Assert.notNull(dto);
BizAiLawyerWritingTemplateDataEntity entity = BizAiLawyerWritingTemplateDataConvert.dtoToEntity(dto);
return BizAiLawyerWritingTemplateDataConvert.entityToDto(service.save(entity));
}
public BizAiLawyerWritingTemplateDataDto update(BizAiLawyerWritingTemplateDataDto dto) throws Exception{
Assert.notNull(dto);
BizAiLawyerWritingTemplateDataEntity entity = BizAiLawyerWritingTemplateDataConvert.dtoToEntity(dto);
return BizAiLawyerWritingTemplateDataConvert.entityToDto(service.update(entity));
}
public void deletedById(java.lang.Integer id) throws Exception{
Assert.notNull(id);
service.deletedById(id);
}
@Override
public void updateTemplateData(SaveTemplateDataDto saveTemplateDataDto) throws Exception {
Assert.notNull(saveTemplateDataDto);
service.updateTemplateData(saveTemplateDataDto.getRecordId(),saveTemplateDataDto.getData());
}
@Override
public String downloadTemplateData(Long recordId){
service.downloadTemplateData( recordId);
return null;
}
@Override
public TemplateCallDto getTemplateDataDetail(String dialoguesId) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
return service.getTemplateDataDetail(dialoguesId,userBaseEntity.getUserId());
}
}
\ No newline at end of file
package cn.com.poc.law.rest.impl; package cn.com.poc.law.rest.impl;
import cn.com.poc.ai_finance.aggregate.AiFinanceService;
import cn.com.poc.ai_finance.dto.AiFinanceDialoguesDto;
import cn.com.poc.common.utils.Assert; import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.law.dto.AiLawDialoguesDto; import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.dto.LegalFileDto; import cn.com.poc.law.dto.LegalFileDto;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.poc.law.rest.LegalRest; import cn.com.poc.law.rest.LegalRest;
import cn.com.poc.law.service.AiLawService; import cn.com.poc.law.service.AiLawService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
...@@ -66,11 +64,11 @@ public class LegalRestImpl implements LegalRest { ...@@ -66,11 +64,11 @@ public class LegalRestImpl implements LegalRest {
* @param dto * @param dto
*/ */
@Override @Override
public LegalTemplateDto templateCall(AiLawDialoguesDto dto) throws Exception { public TemplateCallDto templateCall(AiLawDialoguesDto dto) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) { if (userBaseEntity == null) {
throw new BusinessException("用户未登录"); throw new BusinessException("用户未登录");
} }
return aiLawService.templateCall(dto.getDialoguesId(), dto.getTemplateCode(),dto.getInput(), dto.getFileUrl(), userBaseEntity.getUserId()); return aiLawService.templateCall(dto.getDialoguesId(), dto.getTemplateCode(), dto.getInput(), dto.getFileUrl(), dto.getIfCover(), userBaseEntity.getUserId());
} }
} }
package cn.com.poc.law.service; package cn.com.poc.law.service;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.TemplateCallDto;
/** /**
* AI财务 * AI财务
...@@ -27,5 +27,5 @@ public interface AiLawService { ...@@ -27,5 +27,5 @@ public interface AiLawService {
/** /**
* @throws Exception * @throws Exception
*/ */
LegalTemplateDto templateCall(String dialoguesId, String templateCode, String input, String fileUrl, Long userId) throws Exception; TemplateCallDto templateCall(String dialoguesId, String templateCode, String input, String fileUrl, boolean ifCover, Long userId) throws Exception;
} }
package cn.com.poc.law.service;
import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.law.entity.BizAiLawyerWritingTemplateDataEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizAiLawyerWritingTemplateDataService extends BaseService {
BizAiLawyerWritingTemplateDataEntity get(java.lang.Integer id) throws Exception;
List<BizAiLawyerWritingTemplateDataEntity> findByExample(BizAiLawyerWritingTemplateDataEntity example,PagingInfo pagingInfo) throws Exception;
BizAiLawyerWritingTemplateDataEntity save(BizAiLawyerWritingTemplateDataEntity entity) throws Exception;
BizAiLawyerWritingTemplateDataEntity update(BizAiLawyerWritingTemplateDataEntity entity) throws Exception;
void deletedById(java.lang.Integer id) throws Exception;
void updateTemplateData(Long recordId, String data) throws Exception;
void downloadTemplateData(Long recordId);
TemplateCallDto getTemplateDataDetail(String dialoguesId, Long userId) throws Exception;
}
\ No newline at end of file
package cn.com.poc.law.service.impl; package cn.com.poc.law.service.impl;
import cn.com.poc.agent_application.aggregate.AgentApplicationService; import cn.com.poc.agent_application.aggregate.AgentApplicationService;
import cn.com.poc.agent_application.constant.AgentApplicationDialoguesRecordConstants;
import cn.com.poc.agent_application.entity.*; import cn.com.poc.agent_application.entity.*;
import cn.com.poc.agent_application.query.AgentApplicationDialoguesRecordQueryItem;
import cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService; 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.agent_application.service.BizAgentApplicationPublishService;
import cn.com.poc.agent_application.utils.AgentApplicationTools; import cn.com.poc.agent_application.utils.AgentApplicationTools;
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;
...@@ -15,26 +14,22 @@ import cn.com.poc.common.utils.DocumentLoad; ...@@ -15,26 +14,22 @@ 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;
import cn.com.poc.knowledge.aggregate.KnowledgeService; import cn.com.poc.knowledge.aggregate.KnowledgeService;
import cn.com.poc.knowledge.constant.KnowledgeConstant; import cn.com.poc.law.entity.BizAiLawyerWritingTemplateDataEntity;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity; import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy;
import cn.com.poc.knowledge.query.KnowledgeDocumentRelationQueryItem; import cn.com.poc.law.extractEntityStrategy.LawyerExtractTypeEnum;
import cn.com.poc.law.ExtractEntityStrategy.ExtractEntityStrategy; import cn.com.poc.law.extractEntityStrategy.LawyerTemplateExtractServiceBuilder;
import cn.com.poc.law.ExtractEntityStrategy.LawyerExtractTypeEnum;
import cn.com.poc.law.ExtractEntityStrategy.LawyerTemplateExtractServiceBuilder;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.entity.*; import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.poc.law.model.BizAiLawyerWritingTemplateDataModel;
import cn.com.poc.law.service.AiLawService; import cn.com.poc.law.service.AiLawService;
import cn.com.poc.law.service.BizAiLawyerWritingTemplateDataService;
import cn.com.poc.long_document.domain.LongtextDialoguesResult; import cn.com.poc.long_document.domain.LongtextDialoguesResult;
import cn.com.poc.support.login.ThirdPlatformAuthServiceBuilder;
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;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.FunctionCall; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.FunctionCall;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Tool; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Tool;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction;
import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.SearchKnowledgeResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
...@@ -43,25 +38,18 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.web_seach.WebSearchFunc ...@@ -43,25 +38,18 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.web_seach.WebSearchFunc
import cn.com.poc.thirdparty.service.LLMService; import cn.com.poc.thirdparty.service.LLMService;
import cn.com.poc.writing.dto.AiWritingTitleGenerationDto; import cn.com.poc.writing.dto.AiWritingTitleGenerationDto;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.frame.service.FmxParamConfigService;
import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/** /**
* @author alex.yao * @author alex.yao
...@@ -76,12 +64,6 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -76,12 +64,6 @@ public class AiLawServiceImpl implements AiLawService {
@Resource @Resource
private BizAiDialoguesService bizAiDialoguesService; private BizAiDialoguesService bizAiDialoguesService;
@Resource
private AgentApplicationService agentApplicationService;
@Resource
private KnowledgeService knowledgeService;
@Resource @Resource
private LLMService llmService; private LLMService llmService;
...@@ -97,6 +79,9 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -97,6 +79,9 @@ public class AiLawServiceImpl implements AiLawService {
@Resource @Resource
LawyerTemplateExtractServiceBuilder LawyerTemplateExtractServiceBuilder; LawyerTemplateExtractServiceBuilder LawyerTemplateExtractServiceBuilder;
@Resource
BizAiLawyerWritingTemplateDataService bizAiLawyerWritingTemplateDataService;
@Override @Override
public void aiWritingCall(String dialoguesId, String input, boolean enableSearchEngine, boolean enableDeepThinking, String fileUrl, Integer[] knowledgeIds, Integer[] databaseIds, Long userId) throws Exception { public void aiWritingCall(String dialoguesId, String input, boolean enableSearchEngine, boolean enableDeepThinking, String fileUrl, Integer[] knowledgeIds, Integer[] databaseIds, Long userId) throws Exception {
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity(); BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
...@@ -215,7 +200,7 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -215,7 +200,7 @@ public class AiLawServiceImpl implements AiLawService {
* @throws Exception * @throws Exception
*/ */
@Override @Override
public LegalTemplateDto templateCall(String dialoguesId, String templateCode, String input, String fileUrl, Long userId) throws Exception { public TemplateCallDto templateCall(String dialoguesId, String templateCode, String input, String fileUrl, boolean ifCover, Long userId) throws Exception {
//基础 //基础
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity(); BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
...@@ -239,14 +224,70 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -239,14 +224,70 @@ public class AiLawServiceImpl implements AiLawService {
fileContent = DocumentLoad.documentToText(file); fileContent = DocumentLoad.documentToText(file);
} }
ExtractEntityStrategy extractEntityStrategy = LawyerTemplateExtractServiceBuilder.getService(LawyerExtractTypeEnum.valueOf(templateCode)); ExtractEntityStrategy extractEntityStrategy = LawyerTemplateExtractServiceBuilder.getService(LawyerExtractTypeEnum.valueOf(templateCode));
LegalTemplateDto legalTemplateDto = extractEntityStrategy.extractEntity(input + fileContent); LegalTemplateDto legalTemplateDto = extractEntityStrategy.extractEntity(input + fileContent);
LegalTemplateDto returnLegalTemplateDto = new LegalTemplateDto();
if (!ifCover) {
List<AgentApplicationDialoguesRecordQueryItem> dialogueRecordList = bizAgentApplicationDialoguesRecordService.getDialogueRecord(aiDialoguesEntity.getDialoguesId(), null);
if (CollectionUtils.isNotEmpty(dialogueRecordList)) {
AgentApplicationDialoguesRecordQueryItem agentApplicationDialoguesRecordQueryItem = dialogueRecordList.get(0);
//TODO: legalTemplateDto
returnLegalTemplateDto = coverUtils(legalTemplateDto, agentApplicationDialoguesRecordQueryItem);
}
}
long inputTimestamp = System.currentTimeMillis();
//保存对话
// 保存用户输入记录
BizAgentApplicationDialoguesRecordEntity inputRecord = new BizAgentApplicationDialoguesRecordEntity();
inputRecord.setMemberId(userId);
inputRecord.setContent(input);
inputRecord.setDialogsId(dialoguesId);
inputRecord.setRole(LLMRoleEnum.USER.getRole());
inputRecord.setTimestamp(inputTimestamp);
// 保存AI回复记录
BizAgentApplicationDialoguesRecordEntity assistantRecord = new BizAgentApplicationDialoguesRecordEntity();
assistantRecord.setMemberId(userId);
assistantRecord.setContent(JsonUtils.serialize(legalTemplateDto));
assistantRecord.setReasoningContent(null);
assistantRecord.setDialogsId(dialoguesId);
assistantRecord.setRole(LLMRoleEnum.ASSISTANT.getRole());
assistantRecord.setTimestamp(inputTimestamp);
bizAgentApplicationDialoguesRecordService.save(inputRecord);
BizAgentApplicationDialoguesRecordEntity save = bizAgentApplicationDialoguesRecordService.save(assistantRecord);
//保存多一份数据id表
BizAiLawyerWritingTemplateDataEntity bizAiLawyerWritingTemplateDataEntity = new BizAiLawyerWritingTemplateDataEntity();
bizAiLawyerWritingTemplateDataEntity.setBizAiLawyerWritingTemplateDialoguesId(dialoguesId);
//TODO
bizAiLawyerWritingTemplateDataEntity.setBizAiLawyerWritingTemplateData(JsonUtils.serialize(legalTemplateDto));
bizAiLawyerWritingTemplateDataEntity.setBizAiLawyerWritingTemplateDialoguesRecordId(save.getId());
bizAiLawyerWritingTemplateDataService.save(bizAiLawyerWritingTemplateDataEntity);
TemplateCallDto templateCallDto = new TemplateCallDto();
templateCallDto.setBizAiLawyerWritingTemplateDialoguesRecordId(save.getId());
templateCallDto.setLegalTemplateDto(legalTemplateDto);
return templateCallDto;
}
private LegalTemplateDto coverUtils(LegalTemplateDto legalTemplateDto, AgentApplicationDialoguesRecordQueryItem agentApplicationDialoguesRecordQueryItem) {
if (legalTemplateDto == null || agentApplicationDialoguesRecordQueryItem == null) {
return legalTemplateDto;
}
// legalTemplateDto.
return legalTemplateDto; return legalTemplateDto;
} }
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 = "AILawyerWritingPrompt"; String promptCode = "AILawyerWritingPrompt";
......
package cn.com.poc.law.service.impl;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.law.service.BizAiLawyerWritingTemplateDataService;
import cn.com.poc.law.model.BizAiLawyerWritingTemplateDataModel;
import cn.com.poc.law.entity.BizAiLawyerWritingTemplateDataEntity;
import cn.com.poc.law.convert.BizAiLawyerWritingTemplateDataConvert;
import cn.com.poc.law.repository.BizAiLawyerWritingTemplateDataRepository;
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 BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl
implements BizAiLawyerWritingTemplateDataService {
@Resource
private BizAiLawyerWritingTemplateDataRepository repository;
@Resource
private BizAiDialoguesService bizAiDialoguesService;
public BizAiLawyerWritingTemplateDataEntity get(java.lang.Integer id) throws Exception {
Assert.notNull(id);
BizAiLawyerWritingTemplateDataModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizAiLawyerWritingTemplateDataConvert.modelToEntity(model);
}
public List<BizAiLawyerWritingTemplateDataEntity> findByExample(BizAiLawyerWritingTemplateDataEntity example, PagingInfo pagingInfo) throws Exception {
List<BizAiLawyerWritingTemplateDataEntity> result = new ArrayList<BizAiLawyerWritingTemplateDataEntity>();
BizAiLawyerWritingTemplateDataModel model = new BizAiLawyerWritingTemplateDataModel();
if (example != null) {
model = BizAiLawyerWritingTemplateDataConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizAiLawyerWritingTemplateDataModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizAiLawyerWritingTemplateDataConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizAiLawyerWritingTemplateDataEntity save(BizAiLawyerWritingTemplateDataEntity entity) throws Exception {
Assert.notNull(entity);
entity.setBizAiLawyerWritingTemplateDataId(null);
entity.setIsDeleted("N");
BizAiLawyerWritingTemplateDataModel model = BizAiLawyerWritingTemplateDataConvert.entityToModel(entity);
BizAiLawyerWritingTemplateDataModel saveModel = this.repository.save(model);
return BizAiLawyerWritingTemplateDataConvert.modelToEntity(saveModel);
}
public BizAiLawyerWritingTemplateDataEntity update(BizAiLawyerWritingTemplateDataEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getBizAiLawyerWritingTemplateDataId(), "update pk can not be null");
BizAiLawyerWritingTemplateDataModel model = this.repository.get(entity.getBizAiLawyerWritingTemplateDataId());
if (entity.getBizAiLawyerWritingTemplateDialoguesId() != null) {
model.setBizAiLawyerWritingTemplateDialoguesId(entity.getBizAiLawyerWritingTemplateDialoguesId());
}
if (entity.getBizAiLawyerWritingTemplateDialoguesRecordId() != null) {
model.setBizAiLawyerWritingTemplateDialoguesRecordId(entity.getBizAiLawyerWritingTemplateDialoguesRecordId());
}
if (entity.getBizAiLawyerWritingTemplateData() != null) {
model.setBizAiLawyerWritingTemplateData(entity.getBizAiLawyerWritingTemplateData());
}
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());
}
BizAiLawyerWritingTemplateDataModel saveModel = this.repository.save(model);
return BizAiLawyerWritingTemplateDataConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Integer id) throws Exception {
Assert.notNull(id);
BizAiLawyerWritingTemplateDataModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
@Override
public void updateTemplateData(Long recordId, String data) throws Exception {
Assert.notNull(recordId);
BizAiLawyerWritingTemplateDataModel model = new BizAiLawyerWritingTemplateDataModel();
model.setBizAiLawyerWritingTemplateDialoguesRecordId(recordId);
model.setIsDeleted("N");
List<BizAiLawyerWritingTemplateDataModel> models = this.repository.findByExample(model, null);
if (org.springframework.util.CollectionUtils.isEmpty(models)) {
throw new Exception("找不到该记录");
}
BizAiLawyerWritingTemplateDataModel bizAiLawyerWritingTemplateDataModel = models.get(0);
bizAiLawyerWritingTemplateDataModel.setBizAiLawyerWritingTemplateData(data);
repository.save(bizAiLawyerWritingTemplateDataModel);
}
@Override
public void downloadTemplateData(Long recordId) {
}
@Override
public TemplateCallDto getTemplateDataDetail(String dialoguesId, 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("当前对话不存在");
}
BizAiLawyerWritingTemplateDataEntity example = new BizAiLawyerWritingTemplateDataEntity();
example.setBizAiLawyerWritingTemplateDialoguesId(dialoguesId);
example.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiLawyerWritingTemplateDataEntity> bizAiLawyerWritingTemplateDataEntityList = findByExample(example,null);
if(CollectionUtils.isEmpty(bizAiLawyerWritingTemplateDataEntityList) || StringUtils.isBlank(bizAiLawyerWritingTemplateDataEntityList.get(0).getBizAiLawyerWritingTemplateData())){
throw new BusinessException("查询不到模板内容信息");
}
TemplateCallDto templateCallDto = new TemplateCallDto();
templateCallDto.setLegalTemplateDto(JsonUtils.deSerialize(bizAiLawyerWritingTemplateDataEntityList.get(0).getBizAiLawyerWritingTemplateData(),LegalTemplateDto.class));
return templateCallDto;
}
}
\ 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