Sfoglia il codice sorgente

feat(ai): 更新AI促销图片生成功能接口

- 修改AlienAIFeign接口参数类型从JsonNode改为Map<String, String>
- 添加generatePromotionImage方法的详细文档说明
- 在OperationalActivityServiceImpl中使用Collections.singletonMap替换requestBody
- 优化AI图片生成接口调用的数据传递方式
- 统一两个位置的促销图片生成逻辑实现
fcw 3 mesi fa
parent
commit
cbd579d160

+ 7 - 5
alien-store-platform/src/main/java/shop/alien/storeplatform/feign/AlienAIFeign.java

@@ -6,6 +6,8 @@ import org.springframework.http.MediaType;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 @FeignClient(url = "${feign.alienAI.url}", name = "alien-AI")
 public interface AlienAIFeign {
 
@@ -22,16 +24,16 @@ public interface AlienAIFeign {
     JsonNode login(@RequestBody MultiValueMap<String, String> formData);
 
     /**
-     * 使用 JsonNode 灵活调用接口 - 生成促销图片
+     * 生成促销图片。请求体格式:{"text": "图片描述内容"}
      *
      * @param authorization Bearer token,格式为 "Bearer {access_token}"
-     * @param requestBody JsonNode 请求体,可以灵活构建
+     * @param requestBody 请求体,需包含 key "text",值为图片描述。例如:Map.of("text", "描述内容")
      * @return JsonNode 响应体,可以灵活解析
      */
     @PostMapping(value = "/ai/life-manager/api/v1/promotion_image/generate",
-                 consumes = MediaType.APPLICATION_JSON_VALUE,
-                 produces = MediaType.APPLICATION_JSON_VALUE)
-    JsonNode generatePromotionImage(@RequestHeader("Authorization") String authorization, @RequestBody JsonNode requestBody);
+            consumes = MediaType.APPLICATION_JSON_VALUE,
+            produces = MediaType.APPLICATION_JSON_VALUE)
+    JsonNode generatePromotionImage(@RequestHeader("Authorization") String authorization, @RequestBody Map<String, String> requestBody);
 
 //    /**
 //     * 使用 JsonNode 灵活调用接口 - 发起AI审核(多模态)

+ 3 - 2
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivityServiceImpl.java

@@ -43,6 +43,7 @@ import shop.alien.util.common.Constants;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -218,7 +219,7 @@ public class OperationalActivityServiceImpl implements OperationalActivityServic
                                 dto.getImgDescribe()
                         );
                         requestBody.put("text", filled);
-                        JsonNode imgResponse = alienAIFeign.generatePromotionImage(authorization, requestBody);
+                        JsonNode imgResponse = alienAIFeign.generatePromotionImage(authorization, Collections.singletonMap("text", filled));
                         // 解析响应
                         if (imgResponse.has("data")) {
                             JsonNode data = imgResponse.get("data");
@@ -380,7 +381,7 @@ public class OperationalActivityServiceImpl implements OperationalActivityServic
                             dto.getImgDescribe()
                     );
                     requestBody.put("text", filled);
-                    JsonNode imgResponse = alienAIFeign.generatePromotionImage(authorization, requestBody);
+                    JsonNode imgResponse = alienAIFeign.generatePromotionImage(authorization, Collections.singletonMap("text", filled));
                     // 解析响应
                     if (imgResponse.has("data")) {
                         JsonNode data = imgResponse.get("data");