refactor(yudao-module-llm): 重构 ModelService 中的请求处理逻辑

- 修改了 sendPostRequest 和 handleResponseEntity 方法的返回类型
- 优化了模型补全请求的处理流程
- 添加了错误处理和返回值
This commit is contained in:
Liuyang 2025-03-02 12:13:40 +08:00
parent 1a320c6260
commit ef279ed3d3

View File

@ -165,16 +165,18 @@ public class ModelService {
log.info("使用指定URL: {}", url);
}
String answer="";
try {
String jsonString = JSON.toJSONString(req);
log.info("开始处理模型补全请求参数3: {}", jsonString);
sendPostRequest(url, jsonString, emitter, uuid);
answer= sendPostRequest(url, jsonString, emitter, uuid);
} catch (Exception e) {
emitter.completeWithError(e);
}
// 解析响应内容
//
// // 解析响应内容
// log.info("正在解析响应内容...");
// ChatCompletion chatCompletion = JSON.parseObject(result, ChatCompletion.class);
//
@ -193,7 +195,7 @@ public class ModelService {
// ModelCompletionsRespVO respVO = new ModelCompletionsRespVO();
// respVO.setSystem("助手");
// respVO.setQuestion(req.getMessages().get(req.getMessages().size() - 1).getContent());
// respVO.setAnswer(answerContent);
// respVO.setAnswer(answer);
//
// log.info("模型补全请求处理成功。返回结果: {}", JSON.toJSONString(respVO));
// return respVO;
@ -202,7 +204,15 @@ public class ModelService {
// log.warn("响应内容包含错误信息,返回 null");
// return null;
// }
return null;
// return null;
// 构建返回对象
ModelCompletionsRespVO respVO = new ModelCompletionsRespVO();
respVO.setSystem("助手");
respVO.setQuestion(req.getMessages().get(req.getMessages().size() - 1).getContent());
respVO.setAnswer(answer);
return respVO;
}
/**
@ -212,7 +222,7 @@ public class ModelService {
* @param requestBody 请求体内容
* @throws IOException 发送请求或处理响应时可能抛出的 IO 异常
*/
private void sendPostRequest (String apiUrl, String requestBody, SseEmitter emitter, String uuid) throws IOException {
private String sendPostRequest (String apiUrl, String requestBody, SseEmitter emitter, String uuid) throws IOException {
// 创建 HttpClient 实例
HttpClient httpClient = HttpClients.createDefault();
@ -226,7 +236,7 @@ public class ModelService {
HttpResponse response = httpClient.execute(httpPost);
// 处理响应实体
handleResponseEntity(response, emitter, uuid);
return handleResponseEntity(response, emitter, uuid);
}
/**
@ -256,7 +266,8 @@ public class ModelService {
*
* @param response HttpResponse 对象
*/
private void handleResponseEntity (HttpResponse response, SseEmitter emitter, String uuid) {
private String handleResponseEntity (HttpResponse response, SseEmitter emitter, String uuid) {
StringBuilder result = new StringBuilder();
// 获取响应实体
HttpEntity responseEntity = response.getEntity();
@ -277,6 +288,7 @@ public class ModelService {
.data(content, MediaType.TEXT_EVENT_STREAM)
);
}
result.append(content);
// 心跳检测
if (System.currentTimeMillis() - lastSendTime > 15_000) {
emitter.send(SseEmitter.event().comment("heartbeat"));
@ -287,6 +299,8 @@ public class ModelService {
} catch (IOException e) {
emitter.completeWithError(e);
}
return result.toString();
}
/**