|
|
@@ -9,6 +9,7 @@ import cn.com.yusys.yusp.domain.vo.fastapivo.AiTaggingResponseVo;
|
|
|
import cn.com.yusys.yusp.service.FastApiService;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.http.HttpEntity;
|
|
|
import org.apache.http.client.config.RequestConfig;
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
import org.apache.http.client.methods.HttpGet;
|
|
|
@@ -23,7 +24,6 @@ import org.springframework.stereotype.Service;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
|
-
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
public class FastApiServiceImpl implements FastApiService {
|
|
|
@@ -38,6 +38,7 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
@Override
|
|
|
public AiTaggingResponseVo tagging(AiTaggingRequestDto request) {
|
|
|
String url = fastApiConfig.getUrl() + TAGGING_PATH;
|
|
|
+ log.info("收到 AI 打标请求:businessAttr={}, tagCategoryId={}", request.getBusinessAttr(), request.getTagCategoryId());
|
|
|
log.info("调用 AI 打标接口:{}", url);
|
|
|
|
|
|
try (CloseableHttpClient httpClient = createHttpClient()) {
|
|
|
@@ -49,8 +50,17 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
httpPost.setEntity(new StringEntity(requestBody, "UTF-8"));
|
|
|
|
|
|
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
|
|
|
+ int statusCode = response.getStatusLine().getStatusCode();
|
|
|
String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
|
- log.info("AI 打标接口响应:{}", responseBody);
|
|
|
+ log.info("AI 打标接口响应:状态码={}, 响应内容={}", statusCode, responseBody);
|
|
|
+
|
|
|
+ if (statusCode != 200) {
|
|
|
+ log.error("AI 打标接口调用失败,HTTP 状态码:{}, 响应内容:{}", statusCode, responseBody);
|
|
|
+ AiTaggingResponseVo errorResponse = new AiTaggingResponseVo();
|
|
|
+ errorResponse.setCode(String.valueOf(statusCode));
|
|
|
+ errorResponse.setMessage("AI 打标接口调用失败:" + (responseBody.isEmpty() ? "服务器内部错误" : responseBody));
|
|
|
+ return errorResponse;
|
|
|
+ }
|
|
|
|
|
|
return JSON.parseObject(responseBody, AiTaggingResponseVo.class);
|
|
|
}
|
|
|
@@ -72,8 +82,17 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
HttpGet httpGet = new HttpGet(url);
|
|
|
|
|
|
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
|
|
|
+ int statusCode = response.getStatusLine().getStatusCode();
|
|
|
String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
|
- log.info("AI 打标查询接口响应:{}", responseBody);
|
|
|
+ log.info("AI 打标查询接口响应:状态码={}, 响应内容={}", statusCode, responseBody);
|
|
|
+
|
|
|
+ if (statusCode != 200) {
|
|
|
+ log.error("AI 打标查询接口调用失败,HTTP 状态码:{}, 响应内容:{}", statusCode, responseBody);
|
|
|
+ AiTaggingQueryResponseVo errorResponse = new AiTaggingQueryResponseVo();
|
|
|
+ errorResponse.setCode(String.valueOf(statusCode));
|
|
|
+ errorResponse.setMessage("AI 打标查询接口调用失败:" + (responseBody.isEmpty() ? "服务器内部错误" : responseBody));
|
|
|
+ return errorResponse;
|
|
|
+ }
|
|
|
|
|
|
return JSON.parseObject(responseBody, AiTaggingQueryResponseVo.class);
|
|
|
}
|
|
|
@@ -87,67 +106,6 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-// @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;
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
@Override
|
|
|
public AiTaggingResponseVo feedback(AiTaggingFeedbackRequestDto request) {
|
|
|
String url = fastApiConfig.getUrl() + FEEDBACK_PATH;
|
|
|
@@ -175,8 +133,17 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
httpPost.setEntity(new StringEntity(requestBody, "UTF-8"));
|
|
|
|
|
|
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
|
|
|
+ int statusCode = response.getStatusLine().getStatusCode();
|
|
|
String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
|
- log.info("AI 打标反馈接口响应:{}", responseBody);
|
|
|
+ log.info("AI 打标反馈接口响应:状态码={}, 响应内容={}", statusCode, responseBody);
|
|
|
+
|
|
|
+ if (statusCode != 200) {
|
|
|
+ log.error("AI 打标反馈接口调用失败,HTTP 状态码:{}, 响应内容:{}", statusCode, responseBody);
|
|
|
+ AiTaggingResponseVo errorResponse = new AiTaggingResponseVo();
|
|
|
+ errorResponse.setCode(String.valueOf(statusCode));
|
|
|
+ errorResponse.setMessage("AI 打标反馈接口调用失败:" + (responseBody.isEmpty() ? "服务器内部错误" : responseBody));
|
|
|
+ return errorResponse;
|
|
|
+ }
|
|
|
|
|
|
return JSON.parseObject(responseBody, AiTaggingResponseVo.class);
|
|
|
}
|
|
|
@@ -190,18 +157,18 @@ public class FastApiServiceImpl implements FastApiService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- // 辅助方法用于URL编码
|
|
|
+ // 辅助方法用于 URL 编码
|
|
|
private String encodeParam(String param) {
|
|
|
try {
|
|
|
return URLEncoder.encode(param, "UTF-8");
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
- log.warn("URL编码失败,使用原始值: {}", param);
|
|
|
+ log.warn("URL 编码失败,使用原始值:{}", param);
|
|
|
return param;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 创建HTTP客户端
|
|
|
+ * 创建 HTTP 客户端
|
|
|
*/
|
|
|
private CloseableHttpClient createHttpClient() {
|
|
|
RequestConfig requestConfig = RequestConfig.custom()
|