Spring AI(五) 文生图,图生图(豆包)

发布于:2025-09-15 ⋅ 阅读:(25) ⋅ 点赞:(0)

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

这个就比较简单咯