Explorar el Código

打标结果查询接口更新

2643616413 hace 18 horas
padre
commit
78a5028822

+ 4 - 10
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/controller/FastApiController.java

@@ -38,27 +38,21 @@ public class FastApiController {
         }
     }
 
-    @ApiOperationType("AI打标查询")
+    @ApiOperationType("AI 打标查询")
     @GetMapping("/query")
     public Result<AiTaggingQueryResponseVo> query(
-            @RequestParam(required = false) String appId,
-            @RequestParam(required = false) String timestamp,
-            @RequestParam(required = false) String sign,
             @Valid @RequestParam String businessAttr) {
         try {
-            log.info("收到AI打标查询请求: appId={}, businessAttr={}", appId, businessAttr);
+            log.info("收到 AI 打标查询请求:businessAttr={}", businessAttr);
 
             AiTaggingQueryRequestDto request = new AiTaggingQueryRequestDto();
-            request.setAppId(appId);
-            request.setTimestamp(timestamp);
-            request.setSign(sign);
             request.setBusinessAttr(businessAttr);
 
             AiTaggingQueryResponseVo response = fastApiService.query(request);
             return Result.success(response);
         } catch (Exception e) {
-            log.error("AI打标查询接口调用失败", e);
-            return Result.error("500", "AI打标查询接口调用失败: " + e.getMessage());
+            log.error("AI 打标查询接口调用失败", e);
+            return Result.error("500", "AI 打标查询接口调用失败:" + e.getMessage());
         }
     }
 

+ 5 - 11
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/domain/dto/fastapidto/AiTaggingQueryRequestDto.java

@@ -5,19 +5,13 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+
 @Data
-@ApiModel("AI打标查询请求")
+@ApiModel("AI 打标查询请求")
 public class AiTaggingQueryRequestDto {
 
-    @ApiModelProperty(value = "后台分配的APPID", required = false)
-    private String appId;
-
-    @ApiModelProperty(value = "时间戳", required = false)
-    private String timestamp;
-
-    @ApiModelProperty(value = "签名", required = false)
-    private String sign;
-
+    @NotBlank(message = "业务属性不能为空")
     @ApiModelProperty(value = "业务属性", required = true)
     private String businessAttr;
-}
+}

+ 24 - 7
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/domain/vo/fastapivo/AiTaggingQueryResponseVo.java

