Commit 35fdab75 authored by R10's avatar R10

Merge branch 'release_gdghg' of ssh://gitlab.gsstcloud.com:10022/poc/poc-api into release_gdghg

parents 9d028122 6c4e6a66
...@@ -26,6 +26,8 @@ public enum AiDialoguesTypeEnum { ...@@ -26,6 +26,8 @@ public enum AiDialoguesTypeEnum {
TRAVEL_BUSINESS("travel_business", "旅游业务"), TRAVEL_BUSINESS("travel_business", "旅游业务"),
MEETING_ASSISTANT("meeting_assistant","会议助手"),
; ;
private final String type; private final String type;
......
...@@ -22,11 +22,11 @@ public interface BizAiDialoguesService extends BaseService { ...@@ -22,11 +22,11 @@ public interface BizAiDialoguesService extends BaseService {
BizAiDialoguesEntity get(java.lang.Long id) throws Exception; BizAiDialoguesEntity get(java.lang.Long id) throws Exception;
List<BizAiDialoguesEntity> findByExample(BizAiDialoguesEntity example, PagingInfo pagingInfo) throws Exception; List<BizAiDialoguesEntity> findByExample(BizAiDialoguesEntity example, PagingInfo pagingInfo);
BizAiDialoguesEntity save(BizAiDialoguesEntity entity) throws Exception; BizAiDialoguesEntity save(BizAiDialoguesEntity entity) throws Exception;
BizAiDialoguesEntity update(BizAiDialoguesEntity entity) throws Exception; BizAiDialoguesEntity update(BizAiDialoguesEntity entity) ;
void deletedById(java.lang.Long id) throws Exception; void deletedById(java.lang.Long id) throws Exception;
......
...@@ -64,7 +64,7 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl ...@@ -64,7 +64,7 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl
} }
public List<BizAiDialoguesEntity> findByExample(BizAiDialoguesEntity example, PagingInfo pagingInfo) throws Exception { public List<BizAiDialoguesEntity> findByExample(BizAiDialoguesEntity example, PagingInfo pagingInfo) {
List<BizAiDialoguesEntity> result = new ArrayList<BizAiDialoguesEntity>(); List<BizAiDialoguesEntity> result = new ArrayList<BizAiDialoguesEntity>();
BizAiDialoguesModel model = new BizAiDialoguesModel(); BizAiDialoguesModel model = new BizAiDialoguesModel();
if (example != null) { if (example != null) {
...@@ -87,7 +87,7 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl ...@@ -87,7 +87,7 @@ public class BizAiDialoguesServiceImpl extends BaseServiceImpl
return BizAiDialoguesConvert.modelToEntity(saveModel); return BizAiDialoguesConvert.modelToEntity(saveModel);
} }
public BizAiDialoguesEntity update(BizAiDialoguesEntity entity) throws Exception { public BizAiDialoguesEntity update(BizAiDialoguesEntity entity) {
Assert.notNull(entity); Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null"); Assert.notNull(entity.getId(), "update pk can not be null");
BizAiDialoguesModel model = this.repository.get(entity.getId()); BizAiDialoguesModel model = this.repository.get(entity.getId());
......
package cn.com.poc.common.segmentation;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import cn.com.poc.common.utils.DocumentLoad;
import org.springframework.util.Assert;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 【默认分割】
* <p>
* 默认分割根据【大切分长度】和【子切分长度】进行分割,每个大切片包含多个子切片
* 通过配置RepetitionRate参数来控制重复率【上下分块重复大小】
*
* @author alex.yao
* @version 1.0
* @Date 2024/9/3
*/
public class DefaultSegmentation extends SegmentationAbstract {
@Override
public List<SegmentationResult> scrap(SegmentationConfig config) {
try {
// 校验配置
paramVerification(config);
// 下载文档
File file = DocumentLoad.downloadURLDocument(this.documentUrl);
// 加载文档内容
String content = DocumentLoad.documentToText(file);
// 分割内容
return contentSplitters(config, content);
} catch (Exception e) {
throw new RuntimeException("文档加载失败");
}
}
private static void paramVerification(SegmentationConfig config) {
Assert.notNull(config);
Assert.notNull(config.getChunkSize());
Assert.notNull(config.getScrapSize());
Assert.notNull(config.getRepetitionRate());
Assert.isTrue(config.getRepetitionRate() > 0 && config.getRepetitionRate() <= 50, "重复率参数错误,必须大于0和小于50");
Assert.isTrue(config.getChunkSize() > 0 && config.getScrapSize() > 0, "切块大小参数错误");
Assert.isTrue(config.getChunkSize() >= config.getScrapSize(), "【子切片】长度必须小于【大切片】长度");
}
public List<SegmentationResult> contentSplitters(SegmentationConfig config, String documentContents) {
List<SegmentationResult> result = new ArrayList<>();
int CHUNK_SIZE = 300;
int CHUNK_REDUNDANT_VALUE = CHUNK_SIZE / 5;
int SCRAP_SIZE = 80;
int SCRAP_REDUNDANT_VALUE = SCRAP_SIZE / 5;
int left = CHUNK_REDUNDANT_VALUE - CHUNK_SIZE, right = 0;//初始化左右指针
//切分大块
while (right < documentContents.length()) {
left = left + CHUNK_SIZE - CHUNK_REDUNDANT_VALUE; //更新大块左指针
right = Math.min(left + CHUNK_SIZE, documentContents.length());//更新大块右指针
String chunkContent = documentContents.substring(left, right);//大块内容
//大块分割成多小块
int scrapLeft = SCRAP_REDUNDANT_VALUE - SCRAP_SIZE; // 小块 左指针
int scrapRight = 0; //小块 右指针
List<String> scrapChunkContent = new ArrayList<>();
while (scrapRight < chunkContent.length()) {
scrapLeft = scrapLeft + SCRAP_SIZE - SCRAP_REDUNDANT_VALUE;//更新左指针
scrapRight = Math.min(scrapLeft + SCRAP_SIZE, chunkContent.length());//更新右指针
String scrapChunk = chunkContent.substring(scrapLeft, scrapRight);//小块内容
scrapChunkContent.add(scrapChunk);
}
SegmentationResult segmentationResult = new SegmentationResult();
segmentationResult.setChunkContent(chunkContent);
segmentationResult.setScrapChunkContent(scrapChunkContent);
result.add(segmentationResult);
}
return result;
}
}
package cn.com.poc.common.segmentation;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import cn.com.poc.common.utils.DocumentLoad;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 【字数分割】
* <p>
* 默认分割根据【大切分长度】和【子切分长度】进行分割,每个大切片包含多个子切片
* 通过配置RepetitionRate参数来控制重复率【上下分块重复大小】
*
* @author alex.yao
* @version 1.0
* @Date 2024/9/3
*/
public class NumberOfWordSegmentation extends SegmentationAbstract {
@Override
public List<SegmentationResult> scrap(SegmentationConfig config) {
try {
// 校验配置
paramVerification(config);
String content = this.content;
if (StringUtils.isNotBlank(this.documentUrl)) {
// 下载文档
File file = DocumentLoad.downloadURLDocument(this.documentUrl);
// 加载文档内容
content = DocumentLoad.documentToText(file);
}
// 分割内容
return contentSplitters(config, content);
} catch (Exception e) {
throw new RuntimeException("文档加载失败");
}
}
private static void paramVerification(SegmentationConfig config) {
Assert.notNull(config);
Assert.notNull(config.getChunkSize());
Assert.notNull(config.getScrapSize());
Assert.notNull(config.getRepetitionRate());
Assert.isTrue(config.getRepetitionRate() > 0 && config.getRepetitionRate() <= 50, "重复率参数错误,必须大于0和小于50");
Assert.isTrue(config.getChunkSize() > 0 && config.getScrapSize() > 0, "切块大小参数错误");
Assert.isTrue(config.getChunkSize() >= config.getScrapSize(), "【子切片】长度必须小于【大切片】长度");
}
public List<SegmentationResult> contentSplitters(SegmentationConfig config, String documentContents) {
List<SegmentationResult> result = new ArrayList<>();
int CHUNK_SIZE = config.getChunkSize();
int CHUNK_REDUNDANT_VALUE = (int) (CHUNK_SIZE * (config.getRepetitionRate() / 100D));
int SCRAP_SIZE = config.getScrapSize();
int SCRAP_REDUNDANT_VALUE = (int) (SCRAP_SIZE * (config.getRepetitionRate() / 100D));
int left = CHUNK_REDUNDANT_VALUE - CHUNK_SIZE, right = 0;//初始化左右指针
//切分大块
while (right < documentContents.length()) {
left = left + CHUNK_SIZE - CHUNK_REDUNDANT_VALUE; //更新大块左指针
right = Math.min(left + CHUNK_SIZE, documentContents.length());//更新大块右指针
String chunkContent = documentContents.substring(left, right);//大块内容
//大块分割成多小块
int scrapLeft = SCRAP_REDUNDANT_VALUE - SCRAP_SIZE; // 小块 左指针
int scrapRight = 0; //小块 右指针
List<String> scrapChunkContent = new ArrayList<>();
while (scrapRight < chunkContent.length()) {
scrapLeft = scrapLeft + SCRAP_SIZE - SCRAP_REDUNDANT_VALUE;//更新左指针
scrapRight = Math.min(scrapLeft + SCRAP_SIZE, chunkContent.length());//更新右指针
String scrapChunk = chunkContent.substring(scrapLeft, scrapRight);//小块内容
scrapChunkContent.add(scrapChunk);
}
SegmentationResult segmentationResult = new SegmentationResult();
segmentationResult.setChunkContent(chunkContent);
segmentationResult.setScrapChunkContent(scrapChunkContent);
result.add(segmentationResult);
}
return result;
}
}
package cn.com.poc.common.segmentation;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import java.util.List;
public abstract class SegmentationAbstract {
protected String documentName;
protected String content;
protected String documentUrl;
public List<SegmentationResult> scrap(SegmentationConfig config) {
return null;
}
public void setDocumentName(String documentName) {
this.documentName = documentName;
}
public void setDocumentUrl(String documentUrl) {
this.documentUrl = documentUrl;
}
public void setContent(String content) {
this.content = content;
}
}
package cn.com.poc.common.segmentation;
import cn.com.poc.common.segmentation.contents.SegmentationEnum;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
/**
* @author alex
*/
public class SegmentationBuilder {
private String content;
private String documentUrl;
private String documentName;
private String segmentationType;
public SegmentationBuilder content(String content) {
this.content = content;
return this;
}
public SegmentationBuilder documentUrl(String documentUrl) {
this.documentUrl = documentUrl;
return this;
}
public SegmentationBuilder documentName(String documentName) {
this.documentName = documentName;
return this;
}
public SegmentationBuilder segmentationType(String segmentationType) {
this.segmentationType = segmentationType;
return this;
}
public SegmentationAbstract build() {
try {
if (StringUtils.isBlank(this.documentUrl) && StringUtils.isBlank(content)) {
throw new BusinessException("文本分割器不能为空");
}
if (StringUtils.isBlank(this.segmentationType)) {
throw new BusinessException("文本分割器类型不能为空");
}
Class<? extends SegmentationAbstract> segmentationClass = SegmentationEnum.matchSegmentationClass(this.segmentationType);
if (segmentationClass == null) {
throw new BusinessException("未找到该类型文本分割器");
}
SegmentationAbstract segmentationAbstract = segmentationClass.newInstance();
segmentationAbstract.setDocumentUrl(this.documentUrl);
segmentationAbstract.setContent(this.content);
segmentationAbstract.setDocumentName(this.documentName);
return segmentationAbstract;
} catch (InstantiationException | IllegalAccessException e) {
throw new BusinessException("文本分割器初始化失败");
}
}
}
package cn.com.poc.common.segmentation.contents;
import cn.com.poc.common.segmentation.DefaultSegmentation;
import cn.com.poc.common.segmentation.NumberOfWordSegmentation;
import cn.com.poc.common.segmentation.SegmentationAbstract;
/**
* 内容分片枚举
*
* @author alex.yao
*/
public enum SegmentationEnum {
/**
* 默认-分片大小
*/
DEFAULT(DefaultSegmentation.class),
/**
* 按字数
*/
NUMBER_Of_WORDS(NumberOfWordSegmentation.class),
;
private final Class<? extends SegmentationAbstract> clazz;
SegmentationEnum(Class<? extends SegmentationAbstract> clazz) {
this.clazz = clazz;
}
public static Class<? extends SegmentationAbstract> matchSegmentationClass(String type) {
for (SegmentationEnum segmentation : SegmentationEnum.values()) {
if (segmentation.name().equalsIgnoreCase(type)) {
return segmentation.clazz;
}
}
return null;
}
}
package cn.com.poc.common.segmentation.domain;
import java.util.List;
public class SegmentationConfig {
/**
* 大分片大小
*/
private int chunkSize;
/**
* 小分片大小
*/
private int scrapSize;
/**
* 分片重复率
*/
private int repetitionRate;
/**
* 关联信息
*/
private List<String> relationInfo;
/**
* 自定义正则
*/
private String regex;
/**
* 标点符号
*/
private List<String> punctuations;
public List<String> getPunctuations() {
return punctuations;
}
public void setPunctuations(List<String> punctuations) {
this.punctuations = punctuations;
}
public String getRegex() {
return regex;
}
public void setRegex(String regex) {
this.regex = regex;
}
public int getChunkSize() {
return chunkSize;
}
public void setChunkSize(int chunkSize) {
this.chunkSize = chunkSize;
}
public int getScrapSize() {
return scrapSize;
}
public void setScrapSize(int scrapSize) {
this.scrapSize = scrapSize;
}
public int getRepetitionRate() {
return repetitionRate;
}
public void setRepetitionRate(int repetitionRate) {
this.repetitionRate = repetitionRate;
}
public List<String> getRelationInfo() {
return relationInfo;
}
public void setRelationInfo(List<String> relationInfo) {
this.relationInfo = relationInfo;
}
}
package cn.com.poc.common.segmentation.domain;
import java.util.List;
public class SegmentationResult {
private String chunkContent;
private List<String> scrapChunkContent;
public String getChunkContent() {
return chunkContent;
}
public void setChunkContent(String chunkContent) {
this.chunkContent = chunkContent;
}
public List<String> getScrapChunkContent() {
return scrapChunkContent;
}
public void setScrapChunkContent(List<String> scrapChunkContent) {
this.scrapChunkContent = scrapChunkContent;
}
@Override
public String toString() {
return "SegmentationResult{" +
"chunkContent='" + chunkContent + '\'' +
", scrapChunkContent=" + scrapChunkContent +
'}';
}
}
...@@ -12,7 +12,7 @@ import java.util.List; ...@@ -12,7 +12,7 @@ import java.util.List;
public interface LongTextDialoguesService { public interface LongTextDialoguesService {
void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId) throws Exception; void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId, Boolean enableSearchEngine, Boolean enableDeepThinking) throws Exception;
LongTextSummaryDto summary(String dialoguesId, Long userId) throws Exception; LongTextSummaryDto summary(String dialoguesId, Long userId) throws Exception;
......
...@@ -2,13 +2,14 @@ package cn.com.poc.long_document.aggregate.impl; ...@@ -2,13 +2,14 @@ package cn.com.poc.long_document.aggregate.impl;
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.CheckPluginUseEntity;
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.BizAgentApplicationDialoguesRecordService;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService; import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.agent_application.utils.AgentApplicationTools;
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.constant.FmxParamConfigConstant;
import cn.com.poc.common.model.BizFileUploadRecordModel; import cn.com.poc.common.model.BizFileUploadRecordModel;
import cn.com.poc.common.service.BizFileUploadRecordService; import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
...@@ -30,10 +31,17 @@ import cn.com.poc.long_document.service.BizLongTextSummaryCacheService; ...@@ -30,10 +31,17 @@ import cn.com.poc.long_document.service.BizLongTextSummaryCacheService;
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;
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.ToolFunction;
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.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.web_seach.WebSearchFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.web_seach.WebSearchFunctionResult;
import cn.com.poc.thirdparty.service.LLMService; import cn.com.poc.thirdparty.service.LLMService;
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.com.yict.framemax.frame.service.FmxParamConfigService;
...@@ -97,9 +105,12 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -97,9 +105,12 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
@Resource @Resource
private FmxParamConfigService fmxParamConfigService; private FmxParamConfigService fmxParamConfigService;
@Resource
private WebSearchFunction webSearchFunction;
@Override @Override
public void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId) throws Exception { public void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId, Boolean enableSearchEngine, Boolean enableDeepThinking) throws Exception {
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity(); BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesId(dialoguesId); bizAiDialoguesEntity.setDialoguesId(dialoguesId);
bizAiDialoguesEntity.setMemberId(userId); bizAiDialoguesEntity.setMemberId(userId);
...@@ -165,9 +176,15 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -165,9 +176,15 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
sseUtil.send(JsonUtils.serialize(result)); sseUtil.send(JsonUtils.serialize(result));
} }
String longTextDialoguesModel = fmxParamConfigService.getParam("longtext.dialogues_model"); String longTextDialoguesModel = enableDeepThinking ? fmxParamConfigService.getParam("longtext.dialogues_model_think")
: fmxParamConfigService.getParam("longtext.dialogues_model");
// 插件调用
ToolFunction toolFunction = getToolFunction(dialoguesId, input, enableSearchEngine, sseUtil);
//组装请求参数 //组装请求参数
List<Message> messages = buildMessages(dialoguesId, userId, input, fileUrl, knowledgeResult); List<Message> messages = buildMessages(dialoguesId, userId, input, fileUrl, knowledgeResult, toolFunction);
LargeModelResponse largeModelResponse = new LargeModelResponse(); LargeModelResponse largeModelResponse = new LargeModelResponse();
largeModelResponse.setModel(longTextDialoguesModel); largeModelResponse.setModel(longTextDialoguesModel);
largeModelResponse.setMessages(messages.toArray(new Message[0])); largeModelResponse.setMessages(messages.toArray(new Message[0]));
...@@ -292,7 +309,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -292,7 +309,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
} }
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, ToolFunction toolFunction) throws Exception {
// 获取对话提示词 // 获取对话提示词
String promptCode = "DocumentDialoguePrompt"; String promptCode = "DocumentDialoguePrompt";
BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode); BizAgentApplicationGcConfigEntity documentDialoguePrompt = bizAgentApplicationGcConfigService.getByConfigCode(promptCode);
...@@ -315,6 +332,10 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -315,6 +332,10 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
prompt = prompt.replace("${knowledgeContent}", StringUtils.EMPTY); prompt = prompt.replace("${knowledgeContent}", StringUtils.EMPTY);
} }
if (toolFunction != null) {
prompt = prompt.replace("${toolFunction}", JsonUtils.serialize(toolFunction));
}
// 配置message // 配置message
List<Message> messages = new ArrayList<>(); List<Message> messages = new ArrayList<>();
Message systemMessage = new Message(); Message systemMessage = new Message();
...@@ -577,4 +598,44 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -577,4 +598,44 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
throw new BusinessException("获取核心观点失败"); throw new BusinessException("获取核心观点失败");
} }
} }
private ToolFunction getToolFunction(String dialoguesId, String input, Boolean enableSearchEngine, SSEUtil sseUtil) throws IOException {
ToolFunction toolFunction = null;
if (enableSearchEngine) {
List<Message> messages = new ArrayList<>();
Message message = new Message();
message.setRole("user");
message.setContent(input);
messages.add(message);
String[] unitIds = new String[1];
unitIds[0] = "web_search";
List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N");
CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null);
FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult();
if (functionCallResult != null) {
FunctionCall functionCall = functionCallResult.getFunctionCall();
if (functionCallResult.isNeed() && functionCall != null && "web_search".equals(functionCall.getName())) {
AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null);
if (functionResult != null && CollectionUtils.isNotEmpty(functionResult.getFunctionResult())) {
List<WebSearchFunctionResult> webSearchFunctionResults = functionResult.getFunctionResult();
if (CollectionUtils.isNotEmpty(webSearchFunctionResults)) {
toolFunction = new ToolFunction();
toolFunction.setResult(JsonUtils.serialize(webSearchFunctionResults));
toolFunction.setName("web_search");
toolFunction.setArguments(functionCall.getArguments());
toolFunction.setDisplayFormat("json");
LargeModelDemandResult result = new LargeModelDemandResult();
result.setCode("0");
result.setFunction(toolFunction);
result.setDbChainResult(null);
result.setKnowledgeContentResult(null);
sseUtil.send(JsonUtils.serialize(result));
}
}
}
}
}
return toolFunction;
}
} }
package cn.com.poc.long_document.dto; package cn.com.poc.long_document.dto;
import java.util.List;
/** /**
* @author alex.yao * @author alex.yao
* @date 2025/6/3 * @date 2025/6/3
...@@ -28,6 +26,33 @@ public class LongTextDialoguesCallDto { ...@@ -28,6 +26,33 @@ public class LongTextDialoguesCallDto {
*/ */
private Integer[] knowledgeIds; private Integer[] knowledgeIds;
/**
* 是否启用搜索引擎
*/
private boolean enableSearchEngine;
/**
* 是否开启深度思考
*/
private boolean enableDeepThinking;
public boolean getEnableSearchEngine() {
return enableSearchEngine;
}
public void setEnableSearchEngine(boolean enableSearchEngine) {
this.enableSearchEngine = enableSearchEngine;
}
public boolean getEnableDeepThinking() {
return enableDeepThinking;
}
public void setEnableDeepThinking(boolean enableDeepThinking) {
this.enableDeepThinking = enableDeepThinking;
}
public String getDialoguesId() { public String getDialoguesId() {
return dialoguesId; return dialoguesId;
} }
......
...@@ -40,7 +40,7 @@ public class LongTextDialoguesRestImpl implements LongTextDialoguesRest { ...@@ -40,7 +40,7 @@ public class LongTextDialoguesRestImpl implements LongTextDialoguesRest {
dto.getFileUrl(), dto.getFileUrl(),
dto.getInput(), dto.getInput(),
dto.getKnowledgeIds(), dto.getKnowledgeIds(),
userBaseEntity.getUserId()); userBaseEntity.getUserId(), dto.getEnableSearchEngine(), dto.getEnableDeepThinking());
} }
@Override @Override
......
package cn.com.poc.meeting.aggregate;
import cn.com.poc.meeting.entity.AnalysisTaskDetailEntity;
/**
* AI会议助手服务
*/
public interface AiMeetingAssistantService {
/**
* 创建会议解析任务
*
* @param fileUrl 音频文件地址
* @param dialoguesId 会议ID
* @param userId 用户ID
* @return 任务状态
*/
String createTask(String fileUrl, String dialoguesId, Long userId);
/**
* 获取会议解析任务详情
*
* @param dialoguesId
* @param userId
* @return
*/
AnalysisTaskDetailEntity getTaskDetail(String dialoguesId, Long userId);
/**
* 调用AI助手对话
*
* @param dialoguesId
* @param fileUrl
* @param input
* @param knowledgeIds
* @param userId
*/
void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId) throws Exception;
}
package cn.com.poc.meeting.analysis;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.common.segmentation.SegmentationBuilder;
import cn.com.poc.common.segmentation.contents.SegmentationEnum;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
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.yict.framemax.core.exception.BusinessException;
import com.fasterxml.jackson.core.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 会议助手-推荐问生成处理器
*/
public class FeaturedQuestionAnalyzer extends MeetingContentAnalysisAbstract<List<String>> {
private final Logger logger = LoggerFactory.getLogger(FeaturedQuestionAnalyzer.class);
private final String FIRST_GENERATE_GC_CONFIG_CODE = "MEETING_FEATURED_QUESTION_FIRST";
private final String MULTI_GENERATE_GC_CONFIG_CODE = "MEETING_FEATURED_QUESTION_MULTI";
@Override
public List<String> run(String content) {
BizAgentApplicationGcConfigEntity firstGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(FIRST_GENERATE_GC_CONFIG_CODE);
BizAgentApplicationGcConfigEntity multiGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(MULTI_GENERATE_GC_CONFIG_CODE);
if (firstGcConfigEntity == null || multiGcConfigEntity == null) {
throw new BusinessException("无法找到生成推荐问配置");
}
// 配置prompt参数
String firstPrompt = firstGcConfigEntity.getConfigSystem();
String firstModel = firstGcConfigEntity.getLargeModel();
String multiPrompt = multiGcConfigEntity.getConfigSystem();
String multiModel = multiGcConfigEntity.getLargeModel();
// 内容分片
SegmentationConfig segmentationConfig = new SegmentationConfig();
segmentationConfig.setPunctuations(new ArrayList<>());
segmentationConfig.setChunkSize(25000);
segmentationConfig.setScrapSize(25000);
segmentationConfig.setRepetitionRate(5);
segmentationConfig.setRelationInfo(new ArrayList<>());
List<SegmentationResult> segmentationResultList = new SegmentationBuilder()
.segmentationType(SegmentationEnum.NUMBER_Of_WORDS.name())
.content(content)
.build().scrap(segmentationConfig);
// 生成推荐问
String generateContent = "";
try {
for (int i = 0; i < segmentationResultList.size(); i++) {
if (i == 0) {
generateContent = firstGenerate(segmentationResultList.get(i).getChunkContent(), firstPrompt, firstModel);
} else {
generateContent = multiGenerate(segmentationResultList.get(i).getChunkContent(), generateContent, multiPrompt, multiModel);
}
double progress = ((double) (i + 1) / segmentationResultList.size()) * 100D;
logger.info("-------------推荐问生成进度 {} %--------------", progress);
}
} catch (Exception e) {
logger.error("推荐问生成失败", e);
return Collections.emptyList();
}
if (StringUtils.isBlank(generateContent)) {
return Collections.emptyList();
}
// 转换格式 json to list
int start = generateContent.lastIndexOf("[");
int end = generateContent.lastIndexOf("]");
return JsonUtils.deSerialize(generateContent.substring(start, end + 1), new TypeReference<List<String>>() {
}.getType());
}
private String firstGenerate(String content, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_FEATURED_QUESTION");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
private String multiGenerate(String content, String summaries, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content).
replace("{summaries}", summaries));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_FEATURED_QUESTION");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
}
package cn.com.poc.meeting.analysis;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.common.segmentation.SegmentationBuilder;
import cn.com.poc.common.segmentation.contents.SegmentationEnum;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.meeting.cache.KeyWordCounter;
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.dialogue.Message;
import cn.com.yict.framemax.core.exception.BusinessException;
import com.fasterxml.jackson.core.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 会议助手-提取关键词执行器
*/
public class KeyWordAnalyzer extends MeetingContentAnalysisAbstract<List<String>> {
private final Logger logger = LoggerFactory.getLogger(KeyWordAnalyzer.class);
private final String FIRST_GENERATE_GC_CONFIG_CODE = "MEETING_KEYWORD_FIRST";
private final String MULTI_GENERATE_GC_CONFIG_CODE = "MEETING_KEYWORD_MULTI";
@Override
public List<String> run(String content) {
BizAgentApplicationGcConfigEntity firstGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(FIRST_GENERATE_GC_CONFIG_CODE);
BizAgentApplicationGcConfigEntity multiGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(MULTI_GENERATE_GC_CONFIG_CODE);
if (firstGcConfigEntity == null || multiGcConfigEntity == null) {
throw new BusinessException("无法找到提取关键字配置");
}
// 配置prompt参数
String firstPrompt = firstGcConfigEntity.getConfigSystem();
String firstModel = firstGcConfigEntity.getLargeModel();
String multiPrompt = multiGcConfigEntity.getConfigSystem();
String multiModel = multiGcConfigEntity.getLargeModel();
// 内容分片
SegmentationConfig segmentationConfig = new SegmentationConfig();
segmentationConfig.setPunctuations(new ArrayList<>());
segmentationConfig.setChunkSize(25000);
segmentationConfig.setScrapSize(25000);
segmentationConfig.setRepetitionRate(5);
segmentationConfig.setRelationInfo(new ArrayList<>());
List<SegmentationResult> segmentationResultList = new SegmentationBuilder()
.segmentationType(SegmentationEnum.NUMBER_Of_WORDS.name())
.content(content)
.build().scrap(segmentationConfig);
// 提取关键字
String generateContent = "";
try {
for (int i = 0; i < segmentationResultList.size(); i++) {
if (i == 0) {
generateContent = firstGenerate(segmentationResultList.get(i).getChunkContent(), firstPrompt, firstModel);
} else {
generateContent = multiGenerate(segmentationResultList.get(i).getChunkContent(), generateContent, multiPrompt, multiModel);
}
double progress = ((double) (i + 1) / segmentationResultList.size()) * 100D;
logger.info("-------------关键词提取进度 {} %--------------", progress);
}
} catch (Exception e) {
logger.error("关键词提取失败", e);
return Collections.emptyList();
}
if (StringUtils.isBlank(generateContent)) {
return Collections.emptyList();
}
// 转换格式 json to list
int start = generateContent.lastIndexOf("[");
int end = generateContent.lastIndexOf("]");
List<String> res = JsonUtils.deSerialize(generateContent.substring(start, end + 1), new TypeReference<List<String>>() {
}.getType());
return res;
}
private String firstGenerate(String content, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_KEY_WORD");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
private String multiGenerate(String content, String summaries, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content).
replace("{summaries}", summaries));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_KEY_WORD");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
}
package cn.com.poc.meeting.analysis;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.common.utils.SpringUtils;
import cn.com.poc.thirdparty.service.LLMService;
/**
* 会议内容分析处理器抽象类
*/
public abstract class MeetingContentAnalysisAbstract<T> {
protected LLMService llmService;
protected BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService;
public MeetingContentAnalysisAbstract() {
llmService = SpringUtils.getBean(LLMService.class);
bizAgentApplicationGcConfigService = SpringUtils.getBean(BizAgentApplicationGcConfigService.class);
}
public abstract T run(String content);
}
package cn.com.poc.meeting.analysis;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.common.segmentation.SegmentationBuilder;
import cn.com.poc.common.segmentation.contents.SegmentationEnum;
import cn.com.poc.common.segmentation.domain.SegmentationConfig;
import cn.com.poc.common.segmentation.domain.SegmentationResult;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
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.yict.framemax.core.exception.BusinessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
public class SummaryAnalyzer extends MeetingContentAnalysisAbstract<String> {
private final Logger logger = LoggerFactory.getLogger(SummaryAnalyzer.class);
private final String FIRST_GENERATE_GC_CONFIG_CODE = "MEETING_SUMMARY_FIRST";
private final String MULTI_GENERATE_GC_CONFIG_CODE = "MEETING_SUMMARY_MULTI";
@Override
public String run(String content) {
BizAgentApplicationGcConfigEntity firstGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(FIRST_GENERATE_GC_CONFIG_CODE);
BizAgentApplicationGcConfigEntity multiGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(MULTI_GENERATE_GC_CONFIG_CODE);
if (firstGcConfigEntity == null || multiGcConfigEntity == null) {
throw new BusinessException("无法找到生成会议摘要配置");
}
// 配置prompt参数
String firstPrompt = firstGcConfigEntity.getConfigSystem();
String firstModel = firstGcConfigEntity.getLargeModel();
String multiPrompt = multiGcConfigEntity.getConfigSystem();
String multiModel = multiGcConfigEntity.getLargeModel();
// 内容分片
SegmentationConfig segmentationConfig = new SegmentationConfig();
segmentationConfig.setPunctuations(new ArrayList<>());
segmentationConfig.setChunkSize(25000);
segmentationConfig.setScrapSize(25000);
segmentationConfig.setRepetitionRate(5);
segmentationConfig.setRelationInfo(new ArrayList<>());
List<SegmentationResult> segmentationResultList = new SegmentationBuilder()
.segmentationType(SegmentationEnum.NUMBER_Of_WORDS.name())
.content(content)
.build().scrap(segmentationConfig);
// 会议摘要生成
String generateContent = "";
try {
for (int i = 0; i < segmentationResultList.size(); i++) {
if (i == 0) {
generateContent = firstGenerate(segmentationResultList.get(i).getChunkContent(), firstPrompt, firstModel);
} else {
generateContent = multiGenerate(segmentationResultList.get(i).getChunkContent(), generateContent, multiPrompt, multiModel);
}
double progress = ((double) (i + 1) / segmentationResultList.size()) * 100D;
logger.info("-------------会议摘要生成进度 {} %--------------", progress);
}
} catch (Exception e) {
logger.error("会议摘要生成失败", e);
return StringUtils.EMPTY;
}
return generateContent;
}
private String firstGenerate(String content, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_SUMMARY");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
private String multiGenerate(String content, String summaries, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content).
replace("{summaries}", summaries));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_SUMMARY");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
}
package cn.com.poc.meeting.analysis;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
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.yict.framemax.core.exception.BusinessException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ThemeAnalyzer extends MeetingContentAnalysisAbstract<String> {
private final Logger logger = LoggerFactory.getLogger(ThemeAnalyzer.class);
private final String GC_CONFIG_CODE = "MEETING_THEME";
@Override
public String run(String content) {
BizAgentApplicationGcConfigEntity firstGcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(GC_CONFIG_CODE);
if (firstGcConfigEntity == null) {
throw new BusinessException("无法找到生成会议主题配置");
}
// 配置prompt参数
String prompt = firstGcConfigEntity.getConfigSystem();
String model = firstGcConfigEntity.getLargeModel();
// 会议主题生成
return generateTheme(content, prompt, model);
}
private String generateTheme(String content, String prompt, String model) {
LargeModelResponse largeResponse = new LargeModelResponse();
largeResponse.setModel(model);
Message[] messages = new Message[1];
Message message1 = new Message();
message1.setContent(prompt.replace("{content}", content));
message1.setRole("user");
messages[0] = message1;
largeResponse.setMessages(messages);
largeResponse.setStream(false);
largeResponse.setUser("MEETING_THEME");
LargeModelDemandResult chatResult = llmService.chat(largeResponse);
return chatResult.getMessage();
}
}
package cn.com.poc.meeting.cache;
import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.SpringUtils;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 关键词计数器
*/
public class KeyWordCounter {
private final static String REDIS_PREFIX = "MEETING_KEY_WORD_COUNT:";
/**
* 关键词计数统计
*
* @param content 文本
* @param keywords 关键词
* @return 关键词:数量
*/
public static Map<String, Integer> keywordCount(String content, List<String> keywords) {
Map<String, Integer> resMap = new LinkedHashMap<>();
for (String keyword : keywords) {
Pattern compile = Pattern.compile(keyword);
Matcher matcher = compile.matcher(content);
int count = 0;
while (matcher.find()) {
count++;
}
resMap.put(keyword, count);
}
Map<String, Integer> sortedMap = getSortedMap(resMap);
return sortedMap;
}
/**
* 缓存关键词计数
*/
public static void cacheKeyWordCount(String key, Map<String, Integer> map) {
String redisKey = REDIS_PREFIX + key;
RedisService redisService = SpringUtils.getBean(RedisService.class);
Map<String, Object> saveMap = new LinkedHashMap<>();
for (String k : map.keySet()) {
Integer count = map.get(k);
saveMap.put(k, count);
}
redisService.hmset(redisKey, saveMap);
}
/**
* 获取关键词计数缓存
*/
public static Map<String, Integer> getKeywordCountCache(String key) {
Map<String, Integer> resMap = new LinkedHashMap<>();
String redisKey = REDIS_PREFIX + key;
RedisService redisService = SpringUtils.getBean(RedisService.class);
if (!redisService.hasKey(redisKey)) {
return resMap;
}
Map<Object, Object> map = redisService.hmget(redisKey);
for (Object k : map.keySet()) {
Integer count = (Integer) map.get(k);
resMap.put(String.valueOf(k), count);
}
return getSortedMap(resMap);
}
private static @NotNull Map<String, Integer> getSortedMap(Map<String, Integer> resMap) {
// 将Map转换为List
List<Map.Entry<String, Integer>> list = new ArrayList<>(resMap.entrySet());
// 使用自定义Comparator按value排序
list.sort((o1, o2) -> {
return o2.getValue().compareTo(o1.getValue()); // 降序
});
// 将排序后的结果存入LinkedHashMap (可选,如果需要保持插入顺序)
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
}
package cn.com.poc.meeting.constants;
/**
* 会议助手-状态枚举类
*/
public enum MeetingAssistantConstantEnum {
GENERATE("generate"),
COMPLETED("completed"),
FAILED("failed");
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
MeetingAssistantConstantEnum(String status) {
this.status = status;
}
}
package cn.com.poc.meeting.convert;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.meeting.cache.KeyWordCounter;
import cn.com.poc.meeting.constants.MeetingAssistantConstantEnum;
import cn.com.poc.meeting.entity.AnalysisTaskDetailEntity;
import cn.com.poc.meeting.model.BizMeetingAssistantAnalysisTaskModel;
import cn.com.poc.meeting.entity.BizMeetingAssistantAnalysisTaskEntity;
import cn.com.poc.meeting.dto.BizMeetingAssistantAnalysisTaskDto;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class BizMeetingAssistantAnalysisTaskConvert {
public static BizMeetingAssistantAnalysisTaskEntity modelToEntity(BizMeetingAssistantAnalysisTaskModel model) {
BizMeetingAssistantAnalysisTaskEntity entity = new BizMeetingAssistantAnalysisTaskEntity();
entity.setId(model.getId());
entity.setMemberId(model.getMemberId());
entity.setDiaguesId(model.getDiaguesId());
entity.setAnalysisStatus(model.getAnalysisStatus());
entity.setThemeContent(model.getThemeContent());
entity.setThemeGenerateStatus(model.getThemeGenerateStatus());
entity.setKeyWordContent(model.getKeyWordContent());
entity.setKeyWordGenerateStatus(model.getKeyWordGenerateStatus());
entity.setMeetingSummaryContent(model.getMeetingSummaryContent());
entity.setMeetingSummaryGenerateStatus(model.getMeetingSummaryGenerateStatus());
entity.setFeaturedQuestionsGenerateStatus(model.getFeaturedQuestionsGenerateStatus());
entity.setFeaturedQuestions(model.getFeaturedQuestions());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizMeetingAssistantAnalysisTaskModel entityToModel(BizMeetingAssistantAnalysisTaskEntity entity) {
BizMeetingAssistantAnalysisTaskModel model = new BizMeetingAssistantAnalysisTaskModel();
model.setId(entity.getId());
model.setMemberId(entity.getMemberId());
model.setDiaguesId(entity.getDiaguesId());
model.setAnalysisStatus(entity.getAnalysisStatus());
model.setThemeContent(entity.getThemeContent());
model.setThemeGenerateStatus(entity.getThemeGenerateStatus());
model.setKeyWordContent(entity.getKeyWordContent());
model.setKeyWordGenerateStatus(entity.getKeyWordGenerateStatus());
model.setMeetingSummaryContent(entity.getMeetingSummaryContent());
model.setMeetingSummaryGenerateStatus(entity.getMeetingSummaryGenerateStatus());
model.setFeaturedQuestionsGenerateStatus(entity.getFeaturedQuestionsGenerateStatus());
model.setFeaturedQuestions(entity.getFeaturedQuestions());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizMeetingAssistantAnalysisTaskDto entityToDto(BizMeetingAssistantAnalysisTaskEntity entity) {
BizMeetingAssistantAnalysisTaskDto dto = new BizMeetingAssistantAnalysisTaskDto();
dto.setId(entity.getId());
dto.setMemberId(entity.getMemberId());
dto.setDiaguesId(entity.getDiaguesId());
dto.setAnalysisStatus(entity.getAnalysisStatus());
dto.setThemeContent(entity.getThemeContent());
dto.setThemeGenerateStatus(entity.getThemeGenerateStatus());
dto.setKeyWordContent(entity.getKeyWordContent());
dto.setKeyWordGenerateStatus(entity.getKeyWordGenerateStatus());
dto.setMeetingSummaryContent(entity.getMeetingSummaryContent());
dto.setMeetingSummaryGenerateStatus(entity.getMeetingSummaryGenerateStatus());
dto.setFeaturedQuestionsGenerateStatus(entity.getFeaturedQuestionsGenerateStatus());
dto.setFeaturedQuestions(entity.getFeaturedQuestions());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizMeetingAssistantAnalysisTaskEntity dtoToEntity(BizMeetingAssistantAnalysisTaskDto dto) {
BizMeetingAssistantAnalysisTaskEntity entity = new BizMeetingAssistantAnalysisTaskEntity();
entity.setId(dto.getId());
entity.setMemberId(dto.getMemberId());
entity.setDiaguesId(dto.getDiaguesId());
entity.setAnalysisStatus(dto.getAnalysisStatus());
entity.setThemeContent(dto.getThemeContent());
entity.setThemeGenerateStatus(dto.getThemeGenerateStatus());
entity.setKeyWordContent(dto.getKeyWordContent());
entity.setKeyWordGenerateStatus(dto.getKeyWordGenerateStatus());
entity.setMeetingSummaryContent(dto.getMeetingSummaryContent());
entity.setMeetingSummaryGenerateStatus(dto.getMeetingSummaryGenerateStatus());
entity.setFeaturedQuestionsGenerateStatus(dto.getFeaturedQuestionsGenerateStatus());
entity.setFeaturedQuestions(dto.getFeaturedQuestions());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
public static AnalysisTaskDetailEntity bizEntityToDetailEntity(BizMeetingAssistantAnalysisTaskEntity entity) {
AnalysisTaskDetailEntity analysisTaskDetailEntity = new AnalysisTaskDetailEntity();
analysisTaskDetailEntity.setAnalysisStatus(entity.getAnalysisStatus());
analysisTaskDetailEntity.setThemeContent(entity.getThemeContent());
analysisTaskDetailEntity.setThemeGenerateStatus(entity.getThemeGenerateStatus());
analysisTaskDetailEntity.setKeyWordGenerateStatus(entity.getKeyWordGenerateStatus());
//获取关键字计数
if (MeetingAssistantConstantEnum.COMPLETED.getStatus().equals(entity.getKeyWordGenerateStatus())) {
Map<String, Integer> keywordCountMap = KeyWordCounter.getKeywordCountCache(entity.getDiaguesId());
analysisTaskDetailEntity.setKeyWordCount(keywordCountMap);
if (StringUtils.isNotBlank(entity.getKeyWordContent())) {
List<String> keyWords = new ArrayList<>(keywordCountMap.keySet());
analysisTaskDetailEntity.setKeyWordContent(keyWords);
}
}
analysisTaskDetailEntity.setMeetingSummaryContent(entity.getMeetingSummaryContent());
analysisTaskDetailEntity.setMeetingSummaryGenerateStatus(entity.getMeetingSummaryGenerateStatus());
analysisTaskDetailEntity.setFeaturedQuestionsGenerateStatus(entity.getFeaturedQuestionsGenerateStatus());
if (StringUtils.isNotBlank(entity.getFeaturedQuestions())) {
List<String> featuredQuestions = JsonUtils.deSerialize(entity.getFeaturedQuestions(), new TypeReference<List<String>>() {
}.getType());
analysisTaskDetailEntity.setFeaturedQuestions(featuredQuestions);
}
return analysisTaskDetailEntity;
}
}
\ No newline at end of file
package cn.com.poc.meeting.convert;
import cn.com.poc.meeting.dto.BizMeetingAssistantAsrTaskDto;
import cn.com.poc.meeting.entity.BizMeetingAssistantAsrTaskEntity;
import cn.com.poc.meeting.model.BizMeetingAssistantAsrTaskModel;
public class BizMeetingAssistantAsrTaskConvert {
public static BizMeetingAssistantAsrTaskEntity modelToEntity(BizMeetingAssistantAsrTaskModel model){
BizMeetingAssistantAsrTaskEntity entity = new BizMeetingAssistantAsrTaskEntity();
entity.setId(model.getId());
entity.setMemberId(model.getMemberId());
entity.setDiaguesId(model.getDiaguesId());
entity.setSessionId(model.getSessionId());
entity.setGenerateStatus(model.getGenerateStatus());
entity.setMessage(model.getMessage());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizMeetingAssistantAsrTaskModel entityToModel(BizMeetingAssistantAsrTaskEntity entity){
BizMeetingAssistantAsrTaskModel model = new BizMeetingAssistantAsrTaskModel();
model.setId(entity.getId());
model.setMemberId(entity.getMemberId());
model.setDiaguesId(entity.getDiaguesId());
model.setSessionId(entity.getSessionId());
model.setGenerateStatus(entity.getGenerateStatus());
model.setMessage(entity.getMessage());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizMeetingAssistantAsrTaskDto entityToDto(BizMeetingAssistantAsrTaskEntity entity){
BizMeetingAssistantAsrTaskDto dto = new BizMeetingAssistantAsrTaskDto();
dto.setId(entity.getId());
dto.setMemberId(entity.getMemberId());
dto.setDiaguesId(entity.getDiaguesId());
dto.setSessionId(entity.getSessionId());
dto.setGenerateStatus(entity.getGenerateStatus());
dto.setMessage(entity.getMessage());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizMeetingAssistantAsrTaskEntity dtoToEntity(BizMeetingAssistantAsrTaskDto dto){
BizMeetingAssistantAsrTaskEntity entity = new BizMeetingAssistantAsrTaskEntity();
entity.setId(dto.getId());
entity.setMemberId(dto.getMemberId());
entity.setDiaguesId(dto.getDiaguesId());
entity.setSessionId(dto.getSessionId());
entity.setGenerateStatus(dto.getGenerateStatus());
entity.setMessage(dto.getMessage());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
}
\ No newline at end of file
package cn.com.poc.meeting.dto;
public class AiMeetingAssistantDto {
/**
* 对话id
*/
private String dialoguesId;
/**
* 文件地址
*/
private String fileUrl;
/**
* 输入内容
*/
private String input;
/**
* 知识库id
*/
private Integer[] knowledgeIds;
public Integer[] getKnowledgeIds() {
return knowledgeIds;
}
public void setKnowledgeIds(Integer[] knowledgeIds) {
this.knowledgeIds = knowledgeIds;
}
public String getDialoguesId() {
return dialoguesId;
}
public void setDialoguesId(String dialoguesId) {
this.dialoguesId = dialoguesId;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
package cn.com.poc.meeting.dto;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.entity.Translation;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.List;
import java.util.Map;
import java.util.Set;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class AnalysisTaskDetailDto {
/**
* analysis_status
* 内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private java.lang.String analysisStatus;
public java.lang.String getAnalysisStatus() {
return this.analysisStatus;
}
public void setAnalysisStatus(java.lang.String analysisStatus) {
this.analysisStatus = analysisStatus;
}
/**
* theme_content
* 会议主题
*/
private java.lang.String themeContent;
public java.lang.String getThemeContent() {
return this.themeContent;
}
public void setThemeContent(java.lang.String themeContent) {
this.themeContent = themeContent;
}
/**
* theme_generate_status
* 会议主题生成状态
*/
private java.lang.String themeGenerateStatus;
public java.lang.String getThemeGenerateStatus() {
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(java.lang.String themeGenerateStatus) {
this.themeGenerateStatus = themeGenerateStatus;
}
/**
* key_word_content
* 关键词
*/
private List<String> keyWordContent;
public List<String> getKeyWordContent() {
return keyWordContent;
}
public void setKeyWordContent(List<String> keyWordContent) {
this.keyWordContent = keyWordContent;
}
/**
* key_word_generate_status
* 关键词生成状态
*/
private java.lang.String keyWordGenerateStatus;
public java.lang.String getKeyWordGenerateStatus() {
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(java.lang.String keyWordGenerateStatus) {
this.keyWordGenerateStatus = keyWordGenerateStatus;
}
/**
* 关键词计数
*/
private Map<String, Integer> keyWordCount;
public Map<String, Integer> getKeyWordCount() {
return keyWordCount;
}
public void setKeyWordCount(Map<String, Integer> keyWordCount) {
this.keyWordCount = keyWordCount;
}
/**
* meeting_summary_content
* 会议摘要
*/
private java.lang.String meetingSummaryContent;
public java.lang.String getMeetingSummaryContent() {
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(java.lang.String meetingSummaryContent) {
this.meetingSummaryContent = meetingSummaryContent;
}
/**
* meeting_summary_generate_status
* 会议摘要生成状态
*/
private java.lang.String meetingSummaryGenerateStatus;
public java.lang.String getMeetingSummaryGenerateStatus() {
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(java.lang.String meetingSummaryGenerateStatus) {
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
}
/**
* featured_questions_generate_status
* 推荐问生成状态
*/
private java.lang.String featuredQuestionsGenerateStatus;
public java.lang.String getFeaturedQuestionsGenerateStatus() {
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(java.lang.String featuredQuestionsGenerateStatus) {
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
}
/**
* featured_questions
* 推荐问
*/
private List<String> featuredQuestions;
public List<String> getFeaturedQuestions() {
return featuredQuestions;
}
public void setFeaturedQuestions(List<String> featuredQuestions) {
this.featuredQuestions = featuredQuestions;
}
/**
* spk_sets
* 说话人列表
*/
private Set<Long> spkSets;
public Set<Long> getSpkSets() {
return spkSets;
}
public void setSpkSets(Set<Long> spkSets) {
this.spkSets = spkSets;
}
/**
* 语音识别内容
* translation
*/
private List<Translation> translations;
public List<Translation> getTranslations() {
return translations;
}
public void setTranslations(List<Translation> translations) {
this.translations = translations;
}
}
package cn.com.poc.meeting.dto;
public class BizMeetingAssistantAnalysisTaskDto {
private static final long serialVersionUID = 1L;
/** id
*
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** 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;
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
}
/** analysis_status
*内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private java.lang.String analysisStatus;
public java.lang.String getAnalysisStatus(){
return this.analysisStatus;
}
public void setAnalysisStatus(java.lang.String analysisStatus){
this.analysisStatus = analysisStatus;
}
/** theme_content
*会议主题
*/
private java.lang.String themeContent;
public java.lang.String getThemeContent(){
return this.themeContent;
}
public void setThemeContent(java.lang.String themeContent){
this.themeContent = themeContent;
}
/** theme_generate_status
*会议主题生成状态
*/
private java.lang.String themeGenerateStatus;
public java.lang.String getThemeGenerateStatus(){
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(java.lang.String themeGenerateStatus){
this.themeGenerateStatus = themeGenerateStatus;
}
/** key_word_content
*关键词
*/
private java.lang.String keyWordContent;
public java.lang.String getKeyWordContent(){
return this.keyWordContent;
}
public void setKeyWordContent(java.lang.String keyWordContent){
this.keyWordContent = keyWordContent;
}
/** key_word_generate_status
*关键词生成状态
*/
private java.lang.String keyWordGenerateStatus;
public java.lang.String getKeyWordGenerateStatus(){
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(java.lang.String keyWordGenerateStatus){
this.keyWordGenerateStatus = keyWordGenerateStatus;
}
/** meeting_summary_content
*会议摘要
*/
private java.lang.String meetingSummaryContent;
public java.lang.String getMeetingSummaryContent(){
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(java.lang.String meetingSummaryContent){
this.meetingSummaryContent = meetingSummaryContent;
}
/** meeting_summary_generate_status
*会议摘要生成状态
*/
private java.lang.String meetingSummaryGenerateStatus;
public java.lang.String getMeetingSummaryGenerateStatus(){
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(java.lang.String meetingSummaryGenerateStatus){
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
}
/** featured_questions_generate_status
*推荐问生成状态
*/
private java.lang.String featuredQuestionsGenerateStatus;
public java.lang.String getFeaturedQuestionsGenerateStatus(){
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(java.lang.String featuredQuestionsGenerateStatus){
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
}
/** featured_questions
*推荐问
*/
private java.lang.String featuredQuestions;
public java.lang.String getFeaturedQuestions(){
return this.featuredQuestions;
}
public void setFeaturedQuestions(java.lang.String featuredQuestions){
this.featuredQuestions = featuredQuestions;
}
/** is_deleted
*是否删除 Y 是 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.meeting.dto;
public class BizMeetingAssistantAsrTaskDto {
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;
}
/** 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;
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
}
/** session_id
*语音识别任务ID
*/
private java.lang.String sessionId;
public java.lang.String getSessionId(){
return this.sessionId;
}
public void setSessionId(java.lang.String sessionId){
this.sessionId = sessionId;
}
/** generate_status
*任务状态 generate-生成中 completed-完成 failed-异常
*/
private java.lang.String generateStatus;
public java.lang.String getGenerateStatus(){
return this.generateStatus;
}
public void setGenerateStatus(java.lang.String generateStatus){
this.generateStatus = generateStatus;
}
/** message
*异常信息
*/
private java.lang.String message;
public java.lang.String getMessage(){
return this.message;
}
public void setMessage(java.lang.String message){
this.message = message;
}
/** is_deleted
*是否删除 Y 是 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.meeting.entity;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.entity.Translation;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class AnalysisTaskDetailEntity {
/**
* analysis_status
* 内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private String analysisStatus;
public String getAnalysisStatus() {
return this.analysisStatus;
}
public void setAnalysisStatus(String analysisStatus) {
this.analysisStatus = analysisStatus;
}
/**
* theme_content
* 会议主题
*/
private String themeContent;
public String getThemeContent() {
return this.themeContent;
}
public void setThemeContent(String themeContent) {
this.themeContent = themeContent;
}
/**
* theme_generate_status
* 会议主题生成状态
*/
private String themeGenerateStatus;
public String getThemeGenerateStatus() {
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(String themeGenerateStatus) {
this.themeGenerateStatus = themeGenerateStatus;
}
/**
* key_word_content
* 关键词
*/
private List<String> keyWordContent;
public List<String> getKeyWordContent() {
return keyWordContent;
}
public void setKeyWordContent(List<String> keyWordContent) {
this.keyWordContent = keyWordContent;
}
/**
* key_word_generate_status
* 关键词生成状态
*/
private String keyWordGenerateStatus;
public String getKeyWordGenerateStatus() {
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(String keyWordGenerateStatus) {
this.keyWordGenerateStatus = keyWordGenerateStatus;
}
/**
* 关键词计数
*/
private Map<String, Integer> keyWordCount;
public Map<String, Integer> getKeyWordCount() {
return keyWordCount;
}
public void setKeyWordCount(Map<String, Integer> keyWordCount) {
this.keyWordCount = keyWordCount;
}
/**
* meeting_summary_content
* 会议摘要
*/
private String meetingSummaryContent;
public String getMeetingSummaryContent() {
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(String meetingSummaryContent) {
this.meetingSummaryContent = meetingSummaryContent;
}
/**
* meeting_summary_generate_status
* 会议摘要生成状态
*/
private String meetingSummaryGenerateStatus;
public String getMeetingSummaryGenerateStatus() {
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(String meetingSummaryGenerateStatus) {
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
}
/**
* featured_questions_generate_status
* 推荐问生成状态
*/
private String featuredQuestionsGenerateStatus;
public String getFeaturedQuestionsGenerateStatus() {
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(String featuredQuestionsGenerateStatus) {
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
}
/**
* featured_questions
* 推荐问
*/
private List<String> featuredQuestions;
public List<String> getFeaturedQuestions() {
return featuredQuestions;
}
public void setFeaturedQuestions(List<String> featuredQuestions) {
this.featuredQuestions = featuredQuestions;
}
/**
* asr_status
* 语音识别任务状态
*/
private String asrStatus;
public String getAsrStatus() {
return asrStatus;
}
public void setAsrStatus(String asrStatus) {
this.asrStatus = asrStatus;
}
/**
* spk_sets
* 说话人列表
*/
private Set<Long> spkSets;
public Set<Long> getSpkSets() {
return spkSets;
}
public void setSpkSets(Set<Long> spkSets) {
this.spkSets = spkSets;
}
/**
* 语音识别内容
* translation
*/
private List<Translation> translations;
public List<Translation> getTranslations() {
return translations;
}
public void setTranslations(List<Translation> translations) {
this.translations = translations;
}
}
package cn.com.poc.meeting.entity;
public class BizMeetingAssistantAnalysisTaskEntity {
private static final long serialVersionUID = 1L;
/** id
*
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** 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;
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
}
/** analysis_status
*内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private java.lang.String analysisStatus;
public java.lang.String getAnalysisStatus(){
return this.analysisStatus;
}
public void setAnalysisStatus(java.lang.String analysisStatus){
this.analysisStatus = analysisStatus;
}
/** theme_content
*会议主题
*/
private java.lang.String themeContent;
public java.lang.String getThemeContent(){
return this.themeContent;
}
public void setThemeContent(java.lang.String themeContent){
this.themeContent = themeContent;
}
/** theme_generate_status
*会议主题生成状态
*/
private java.lang.String themeGenerateStatus;
public java.lang.String getThemeGenerateStatus(){
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(java.lang.String themeGenerateStatus){
this.themeGenerateStatus = themeGenerateStatus;
}
/** key_word_content
*关键词
*/
private java.lang.String keyWordContent;
public java.lang.String getKeyWordContent(){
return this.keyWordContent;
}
public void setKeyWordContent(java.lang.String keyWordContent){
this.keyWordContent = keyWordContent;
}
/** key_word_generate_status
*关键词生成状态
*/
private java.lang.String keyWordGenerateStatus;
public java.lang.String getKeyWordGenerateStatus(){
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(java.lang.String keyWordGenerateStatus){
this.keyWordGenerateStatus = keyWordGenerateStatus;
}
/** meeting_summary_content
*会议摘要
*/
private java.lang.String meetingSummaryContent;
public java.lang.String getMeetingSummaryContent(){
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(java.lang.String meetingSummaryContent){
this.meetingSummaryContent = meetingSummaryContent;
}
/** meeting_summary_generate_status
*会议摘要生成状态
*/
private java.lang.String meetingSummaryGenerateStatus;
public java.lang.String getMeetingSummaryGenerateStatus(){
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(java.lang.String meetingSummaryGenerateStatus){
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
}
/** featured_questions_generate_status
*推荐问生成状态
*/
private java.lang.String featuredQuestionsGenerateStatus;
public java.lang.String getFeaturedQuestionsGenerateStatus(){
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(java.lang.String featuredQuestionsGenerateStatus){
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
}
/** featured_questions
*推荐问
*/
private java.lang.String featuredQuestions;
public java.lang.String getFeaturedQuestions(){
return this.featuredQuestions;
}
public void setFeaturedQuestions(java.lang.String featuredQuestions){
this.featuredQuestions = featuredQuestions;
}
/** is_deleted
*是否删除 Y 是 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;
}
@Override
public String toString() {
return "BizMeetingAssistantAnalysisTaskEntity{" +
"id=" + id +
", memberId=" + memberId +
", diaguesId='" + diaguesId + '\'' +
", analysisStatus='" + analysisStatus + '\'' +
", themeContent='" + themeContent + '\'' +
", themeGenerateStatus='" + themeGenerateStatus + '\'' +
", keyWordContent='" + keyWordContent + '\'' +
", keyWordGenerateStatus='" + keyWordGenerateStatus + '\'' +
", meetingSummaryContent='" + meetingSummaryContent + '\'' +
", meetingSummaryGenerateStatus='" + meetingSummaryGenerateStatus + '\'' +
", featuredQuestionsGenerateStatus='" + featuredQuestionsGenerateStatus + '\'' +
", featuredQuestions='" + featuredQuestions + '\'' +
", isDeleted='" + isDeleted + '\'' +
", creator='" + creator + '\'' +
", createdTime=" + createdTime +
", modifier='" + modifier + '\'' +
", modifiedTime=" + modifiedTime +
", sysVersion=" + sysVersion +
'}';
}
}
\ No newline at end of file
package cn.com.poc.meeting.entity;
public class BizMeetingAssistantAsrTaskEntity {
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;
}
/** 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;
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
}
/** session_id
*语音识别任务ID
*/
private java.lang.String sessionId;
public java.lang.String getSessionId(){
return this.sessionId;
}
public void setSessionId(java.lang.String sessionId){
this.sessionId = sessionId;
}
/** generate_status
*任务状态 generate-生成中 completed-完成 failed-异常
*/
private java.lang.String generateStatus;
public java.lang.String getGenerateStatus(){
return this.generateStatus;
}
public void setGenerateStatus(java.lang.String generateStatus){
this.generateStatus = generateStatus;
}
/** message
*异常信息
*/
private java.lang.String message;
public java.lang.String getMessage(){
return this.message;
}
public void setMessage(java.lang.String message){
this.message = message;
}
/** is_deleted
*是否删除 Y 是 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.meeting.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_meeting_assistant_analysis_task
* 会议助手-会议内容分析任务表
*/
@Entity
@Table(name = "biz_meeting_assistant_analysis_task")
@DynamicInsert
@DynamicUpdate
public class BizMeetingAssistantAnalysisTaskModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** 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");
}
/** 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");
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
@Column(name = "diagues_id",length = 120)
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
super.addValidField("diaguesId");
}
/** analysis_status
*内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private java.lang.String analysisStatus;
@Column(name = "analysis_status",length = 15)
public java.lang.String getAnalysisStatus(){
return this.analysisStatus;
}
public void setAnalysisStatus(java.lang.String analysisStatus){
this.analysisStatus = analysisStatus;
super.addValidField("analysisStatus");
}
/** theme_content
*会议主题
*/
private java.lang.String themeContent;
@Column(name = "theme_content",length = 2147483647)
public java.lang.String getThemeContent(){
return this.themeContent;
}
public void setThemeContent(java.lang.String themeContent){
this.themeContent = themeContent;
super.addValidField("themeContent");
}
/** theme_generate_status
*会议主题生成状态
*/
private java.lang.String themeGenerateStatus;
@Column(name = "theme_generate_status",length = 15)
public java.lang.String getThemeGenerateStatus(){
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(java.lang.String themeGenerateStatus){
this.themeGenerateStatus = themeGenerateStatus;
super.addValidField("themeGenerateStatus");
}
/** key_word_content
*关键词
*/
private java.lang.String keyWordContent;
@Column(name = "key_word_content",length = 1073741824)
public java.lang.String getKeyWordContent(){
return this.keyWordContent;
}
public void setKeyWordContent(java.lang.String keyWordContent){
this.keyWordContent = keyWordContent;
super.addValidField("keyWordContent");
}
/** key_word_generate_status
*关键词生成状态
*/
private java.lang.String keyWordGenerateStatus;
@Column(name = "key_word_generate_status",length = 15)
public java.lang.String getKeyWordGenerateStatus(){
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(java.lang.String keyWordGenerateStatus){
this.keyWordGenerateStatus = keyWordGenerateStatus;
super.addValidField("keyWordGenerateStatus");
}
/** meeting_summary_content
*会议摘要
*/
private java.lang.String meetingSummaryContent;
@Column(name = "meeting_summary_content",length = 2147483647)
public java.lang.String getMeetingSummaryContent(){
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(java.lang.String meetingSummaryContent){
this.meetingSummaryContent = meetingSummaryContent;
super.addValidField("meetingSummaryContent");
}
/** meeting_summary_generate_status
*会议摘要生成状态
*/
private java.lang.String meetingSummaryGenerateStatus;
@Column(name = "meeting_summary_generate_status",length = 15)
public java.lang.String getMeetingSummaryGenerateStatus(){
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(java.lang.String meetingSummaryGenerateStatus){
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
super.addValidField("meetingSummaryGenerateStatus");
}
/** featured_questions_generate_status
*推荐问生成状态
*/
private java.lang.String featuredQuestionsGenerateStatus;
@Column(name = "featured_questions_generate_status",length = 15)
public java.lang.String getFeaturedQuestionsGenerateStatus(){
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(java.lang.String featuredQuestionsGenerateStatus){
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
super.addValidField("featuredQuestionsGenerateStatus");
}
/** featured_questions
*推荐问
*/
private java.lang.String featuredQuestions;
@Column(name = "featured_questions",length = 1073741824)
public java.lang.String getFeaturedQuestions(){
return this.featuredQuestions;
}
public void setFeaturedQuestions(java.lang.String featuredQuestions){
this.featuredQuestions = featuredQuestions;
super.addValidField("featuredQuestions");
}
/** is_deleted
*是否删除 Y 是 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 = 50)
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 = 50)
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.meeting.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_meeting_assistant_asr_task
* 会议助手-语音识别任务表
*/
@Entity
@Table(name = "biz_meeting_assistant_asr_task")
@DynamicInsert
@DynamicUpdate
public class BizMeetingAssistantAsrTaskModel 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");
}
/** 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");
}
/** diagues_id
*会话id
*/
private java.lang.String diaguesId;
@Column(name = "diagues_id",length = 120)
public java.lang.String getDiaguesId(){
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId){
this.diaguesId = diaguesId;
super.addValidField("diaguesId");
}
/** session_id
*语音识别任务ID
*/
private java.lang.String sessionId;
@Column(name = "session_id",length = 200)
public java.lang.String getSessionId(){
return this.sessionId;
}
public void setSessionId(java.lang.String sessionId){
this.sessionId = sessionId;
super.addValidField("sessionId");
}
/** generate_status
*任务状态 generate-生成中 completed-完成 failed-异常
*/
private java.lang.String generateStatus;
@Column(name = "generate_status",length = 15)
public java.lang.String getGenerateStatus(){
return this.generateStatus;
}
public void setGenerateStatus(java.lang.String generateStatus){
this.generateStatus = generateStatus;
super.addValidField("generateStatus");
}
/** message
*异常信息
*/
private java.lang.String message;
@Column(name = "message",length = 2147483647)
public java.lang.String getMessage(){
return this.message;
}
public void setMessage(java.lang.String message){
this.message = message;
super.addValidField("message");
}
/** is_deleted
*是否删除 Y 是 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 = 50)
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 = 50)
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.meeting.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.meeting.model.BizMeetingAssistantAnalysisTaskModel;
public interface BizMeetingAssistantAnalysisTaskRepository extends Repository<BizMeetingAssistantAnalysisTaskModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.meeting.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.meeting.model.BizMeetingAssistantAsrTaskModel;
public interface BizMeetingAssistantAsrTaskRepository extends Repository<BizMeetingAssistantAsrTaskModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.meeting.rest;
import cn.com.poc.meeting.dto.AiMeetingAssistantDto;
import cn.com.poc.meeting.dto.AnalysisTaskDetailDto;
import cn.com.yict.framemax.core.rest.BaseRest;
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;
/**
* AI会议助手接口
*/
@Permission(Access.Safety)
public interface AiMeetingAssistantRest extends BaseRest {
/**
* 创建语音文件解析任务
*
* @param fileUrl 语音文件地址
* @param dialoguesId 会话ID
* @return 任务创建状态
*/
String createTask(@RequestParam String fileUrl, @RequestParam String dialoguesId);
/**
* 查询会议内容分析详情
*
* @param dialoguesId 会话ID
* @return 任务执行状态
*/
AnalysisTaskDetailDto getTaskDetail(@RequestParam String dialoguesId);
/**
* 会议助手对话
*
* @param dto
* @throws Exception
*/
void call(@RequestBody AiMeetingAssistantDto dto) throws Exception;
}
package cn.com.poc.meeting.rest.impl;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.meeting.aggregate.AiMeetingAssistantService;
import cn.com.poc.meeting.dto.AiMeetingAssistantDto;
import cn.com.poc.meeting.dto.AnalysisTaskDetailDto;
import cn.com.poc.meeting.entity.AnalysisTaskDetailEntity;
import cn.com.poc.meeting.rest.AiMeetingAssistantRest;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class AiMeetingAssistantRestImpl implements AiMeetingAssistantRest {
@Resource
private AiMeetingAssistantService aiMeetingAssistantService;
@Override
public AnalysisTaskDetailDto getTaskDetail(String dialoguesId) {
Assert.notBlank(dialoguesId, "会话ID不能为空");
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
AnalysisTaskDetailDto result = new AnalysisTaskDetailDto();
AnalysisTaskDetailEntity analysisTaskDetailEntity = aiMeetingAssistantService.getTaskDetail(dialoguesId, userBaseEntity.getUserId());
BeanUtils.copyProperties(analysisTaskDetailEntity, result);
return result;
}
@Override
public String createTask(String fileUrl, String dialoguesId) {
Assert.notBlank(fileUrl, "文件不能为空");
Assert.notBlank(dialoguesId, "会话ID不能为空");
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
return aiMeetingAssistantService.createTask(fileUrl, dialoguesId, userBaseEntity.getUserId());
}
@Override
public void call(AiMeetingAssistantDto dto) throws Exception {
Assert.notBlank(dto.getDialoguesId(), "会话ID不能为空");
Assert.notBlank(dto.getInput(), "输入内容不能为空");
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
aiMeetingAssistantService.call(dto.getDialoguesId(), dto.getFileUrl(), dto.getInput(), dto.getKnowledgeIds(), userBaseEntity.getUserId());
}
}
package cn.com.poc.meeting.scheduler;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.meeting.constants.MeetingAssistantConstantEnum;
import cn.com.poc.meeting.entity.BizMeetingAssistantAnalysisTaskEntity;
import cn.com.poc.meeting.entity.BizMeetingAssistantAsrTaskEntity;
import cn.com.poc.meeting.service.BizMeetingAssistantAnalysisTaskService;
import cn.com.poc.meeting.service.BizMeetingAssistantAsrTaskService;
import cn.com.poc.message.entity.meeting.MeetingAssistantAnalysisMessage;
import cn.com.poc.message.service.MeetingAssistantAnalysisProducerService;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.entity.AsrOfflineDetailResult;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.entity.GetDetailResult;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.service.ASRService;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* 会议助手-定时任务
*/
@Component
public class MeetingAssistantScheduler {
private final Logger logger = LoggerFactory.getLogger(MeetingAssistantScheduler.class);
@Resource
private MeetingAssistantAnalysisProducerService meetingAssistantAnalysisProducerService;
@Resource
private BizMeetingAssistantAsrTaskService bizMeetingAssistantAsrTaskService;
@Resource
private BizMeetingAssistantAnalysisTaskService bizMeetingAssistantAnalysisTaskService;
@Resource
private ASRService asrService;
/**
* 语音识别任务状态查询
*/
@Scheduled(fixedDelay = 15000)
public void taskStatusUpdate() {
logger.info("------- 执行[语音识别任务状态查询]定时任务 -------");
BizMeetingAssistantAsrTaskEntity bizMeetingAssistantAsrTaskEntity = new BizMeetingAssistantAsrTaskEntity();
bizMeetingAssistantAsrTaskEntity.setGenerateStatus(MeetingAssistantConstantEnum.GENERATE.getStatus());
bizMeetingAssistantAsrTaskEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizMeetingAssistantAsrTaskEntity> taskEntities = bizMeetingAssistantAsrTaskService.findByExample(bizMeetingAssistantAsrTaskEntity, null);
if (CollectionUtils.isEmpty(taskEntities)) {
return;
}
for (BizMeetingAssistantAsrTaskEntity taskEntity : taskEntities) {
String sessionId = taskEntity.getSessionId();
GetDetailResult getDetailResult = asrService.getDetailByFullInformation(sessionId);
if (getDetailResult == null) {
logger.error("--------- 查询语音识别任务异常,响应结果为空,sessionId:{}---------", sessionId);
continue;
}
if (0 != getDetailResult.getCode()) {
logger.error("------ 查询语音识别任务异常,sessionId:{},code:{} ,message:{}", sessionId, getDetailResult.getCode(), getDetailResult.getMessage());
continue;
}
if (null == getDetailResult.getData()) {
logger.error("---------- 查询语音识别任务异常,data为空 -----------");
continue;
}
AsrOfflineDetailResult data = getDetailResult.getData();
if (data != null) {
if (MeetingAssistantConstantEnum.COMPLETED.getStatus().equals(data.getGenerateStatus())) {
if (CollectionUtils.isEmpty(data.getTranslation())) {
logger.warn("-------- 语音识别任务已完成,但 Translation 内容为空 ----------");
taskEntity.setGenerateStatus(MeetingAssistantConstantEnum.FAILED.getStatus());
taskEntity.setMessage("translation is null");
bizMeetingAssistantAsrTaskService.update(taskEntity);
} else {
taskEntity.setGenerateStatus(MeetingAssistantConstantEnum.COMPLETED.getStatus());
bizMeetingAssistantAsrTaskService.update(taskEntity);
//执行内容分析任务
MeetingAssistantAnalysisMessage meetingAssistantAnalysisMessage = new MeetingAssistantAnalysisMessage();
meetingAssistantAnalysisMessage.setDiaguesId(taskEntity.getDiaguesId());
meetingAssistantAnalysisMessage.setTranslations(data.getTranslation());
meetingAssistantAnalysisProducerService.analysisTask(meetingAssistantAnalysisMessage);
}
} else if (MeetingAssistantConstantEnum.FAILED.getStatus().equals(data.getGenerateStatus())) {
taskEntity.setGenerateStatus(MeetingAssistantConstantEnum.FAILED.getStatus());
bizMeetingAssistantAsrTaskService.update(taskEntity);
// 更新会议内容分析任务状态
updateAnalysisTaskToFailed(taskEntity);
} else {
//判断执行时长,若超过15分钟则判断为失败.
Date now = new Date();
long diffTwoDate = DateUtils.diffTwoDate(now, taskEntity.getCreatedTime());
if (diffTwoDate > 15 * 60 * 1000){
taskEntity.setGenerateStatus(MeetingAssistantConstantEnum.FAILED.getStatus());
taskEntity.setMessage("Time Out");
bizMeetingAssistantAsrTaskService.update(taskEntity);
// 更新会议内容分析任务状态
updateAnalysisTaskToFailed(taskEntity);
}
}
}
}
}
private void updateAnalysisTaskToFailed(BizMeetingAssistantAsrTaskEntity taskEntity) {
BizMeetingAssistantAnalysisTaskEntity bizMeetingAssistantAnalysisTaskEntity = new BizMeetingAssistantAnalysisTaskEntity();
bizMeetingAssistantAnalysisTaskEntity.setDiaguesId(taskEntity.getDiaguesId());
bizMeetingAssistantAnalysisTaskEntity.setMemberId(taskEntity.getMemberId());
bizMeetingAssistantAnalysisTaskEntity.setIsDeleted(CommonConstant.IsDeleted.N);
bizMeetingAssistantAnalysisTaskEntity.setAnalysisStatus(MeetingAssistantConstantEnum.GENERATE.getStatus());
List<BizMeetingAssistantAnalysisTaskEntity> bizMeetingAssistantAnalysisTaskEntities = bizMeetingAssistantAnalysisTaskService.findByExample(bizMeetingAssistantAnalysisTaskEntity, null);
if (CollectionUtils.isNotEmpty(bizMeetingAssistantAnalysisTaskEntities)) {
logger.info("---------- 更新会议内容分析任务为 failed 状态, diaguesId:{}----------", taskEntity.getDiaguesId());
BizMeetingAssistantAnalysisTaskEntity analysisTaskEntity = bizMeetingAssistantAnalysisTaskEntities.get(0);
analysisTaskEntity.setAnalysisStatus(MeetingAssistantConstantEnum.FAILED.getStatus());
bizMeetingAssistantAnalysisTaskService.update(analysisTaskEntity);
} else {
logger.warn("------------ 无法找到对应的内容分析任务数据,diaguesId:{} -----------", taskEntity.getDiaguesId());
}
}
}
package cn.com.poc.meeting.service;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.meeting.entity.BizMeetingAssistantAnalysisTaskEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List;
public interface BizMeetingAssistantAnalysisTaskService extends BaseService {
BizMeetingAssistantAnalysisTaskEntity get(java.lang.Long id) ;
List<BizMeetingAssistantAnalysisTaskEntity> findByExample(BizMeetingAssistantAnalysisTaskEntity example,PagingInfo pagingInfo) ;
BizMeetingAssistantAnalysisTaskEntity save(BizMeetingAssistantAnalysisTaskEntity entity) throws Exception;
BizMeetingAssistantAnalysisTaskEntity update(BizMeetingAssistantAnalysisTaskEntity entity) ;
void deletedById(java.lang.Long id) ;
}
\ No newline at end of file
package cn.com.poc.meeting.service;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.meeting.entity.BizMeetingAssistantAsrTaskEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizMeetingAssistantAsrTaskService extends BaseService {
BizMeetingAssistantAsrTaskEntity get(java.lang.Long id) throws Exception;
List<BizMeetingAssistantAsrTaskEntity> findByExample(BizMeetingAssistantAsrTaskEntity example, PagingInfo pagingInfo);
BizMeetingAssistantAsrTaskEntity save(BizMeetingAssistantAsrTaskEntity entity) throws Exception;
BizMeetingAssistantAsrTaskEntity update(BizMeetingAssistantAsrTaskEntity entity) ;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.meeting.service.impl;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.meeting.service.BizMeetingAssistantAnalysisTaskService;
import cn.com.poc.meeting.model.BizMeetingAssistantAnalysisTaskModel;
import cn.com.poc.meeting.entity.BizMeetingAssistantAnalysisTaskEntity;
import cn.com.poc.meeting.convert.BizMeetingAssistantAnalysisTaskConvert;
import cn.com.poc.meeting.repository.BizMeetingAssistantAnalysisTaskRepository;
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 BizMeetingAssistantAnalysisTaskServiceImpl extends BaseServiceImpl
implements BizMeetingAssistantAnalysisTaskService {
@Resource
private BizMeetingAssistantAnalysisTaskRepository repository;
public BizMeetingAssistantAnalysisTaskEntity get(java.lang.Long id) {
Assert.notNull(id);
BizMeetingAssistantAnalysisTaskModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizMeetingAssistantAnalysisTaskConvert.modelToEntity(model);
}
public List<BizMeetingAssistantAnalysisTaskEntity> findByExample(BizMeetingAssistantAnalysisTaskEntity example, PagingInfo pagingInfo) {
List<BizMeetingAssistantAnalysisTaskEntity> result = new ArrayList<BizMeetingAssistantAnalysisTaskEntity>();
BizMeetingAssistantAnalysisTaskModel model = new BizMeetingAssistantAnalysisTaskModel();
if (example != null) {
model = BizMeetingAssistantAnalysisTaskConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizMeetingAssistantAnalysisTaskModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizMeetingAssistantAnalysisTaskConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizMeetingAssistantAnalysisTaskEntity save(BizMeetingAssistantAnalysisTaskEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizMeetingAssistantAnalysisTaskModel model = BizMeetingAssistantAnalysisTaskConvert.entityToModel(entity);
BizMeetingAssistantAnalysisTaskModel saveModel = this.repository.save(model);
return BizMeetingAssistantAnalysisTaskConvert.modelToEntity(saveModel);
}
public BizMeetingAssistantAnalysisTaskEntity update(BizMeetingAssistantAnalysisTaskEntity entity) {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizMeetingAssistantAnalysisTaskModel model = this.repository.get(entity.getId());
if (entity.getDiaguesId() != null) {
model.setDiaguesId(entity.getDiaguesId());
}
if (entity.getAnalysisStatus() != null) {
model.setAnalysisStatus(entity.getAnalysisStatus());
}
if (entity.getThemeContent() != null) {
model.setThemeContent(entity.getThemeContent());
}
if (entity.getThemeGenerateStatus() != null) {
model.setThemeGenerateStatus(entity.getThemeGenerateStatus());
}
if (entity.getKeyWordContent() != null) {
model.setKeyWordContent(entity.getKeyWordContent());
}
if (entity.getKeyWordGenerateStatus() != null) {
model.setKeyWordGenerateStatus(entity.getKeyWordGenerateStatus());
}
if (entity.getMeetingSummaryContent() != null) {
model.setMeetingSummaryContent(entity.getMeetingSummaryContent());
}
if (entity.getMeetingSummaryGenerateStatus() != null) {
model.setMeetingSummaryGenerateStatus(entity.getMeetingSummaryGenerateStatus());
}
if (entity.getFeaturedQuestions() != null) {
model.setFeaturedQuestions(entity.getFeaturedQuestions());
}
if (entity.getFeaturedQuestionsGenerateStatus() != null) {
model.setFeaturedQuestionsGenerateStatus(entity.getFeaturedQuestionsGenerateStatus());
}
if (entity.getMemberId() != null) {
model.setMemberId(entity.getMemberId());
}
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());
}
BizMeetingAssistantAnalysisTaskModel saveModel = this.repository.save(model);
return BizMeetingAssistantAnalysisTaskConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) {
Assert.notNull(id);
BizMeetingAssistantAnalysisTaskModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
}
\ No newline at end of file
package cn.com.poc.meeting.service.impl;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.meeting.service.BizMeetingAssistantAsrTaskService;
import cn.com.poc.meeting.model.BizMeetingAssistantAsrTaskModel;
import cn.com.poc.meeting.entity.BizMeetingAssistantAsrTaskEntity;
import cn.com.poc.meeting.convert.BizMeetingAssistantAsrTaskConvert;
import cn.com.poc.meeting.repository.BizMeetingAssistantAsrTaskRepository;
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 BizMeetingAssistantAsrTaskServiceImpl extends BaseServiceImpl
implements BizMeetingAssistantAsrTaskService {
@Resource
private BizMeetingAssistantAsrTaskRepository repository;
public BizMeetingAssistantAsrTaskEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizMeetingAssistantAsrTaskModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizMeetingAssistantAsrTaskConvert.modelToEntity(model);
}
public List<BizMeetingAssistantAsrTaskEntity> findByExample(BizMeetingAssistantAsrTaskEntity example, PagingInfo pagingInfo) {
List<BizMeetingAssistantAsrTaskEntity> result = new ArrayList<BizMeetingAssistantAsrTaskEntity>();
BizMeetingAssistantAsrTaskModel model = new BizMeetingAssistantAsrTaskModel();
if (example != null) {
model = BizMeetingAssistantAsrTaskConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizMeetingAssistantAsrTaskModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizMeetingAssistantAsrTaskConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizMeetingAssistantAsrTaskEntity save(BizMeetingAssistantAsrTaskEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizMeetingAssistantAsrTaskModel model = BizMeetingAssistantAsrTaskConvert.entityToModel(entity);
BizMeetingAssistantAsrTaskModel saveModel = this.repository.save(model);
return BizMeetingAssistantAsrTaskConvert.modelToEntity(saveModel);
}
public BizMeetingAssistantAsrTaskEntity update(BizMeetingAssistantAsrTaskEntity entity) {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizMeetingAssistantAsrTaskModel model = this.repository.get(entity.getId());
if (entity.getMemberId() != null) {
model.setMemberId(entity.getMemberId());
}
if (entity.getDiaguesId() != null) {
model.setDiaguesId(entity.getDiaguesId());
}
if (entity.getSessionId() != null) {
model.setSessionId(entity.getSessionId());
}
if (entity.getGenerateStatus() != null) {
model.setGenerateStatus(entity.getGenerateStatus());
}
if (entity.getMessage() != null) {
model.setMessage(entity.getMessage());
}
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());
}
BizMeetingAssistantAsrTaskModel saveModel = this.repository.save(model);
return BizMeetingAssistantAsrTaskConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizMeetingAssistantAsrTaskModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
}
\ No newline at end of file
package cn.com.poc.message.entity.meeting;
public class AnalysisTaskUpdateMessage {
/**
* id
*
*/
private java.lang.Long id;
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
}
/**
* 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;
}
/**
* diagues_id
* 会话id
*/
private java.lang.String diaguesId;
public java.lang.String getDiaguesId() {
return this.diaguesId;
}
public void setDiaguesId(java.lang.String diaguesId) {
this.diaguesId = diaguesId;
}
/**
* analysis_status
* 内容分析总状态 generate-生成中 completed-完成 failed-失败
*/
private java.lang.String analysisStatus;
public java.lang.String getAnalysisStatus() {
return this.analysisStatus;
}
public void setAnalysisStatus(java.lang.String analysisStatus) {
this.analysisStatus = analysisStatus;
}
/**
* theme_content
* 会议主题
*/
private java.lang.String themeContent;
public java.lang.String getThemeContent() {
return this.themeContent;
}
public void setThemeContent(java.lang.String themeContent) {
this.themeContent = themeContent;
}
/**
* theme_generate_status
* 会议主题生成状态
*/
private java.lang.String themeGenerateStatus;
public java.lang.String getThemeGenerateStatus() {
return this.themeGenerateStatus;
}
public void setThemeGenerateStatus(java.lang.String themeGenerateStatus) {
this.themeGenerateStatus = themeGenerateStatus;
}
/**
* key_word_content
* 关键词
*/
private java.lang.String keyWordContent;
public java.lang.String getKeyWordContent() {
return this.keyWordContent;
}
public void setKeyWordContent(java.lang.String keyWordContent) {
this.keyWordContent = keyWordContent;
}
/**
* key_word_generate_status
* 关键词生成状态
*/
private java.lang.String keyWordGenerateStatus;
public java.lang.String getKeyWordGenerateStatus() {
return this.keyWordGenerateStatus;
}
public void setKeyWordGenerateStatus(java.lang.String keyWordGenerateStatus) {
this.keyWordGenerateStatus = keyWordGenerateStatus;
}
/**
* meeting_summary_content
* 会议摘要
*/
private java.lang.String meetingSummaryContent;
public java.lang.String getMeetingSummaryContent() {
return this.meetingSummaryContent;
}
public void setMeetingSummaryContent(java.lang.String meetingSummaryContent) {
this.meetingSummaryContent = meetingSummaryContent;
}
/**
* meeting_summary_generate_status
* 会议摘要生成状态
*/
private java.lang.String meetingSummaryGenerateStatus;
public java.lang.String getMeetingSummaryGenerateStatus() {
return this.meetingSummaryGenerateStatus;
}
public void setMeetingSummaryGenerateStatus(java.lang.String meetingSummaryGenerateStatus) {
this.meetingSummaryGenerateStatus = meetingSummaryGenerateStatus;
}
/**
* featured_questions_generate_status
* 推荐问生成状态
*/
private java.lang.String featuredQuestionsGenerateStatus;
public java.lang.String getFeaturedQuestionsGenerateStatus() {
return this.featuredQuestionsGenerateStatus;
}
public void setFeaturedQuestionsGenerateStatus(java.lang.String featuredQuestionsGenerateStatus) {
this.featuredQuestionsGenerateStatus = featuredQuestionsGenerateStatus;
}
/**
* featured_questions
* 推荐问
*/
private java.lang.String featuredQuestions;
public java.lang.String getFeaturedQuestions() {
return this.featuredQuestions;
}
public void setFeaturedQuestions(java.lang.String featuredQuestions) {
this.featuredQuestions = featuredQuestions;
}
/**
* is_deleted
* 是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
}
@Override
public String toString() {
return "AnalysisTaskUpdateMessage{" +
"id=" + id +
", memberId=" + memberId +
", diaguesId='" + diaguesId + '\'' +
", analysisStatus='" + analysisStatus + '\'' +
", themeContent='" + themeContent + '\'' +
", themeGenerateStatus='" + themeGenerateStatus + '\'' +
", keyWordContent='" + keyWordContent + '\'' +
", keyWordGenerateStatus='" + keyWordGenerateStatus + '\'' +
", meetingSummaryContent='" + meetingSummaryContent + '\'' +
", meetingSummaryGenerateStatus='" + meetingSummaryGenerateStatus + '\'' +
", featuredQuestionsGenerateStatus='" + featuredQuestionsGenerateStatus + '\'' +
", featuredQuestions='" + featuredQuestions + '\'' +
", isDeleted='" + isDeleted + '\'' +
'}';
}
}
package cn.com.poc.message.entity.meeting;
import cn.com.poc.thirdparty.resource.simultanous_interpretation.entity.Translation;
import java.util.List;
public class MeetingAssistantAnalysisMessage {
/**
* 会话id
*/
private String diaguesId;
/**
* 会议识别内容
*/
private List<Translation> translations;
public String getDiaguesId() {
return diaguesId;
}
public void setDiaguesId(String diaguesId) {
this.diaguesId = diaguesId;
}
public List<Translation> getTranslations() {
return translations;
}
public void setTranslations(List<Translation> translations) {
this.translations = translations;
}
}
package cn.com.poc.message.entity.meeting;
public class MeetingAssistantGenerateAnalysisContentMessage {
private String diaguesId;
private String content;
public String getDiaguesId() {
return diaguesId;
}
public void setDiaguesId(String diaguesId) {
this.diaguesId = diaguesId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.meeting.AnalysisTaskUpdateMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantAnalysisMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantGenerateAnalysisContentMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface MeetingAssistantAnalysisConsumerService extends BaseService {
/**
* 执行会议内容分析任务
*/
void analysisTask(MeetingAssistantAnalysisMessage meetingAssistantAnalysisMessage) throws Exception;
/**
* 更新会议内容分析任务状态
*/
void analysisTaskUpdate(AnalysisTaskUpdateMessage message);
/**
* 生成主题
*/
void generateTheme(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 获取关键词
*/
void keyWord(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 生成摘要
*/
void generateSummry(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 生成推荐问
*/
void generateFeaturedQuestion(MeetingAssistantGenerateAnalysisContentMessage message);
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.meeting.AnalysisTaskUpdateMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantAnalysisMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantGenerateAnalysisContentMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface MeetingAssistantAnalysisProducerService extends BaseService {
/**
* 会议内容分析
*
*/
MeetingAssistantAnalysisMessage analysisTask(MeetingAssistantAnalysisMessage meetingAssistantAnalysisMessage);
/**
* 更新会议内容分析任务状态
*/
AnalysisTaskUpdateMessage analysisTaskUpdate(AnalysisTaskUpdateMessage message);
/**
* 生成主题
*/
MeetingAssistantGenerateAnalysisContentMessage generateTheme(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 获取关键词
*/
MeetingAssistantGenerateAnalysisContentMessage keyWord(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 生成摘要
*/
MeetingAssistantGenerateAnalysisContentMessage generateSummry(MeetingAssistantGenerateAnalysisContentMessage message);
/**
* 生成推荐问
*/
MeetingAssistantGenerateAnalysisContentMessage generateFeaturedQuestion(MeetingAssistantGenerateAnalysisContentMessage message);
}
package cn.com.poc.message.service.impl;
import cn.com.poc.message.entity.meeting.AnalysisTaskUpdateMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantAnalysisMessage;
import cn.com.poc.message.entity.meeting.MeetingAssistantGenerateAnalysisContentMessage;
import cn.com.poc.message.service.MeetingAssistantAnalysisProducerService;
import cn.com.poc.message.topic.MeetingAssistantTopic;
import cn.com.yict.framemax.tumbleweed.client.annotation.Producer;
import org.springframework.stereotype.Service;
@Service
public class MeetingAssistantAnalysisProducerServiceImpl implements MeetingAssistantAnalysisProducerService {
@Override
@Producer(topic = MeetingAssistantTopic.CONTENT_ANALYSIS)
public MeetingAssistantAnalysisMessage analysisTask(MeetingAssistantAnalysisMessage meetingAssistantAnalysisMessage) {
return meetingAssistantAnalysisMessage;
}
@Override
@Producer(topic = MeetingAssistantTopic.UPDATE_ANALYSIS)
public AnalysisTaskUpdateMessage analysisTaskUpdate(AnalysisTaskUpdateMessage message) {
return message;
}
@Override
@Producer(topic = MeetingAssistantTopic.GENERATE_FEATURED_QUESTION)
public MeetingAssistantGenerateAnalysisContentMessage generateFeaturedQuestion(MeetingAssistantGenerateAnalysisContentMessage message) {
return message;
}
@Override
@Producer(topic = MeetingAssistantTopic.GENERATE_SUMMARY)
public MeetingAssistantGenerateAnalysisContentMessage generateSummry(MeetingAssistantGenerateAnalysisContentMessage message) {
return message;
}
@Override
@Producer(topic = MeetingAssistantTopic.GENERATE_KEYWORD)
public MeetingAssistantGenerateAnalysisContentMessage keyWord(MeetingAssistantGenerateAnalysisContentMessage message) {
return message;
}
@Override
@Producer(topic = MeetingAssistantTopic.GENERATE_THEME)
public MeetingAssistantGenerateAnalysisContentMessage generateTheme(MeetingAssistantGenerateAnalysisContentMessage message) {
return message;
}
}
...@@ -53,7 +53,6 @@ public class BaiduTextDiffApi implements BaiduBaseApi { ...@@ -53,7 +53,6 @@ public class BaiduTextDiffApi implements BaiduBaseApi {
.addFormDataPart("baseFileURL", response.getBaseFileURL()) .addFormDataPart("baseFileURL", response.getBaseFileURL())
.addFormDataPart("compareFileURL", response.getCompareFileURL()); .addFormDataPart("compareFileURL", response.getCompareFileURL());
} else { } else {
;
RequestBody baseFile = RequestBody.create(MediaType.parse(Objects.requireNonNull(Files.probeContentType(response.getBaseFile().toPath()))), response.getBaseFile()); RequestBody baseFile = RequestBody.create(MediaType.parse(Objects.requireNonNull(Files.probeContentType(response.getBaseFile().toPath()))), response.getBaseFile());
RequestBody compareFile = RequestBody.create(MediaType.parse(Objects.requireNonNull(Files.probeContentType(response.getBaseFile().toPath()))), response.getCompareFile()); RequestBody compareFile = RequestBody.create(MediaType.parse(Objects.requireNonNull(Files.probeContentType(response.getBaseFile().toPath()))), response.getCompareFile());
builder = builder.addFormDataPart("baseFile", response.getBaseFile().getName(), baseFile) builder = builder.addFormDataPart("baseFile", response.getBaseFile().getName(), baseFile)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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