pub

Começando com a API de AI Luma Usando Node.js e Axios

Como Usar a API de Luma AI com Node.js e Axios

Então, galera! O Lumalabs tá fazendo bastante sucesso com a sua funcionalidade Dream Machine, que permite criar conteúdos de vídeo incríveis usando IA. E adivinha? Você pode aproveitar essa magia usando a API deles! Aqui, vou te mostrar como usar Node.js e Axios para facilitar o uso da API do Luma AI.

1. O que é Lumalabs e Dream Machine?

Antes de a gente ir pro código, vamos falar rapidinho sobre o Lumalabs. Eles são os caras por trás do Dream Machine, um super ferramenta de IA que gera vídeos baseados em textos e imagens. Se você é um profissional criativo ou só gosta de brincar com IA, o Dream Machine abre um mundo de possibilidades.

2. Configurando Seu Projeto Node.js

Vamos lá, começando a configurar um projeto Node.js. Se você ainda não fez, crie um diretório novo pro seu projeto e roda o seguinte comando:

npm init -y

Isso vai criar um projeto básico de Node.js. Agora, você precisa instalar o Axios pra fazer as requisições HTTP:

npm install axios form-data

A gente vai usar o Axios pra lidar com as requisições pra API do Luma.

3. Envolvendo a API do Luma com Axios

Beleza, agora vem a parte legal! Vamos criar uma função simples de wrapper usando o Axios. Aqui tá um resuminho do código:

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

let data = new FormData();
data.append('arg_prompt', 'vento soprando');
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 Entendendo o Código

  • FormData: A gente usa o FormData pra lidar com o corpo da requisição, que vai incluir o prompt e a URL de callback.
  • Requisição Axios: O método axios.request() manda a requisição POST pra API do Luma. Se tudo der certo, ele loga a resposta; se não, captura e loga o erro.

4. Lidando com a Resposta

Uma vez que a requisição seja bem-sucedida, a API do Luma vai devolver uma resposta com um ID de tarefa. Olha um exemplo do que você pode receber:

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

4.1 O Que Fazer com o ID da Tarefa?

O ID da tarefa é a sua chave pra pegar o vídeo gerado. A Luma vai processar sua requisição e depois vai mandar o resultado pra URL de callback que você forneceu.

5. Lidando com o Callback

Agora vamos falar do callback. Quando a Luma terminar de processar, ela vai mandar o resultado pro seu servidor na URL que você especificou. Aqui tá um exemplo do que os dados podem parecer:

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

5.1 Configurando Seu Servidor de Callback

Pra lidar com isso, você vai precisar de um servidor rodando na URL de callback. Um servidor simples em Node.js com Express funcionaria super bem pra isso. Aqui tá um exemplo básico:

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

app.use(express.json());

app.post('/api/cb_task', (req, res) => {
  const data = req.body;
  console.log('Callback recebido:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('Servidor rodando na porta 3001');
});

6. Conclusão

E aí tá! Você acabou de aprender como integrar a API do Luma AI com Node.js usando Axios. Isso é só o começo; você pode construir em cima disso pra criar funcionalidades mais avançadas e realmente explorar o potencial do Dream Machine do Luma.

Boa programação!