添加图片识别千问大模型

This commit is contained in:
2025-08-02 14:46:02 +08:00
parent 840be2a338
commit 43546d56a9
9 changed files with 1272 additions and 0 deletions

View File

@@ -0,0 +1,140 @@
package com.klp.controller;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.core.validate.QueryGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.bo.ImageRecognitionBo;
import com.klp.domain.vo.ImageRecognitionVo;
import com.klp.service.IImageRecognitionService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* 图片识别控制器
*
* @author klp
* @date 2025-01-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/imageRecognition")
public class WmsImageRecognitionController extends BaseController {
private final IImageRecognitionService iImageRecognitionService;
/**
* 识别图片内容
*/
@PostMapping("/recognize")
public R<ImageRecognitionVo> recognize(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
return R.ok(iImageRecognitionService.recognizeImage(bo));
}
/**
* 识别BOM内容
*/
@PostMapping("/recognizeBom")
public R<ImageRecognitionVo> recognizeBom(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
bo.setRecognitionType("bom");
return R.ok(iImageRecognitionService.recognizeBom(bo));
}
/**
* 识别文字内容
*/
@PostMapping("/recognizeText")
public R<ImageRecognitionVo> recognizeText(@RequestBody @Validated(AddGroup.class) ImageRecognitionBo bo) {
bo.setRecognitionType("text");
return R.ok(iImageRecognitionService.recognizeText(bo));
}
/**
* 批量识别图片
*/
@PostMapping("/recognizeBatch")
public R<List<ImageRecognitionVo>> recognizeBatch(@RequestBody @Validated(AddGroup.class) List<ImageRecognitionBo> boList) {
return R.ok(iImageRecognitionService.recognizeImages(boList));
}
/**
* 测试AI连接
*/
@PostMapping("/testConnection")
public R<Map<String, Object>> testConnection() {
return R.ok(iImageRecognitionService.testAiConnection());
}
/**
* 获取识别配置
*/
@GetMapping("/config")
public R<Map<String, Object>> getConfig() {
return R.ok(iImageRecognitionService.getRecognitionConfig());
}
/**
* 更新识别配置
*/
@PostMapping("/config")
public R<Void> updateConfig(@RequestBody Map<String, Object> config) {
iImageRecognitionService.updateRecognitionConfig(config);
return R.ok();
}
/**
* 获取识别历史
*/
@PostMapping("/history")
public R<Map<String, Object>> getHistory(@RequestBody Map<String, Object> pageQuery) {
return R.ok(iImageRecognitionService.getRecognitionHistory(pageQuery));
}
/**
* 简单识别接口(兼容原有格式)
*/
@PostMapping("/recognizeTextSimple")
public R<ImageRecognitionVo> recognizeTextSimple(@RequestBody Map<String, String> request) {
String imgUrl = request.get("imgUrl");
if (imgUrl == null || imgUrl.trim().isEmpty()) {
return R.fail("图片URL不能为空");
}
ImageRecognitionBo bo = new ImageRecognitionBo();
bo.setImageUrl(imgUrl);
bo.setRecognitionType("text");
ImageRecognitionVo result = iImageRecognitionService.recognizeText(bo);
return R.ok(result);
}
/**
* 识别BOM接口兼容原有格式
*/
@PostMapping("/recognizeBomSimple")
public R<ImageRecognitionVo> recognizeBomSimple(@RequestBody Map<String, String> request) {
String imgUrl = request.get("imgUrl");
if (imgUrl == null || imgUrl.trim().isEmpty()) {
return R.fail("图片URL不能为空");
}
ImageRecognitionBo bo = new ImageRecognitionBo();
bo.setImageUrl(imgUrl);
bo.setRecognitionType("bom");
ImageRecognitionVo result = iImageRecognitionService.recognizeBom(bo);
return R.ok(result);
}
}