Skip to main content

Запит до OpenAI

Крок 1. Створення запиту у середовищі Node Red.

У середовищі Node Red створюємо endpoint, який зробить запит до OpenAI API та поверне нам посилання на  зображення. 

Знадобляться вузли:

  • http in( метод POST);
  • function. У тілі функції вказуємо всі необхіні дані для того, щоб зробити запит до openAI.  Спершу необхідно зареєструватися на сайті openAI. Після цього зайдіть в свій акаутн та створіть власний ключ.

    image.png


    image.png 



    Обов'язково ознайомтеся з документацією! 

    Замість YOUR_API_KEY у функції вставте власний ключ. Решта налаштувань залишається без зміни.
msg.token = `Bearer YOUR_API_KEY`
msg.oldpayload=msg.payload;
msg.url=`https://api.openai.com/v1/images/generations`;
msg.method="POST";

msg.headers={ 
"Content-Type": "application/json",
  "Authorization": "Bearer  YOUR_API_KEY"
  }

msg.payload={
    "prompt": msg.oldpayload.content,
    "n": msg.oldpayload.count,
    "size":"512x512"
  }

return msg;
  • http request. Method -set by msg.method-. URL - не пишемо. Вказуємо, що повернути треба parsed JSON object.

    image.png

  • function. Перевіряємо, який status code отримали. Якщо 200, то зберагіємо час, коли отримали дані(date), записуємо час, коли посилання буде недійсне(expireTime). До кожного об'єкта додаємо:  текст, на основі якого ми отримали дані зображення (msg.oldpayload.content),  дату створення та час, коли посилання буде недійсне. Якщо status code інший - повертаємо помилку. 
    if (msg.statusCode==200){
        var date = new Date();
        var expireTime = new Date(Date.now() + (1 * 60 * 60 * 1000)); 
    
    msg.payload=msg.payload.data.map((el)=>{return{
        img: el.url,
        text: msg.oldpayload.content,
        date: date,
        expireTime: expireTime,
    }})
    }
    else{    
        msg.payload = msg.payload.error.message;  
        
    }
    return msg;
  • http response


    Ось такий вигляд має весь endpoint:

    image.png

Крок 2. UI частина

Створюємо API, яка викликає створeний нами endpoint.  

image.png

image.png


Шлях до флову містить:

  • посилання на Node Red

    image.png

  • URL вказаний у HTTP in node

    image.png

    image.png


У тілі передаємо значення з віджетів input та slider.

image.png

image.png

API викликається при кліці на кнопку.

Дані, які API  повертає має відображати віджет carousel. Значення віджету visibleSlides впишіть на ваш розсуд (на прикладі 4).

image.png

Важливо: віджет каруселі відображає ті зображення, які записані під ключем "img".

Очікуваний результат:

image.png