办学质量监测教学评价系统
Albert
2025-05-13 3666157d14201d39a0e61588582fee97fac95ad1
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java
@@ -3,6 +3,7 @@
import io.modelcontextprotocol.client.McpSyncClient;
import lombok.extern.slf4j.Slf4j;
import org.ruoyi.chat.config.ChatConfig;
import org.ruoyi.chat.enums.ChatModeType;
import org.ruoyi.chat.listener.SSEEventSourceListener;
import org.ruoyi.chat.service.chat.IChatService;
import org.ruoyi.common.chat.entity.chat.ChatCompletion;
@@ -21,15 +22,15 @@
import java.util.List;
/**
 * @author ageer
 */
@Service
@Slf4j
public class OpenAIServiceImpl implements IChatService {
    @Autowired
    private IChatModelService chatModelService;
    private OpenAiStreamClient openAiStreamClient;
    @Value("${spring.ai.mcp.client.enabled}")
    private Boolean enabled;
@@ -47,7 +48,7 @@
    @Override
    public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) {
        ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
        openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
        OpenAiStreamClient openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
        List<Message> messages = chatRequest.getMessages();
        if (enabled) {
            String toolString = mcpChat(chatRequest.getPrompt());
@@ -69,4 +70,9 @@
        return this.chatClient.prompt(prompt).call().content();
    }
    @Override
    public String getCategory() {
        return ChatModeType.CHAT.getCode();
    }
}