From aa562d3b26d8b6de0f0fc0b842ba3894ebcf0945 Mon Sep 17 00:00:00 2001 From: bsw215583320 <baoshiwei121@163.com> Date: 星期一, 08 一月 2024 08:45:30 +0800 Subject: [PATCH] 优化模型调用 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 35 +++++++++++++++++++++++++++++++++-- 1 files changed, 33 insertions(+), 2 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java index a6dbf31..2878189 100644 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java @@ -2,15 +2,19 @@ import ai.djl.modality.Classifications; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.dry.entity.DryHerbInfo; import org.jeecg.modules.dry.service.*; import org.jeecg.modules.dry.util.HerbUtil; import org.jeecg.modules.dry.vo.CommandMessageVo; +import org.jeecg.modules.dry.vo.DryHerbInfoVo; import org.jeecg.modules.dry.vo.RealTimeDataVo; import org.springframework.beans.factory.annotation.Autowired; @@ -18,7 +22,9 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Api(tags = "瀹炴椂鏁版嵁澶勭悊鎺у埗鍣�") @@ -32,6 +38,9 @@ @Autowired private HerbUtil herbUtil; + + @Autowired + private IDryHerbInfoService herbInfoService; @ApiOperation(value="娴嬭瘯", notes="杩斿洖Hello") @@ -86,7 +95,29 @@ } InputStream inputStream = file.getInputStream(); List<Classifications.Classification> predict = herbUtil.predict(inputStream); - return Result.ok(predict); + + if(predict.size()>0) { + Map<String, Double> collect = predict.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, Classifications.Classification::getProbability)); + + + List<DryHerbInfoVo> voList = new ArrayList<>(); + Set<String> strings = collect.keySet(); + List<DryHerbInfo> list = herbInfoService.list(new LambdaQueryWrapper<DryHerbInfo>().in(DryHerbInfo::getPinyin, strings)); + list.forEach(item -> { + DryHerbInfoVo dryHerbInfoVo = new DryHerbInfoVo(); + BeanUtil.copyProperties(item, dryHerbInfoVo); + dryHerbInfoVo.setProbabily(collect.get(item.getPinyin())); + voList.add(dryHerbInfoVo); + }); + + List<DryHerbInfoVo> collect1 = voList.stream().sorted(Comparator.comparing(DryHerbInfoVo::getProbabily, Comparator.reverseOrder())). + collect(Collectors.toList()); + + return Result.ok(collect1); + } else { + return Result.error("AI璇嗗埆鏈嶅姟寮傚父"); + } + } catch (Exception e) { e.printStackTrace(); return Result.error("AI璇嗗埆鏈嶅姟寮傚父"); -- Gitblit v1.9.3