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