|
|
@ -116,7 +116,7 @@ public class TripleConversionPipelineImpl implements TripleConversionPipeline {
|
|
|
|
log.info("makeOutDomainMetadata:format:{}", format);
|
|
|
|
log.info("makeOutDomainMetadata:format:{}", format);
|
|
|
|
String call = aiCallService.call(format);
|
|
|
|
String call = aiCallService.call(format);
|
|
|
|
log.info("makeOutDomainMetadata:响应结果:{}", call);
|
|
|
|
log.info("makeOutDomainMetadata:响应结果:{}", call);
|
|
|
|
return parseDomainMetadata(call);
|
|
|
|
return parseDomainMetadataObj(call);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -186,6 +186,59 @@ public class TripleConversionPipelineImpl implements TripleConversionPipeline {
|
|
|
|
return domainMetadataDTOS;
|
|
|
|
return domainMetadataDTOS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<DomainMetadataDTO> parseDomainMetadataObj(String jsonStr) {
|
|
|
|
|
|
|
|
JSONObject entries = JSONUtil.parseObj(jsonStr);
|
|
|
|
|
|
|
|
List<DomainMetadataDTO> domainMetadataDTOS = new ArrayList<>();
|
|
|
|
|
|
|
|
for (Map.Entry<String, Object> entry : entries) {
|
|
|
|
|
|
|
|
String intent = entry.getKey();// 意图
|
|
|
|
|
|
|
|
Object value = entry.getValue();
|
|
|
|
|
|
|
|
JSONArray jsonArray = JSONUtil.parseArray(value);
|
|
|
|
|
|
|
|
for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
|
|
|
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
|
|
|
|
|
|
DomainMetadataDTO domainMetadataDTO = new DomainMetadataDTO();
|
|
|
|
|
|
|
|
JSONObject source = jsonObject.getJSONObject("source");
|
|
|
|
|
|
|
|
JSONObject relation = jsonObject.getJSONObject("relation");
|
|
|
|
|
|
|
|
JSONObject target = jsonObject.getJSONObject("target");
|
|
|
|
|
|
|
|
domainMetadataDTO.setIntentDigest(intent);
|
|
|
|
|
|
|
|
if (null != source){
|
|
|
|
|
|
|
|
String type = source.getStr("type");
|
|
|
|
|
|
|
|
JSONArray attributes = source.getJSONArray("attributes");
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(type)){
|
|
|
|
|
|
|
|
domainMetadataDTO.setSourceType(type);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(attributes)){
|
|
|
|
|
|
|
|
List<ERAttributeDTO> erAttributeDTOS = attributes.stream().map(at -> new ERAttributeDTO(at.toString())).collect(Collectors.toList());
|
|
|
|
|
|
|
|
domainMetadataDTO.setSourceAttributes(erAttributeDTOS);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (null != relation){
|
|
|
|
|
|
|
|
String type = relation.getStr("type");
|
|
|
|
|
|
|
|
JSONArray attributes = relation.getJSONArray("attributes");
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(type)){
|
|
|
|
|
|
|
|
domainMetadataDTO.setRelation(type);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(attributes)){
|
|
|
|
|
|
|
|
List<ERAttributeDTO> erAttributeDTOS = attributes.stream().map(at -> new ERAttributeDTO(at.toString())).collect(Collectors.toList());
|
|
|
|
|
|
|
|
domainMetadataDTO.setRelationAttributes(erAttributeDTOS);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (null != target){
|
|
|
|
|
|
|
|
String type = target.getStr("type");
|
|
|
|
|
|
|
|
JSONArray attributes = target.getJSONArray("attributes");
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(type)){
|
|
|
|
|
|
|
|
domainMetadataDTO.setTargetType(type);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(attributes)){
|
|
|
|
|
|
|
|
List<ERAttributeDTO> erAttributeDTOS = attributes.stream().map(at -> new ERAttributeDTO(at.toString())).collect(Collectors.toList());
|
|
|
|
|
|
|
|
domainMetadataDTO.setTargetAttributes(erAttributeDTOS);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
domainMetadataDTOS.add(domainMetadataDTO);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return domainMetadataDTOS;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public EREDTO doEre(TruncateDTO truncateDTO, List<IntentDTO> intents) {
|
|
|
|
public EREDTO doEre(TruncateDTO truncateDTO, List<IntentDTO> intents) {
|
|
|
|
if (StrUtil.equals(truncateDTO.getLayoutType(),String.valueOf(LayoutTypeEnum.TEXT.getCode()))){
|
|
|
|
if (StrUtil.equals(truncateDTO.getLayoutType(),String.valueOf(LayoutTypeEnum.TEXT.getCode()))){
|
|
|
@ -197,7 +250,7 @@ public class TripleConversionPipelineImpl implements TripleConversionPipeline {
|
|
|
|
if (CollUtil.isEmpty(intentIds)) {
|
|
|
|
if (CollUtil.isEmpty(intentIds)) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<DomainMetadataDTO> domainMetadataDTOS = domainMetadataService.listByIntentionIds(intentIds);
|
|
|
|
List<DomainMetadataDTO> domainMetadataDTOS = domainMetadataService.listByIntentionIds(intentIds,CollUtil.getFirst(intents).getDomainCategoryId());
|
|
|
|
log.info("doEre:领域元数据列表个数:{}", domainMetadataDTOS.size());
|
|
|
|
log.info("doEre:领域元数据列表个数:{}", domainMetadataDTOS.size());
|
|
|
|
domainMetadataDTOS = domainMetadataDTOS.stream()
|
|
|
|
domainMetadataDTOS = domainMetadataDTOS.stream()
|
|
|
|
.filter(domainMetadataDTO -> StrUtil.equals(domainMetadataDTO.getGenerationType(), "0"))// 过滤出手动确认的数据
|
|
|
|
.filter(domainMetadataDTO -> StrUtil.equals(domainMetadataDTO.getGenerationType(), "0"))// 过滤出手动确认的数据
|
|
|
|