diff --git a/radar-admin/src/main/java/com/pgmmers/AdminApplication.java b/radar-admin/src/main/java/com/pgmmers/AdminApplication.java index de91f3e..15ac835 100644 --- a/radar-admin/src/main/java/com/pgmmers/AdminApplication.java +++ b/radar-admin/src/main/java/com/pgmmers/AdminApplication.java @@ -2,9 +2,12 @@ package com.pgmmers; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; +import org.springframework.boot.autoconfigure.elasticsearch.rest.RestClientAutoConfiguration; +import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; import tk.mybatis.spring.annotation.MapperScan; -@SpringBootApplication +@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, RestClientAutoConfiguration.class}) @MapperScan("com.pgmmers.radar.mapper") public class AdminApplication { diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/ModelConfDal.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/ModelConfDal.java new file mode 100644 index 0000000..2623bbc --- /dev/null +++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/ModelConfDal.java @@ -0,0 +1,9 @@ +package com.pgmmers.radar.dal.model; + +import com.pgmmers.radar.vo.model.ModelConfVO; + +public interface ModelConfDal { + ModelConfVO get(Long id); + + ModelConfVO getByModelId(Long modelId); +} diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/MoldDal.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/MoldDal.java deleted file mode 100644 index 76ee223..0000000 --- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/MoldDal.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pgmmers.radar.dal.model; - -import com.pgmmers.radar.vo.model.MoldVO; - -public interface MoldDal { - MoldVO get(Long id); - MoldVO getByModelId(Long modelId); -} diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java new file mode 100644 index 0000000..af9bf6c --- /dev/null +++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java @@ -0,0 +1,62 @@ +package com.pgmmers.radar.dal.model.impl; + +import com.pgmmers.radar.dal.model.ModelConfDal; +import com.pgmmers.radar.mapper.ModelConfMapper; +import com.pgmmers.radar.mapper.ModelConfParamMapper; +import com.pgmmers.radar.model.ModelConfPO; +import com.pgmmers.radar.model.ModelConfParamPO; +import com.pgmmers.radar.vo.model.ModelConfParamVO; +import com.pgmmers.radar.vo.model.ModelConfVO; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class ModelConfDalImpl implements ModelConfDal { + @Resource + private ModelConfMapper modelConfMapper; + @Resource + private ModelConfParamMapper modelConfParamMapper; + + @Override + public ModelConfVO get(Long id) { + ModelConfPO modelConfPO = modelConfMapper.selectByPrimaryKey(id); + return convert(modelConfPO); + } + + @Override + public ModelConfVO getByModelId(Long modelId) { + Example example = new Example(ModelConfPO.class); + example.createCriteria().andEqualTo("modelId", modelId); + ModelConfPO modelConfPO = modelConfMapper.selectOneByExample(example); + return convert(modelConfPO); + } + + private ModelConfVO convert(ModelConfPO modelConfPO) { + ModelConfVO vo = null; + if (modelConfPO != null) { + vo = new ModelConfVO(); + BeanUtils.copyProperties(modelConfPO, vo); + fitParams(vo); + } + return vo; + } + + private void fitParams(ModelConfVO mold) { + if (mold != null) { + Example example = new Example(ModelConfParamPO.class); + example.createCriteria().andEqualTo("moldId", mold.getId()); + List moldParamList = modelConfParamMapper.selectByExample(example); + List list = moldParamList.stream().map(modelConfParamPO -> { + ModelConfParamVO modelConfParamVO = new ModelConfParamVO(); + BeanUtils.copyProperties(modelConfParamPO, modelConfParamVO); + return modelConfParamVO; + }).collect(Collectors.toList()); + mold.setParams(list); + } + } +} diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/MoldDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/MoldDalImpl.java deleted file mode 100644 index f039bd8..0000000 --- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/MoldDalImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.pgmmers.radar.dal.model.impl; - -import com.pgmmers.radar.dal.model.MoldDal; -import com.pgmmers.radar.mapper.MoldMapper; -import com.pgmmers.radar.mapper.MoldParamMapper; -import com.pgmmers.radar.model.MoldPO; -import com.pgmmers.radar.model.MoldParamPO; -import com.pgmmers.radar.vo.model.MoldParamVO; -import com.pgmmers.radar.vo.model.MoldVO; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import tk.mybatis.mapper.entity.Example; - -import javax.annotation.Resource; -import java.util.List; -import java.util.stream.Collectors; - -@Service -public class MoldDalImpl implements MoldDal { - @Resource - private MoldMapper moldMapper; - @Resource - private MoldParamMapper moldParamMapper; - - @Override - public MoldVO get(Long id) { - MoldPO moldPO = moldMapper.selectByPrimaryKey(id); - return convert(moldPO); - } - - @Override - public MoldVO getByModelId(Long modelId) { - Example example = new Example(MoldPO.class); - example.createCriteria().andEqualTo("modelId", modelId); - MoldPO moldPO = moldMapper.selectOneByExample(example); - return convert(moldPO); - } - - private MoldVO convert(MoldPO moldPO) { - MoldVO vo = null; - if (moldPO != null) { - vo = new MoldVO(); - BeanUtils.copyProperties(moldPO, vo); - fitParams(vo); - } - return vo; - } - - private void fitParams(MoldVO mold) { - if (mold != null) { - Example example = new Example(MoldParamPO.class); - example.createCriteria().andEqualTo("moldId", mold.getId()); - List moldParamList = moldParamMapper.selectByExample(example); - List list = moldParamList.stream().map(moldParamPO -> { - MoldParamVO moldParamVO = new MoldParamVO(); - BeanUtils.copyProperties(moldParamPO, moldParamVO); - return moldParamVO; - }).collect(Collectors.toList()); - mold.setParams(list); - } - } -} diff --git a/radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldParamVO.java b/radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfParamVO.java similarity index 94% rename from radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldParamVO.java rename to radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfParamVO.java index cfb6740..c0c2d0d 100644 --- a/radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldParamVO.java +++ b/radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfParamVO.java @@ -11,7 +11,7 @@ import java.io.Serializable; * @author guor * @date 2019/11/28 */ -public class MoldParamVO implements Serializable { +public class ModelConfParamVO implements Serializable { private Long id; /** * 参数的key diff --git a/radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldVO.java b/radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfVO.java similarity index 90% rename from radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldVO.java rename to radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfVO.java index d0994e9..2a7631b 100644 --- a/radar-dal/src/main/java/com.pgmmers.radar/vo/model/MoldVO.java +++ b/radar-dal/src/main/java/com.pgmmers.radar/vo/model/ModelConfVO.java @@ -12,7 +12,7 @@ import java.util.List; * @author guor * @date 2019/11/28 */ -public class MoldVO implements Serializable { +public class ModelConfVO implements Serializable { /** * 自增ID,主键 */ @@ -32,7 +32,7 @@ public class MoldVO implements Serializable { /** * 参数列表 */ - private List params; + private List params; /** * 模型输出操作名称,predict_Y = tf.nn.softmax(softmax_before, name='predict') */ @@ -60,11 +60,11 @@ public class MoldVO implements Serializable { this.name = name; } - public List getParams() { + public List getParams() { return params; } - public void setParams(List params) { + public void setParams(List params) { this.params = params; } diff --git a/radar-dao/pom.xml b/radar-dao/pom.xml index f04d0da..1d1db61 100644 --- a/radar-dao/pom.xml +++ b/radar-dao/pom.xml @@ -44,9 +44,32 @@ org.mybatis.generator mybatis-generator-maven-plugin + 1.3.6 + + + ${basedir}/src/main/resources/generator/generatorConfig.xml + + true + true + + + + mysql + mysql-connector-java + 5.1.47 + + + tk.mybatis + mapper + 4.0.0 + + + com.pgmmers + radar-commons + ${project.version} + + - - diff --git a/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfMapper.java b/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfMapper.java new file mode 100644 index 0000000..2bcc67e --- /dev/null +++ b/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfMapper.java @@ -0,0 +1,7 @@ +package com.pgmmers.radar.mapper; + +import com.pgmmers.radar.model.ModelConfPO; +import tk.mybatis.mapper.common.Mapper; + +public interface ModelConfMapper extends Mapper { +} diff --git a/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfParamMapper.java b/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfParamMapper.java new file mode 100644 index 0000000..1a33170 --- /dev/null +++ b/radar-dao/src/main/java/com/pgmmers/radar/mapper/ModelConfParamMapper.java @@ -0,0 +1,7 @@ +package com.pgmmers.radar.mapper; + +import com.pgmmers.radar.model.ModelConfParamPO; +import tk.mybatis.mapper.common.Mapper; + +public interface ModelConfParamMapper extends Mapper { +} diff --git a/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldMapper.java b/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldMapper.java deleted file mode 100644 index 22930bd..0000000 --- a/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.pgmmers.radar.mapper; - -import com.pgmmers.radar.model.MoldPO; -import tk.mybatis.mapper.common.Mapper; - -public interface MoldMapper extends Mapper { -} diff --git a/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldParamMapper.java b/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldParamMapper.java deleted file mode 100644 index 583d663..0000000 --- a/radar-dao/src/main/java/com/pgmmers/radar/mapper/MoldParamMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.pgmmers.radar.mapper; - -import com.pgmmers.radar.model.MoldParamPO; -import tk.mybatis.mapper.common.Mapper; - -public interface MoldParamMapper extends Mapper { -} diff --git a/radar-dao/src/main/java/com/pgmmers/radar/model/MoldPO.java b/radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfPO.java similarity index 96% rename from radar-dao/src/main/java/com/pgmmers/radar/model/MoldPO.java rename to radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfPO.java index 4a6800d..8773c7c 100644 --- a/radar-dao/src/main/java/com/pgmmers/radar/model/MoldPO.java +++ b/radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfPO.java @@ -3,8 +3,8 @@ package com.pgmmers.radar.model; import javax.persistence.Table; import java.util.Date; -@Table(name = "engine_mold") -public class MoldPO { +@Table(name = "engine_model_conf") +public class ModelConfPO { /** * 自增ID,主键 */ diff --git a/radar-dao/src/main/java/com/pgmmers/radar/model/MoldParamPO.java b/radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfParamPO.java similarity index 92% rename from radar-dao/src/main/java/com/pgmmers/radar/model/MoldParamPO.java rename to radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfParamPO.java index 22f6701..caa2561 100644 --- a/radar-dao/src/main/java/com/pgmmers/radar/model/MoldParamPO.java +++ b/radar-dao/src/main/java/com/pgmmers/radar/model/ModelConfParamPO.java @@ -2,8 +2,8 @@ package com.pgmmers.radar.model; import javax.persistence.Table; -@Table(name = "engine_mold_param") -public class MoldParamPO { +@Table(name = "engine_model_conf_param") +public class ModelConfParamPO { private Long id; private Long moldId; /** diff --git a/radar-engine/src/main/java/com/pgmmers/radar/EngineApplication.java b/radar-engine/src/main/java/com/pgmmers/radar/EngineApplication.java index ee49da3..ffff561 100644 --- a/radar-engine/src/main/java/com/pgmmers/radar/EngineApplication.java +++ b/radar-engine/src/main/java/com/pgmmers/radar/EngineApplication.java @@ -2,9 +2,12 @@ package com.pgmmers.radar; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; +import org.springframework.boot.autoconfigure.elasticsearch.rest.RestClientAutoConfiguration; +import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; import tk.mybatis.spring.annotation.MapperScan; -@SpringBootApplication +@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, RestClientAutoConfiguration.class}) @MapperScan("com.pgmmers.radar.mapper") public class EngineApplication { diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/EstimatorContainer.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/EstimatorContainer.java index e329341..7dade9f 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/EstimatorContainer.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/EstimatorContainer.java @@ -1,8 +1,8 @@ package com.pgmmers.radar.service.impl.dnn; import com.pgmmers.radar.service.dnn.Estimator; -import com.pgmmers.radar.service.model.MoldService; -import com.pgmmers.radar.vo.model.MoldVO; +import com.pgmmers.radar.service.model.ModelConfService; +import com.pgmmers.radar.vo.model.ModelConfVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -10,13 +10,13 @@ import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; -//@Component +@Component public class EstimatorContainer { private Map estimatorMap = new HashMap<>(); @Resource - private MoldService moldService; + private ModelConfService modelConfService; @Autowired public void set(Estimator[] estimators) { @@ -30,7 +30,7 @@ public class EstimatorContainer { } public Estimator getByModelId(Long modelId) { - MoldVO mold = moldService.getByModelId(modelId); + ModelConfVO mold = modelConfService.getByModelId(modelId); if (mold == null) { return null; } diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/TensorDnnEstimator.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/TensorDnnEstimator.java index d9bb5b9..25444e9 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/TensorDnnEstimator.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/dnn/TensorDnnEstimator.java @@ -1,9 +1,9 @@ package com.pgmmers.radar.service.impl.dnn; import com.pgmmers.radar.service.dnn.Estimator; -import com.pgmmers.radar.service.model.MoldService; -import com.pgmmers.radar.vo.model.MoldParamVO; -import com.pgmmers.radar.vo.model.MoldVO; +import com.pgmmers.radar.service.model.ModelConfService; +import com.pgmmers.radar.vo.model.ModelConfParamVO; +import com.pgmmers.radar.vo.model.ModelConfVO; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,16 +18,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -//@Component +@Component public class TensorDnnEstimator implements Estimator { private static final Logger LOGGER = LoggerFactory.getLogger(TensorDnnEstimator.class); @Resource - private MoldService moldService; + private ModelConfService modelConfService; private Map modelBundleMap = new HashMap<>(); @Override - public double predict(Long modelId, Map> data) { - MoldVO mold = moldService.getByModelId(modelId); + public float predict(Long modelId, Map> data) { + ModelConfVO mold = modelConfService.getByModelId(modelId); if (mold == null) { LOGGER.debug("没有找到模型配置,ModelId:{}", modelId); return 0; @@ -39,44 +39,42 @@ public class TensorDnnEstimator implements Estimator { } Session tfSession = modelBundle.session(); try { - List params = mold.getParams(); + List params = mold.getParams(); Session.Runner runner = tfSession.runner(); - for (MoldParamVO moldParam : params) { + for (ModelConfParamVO moldParam : params) { runner.feed(moldParam.getFeed(), convert2Tensor(moldParam, data)); } Tensor output = runner.fetch(mold.getOperation()).run().get(0); - double[] results = new double[1]; + float[][] results = new float[1][1]; output.copyTo(results); - return results[0]; + return results[0][0]; } catch (Exception e) { LOGGER.error("模型调用失败,ModelId:" + modelId, e); - } finally { - tfSession.close(); } return 0; } - private Tensor convert2Tensor(MoldParamVO moldParam, Map> data) { + private Tensor convert2Tensor(ModelConfParamVO moldParam, Map> data) { String expressions = moldParam.getExpressions(); if (StringUtils.isEmpty(expressions)) { - return Tensor.create(new double[1][1]); + return Tensor.create(new float[1][1]); } String[] expList = expressions.split(","); - double[][] vec = new double[expList.length][1]; + float[][] vec = new float[1][expList.length]; int a = 0; for (String s : expList) { - double xn = 0; + float xn = 0; String[] ss = s.split("\\.");//fields.deviceId,abstractions.log_uid_ip_1_day_qty Map stringMap = data.get(ss[0]); if (stringMap != null) { - xn = (Double) stringMap.get(ss[1]); + xn = Float.parseFloat(String.valueOf(stringMap.get(ss[1]))); } - vec[a++][0] = xn; + vec[0][a++] = xn; } return Tensor.create(vec); } - private synchronized SavedModelBundle loadAndCacheModel(MoldVO mold) { + private synchronized SavedModelBundle loadAndCacheModel(ModelConfVO mold) { SavedModelBundle modelBundle = modelBundleMap.get(mold.getId()); if (modelBundle == null) { File file = new File(mold.getPath()); @@ -97,4 +95,23 @@ public class TensorDnnEstimator implements Estimator { public String getType() { return Estimator.TYPE_TENSOR_DNN; } + + public static void main(String[] args) { + SavedModelBundle modelBundle = SavedModelBundle.load("d:/radar01", "serve"); + Session tfSession = modelBundle.session(); + try { + Session.Runner runner = tfSession.runner(); + float[][] aa = new float[1][6]; + aa[0] = new float[]{20f, 1f, 1f, 1f, 10f, 2f}; + runner.feed("input_x", Tensor.create(aa)); + Tensor output = runner.fetch("output_y/BiasAdd").run().get(0); + float[][] results = new float[1][1]; + output.copyTo(results); + System.out.println(results[0][0]); + } catch (Exception e) { + e.printStackTrace(); + } finally { + tfSession.close(); + } + } } diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AntiFraudEngineImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AntiFraudEngineImpl.java index f04b094..3ee66bb 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AntiFraudEngineImpl.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AntiFraudEngineImpl.java @@ -5,9 +5,11 @@ import com.pgmmers.radar.enums.AggregateType; import com.pgmmers.radar.enums.FieldType; import com.pgmmers.radar.enums.Operator; import com.pgmmers.radar.enums.StatusType; +import com.pgmmers.radar.service.dnn.Estimator; import com.pgmmers.radar.service.engine.AggregateCommand; import com.pgmmers.radar.service.engine.AntiFraudEngine; import com.pgmmers.radar.service.engine.vo.*; +import com.pgmmers.radar.service.impl.dnn.EstimatorContainer; import com.pgmmers.radar.service.model.*; import com.pgmmers.radar.util.DateUtils; import com.pgmmers.radar.util.GroovyScriptUtil; @@ -51,6 +53,9 @@ public class AntiFraudEngineImpl implements AntiFraudEngine { @Autowired private RuleService ruleService; + @Autowired + private EstimatorContainer estimatorContainer; + @Override public AbstractionResult executeAbstraction(Long modelId, Map> data) { AbstractionResult result = new AbstractionResult(); @@ -243,9 +248,13 @@ public class AntiFraudEngineImpl implements AntiFraudEngine { @Override public AdaptationResult executeAdaptation(Long modelId, Map> data) { AdaptationResult result = new AdaptationResult(); - // TODO Auto-generated method stub + Estimator estimator = estimatorContainer.getByModelId(modelId); + if(estimator != null) { + float score = estimator.predict(modelId, data); + result.getAdaptationMap().put("score", score); + } result.setSuccess(true); - data.put("adapations", new HashMap()); + data.put("adapations", result.getAdaptationMap()); return result; } diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelConfServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelConfServiceImpl.java new file mode 100644 index 0000000..e68c5a0 --- /dev/null +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelConfServiceImpl.java @@ -0,0 +1,24 @@ +package com.pgmmers.radar.service.impl.model; + +import com.pgmmers.radar.dal.model.ModelConfDal; +import com.pgmmers.radar.service.model.ModelConfService; +import com.pgmmers.radar.vo.model.ModelConfVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class ModelConfServiceImpl implements ModelConfService { + @Resource + private ModelConfDal modelConfDal; + + @Override + public ModelConfVO get(Long id) { + return modelConfDal.get(id); + } + + @Override + public ModelConfVO getByModelId(Long modelId) { + return modelConfDal.getByModelId(modelId); + } +} diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/MoldServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/MoldServiceImpl.java deleted file mode 100644 index a3e9ef6..0000000 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/MoldServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.pgmmers.radar.service.impl.model; - -import com.pgmmers.radar.dal.model.MoldDal; -import com.pgmmers.radar.service.model.MoldService; -import com.pgmmers.radar.vo.model.MoldVO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Service -public class MoldServiceImpl implements MoldService { - @Resource - private MoldDal moldDal; - - @Override - public MoldVO get(Long id) { - return moldDal.get(id); - } - - @Override - public MoldVO getByModelId(Long modelId) { - return moldDal.getByModelId(modelId); - } -} diff --git a/radar-service/src/main/java/com/pgmmers/radar/service/dnn/Estimator.java b/radar-service/src/main/java/com/pgmmers/radar/service/dnn/Estimator.java index 45eac4e..bd533c4 100644 --- a/radar-service/src/main/java/com/pgmmers/radar/service/dnn/Estimator.java +++ b/radar-service/src/main/java/com/pgmmers/radar/service/dnn/Estimator.java @@ -27,7 +27,7 @@ public interface Estimator { */ String TYPE_TENSOR_DNN = "TENSOR_DNN"; - double predict(Long modelId, Map> data); + float predict(Long modelId, Map> data); String getType(); } diff --git a/radar-service/src/main/java/com/pgmmers/radar/service/model/ModelConfService.java b/radar-service/src/main/java/com/pgmmers/radar/service/model/ModelConfService.java new file mode 100644 index 0000000..42d3cd9 --- /dev/null +++ b/radar-service/src/main/java/com/pgmmers/radar/service/model/ModelConfService.java @@ -0,0 +1,9 @@ +package com.pgmmers.radar.service.model; + +import com.pgmmers.radar.vo.model.ModelConfVO; + +public interface ModelConfService { + ModelConfVO get(Long id); + + ModelConfVO getByModelId(Long modelId); +} diff --git a/radar-service/src/main/java/com/pgmmers/radar/service/model/MoldService.java b/radar-service/src/main/java/com/pgmmers/radar/service/model/MoldService.java deleted file mode 100644 index 6ffaf1e..0000000 --- a/radar-service/src/main/java/com/pgmmers/radar/service/model/MoldService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pgmmers.radar.service.model; - -import com.pgmmers.radar.vo.model.MoldVO; - -public interface MoldService { - MoldVO get(Long id); - MoldVO getByModelId(Long modelId); -} diff --git a/resources/radar-tran-v1.zip b/resources/radar-tran-v1.zip new file mode 100644 index 0000000..5cec11b Binary files /dev/null and b/resources/radar-tran-v1.zip differ diff --git a/sql/radar-1.0.3.sql b/sql/radar-1.0.3.sql new file mode 100644 index 0000000..e0dde66 --- /dev/null +++ b/sql/radar-1.0.3.sql @@ -0,0 +1,54 @@ +/* +Navicat MySQL Data Transfer + +Source Server : test@172.30.0.6 +Source Server Version : 50726 +Source Host : 172.30.0.6:3306 +Source Database : radar + +Target Server Type : MYSQL +Target Server Version : 50726 +File Encoding : 65001 + +Date: 2019-12-24 18:02:12 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for engine_model_conf +-- ---------------------------- +DROP TABLE IF EXISTS `engine_model_conf`; +CREATE TABLE `engine_model_conf` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `model_id` int(11) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `path` varchar(255) DEFAULT NULL, + `tag` varchar(255) DEFAULT NULL, + `operation` varchar(255) DEFAULT NULL, + `update_date` datetime DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of engine_model_conf +-- ---------------------------- +INSERT INTO `engine_model_conf` VALUES ('1', '103', '交易ai模型', 'd:/radar01', 'serve', 'output_y/BiasAdd', '2019-12-24 17:38:38', 'TENSOR_DNN'); + +-- ---------------------------- +-- Table structure for engine_model_conf_param +-- ---------------------------- +DROP TABLE IF EXISTS `engine_model_conf_param`; +CREATE TABLE `engine_model_conf_param` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `mold_id` int(11) DEFAULT NULL, + `feed` varchar(255) DEFAULT NULL, + `expressions` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of engine_model_conf_param +-- ---------------------------- +INSERT INTO `engine_model_conf_param` VALUES ('1', '1', 'input_x', 'abstractions.tran_uid_ip_1_day_qty,abstractions.tran_did_ip_1_day_qty,abstractions.tran_ip_1_day_qty,abstractions.tran_ip_1_hour_qty,abstractions.tran_ip_1_day_amt,abstractions.tran_did_1_day_qty');