Commit 4ee638db87e7e7344be2dba888f06cb65d72a579

Authored by YunaiV
1 parent 430dc99d

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

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;
8 8 import lombok.Data;
9 9 import lombok.Getter;
10 10 import lombok.extern.slf4j.Slf4j;
11   -import org.springframework.http.HttpHeaders;
12 11 import org.springframework.http.HttpRequest;
13 12 import org.springframework.http.HttpStatusCode;
14 13 import org.springframework.http.MediaType;
... ... @@ -19,7 +18,6 @@ import reactor.core.publisher.Mono;
19 18 import java.util.Collection;
20 19 import java.util.List;
21 20 import java.util.Map;
22   -import java.util.function.Consumer;
23 21 import java.util.function.Function;
24 22 import java.util.function.Predicate;
25 23  
... ... @@ -52,19 +50,14 @@ public class MidjourneyApi {
52 50 public MidjourneyApi(String baseUrl, String apiKey, String notifyUrl) {
53 51 this.webClient = WebClient.builder()
54 52 .baseUrl(baseUrl)
55   - .defaultHeaders(getJsonContentHeaders(apiKey))
  53 + .defaultHeaders(httpHeaders -> {
  54 + httpHeaders.setContentType(MediaType.APPLICATION_JSON);
  55 + httpHeaders.setBearerAuth(apiKey);
  56 + })
56 57 .build();
57 58 this.notifyUrl = notifyUrl;
58 59 }
59 60  
60   - // TODO @芋艿:这里,看看怎么调整下???https://github.com/spring-projects/spring-ai/issues/741
61   - public static Consumer<HttpHeaders> getJsonContentHeaders(String apiKey) {
62   - return (headers) -> {
63   - headers.setBearerAuth(apiKey);
64   - headers.setContentType(MediaType.APPLICATION_JSON);
65   - };
66   - };
67   -
68 61 /**
69 62 * imagine - 根据提示词提交绘画任务
70 63 *
... ...
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;
15 15 public class MidjourneyApiTests {
16 16  
17 17 private final MidjourneyApi midjourneyApi = new MidjourneyApi(
18   - "https://api.holdai.top/mj",
19   - "sk-dZEPiVaNcT3FHhef51996bAa0bC74806BeAb620dA5Da10Bf",
  18 + "https://api.holdai.top/mj", // 链接
  19 + "sk-aN6nWn3fILjrgLFT0fC4Aa60B72e4253826c77B29dC94f17", // 密钥
20 20 null);
21 21  
22 22 @Test
... ...
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;
22 22 */
23 23 public class StabilityAiImageModelTests {
24 24  
25   - private final StabilityAiApi imageApi = new StabilityAiApi(
26   - "sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx");
27   - private final StabilityAiImageModel imageModel = new StabilityAiImageModel(imageApi);
  25 + private final StabilityAiImageModel imageModel = new StabilityAiImageModel(
  26 + new StabilityAiApi("sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx") // 密钥
  27 + );
28 28  
29 29 @Test
30 30 @Disabled
... ... @@ -32,7 +32,7 @@ public class StabilityAiImageModelTests {
32 32 // 准备参数
33 33 ImageOptions options = OpenAiImageOptions.builder()
34 34 .withModel("stable-diffusion-v1-6")
35   - .withHeight(256).withWidth(256)
  35 + .withHeight(320).withWidth(320)
36 36 .build();
37 37 ImagePrompt prompt = new ImagePrompt("great wall", options);
38 38  
... ...
yudao-server/src/main/resources/application.yaml
... ... @@ -186,9 +186,8 @@ yudao:
186 186 model: deepseek-chat
187 187 xinghuo: # 讯飞星火
188 188 enable: true
189   - appId: 13c8cca6
190   - appKey: cb6415c19d6162cda07b47316fcb0416
191   - secretKey: Y2JiYTIxZjA3MDMxMjNjZjQzYzVmNzdh
  189 + appKey: 75b161ed2aef4719b275d6e7f2a4d4cd
  190 + secretKey: YWYxYWI2MTA4ODI2NGZlYTQyNjAzZTcz
192 191 model: generalv3.5
193 192 midjourney:
194 193 enable: true
... ...