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

This commit is contained in:
YunaiV 2025-02-23 18:47:35 +08:00
parent 430dc99d12
commit 4ee638db87
4 changed files with 12 additions and 20 deletions

View File

@ -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 - 根据提示词提交绘画任务
*

View File

@ -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

View File

@ -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);

View File

@ -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