From af3304011728e03872c72d8f3b5a8cd1715f47db Mon Sep 17 00:00:00 2001 From: ageerle <ageerle@163.com> Date: 星期五, 11 四月 2025 10:45:02 +0800 Subject: [PATCH] fix: 语音功能无法使用 --- ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 80c2d8e..357280d 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -70,7 +70,7 @@ @RequiredArgsConstructor public class SseServiceImpl implements ISseService { - private OpenAiStreamClient openAiStreamClient; + private final OpenAiStreamClient openAiStreamClient; private final ChatConfig chatConfig; @@ -88,6 +88,8 @@ private static final ObjectMapper mapper = new ObjectMapper(); + private OpenAiStreamClient openAiModelStreamClient; + @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { SseEmitter sseEmitter = new SseEmitter(0L); @@ -100,8 +102,13 @@ if (StpUtil.isLogin()) { // 閫氳繃妯″瀷鍚嶇О鏌ヨ妯″瀷淇℃伅 ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - // 鏋勫缓api璇锋眰瀹㈡埛绔� - openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + if(chatModelVo!=null){ + // 閫氳繃妯″瀷淇℃伅鏋勫缓璇锋眰瀹㈡埛绔� + openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + }else { + // 浣跨敤榛樿瀹㈡埛绔� + openAiModelStreamClient = openAiStreamClient; + } // 璁剧疆榛樿鎻愮ず璇� Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); messages.add(0,sysMessage); @@ -167,7 +174,7 @@ .model(chatRequest.getModel()) .stream(chatRequest.getStream()) .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + openAiModelStreamClient.streamChatCompletion(completion, openAIEventSourceListener); // 淇濆瓨娑堟伅璁板綍 骞舵墸闄よ垂鐢� chatCostService.deductToken(chatRequest); } catch (Exception e) { @@ -192,7 +199,7 @@ try { sseEmitter.send(event); } catch (IOException e) { - log.error("鍙戦�佷簨浠跺け璐�: {}", e.getMessage()); + log.error("SSE鍙戦�佸け璐�: {}", e.getMessage()); } sseEmitter.complete(); } @@ -248,7 +255,6 @@ if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { throw new IllegalStateException("File Extention not supported"); } - openAiStreamClient = chatConfig.getOpenAiStreamClient(); return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); } -- Gitblit v1.9.3