package com.iailab.module.model.mdk.sample;
|
|
import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException;
|
import com.iailab.module.model.mdk.sample.dto.ColumnItemPort;
|
import com.iailab.module.model.mdk.sample.dto.SampleData;
|
import com.iailab.module.model.mdk.sample.dto.SampleInfo;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.CollectionUtils;
|
|
import java.text.MessageFormat;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 样本构造
|
*
|
* @author PanZhibao
|
* @Description
|
* @createTime 2024年09月03日
|
*/
|
@Slf4j
|
@Component
|
public class SampleConstructor {
|
|
@Autowired
|
private SampleFactory sampleFactory;
|
|
public List<SampleData> constructSample(String typeA, String modelId, Date runTime,String itemName, Map<Integer, Integer> dynamicDataLength) throws ModelInvokeException {
|
try {
|
SampleInfoConstructor sampleInfoConstructor = sampleFactory.createSampleInfo(typeA, modelId);
|
SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime);
|
if (!CollectionUtils.isEmpty(dynamicDataLength) && sampleInfo.getColumnInfo() != null) {
|
for(ColumnItemPort columnInfo : sampleInfo.getColumnInfo()) {
|
if (!dynamicDataLength.containsKey(columnInfo.getPortOrder())) {
|
continue;
|
}
|
columnInfo.setDataLength(dynamicDataLength.get(columnInfo.getPortOrder()));
|
columnInfo.getColumnItemList().forEach(columnItem -> {
|
columnItem.setDataLength(columnInfo.getDataLength());
|
});
|
}
|
}
|
SampleDataConstructor sampleDataConstructor = sampleFactory.createSampleData(typeA);
|
return sampleDataConstructor.prepareSampleData(sampleInfo);
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("获取模型的算法参数异常",e);
|
throw new ModelInvokeException(MessageFormat.format("{0},Name:{1}",
|
ModelInvokeException.errorGetModelArithParam, itemName));
|
}
|
|
|
}
|
}
|