Spring AI(五) 文生图,图生图(豆包)
首先,为啥不用Spring AI aibaba。是因为我现在运行的项目已经有,对于生图是有要求的,对比模型的话还是豆包和即梦在图片处理上更有优势。所以与其去改Spring AI aibaba,我就想的还不如改Spring AI咯。第一步就是重构OpenAiImageModel,这个怎么说呢,国内的大模型基本还是遵循OpenAI的规范。其实这里就是指定了下请求地址,因为框架里面有默认地址咯。
·
首先,为啥不用Spring AI aibaba。是因为我现在运行的项目已经有,对于生图是有要求的,对比模型的话还是豆包和即梦在图片处理上更有优势。所以与其去改Spring AI aibaba,我就想的还不如改Spring AI咯。
第一步就是重构OpenAiImageModel,这个怎么说呢,国内的大模型基本还是遵循OpenAI的规范。
@Configuration
public class ImageModelConfig {
@Value("${spring.ai.openai.image.options.images-path}")
private String imagesPath;
@Value("${spring.ai.openai.image.api-key}")
private String apiKey;
@Value("${spring.ai.openai.image.base-url}")
private String baseUrl;
@Value("${spring.ai.openai.image.options.model}")
private String model;
@Bean
public OpenAiImageModel openAiImageApi(){
OpenAiImageApi openAiImageApi = OpenAiImageApi.
builder().
baseUrl(baseUrl).
apiKey(apiKey).
imagesPath(imagesPath).build();
OpenAiImageOptions openAiImageOptions = OpenAiImageOptions.builder().model(model).build();
return new OpenAiImageModel(openAiImageApi,openAiImageOptions,new RetryTemplate());
}
}
其实这里就是指定了下请求地址,因为框架里面有默认地址咯。
第二步调用生图
@Autowired
private OpenAiImageModel openAiImageModel;
@GetMapping("/wb")
public String structuredOutput1(String msg){
ImageResponse response = openAiImageModel.call(
new ImagePrompt(msg,
OpenAiImageOptions.builder()
.quality("hd")
.N(4)
.height(1024)
.width(1024).build())
);
return response.getResult().getOutput().getUrl();
}
这个就比较简单咯

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)