logo
pub

Как начать работать с Luma AI API на Node.js и Axios

Как использовать AI API Luma с Node.js и Axios

Эй, вы слышали про Lumalabs? У них есть крутая фишка Dream Machine, которая позволяет создавать потрясающий видеоконтент с помощью ИИ. И знаете что? Вы можете использовать эту магию через их API! В этом гайде я расскажу, как использовать Node.js и Axios для обертывания API Luma, чтобы было проще работать внутри.

1. Что такое Lumalabs и Dream Machine?

Перед тем, как мы нырнем в код, давайте немного поговорим про Lumalabs. Они - гении, стоящие за Dream Machine, мощным инструментом ИИ, который генерирует видео на основе текстовых подсказок и изображений. Никакой разницы, если вы профессионал или просто человек, который любит играть с ИИ, Dream Machine открывает кучу возможностей.

2. Настройка проекта Node.js

Давайте начнем с настройки проекта Node.js. Если еще не сделали этого, создайте новую папку для вашего проекта и выполните команду:

npm init -y

Это создаст базовый проект Node.js. Далее вам нужно установить Axios для выполнения HTTP-запросов:

npm install axios form-data

Мы будем использовать Axios для обработки запросов к API Luma.

3. Обертывание API Luma с Axios

Ну что, теперь самое интересное! Давайте создадим простую обертку с помощью Axios. Вот краткий обзор кода:

const axios = require('axios');
const FormData = require('form-data');

let data = new FormData();
data.append('arg_prompt', 'ветер дует');
data.append('callback', 'http://127.0.0.1:3001/api/cb_task');

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.lumaapi.com/api/v1/generation/add',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

3.1 Понимание кода

  • FormData: Мы используем FormData, чтобы обработать тело запроса, которое будет включать подсказку и URL для обратного вызова.
  • Запрос Axios: Метод axios.request() отправляет POST-запрос к API Luma. Если все прошло гладко, он записывает ответ; если нет, то ловит и выводит ошибку.

4. Обработка ответа

Когда запрос успешно завершится, API Luma вернет ответ с идентификатором задачи. Вот пример того, что вы можете получить:

{
    "code": 0,
    "msg": "Ok",
    "data": {
        "task_id": "la1234-5678-xxxxxx"
    }
}

4.1 Что делать с идентификатором задачи?

Идентификатор задачи — это ваш билет для получения сгенерированного видео. API Luma обработает ваш запрос, а затем отправит результат на указанный URL для обратного вызова.

5. Обработка обратного вызова

Теперь давайте поговорим про обратный вызов. Когда Luma закончит обработку, он отправит результат на ваш сервер по указанному URL. Вот пример, как могут выглядеть данные:

{
  "code": 0,
  "msg": "строка",
  "detail": "строка",
  "data": {
    "task_id": "строка",
    "payload": {},
    "result": {
      "id": "строка",
      "prompt": "строка",
      "created_at": "2024-06-22T13:57:05.878000Z",
      "video": {
        "url": "строка",
        "download_video_url": "строка",
        "thumbnail": "строка",
        "width": 0,
        "height": 0
      }
    }
  }
}

5.1 Настройка вашего сервера для обратного вызова

Чтобы обрабатывать это, вам нужен сервер, который будет работать по URL для обратного вызова. Простой сервер на Node.js с Express будет отлично работать для этого. Вот базовый пример:

const express = require('express');
const app = express();

app.use(express.json());

app.post('/api/cb_task', (req, res) => {
  const data = req.body;
  console.log('Получен обратный вызов:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('Сервер работает на порту 3001');
});

6. Заключение

Вот и все! Вы только что узнали, как интегрировать API Luma AI с Node.js, используя Axios. Это только начало; вы можете развивать это дальше, создавая более сложные функции и действительно раскрывая потенциал Dream Machine от Luma.

Удачного кодинга!