From 1f7c85d6c632f50fd145bd8517933bd55202aef1 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 01 Sep 2025 16:18:34 +0800 Subject: [PATCH] feat(ai): 集成火山和阿里大模型 --- src/main/java/cc/mrbird/febs/ai/controller/TestController.java | 62 +++++++++++++++++-------------- 1 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/TestController.java b/src/main/java/cc/mrbird/febs/ai/controller/TestController.java index b106fb4..7d7f0fe 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/TestController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/TestController.java @@ -42,10 +42,7 @@ import com.alibaba.dashscope.exception.NoApiKeyException; import reactor.core.publisher.Flux; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Administrator @@ -155,18 +152,23 @@ if (StrUtil.isEmpty(dto.getQuestion())){ return Flux.just(new FebsResponse().fail().message("请输入问题")); } - LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); - Message systemMsg = Message.builder() - .role(Role.SYSTEM.getValue()) - .content(dto.getPrompt()) - .build(); - Message userMsg = Message.builder() - .role(Role.USER.getValue()) - .content(dto.getQuestion()) - .build(); - List<Message> messages = Arrays.asList(systemMsg, userMsg); - llmStrategyDto.setMessages(messages); - return llmStrategyFactory.getCalculationStrategyMap().get(LlmStrategyEnum.ALI.getName()).llmInvokeStreaming(llmStrategyDto); + + ArrayList<LlmStrategyDto> llmStrategyDtoList = new ArrayList<>(); + if (dto.getPrompt() != null){ + LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); + llmStrategyDto.setRole(Role.SYSTEM.getValue()); + llmStrategyDto.setContent(dto.getPrompt()); + llmStrategyDtoList.add(llmStrategyDto); + } + if (dto.getQuestion() != null){ + LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); + llmStrategyDto.setRole(Role.USER.getValue()); + llmStrategyDto.setContent(dto.getQuestion()); + llmStrategyDtoList.add(llmStrategyDto); + } + String modelName = LlmStrategyEnum.getName(dto.getType()); + + return llmStrategyFactory.getCalculationStrategyMap().get(modelName).llmInvokeStreaming(llmStrategyDtoList); } @@ -180,18 +182,22 @@ if (StrUtil.isEmpty(dto.getQuestion())){ return new FebsResponse().fail().message("请输入问题"); } - LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); - Message systemMsg = Message.builder() - .role(Role.SYSTEM.getValue()) - .content(dto.getPrompt()) - .build(); - Message userMsg = Message.builder() - .role(Role.USER.getValue()) - .content(dto.getQuestion()) - .build(); - List<Message> messages = Arrays.asList(systemMsg, userMsg); - llmStrategyDto.setMessages(messages); - return llmStrategyFactory.getCalculationStrategyMap().get(LlmStrategyEnum.ALI.getName()).llmInvokeNonStreaming(llmStrategyDto); + ArrayList<LlmStrategyDto> llmStrategyDtoList = new ArrayList<>(); + if (dto.getPrompt() != null){ + LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); + llmStrategyDto.setRole(Role.SYSTEM.getValue()); + llmStrategyDto.setContent(dto.getPrompt()); + llmStrategyDtoList.add(llmStrategyDto); + } + if (dto.getQuestion() != null){ + LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); + llmStrategyDto.setRole(Role.USER.getValue()); + llmStrategyDto.setContent(dto.getQuestion()); + llmStrategyDtoList.add(llmStrategyDto); + } + String modelName = LlmStrategyEnum.getName(dto.getType()); + + return llmStrategyFactory.getCalculationStrategyMap().get(modelName).llmInvokeNonStreaming(llmStrategyDtoList); } -- Gitblit v1.9.1