SpringBoot集成ChatGPT实现AI生成图片

514 阅读1分钟

前言

         前面分享过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