瀏覽代碼

【代码优化】AI:适配 Spring AI 1.0.6 对 sd、mj 的兼容

YunaiV 5 月之前
父節點
當前提交
4ee638db87

+ 4 - 11
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java

@@ -8,7 +8,6 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpRequest;
 import org.springframework.http.HttpStatusCode;
 import org.springframework.http.MediaType;
@@ -19,7 +18,6 @@ import reactor.core.publisher.Mono;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
@@ -52,19 +50,14 @@ public class MidjourneyApi {
     public MidjourneyApi(String baseUrl, String apiKey, String notifyUrl) {
         this.webClient = WebClient.builder()
                 .baseUrl(baseUrl)
-                .defaultHeaders(getJsonContentHeaders(apiKey))
+                .defaultHeaders(httpHeaders -> {
+                    httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+                    httpHeaders.setBearerAuth(apiKey);
+                })
                 .build();
         this.notifyUrl = notifyUrl;
     }
 
-    // TODO @芋艿:这里,看看怎么调整下???https://github.com/spring-projects/spring-ai/issues/741
-    public static Consumer<HttpHeaders> getJsonContentHeaders(String apiKey) {
-        return (headers) -> {
-            headers.setBearerAuth(apiKey);
-            headers.setContentType(MediaType.APPLICATION_JSON);
-        };
-    };
-
     /**
      * imagine - 根据提示词提交绘画任务
      *

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/MidjourneyApiTests.java

@@ -15,8 +15,8 @@ import java.util.List;
 public class MidjourneyApiTests {
 
     private final MidjourneyApi midjourneyApi = new MidjourneyApi(
-            "https://api.holdai.top/mj",
-            "sk-dZEPiVaNcT3FHhef51996bAa0bC74806BeAb620dA5Da10Bf",
+            "https://api.holdai.top/mj", // 链接
+            "sk-aN6nWn3fILjrgLFT0fC4Aa60B72e4253826c77B29dC94f17", // 密钥
             null);
 
     @Test

+ 4 - 4
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/StabilityAiImageModelTests.java

@@ -22,9 +22,9 @@ import java.util.concurrent.TimeUnit;
  */
 public class StabilityAiImageModelTests {
 
-    private final StabilityAiApi imageApi = new StabilityAiApi(
-            "sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx");
-    private final StabilityAiImageModel imageModel = new StabilityAiImageModel(imageApi);
+    private final StabilityAiImageModel imageModel = new StabilityAiImageModel(
+            new StabilityAiApi("sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx") // 密钥
+    );
 
     @Test
     @Disabled
@@ -32,7 +32,7 @@ public class StabilityAiImageModelTests {
         // 准备参数
         ImageOptions options = OpenAiImageOptions.builder()
                 .withModel("stable-diffusion-v1-6")
-                .withHeight(256).withWidth(256)
+                .withHeight(320).withWidth(320)
                 .build();
         ImagePrompt prompt = new ImagePrompt("great wall", options);
 

+ 2 - 3
yudao-server/src/main/resources/application.yaml

@@ -186,9 +186,8 @@ yudao:
       model: deepseek-chat
     xinghuo: # 讯飞星火
       enable: true
-      appId: 13c8cca6
-      appKey: cb6415c19d6162cda07b47316fcb0416
-      secretKey: Y2JiYTIxZjA3MDMxMjNjZjQzYzVmNzdh
+      appKey: 75b161ed2aef4719b275d6e7f2a4d4cd
+      secretKey: YWYxYWI2MTA4ODI2NGZlYTQyNjAzZTcz
       model: generalv3.5
     midjourney:
       enable: true