调整 ai模块
This commit is contained in:
@@ -75,29 +75,39 @@ CREATE TABLE `tz_ai_sample_tag_group_relate`
|
||||
DROP TABLE IF EXISTS `tz_ai_dialog`;
|
||||
CREATE TABLE `tz_ai_dialog`
|
||||
(
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`title` varchar(128) NULL DEFAULT '' COMMENT '对话标题',
|
||||
`user_id` bigint NOT NULL COMMENT '用户id',
|
||||
`dialog_status` int(8) NULL COMMENT '对话状态(1active, 2archived, 3deleted)',
|
||||
`creator` varchar(64) NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updater` varchar(64) NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`title` varchar(128) DEFAULT '' COMMENT '对话标题',
|
||||
`user_id` bigint NOT NULL COMMENT '用户id',
|
||||
`dialog_status` int DEFAULT NULL COMMENT '对话状态(1active, 2archived, 3deleted)',
|
||||
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB COMMENT = 'ai-对话表';
|
||||
) ENGINE = InnoDB COMMENT ='ai-对话表';
|
||||
|
||||
DROP TABLE IF EXISTS `tz_ai_dialog_message`;
|
||||
CREATE TABLE `tz_ai_dialog_message`
|
||||
(
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`dialog_id` bigint NOT NULL COMMENT '对话id',
|
||||
`content_text` varchar(64) NULL DEFAULT '' COMMENT '内容',
|
||||
`content_type` int(8) NULL COMMENT '文本类型(1text,2image,3file,4audio)',
|
||||
`message_order` int(8) NULL COMMENT '对话中的顺序',
|
||||
`message_status` int(8) NULL COMMENT '消息状态 1正常 0删除',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`dialog_id` bigint NOT NULL COMMENT '对话id',
|
||||
`content_text` text COMMENT '内容',
|
||||
`content_type` int DEFAULT NULL COMMENT '文本类型(1text,2file)',
|
||||
`message_order` int DEFAULT NULL COMMENT '对话中的顺序',
|
||||
`message_status` int DEFAULT NULL COMMENT '消息状态 1正常 0删除',
|
||||
`pet_id` bigint DEFAULT NULL COMMENT '宠物id',
|
||||
`pet_name` varchar(255) DEFAULT NULL COMMENT '宠物名称',
|
||||
`pet_avatar` varchar(255) DEFAULT NULL COMMENT '宠物头像',
|
||||
`pet_type` varchar(64) DEFAULT NULL COMMENT '宠物类型',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`trans_result` text COMMENT '回答结果',
|
||||
`content_duration` bigint DEFAULT NULL COMMENT '文件时长',
|
||||
`trans_status` int DEFAULT NULL COMMENT '翻译状态(1成功 0失败)',
|
||||
`source_result` text COMMENT '原始结果',
|
||||
`file_name` varchar(255) DEFAULT NULL COMMENT '文件名称',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB COMMENT = 'ai-对话消息表';
|
||||
) ENGINE = InnoDB COMMENT ='ai-对话消息表';
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,10 @@ public class AiDialogMessageRespVo {
|
||||
* 翻译结果
|
||||
*/
|
||||
private String transResult;
|
||||
/**
|
||||
* 翻译结果
|
||||
*/
|
||||
private Integer transStatus;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
||||
@@ -32,6 +32,10 @@ public class AiDialogMessageDO {
|
||||
* 内容
|
||||
*/
|
||||
private String contentText;
|
||||
/**
|
||||
* 文件名
|
||||
*/
|
||||
private String fileName;
|
||||
/**
|
||||
* 文件时长
|
||||
*/
|
||||
|
||||
@@ -75,31 +75,34 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
|
||||
if (messageDO == null) {
|
||||
messageDO = new AiDialogMessageDO();
|
||||
}
|
||||
|
||||
String fileName =StrUtil.isBlank(messageDO.getFileName())?fileReqVo.getFile().getOriginalFilename():messageDO.getFileName();
|
||||
//上传文件获取文件地址
|
||||
String fileName = fileReqVo.getFile().getOriginalFilename();
|
||||
String fileUrl = fileServer + fileApi.createFile(fileReqVo.getFile().getBytes());
|
||||
String fileUrl =StrUtil.isBlank(messageDO.getContentText())? fileServer + fileApi.createFile(fileName,"",fileReqVo.getFile().getBytes()):messageDO.getContentText();
|
||||
log.info(fileUrl);
|
||||
//翻译结果
|
||||
translate(messageDO,fileUrl, fileName);
|
||||
|
||||
//创建消息 持久化消息
|
||||
messageDO.setDialogId(fileReqVo.getDialogId());
|
||||
messageDO.setContentDuration(fileReqVo.getContentDuration());
|
||||
if (messageDO.getId()==null){
|
||||
messageDO.setFileName(fileName);
|
||||
messageDO.setDialogId(fileReqVo.getDialogId());
|
||||
messageDO.setContentDuration(fileReqVo.getContentDuration());
|
||||
|
||||
messageDO.setContentText(fileUrl);
|
||||
messageDO.setContentType(2);
|
||||
//宠物档案 todo
|
||||
messageDO.setPetId(1l);
|
||||
messageDO.setPetName("猫猫翻译");
|
||||
messageDO.setPetAvatar("https://img1.baidu.com/it/u=1224902049,3440357835&fm=253&app=138&f=JPEG?w=801&h=800");
|
||||
|
||||
//获取当前最后的排序
|
||||
AiDialogMessageDO aiDialogMessageDO = aiDialogMessageMapper.selectOne(new LambdaQueryWrapper<AiDialogMessageDO>()
|
||||
.eq(AiDialogMessageDO::getDialogId, fileReqVo.getDialogId())
|
||||
.orderByDesc(AiDialogMessageDO::getMessageOrder)
|
||||
.last("limit 1")
|
||||
);
|
||||
messageDO.setMessageOrder(aiDialogMessageDO == null ? 1 : aiDialogMessageDO.getMessageOrder() + 1);
|
||||
messageDO.setCreateTime(LocalDateTime.now());
|
||||
messageDO.setContentText(fileUrl);
|
||||
messageDO.setContentType(2);
|
||||
//宠物档案 todo
|
||||
messageDO.setPetId(1l);
|
||||
messageDO.setPetName("猫猫翻译");
|
||||
messageDO.setPetAvatar("https://img1.baidu.com/it/u=1224902049,3440357835&fm=253&app=138&f=JPEG?w=801&h=800");
|
||||
//获取当前最后的排序
|
||||
AiDialogMessageDO aiDialogMessageDO = aiDialogMessageMapper.selectOne(new LambdaQueryWrapper<AiDialogMessageDO>()
|
||||
.eq(AiDialogMessageDO::getDialogId, fileReqVo.getDialogId())
|
||||
.orderByDesc(AiDialogMessageDO::getMessageOrder)
|
||||
.last("limit 1")
|
||||
);
|
||||
messageDO.setMessageOrder(aiDialogMessageDO == null ? 1 : aiDialogMessageDO.getMessageOrder() + 1);
|
||||
messageDO.setCreateTime(LocalDateTime.now());
|
||||
}
|
||||
int i = messageDO.getId()==null? aiDialogMessageMapper.insert(messageDO):aiDialogMessageMapper.updateById(messageDO);
|
||||
TranslateRespVo bean = BeanUtils.toBean(messageDO, TranslateRespVo.class);
|
||||
bean.setId(messageDO.getId());
|
||||
@@ -111,6 +114,7 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
|
||||
//调用大模型接口
|
||||
String result = "";
|
||||
try {
|
||||
log.info(translateServer);
|
||||
result = HttpRequest.post(translateServer).form("audio_data", HttpUtil.downloadBytes(file), fileName).timeout(20000) //20秒超时时间
|
||||
.execute().body();
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user