spring-ai 学习系列(6)-文生图

继续来学习spring-ai如何实现“文生图”

一、pom依赖

1 <dependency>
2     <groupId>org.springframework.ai</groupId>
3     <artifactId>spring-ai-starter-model-zhipuai</artifactId>
4     <version>1.0.0</version>
5 </dependency>
View Code

spring-ai支持多种文生图的模型,这里我们使用国产的智谱大模型,可以先免费体验 ,api-key申请地址:https://bigmodel.cn/usercenter/proj-mgmt/apikeys

二、yaml配置

spring:
  ai:
    zhipuai:
      api-key: ${zhipuai_api_key}

这里api-key换成真实的key

 

三、文生图代码

@GetMapping("/image/url")
public String genImageUrl(@RequestParam String prompt) {
    var options = ImageOptionsBuilder.builder().height(256).width(256).build();
    ImageResponse response = zhiPuAiImageModel.call(
            new ImagePrompt(prompt,
                    options));
    Image output = response.getResult().getOutput();
    return output.getUrl();
}

@GetMapping("/image/display")
public ResponseEntity<ByteArrayResource> displayImage(@RequestParam String prompt) {
    try {
        var options = ImageOptionsBuilder.builder().height(256).width(256).build();
        ImageResponse response = zhiPuAiImageModel.call(
                new ImagePrompt(prompt, options));
        Image output = response.getResult().getOutput();
        
        // 获取图片URL
        String imageUrl = output.getUrl();
        
        // 下载图片数据
        URL url = URI.create(imageUrl).toURL();
        byte[] imageData = url.openStream().readAllBytes();
        
        // 创建ByteArrayResource
        ByteArrayResource resource = new ByteArrayResource(imageData);
        
        // 设置响应头 - 直接在浏览器中显示
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.IMAGE_PNG);
        
        return ResponseEntity.ok()
                .headers(headers)
                .body(resource);
                
    } catch (IOException e) {
        return ResponseEntity.internalServerError().build();
    }
}

  

 运行效果:

文中代码:yjmyzz/spring-ai-sample at day05

 

参考:

https://docs.spring.io/spring-ai/reference/api/imageclient.html

spring-ai/models/spring-ai-zhipuai at aa590e839de2a8edc01f3c7cbdcf6a2a8ba57401 · spring-projects/spring-ai

posted @ 2025-07-12 23:20  菩提树下的杨过  阅读(324)  评论(0)    收藏  举报