Spring AI(绘图)

接上篇:Spring AI(聊天程序)

application.yml新增配置

image模型版本、数量、高度等相关参数配置,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的

      # ai绘图设置
      image:
        options:
          # 模型版本
          model: gpt-4-dalle
          # 图片质量
          quality: hd
          # 数量
          n: 2
          # 高度
          height: 1920
          # 宽度
          width: 1080

application.yml文件如下

spring:
  application:
    name: spring-ai
  ai:
    openai:
      # 访问open ai接口的api key
      api-key: sk-3sfER03LDLG3SDFsdlwe283JSdw023lkrmrHDND32fmREKFD
      # 访问open ai的接口地址
      base-url: https://openai.com/

      # ai聊天设置
      chat:
        options:
          # chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的
          model: gpt-4-32k
          # 温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的
          temperature: 0.3F

      # ai绘图设置
      image:
        options:
          # 模型版本
          model: gpt-4-dalle
          # 图片质量
          quality: hd
          # 数量
          n: 2
          # 高度
          height: 1920
          # 宽度
          width: 1080
View Code

1、AI绘图(调用一次接口)

/**
 * ai绘图
 * @author ithailin
 */
@RestController
@RequestMapping("/ai")
public class ImageController {
    private static final Logger logger = LoggerFactory.getLogger(ImageController.class);
    @Autowired
    private OpenAiImageModel openAiImageModel;

    /**
     * 调用openai的接口
     * public ImageResponse call(ImagePrompt imagePrompt){}
     * @param msg:我们提问的消息
     * @return
     */
    @RequestMapping("/image")
    public Object image(String msg){
        logger.info("msg:{}",msg );
        ImagePrompt imagePrompt = new ImagePrompt(msg);
        ImageResponse imageResponse = openAiImageModel.call(imagePrompt);
        String imageUrl = imageResponse.getResult().getOutput().getUrl();
        logger.info("imageUrl:{}",imageUrl);
        return imageResponse.getResult().getOutput().getUrl();
    }

    /**
     * 调用openai的接口
     * public ImageResponse call(ImagePrompt imagePrompt){}
     * @param msg:我们提问的消息
     * @return
     */
    @RequestMapping("/image2")
    public Object image2(String msg){
        logger.info("msg:{}",msg );

        OpenAiImageOptions imageOptions = OpenAiImageOptions.builder()
                //高清图像
                .withQuality("hd")
                //生成四张
                .withN(4)
                //高度
                .withHeight(1024)
                //宽度
                .withWidth(1024).build();

        ImagePrompt imagePrompt = new ImagePrompt(msg,imageOptions);
        ImageResponse imageResponse = openAiImageModel.call(imagePrompt);
        String imageUrl = imageResponse.getResult().getOutput().getUrl();
        logger.info("imageUrl:{}",imageUrl);
        return imageResponse.getResult().getOutput().getUrl();
    }
}
View Code

 

接下篇:

posted @ 2024-07-16 14:32  DHaiLin  阅读(2)  评论(0编辑  收藏  举报