@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
-@ApiModel("AI打标查询响应")
+@ApiModel("AI 打标查询响应")
 public class AiTaggingQueryResponseVo {
 
     @ApiModelProperty(value = "状态码 200(查询成功)/300(正在处理中)/500(处理失败)")
@@ -15,22 +15,39 @@ public class AiTaggingQueryResponseVo {
     private String message;
 
     @ApiModelProperty(value = "标签数据")
-    private AiTagDataVo[] data;
+    private AiTagDataWrapper data;
 
     @Data
-    @ApiModel("标签数据")
-    public static class AiTagDataVo {
+    @ApiModel("标签数据包装")
+    public static class AiTagDataWrapper {
+
+        @ApiModelProperty(value = "标签结果列表")
+        private AiTagResultVo[] result;
+    }
+
+    @Data
+    @ApiModel("标签结果")
+    public static class AiTagResultVo {
+
+        @ApiModelProperty(value = "标签 ID")
+        private String id;
 
         @ApiModelProperty(value = "标签名称")
-        private String tag;
+        private String tag_name;
 
         @ApiModelProperty(value = "标签代码")
-        private String tagcode;
+        private String tag_code;
+
+        @ApiModelProperty(value = "标签路径")
+        private String tag_path;
 
-        @ApiModelProperty(value = "是否AI推荐 true: AI推荐的标签, false: 算法筛选出来但是被LLM淘汰的候选标签")
+        @ApiModelProperty(value = "是否 AI 推荐 true: AI 推荐的标签,false: 算法筛选出来但是被 LLM 淘汰的候选标签")
         private Boolean passr;
 
         @ApiModelProperty(value = "解释说明")
         private String desc;
+
+        @ApiModelProperty(value = "分类 ID")
+        private String category_id;
     }
 }

+ 16 - 37
server/yusp-tagging-core/src/main/java/cn/com/yusys/yusp/service/impl/FastApiServiceImpl.java

@@ -31,9 +31,9 @@ public class FastApiServiceImpl implements FastApiService {
     @Autowired
     private FastApiConfig fastApiConfig;
 
-    private static final String TAGGING_PATH = "/aitag/v1/tagging";
-    private static final String QUERY_PATH = "/aitag/v1/query";
-    private static final String FEEDBACK_PATH = "/aitag/v1/feedback";
+    private static final String TAGGING_PATH = "/api/aitag/v1/tagging";
+    private static final String QUERY_PATH = "/api/aitag/v1/query";
+    private static final String FEEDBACK_PATH = "/api/aitag/v1/feedback";
 
     @Override
     public AiTaggingResponseVo tagging(AiTaggingRequestDto request) {
@@ -65,54 +65,33 @@ public class FastApiServiceImpl implements FastApiService {
 
     @Override
     public AiTaggingQueryResponseVo query(AiTaggingQueryRequestDto request) {
-        StringBuilder urlBuilder = new StringBuilder(fastApiConfig.getUrl()).append(QUERY_PATH);
+        String url = fastApiConfig.getUrl() + QUERY_PATH + "?business_attr=" + encodeParam(request.getBusinessAttr());
 
-        // 只添加非空参数
-        boolean hasParams = false;
-
-        if (request.getAppId() != null && !request.getAppId().isEmpty()) {
-            urlBuilder.append(hasParams ? "&" : "?").append("appId=").append(encodeParam(request.getAppId()));
-            hasParams = true;
-        }
-
-        if (request.getTimestamp() != null && !request.getTimestamp().isEmpty()) {
-            urlBuilder.append(hasParams ? "&" : "?").append("timestamp=").append(encodeParam(request.getTimestamp()));
-            hasParams = true;
-        }
-
-        if (request.getSign() != null && !request.getSign().isEmpty()) {
-            urlBuilder.append(hasParams ? "&" : "?").append("sign=").append(encodeParam(request.getSign()));
-            hasParams = true;
-        }
-
-        // businessAttr是必填参数,直接添加
-        urlBuilder.append(hasParams ? "&" : "?").append("businessAttr=").append(encodeParam(request.getBusinessAttr()));
-
-        String url = urlBuilder.toString();
-        log.info("调用AI打标查询接口: {}", url);
+        log.info("调用 AI 打标查询接口:{}", url);
         try (CloseableHttpClient httpClient = createHttpClient()) {
             HttpGet httpGet = new HttpGet(url);
 
             try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
                 String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8");
-                log.info("AI打标查询接口响应: {}", responseBody);
+                log.info("AI 打标查询接口响应:{}", responseBody);
 
                 return JSON.parseObject(responseBody, AiTaggingQueryResponseVo.class);
             }
         } catch (Exception e) {
-            log.error("调用AI打标查询接口失败", e);
+            log.error("调用 AI 打标查询接口失败", e);
             AiTaggingQueryResponseVo errorResponse = new AiTaggingQueryResponseVo();
             errorResponse.setCode("500");
-            errorResponse.setMessage("调用AI打标查询接口失败: " + e.getMessage());
+            errorResponse.setMessage("调用 AI 打标查询接口失败:" + e.getMessage());
             return errorResponse;
         }
     }
 
+
     @Override
     public AiTaggingResponseVo feedback(AiTaggingFeedbackRequestDto request) {
         StringBuilder urlBuilder = new StringBuilder(fastApiConfig.getUrl()).append(FEEDBACK_PATH);
 
-        // 构造GET请求参数
+        // 构造 GET 请求参数
         boolean hasParams = false;
 
         if (request.getUserId() != null && !request.getUserId().isEmpty()) {
@@ -125,7 +104,7 @@ public class FastApiServiceImpl implements FastApiService {
             hasParams = true;
         }
 
-        // feedback是必填参数
+        // feedback 是必填参数
         urlBuilder.append(hasParams ? "&" : "?").append("feedback=").append(encodeParam(request.getFeedback()));
         hasParams = true;
 
@@ -144,26 +123,26 @@ public class FastApiServiceImpl implements FastApiService {
             hasParams = true;
         }
 
-        // business_attr是必填参数
+        // business_attr 是必填参数
         urlBuilder.append(hasParams ? "&" : "?").append("business_attr=").append(encodeParam(request.getBusinessAttr()));
 
         String url = urlBuilder.toString();
-        log.info("调用AI打标反馈接口: {}", url);
+        log.info("调用 AI 打标反馈接口:{}", url);
 
         try (CloseableHttpClient httpClient = createHttpClient()) {
             HttpGet httpGet = new HttpGet(url);
 
             try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
                 String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8");
-                log.info("AI打标反馈接口响应: {}", responseBody);
+                log.info("AI 打标反馈接口响应:{}", responseBody);
 
                 return JSON.parseObject(responseBody, AiTaggingResponseVo.class);
             }
         } catch (Exception e) {
-            log.error("调用AI打标反馈接口失败", e);
+            log.error("调用 AI 打标反馈接口失败", e);
             AiTaggingResponseVo errorResponse = new AiTaggingResponseVo();
             errorResponse.setCode("500");
-            errorResponse.setMessage("调用AI打标反馈接口失败: " + e.getMessage());
+            errorResponse.setMessage("调用 AI 打标反馈接口失败:" + e.getMessage());
             return errorResponse;
         }
     }