mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-16 05:13:41 +00:00
fix: 语音功能无法使用
This commit is contained in:
@@ -593,11 +593,6 @@ public class OpenAiStreamClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SseServiceImpl implements ISseService {
|
public class SseServiceImpl implements ISseService {
|
||||||
|
|
||||||
private OpenAiStreamClient openAiStreamClient;
|
private final OpenAiStreamClient openAiStreamClient;
|
||||||
|
|
||||||
private final ChatConfig chatConfig;
|
private final ChatConfig chatConfig;
|
||||||
|
|
||||||
@@ -88,6 +88,8 @@ public class SseServiceImpl implements ISseService {
|
|||||||
|
|
||||||
private static final ObjectMapper mapper = new ObjectMapper();
|
private static final ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
|
private OpenAiStreamClient openAiModelStreamClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) {
|
public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) {
|
||||||
SseEmitter sseEmitter = new SseEmitter(0L);
|
SseEmitter sseEmitter = new SseEmitter(0L);
|
||||||
@@ -100,8 +102,13 @@ public class SseServiceImpl implements ISseService {
|
|||||||
if (StpUtil.isLogin()) {
|
if (StpUtil.isLogin()) {
|
||||||
// 通过模型名称查询模型信息
|
// 通过模型名称查询模型信息
|
||||||
ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
|
ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
|
||||||
// 构建api请求客户端
|
if(chatModelVo!=null){
|
||||||
openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
|
// 通过模型信息构建请求客户端
|
||||||
|
openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
|
||||||
|
}else {
|
||||||
|
// 使用默认客户端
|
||||||
|
openAiModelStreamClient = openAiStreamClient;
|
||||||
|
}
|
||||||
// 设置默认提示词
|
// 设置默认提示词
|
||||||
Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build();
|
Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build();
|
||||||
messages.add(0,sysMessage);
|
messages.add(0,sysMessage);
|
||||||
@@ -167,7 +174,7 @@ public class SseServiceImpl implements ISseService {
|
|||||||
.model(chatRequest.getModel())
|
.model(chatRequest.getModel())
|
||||||
.stream(chatRequest.getStream())
|
.stream(chatRequest.getStream())
|
||||||
.build();
|
.build();
|
||||||
openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener);
|
openAiModelStreamClient.streamChatCompletion(completion, openAIEventSourceListener);
|
||||||
// 保存消息记录 并扣除费用
|
// 保存消息记录 并扣除费用
|
||||||
chatCostService.deductToken(chatRequest);
|
chatCostService.deductToken(chatRequest);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -192,7 +199,7 @@ public class SseServiceImpl implements ISseService {
|
|||||||
try {
|
try {
|
||||||
sseEmitter.send(event);
|
sseEmitter.send(event);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("发送事件失败: {}", e.getMessage());
|
log.error("SSE发送失败: {}", e.getMessage());
|
||||||
}
|
}
|
||||||
sseEmitter.complete();
|
sseEmitter.complete();
|
||||||
}
|
}
|
||||||
@@ -248,7 +255,6 @@ public class SseServiceImpl implements ISseService {
|
|||||||
if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) {
|
if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) {
|
||||||
throw new IllegalStateException("File Extention not supported");
|
throw new IllegalStateException("File Extention not supported");
|
||||||
}
|
}
|
||||||
openAiStreamClient = chatConfig.getOpenAiStreamClient();
|
|
||||||
return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file));
|
return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user