提交 5df62d61 作者: 洪东保

日志

父级 23f53cb9
......@@ -120,7 +120,7 @@ public class FileProcessTask {
// 实际处理逻辑
public void process() {
// 根据meeting和subMeetingId上锁
boolean getKey = redisUtils.setnx("meeting_" + meetingId + subMeetingId, meetingId, 19*60);
boolean getKey = redisUtils.setnx("meeting_" + meetingId + subMeetingId, meetingId, 19 * 60);
if (!getKey) {
return;
}
......@@ -218,6 +218,9 @@ public class FileProcessTask {
throw new RuntimeException("获取的转录文本为空,跳过纪要生成");
}
// 1. 根据转录文件内容recordTextBuffer判断使用模板类型
Boolean emailGenerateAccess = meetingInfo.getEmailGenerateAccess();
if (emailGenerateAccess) {
Long choiceTemplateType = choiceTemplateType(meetingInfo.getSubject());
log.info("choiceTemplateType->{}", choiceTemplateType);
// 2. 获取这个会议需要使用的一个模板
......@@ -235,6 +238,7 @@ public class FileProcessTask {
}
String processedResult = processWithClaude(recordTextBuffer.toString(), meetingDate, participantNames, template.getPrompt());
String minutesPath = saveResult(processedResult, recordTextBuffer.toString().getBytes(StandardCharsets.UTF_8), meetingInfo, toUserCode, template);
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMdd");
try (InputStream is = new FileInputStream(minutesPath)) {
......@@ -269,6 +273,7 @@ public class FileProcessTask {
.build();
emailPush(emailPushBuilder);
isSuccess = true;
}
} catch (Exception e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
......@@ -340,8 +345,7 @@ public class FileProcessTask {
* 提供会议转录文件和会议主题,判断会议类型
*
* @param subject 会议主题
* @return
* String token = "AKIAXFAXF62IWJXGLVEE.LnKInaahcMZG9zLsGMH3nTLOw3S3lK5Vcu0+ifnO";
* @return String token = "AKIAXFAXF62IWJXGLVEE.LnKInaahcMZG9zLsGMH3nTLOw3S3lK5Vcu0+ifnO";
* String apiAddr = llmApiAddr + "/llm/sse-invoke";
* String model = "arn:aws:bedrock:us-east-1:491822380689:inference-profile/us.anthropic.claude-3-7-sonnet-20250219-v1:0";
* int maxTokens = 5000;
......@@ -379,7 +383,7 @@ public class FileProcessTask {
* List<Message> messages = new ArrayList<>();
* ChatMessage chatMessage = new ChatMessage(ChatMessageRole.USER.value(), formatPrompt);
* messages.add(chatMessage);
*
* <p>
* // 调用Claude API处理文件
* String response = call_llm(apiAddr, model, token, messages, maxTokens);
* JSONObject object = JSONObject.parseObject(response);
......@@ -461,7 +465,6 @@ public class FileProcessTask {
private String saveResult(String content, byte[] recordData, MeetingInfo meetingInfo, String toUserCode, MeetingRecordTemplate meetingRecordTemplate) {
String meetingName;
//转录文件临时存储路径
// String recordContentPath = meetingId + "-recordContent-" + IdUtil.fastSimpleUUID() + ".txt";
String recordContentPath;
//生成的xml临时存储路径
String recordXmlPath = meetingId + "-recordXmlPath-" + IdUtil.fastSimpleUUID() + ".xml";
......@@ -470,6 +473,8 @@ public class FileProcessTask {
//填充后的会议纪要word文件临时路径
String meetingMinutesPath;
try {
// TODO 转录文件加密并且直接上传到minio,不走layout和文档库
String subject = meetingInfo.getSubject();
String fileName = String.format(subject + "_转写原文_%s.txt", DateUtil.today());
MultipartFile multipartFile = new CustomMultipartFile(
......
......@@ -242,21 +242,21 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
// 满足以上所有则emailGenerateAccess为ture
if (generateAccess) {
generateAccess = generateAccess && weComUserMap.containsKey(userDTO.getWid());
log.info("uid是否绑定企业微信: {}", generateAccess);
log.info("用户: {}, uid是否绑定企业微信: {}", userId, generateAccess);
}
if (generateAccess) {
List<SysUserSyncCategory> categoryList = sysUserSyncService.getCategoryListByUserId(userId);
List<String> deptIds = categoryList.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList());
generateAccess = generateAccess && modulePermissionService.checkAdminPermission(deptIds, userId);
log.info("超管是否授权给用户: {}", generateAccess);
log.info("用户: {}, 超管是否授权给用户: {}", userId, generateAccess);
}
if (generateAccess) {
generateAccess = generateAccess && modulePermissionService.personalStatus(userId);
log.info("个人是否开启纪要功能: {}", generateAccess);
log.info("用户: {}, 个人是否开启纪要功能: {}", userId, generateAccess);
}
// 是否推送邮箱
emailPushAccess = generateAccess && (weComUserMap.containsKey(userDTO.getWid()) ? weComUserMap.get(userDTO.getWid()).getEmailPushAccess() : Boolean.FALSE);
log.info("是否推送邮箱: {}", emailPushAccess);
log.info("用户: {},是否推送邮箱: {}", userId, emailPushAccess);
// 查询会议开始和结束时间
MeetingInfo startAndEndTimeByMeetingId = TencentMeetingApiUtil.getStartAndEndTimeByMeetingId(meetingId);
//会议基本信息保存
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论