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>
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
作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号