接上篇: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
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(); } }
接下篇: