前言
前面分享过SpringBoot集成ChatGPT实现AI聊天,今天要分享的实际是ChatGPT的另一个用法,生成图片,直接就用上次已经搭好的框架,加个接口就ok了。废话不多说,直接上菜。
一、前置工作
之前有网友在我先前的博文下留言,现在这里先说清楚前置工作。 需要的前置工作如下:
- 官网去申请账号
- 官网下创建apiKey
二、使用步骤
1.引入库
没有新需要引入的库
2.接口代码
controller
/**
* Ai生成图片
*
* @param generateImagesRequest 请求参数
* @return
*/
@PostMapping("/aiImages")
public String aiImages(@RequestBody GenerateImagesRequest generateImagesRequest) {
return chartGPTService.aiImages(generateImagesRequest);
}
serviceImpl
@Override
public String aiImages(GenerateImagesRequest generateImagesRequest) {
JSONObject bodyJson = new JSONObject();
bodyJson.put("prompt", generateImagesRequest.getPrompt());
bodyJson.put("n", generateImagesRequest.getNum());
Map<String, Object> headMap = new HashMap<>();
headMap.put("Authorization", "Bearer " + apiKey);
String url = "https://api.openai.com/v1/images/generations";
HttpResponse httpResponse = HttpUtil.createPost(url)
.header(Header.AUTHORIZATION, "Bearer " + apiKey)
.body(JSONUtil.toJsonStr(bodyJson))
.execute();
String resStr = httpResponse.body();
return resStr;
}
GenerateImagesRequest
import lombok.Data;
/**
* @author zhengwen
*/
@Data
public class GenerateImagesRequest {
/**
* 提示
*/
private String prompt;
/**
* 系数(设置越高,重复越低)
*/
private float temperature;
/**
* 最大生成长度
*/
private int maxTokens;
/**
* 停止字符
*/
private String stop;
/**
* 生成数量
*/
private int logprobs;
/**
* 是否回显
*/
private boolean echo;
/**
* 生成图片数量
*/
private int num;
}
这个对象是用于接收传参的,实际上还有很多参数可用,可以去官网的images支持模块下查看详细api。
三、效果
构建测试接口请求自己的服务,但是遗憾的是没有返回图片的地址,但是事实证明请求已经到位了,现在就是要你花钱而已了。返回的提示详细很明确
总结
没啥好说的,仁者见仁智者见智吧。 希望能帮到大家,uping