diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java index 267e75a4b..6bc405704 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java @@ -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(); } /**