Advertisement
Namokonov

gpt_image

Feb 13th, 2023
1,308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //сюда вводим наш API-ключ, получать здесь https://beta.openai.com/account/api-keys
  2. const t = '';
  3.  
  4. function gpt_image() {
  5.   //адрес API, на который будем обращаться
  6.   const url = 'https://api.openai.com/v1/images/generations';
  7.  
  8.   //обращаемся к нашей таблице и к листу
  9.   const ss = SpreadsheetApp.getActive();
  10.   const sh = ss.getSheetByName('IMAGE');
  11.  
  12.   //забираем значение для запроса
  13.   const [prompt, n, size] = sh.getRange("A2:C2").getValues()[0];
  14.  
  15.  
  16.   // https://platform.openai.com/docs/api-reference/images/create
  17.   const request = r(url, 'post', t, {
  18.     "prompt": prompt,
  19.     "n": n,
  20.     "size": size
  21.   });
  22.  
  23.   //извлекаем либо ответ, либо, если ответа нет (как правило, это какая-то ошибка) - возвращаем целиком запрос
  24.   var response = request?.data?.map(f => f?.url) || request;
  25.   response = [[new Date(), [prompt, n, size].join("|")].concat(response)];
  26.   Logger.log(response)
  27.  
  28.   //вставляем на наш лист строку перед 3й строкой
  29.   sh.insertRowBefore(3);
  30.  
  31.   //и вставляем в эту строчку дату и время, аргументы запроса и сам ответ
  32.   sh.getRange(3, 7, response.length, response[0].length).setValues(response);
  33.  
  34. }
  35.  
  36. function r(url, method, token, data) {
  37.   let params = {
  38.     method: method,
  39.     muteHttpExceptions: true,
  40.     contentType: 'application/json;',
  41.     payload: JSON.stringify(data),
  42.     'headers': {
  43.       Authorization: 'Bearer ' + token
  44.     }
  45.   };
  46.  
  47.   var r = UrlFetchApp.fetch(url, params);
  48.   r = JSON.parse(r)
  49.   return r;
  50. };
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement