|
|
@@ -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,105 +65,125 @@ 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请求参数
|
|
|
- boolean hasParams = false;
|
|
|
|
|
|
- if (request.getUserId() != null && !request.getUserId().isEmpty()) {
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("user_id=").append(encodeParam(request.getUserId()));
|
|
|
- hasParams = true;
|
|
|
- }
|
|
|
-
|
|
|
- if (request.getUserNm() != null && !request.getUserNm().isEmpty()) {
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("user_nm=").append(encodeParam(request.getUserNm()));
|
|
|
- hasParams = true;
|
|
|
- }
|
|
|
+// @Override
|
|
|
+// public AiTaggingResponseVo feedback(AiTaggingFeedbackRequestDto request) {
|
|
|
+// StringBuilder urlBuilder = new StringBuilder(fastApiConfig.getUrl()).append(FEEDBACK_PATH);
|
|
|
+//
|
|
|
+// // 构造 GET 请求参数
|
|
|
+// boolean hasParams = false;
|
|
|
+//
|
|
|
+// if (request.getUserId() != null && !request.getUserId().isEmpty()) {
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("user_id=").append(encodeParam(request.getUserId()));
|
|
|
+// hasParams = true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (request.getUserNm() != null && !request.getUserNm().isEmpty()) {
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("user_nm=").append(encodeParam(request.getUserNm()));
|
|
|
+// hasParams = true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // feedback 是必填参数
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("feedback=").append(encodeParam(request.getFeedback()));
|
|
|
+// hasParams = true;
|
|
|
+//
|
|
|
+// if (request.getContractNo() != null && !request.getContractNo().isEmpty()) {
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("contract_no=").append(encodeParam(request.getContractNo()));
|
|
|
+// hasParams = true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (request.getUserOrg() != null && !request.getUserOrg().isEmpty()) {
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("user_org=").append(encodeParam(request.getUserOrg()));
|
|
|
+// hasParams = true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (request.getUserEndpoint() != null && !request.getUserEndpoint().isEmpty()) {
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("user_endpoint=").append(encodeParam(request.getUserEndpoint()));
|
|
|
+// hasParams = true;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // business_attr 是必填参数
|
|
|
+// urlBuilder.append(hasParams ? "&" : "?").append("business_attr=").append(encodeParam(request.getBusinessAttr()));
|
|
|
+//
|
|
|
+// String url = urlBuilder.toString();
|
|
|
+// 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);
|
|
|
+//
|
|
|
+// return JSON.parseObject(responseBody, AiTaggingResponseVo.class);
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.error("调用 AI 打标反馈接口失败", e);
|
|
|
+// AiTaggingResponseVo errorResponse = new AiTaggingResponseVo();
|
|
|
+// errorResponse.setCode("500");
|
|
|
+// errorResponse.setMessage("调用 AI 打标反馈接口失败:" + e.getMessage());
|
|
|
+// return errorResponse;
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
- // feedback是必填参数
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("feedback=").append(encodeParam(request.getFeedback()));
|
|
|
- hasParams = true;
|
|
|
|
|
|
- if (request.getContractNo() != null && !request.getContractNo().isEmpty()) {
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("contract_no=").append(encodeParam(request.getContractNo()));
|
|
|
- hasParams = true;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public AiTaggingResponseVo feedback(AiTaggingFeedbackRequestDto request) {
|
|
|
+ String url = fastApiConfig.getUrl() + FEEDBACK_PATH;
|
|
|
|
|
|
- if (request.getUserOrg() != null && !request.getUserOrg().isEmpty()) {
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("user_org=").append(encodeParam(request.getUserOrg()));
|
|
|
- hasParams = true;
|
|
|
- }
|
|
|
+ log.info("调用 AI 打标反馈接口:{}", url);
|
|
|
|
|
|
- if (request.getUserEndpoint() != null && !request.getUserEndpoint().isEmpty()) {
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("user_endpoint=").append(encodeParam(request.getUserEndpoint()));
|
|
|
- hasParams = true;
|
|
|
- }
|
|
|
+ try (CloseableHttpClient httpClient = createHttpClient()) {
|
|
|
+ HttpPost httpPost = new HttpPost(url);
|
|
|
+ httpPost.setHeader("Content-Type", "application/json");
|
|
|
|
|
|
- // business_attr是必填参数
|
|
|
- urlBuilder.append(hasParams ? "&" : "?").append("business_attr=").append(encodeParam(request.getBusinessAttr()));
|
|
|
+ // 手动构造符合 FastAPI 要求的 JSON 请求体(使用下划线格式)
|
|
|
+ com.alibaba.fastjson.JSONObject jsonBody = new com.alibaba.fastjson.JSONObject();
|
|
|
+ jsonBody.put("user_id", request.getUserId());
|
|
|
+ jsonBody.put("user_nm", request.getUserNm());
|
|
|
+ jsonBody.put("feedback", request.getFeedback());
|
|
|
+ jsonBody.put("contract_no", request.getContractNo());
|
|
|
+ jsonBody.put("user_org", request.getUserOrg());
|
|
|
+ jsonBody.put("user_endpoint", request.getUserEndpoint());
|
|
|
+ jsonBody.put("business_attr", request.getBusinessAttr());
|
|
|
|
|
|
- String url = urlBuilder.toString();
|
|
|
- log.info("调用AI打标反馈接口: {}", url);
|
|
|
+ String requestBody = jsonBody.toJSONString();
|
|
|
+ log.info("请求体:{}", requestBody);
|
|
|
|
|
|
- try (CloseableHttpClient httpClient = createHttpClient()) {
|
|
|
- HttpGet httpGet = new HttpGet(url);
|
|
|
+ httpPost.setEntity(new StringEntity(requestBody, "UTF-8"));
|
|
|
|
|
|
- try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
|
|
|
+ try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
|
|
|
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;
|
|
|
}
|
|
|
}
|