From 0325d413502474062e1d400df319bfd390e94956 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 17 Sep 2025 16:12:40 +0800
Subject: [PATCH] feat(ai): 新增 AI 陪练相关功能

---
 src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
index bd1e116..7a158ef 100644
--- a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.ai.strategy.Impl;
 
+import cc.mrbird.febs.ai.enumerates.AiTypeEnum;
 import cc.mrbird.febs.ai.strategy.LlmStrategyService;
 import cc.mrbird.febs.ai.strategy.enumerates.LlmApplicationAppIdEnum;
 import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyContextEnum;
@@ -53,6 +54,23 @@
             }
         }
         return bizParamsMap;
+    }
+
+    private List<Message> getMessages(List<LlmStrategyDto> dto) {
+        List<Message> messages = new ArrayList<>();
+        for (LlmStrategyDto dtoItem : dto){
+            if (StrUtil.equals(AiTypeEnum.MESSAGES.getName(), dtoItem.getRole())){
+                List<LlmStrategyDto> messages1 = dtoItem.getMessages();
+                for (LlmStrategyDto dtoItem1 : messages1){
+                    messages.add(Message.builder()
+                            .role(dtoItem1.getRole())
+                            .content(dtoItem1.getContent())
+                            .build());
+                }
+                break;
+            }
+        }
+        return messages;
     }
 
     private String getQuery(List<LlmStrategyDto> dto) {
@@ -160,6 +178,7 @@
             throw new FebsException("百炼工作流初始化异常");
         }
         HashMap prompt = getPrompt(dto);
+        List<Message> messages = getMessages(dto);
         String query = getQuery(dto);
         String appId = getAppId(dto);
         if (prompt == null || prompt.size() == 0){
@@ -178,6 +197,7 @@
                 .appId(appId) //替换为实际的应用 ID
                 .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT)
                 .prompt(query)
+                .messages( messages)
                 .bizParams(JsonUtils.toJsonObject( prompt))
                 .build();
 

--
Gitblit v1.9.1