首先,为啥不用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();
    }

这个就比较简单咯

Logo

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

更多推荐