|
@@ -15,6 +15,7 @@ import org.springframework.ai.chat.client.ChatClient;
|
|
import org.springframework.ai.mcp.SyncMcpToolCallbackProvider;
|
|
import org.springframework.ai.mcp.SyncMcpToolCallbackProvider;
|
|
import org.springframework.ai.openai.OpenAiChatOptions;
|
|
import org.springframework.ai.openai.OpenAiChatOptions;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -29,6 +30,10 @@ public class OpenAIServiceImpl implements IChatService {
|
|
|
|
|
|
private OpenAiStreamClient openAiStreamClient;
|
|
private OpenAiStreamClient openAiStreamClient;
|
|
|
|
|
|
|
|
+
|
|
|
|
+ @Value("${spring.ai.mcp.client.enabled}")
|
|
|
|
+ private Boolean enabled;
|
|
|
|
+
|
|
private final ChatClient chatClient;
|
|
private final ChatClient chatClient;
|
|
|
|
|
|
public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, List<McpSyncClient> mcpSyncClients) {
|
|
public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, List<McpSyncClient> mcpSyncClients) {
|
|
@@ -43,10 +48,12 @@ public class OpenAIServiceImpl implements IChatService {
|
|
public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) {
|
|
public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) {
|
|
ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
|
|
ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel());
|
|
openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
|
|
openAiStreamClient = ChatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey());
|
|
- String toolString = mcpChat(chatRequest.getPrompt());
|
|
|
|
- Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.USER).build();
|
|
|
|
List<Message> messages = chatRequest.getMessages();
|
|
List<Message> messages = chatRequest.getMessages();
|
|
- messages.add(userMessage);
|
|
|
|
|
|
+ if (enabled) {
|
|
|
|
+ String toolString = mcpChat(chatRequest.getPrompt());
|
|
|
|
+ Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.USER).build();
|
|
|
|
+ messages.add(userMessage);
|
|
|
|
+ }
|
|
SSEEventSourceListener listener = new SSEEventSourceListener(emitter);
|
|
SSEEventSourceListener listener = new SSEEventSourceListener(emitter);
|
|
ChatCompletion completion = ChatCompletion
|
|
ChatCompletion completion = ChatCompletion
|
|
.builder()
|
|
.builder()
|