pub

Iniziare a usare l'API Luma AI con Node.js e Axios

Come Usare l'API di Luma AI con Node.js e Axios

Lumalabs sta facendo parlare di sé con la sua fantastica funzione Dream Machine, che ti permette di creare contenuti video straordinari usando l'AI. E indovina un po'? Puoi sfruttare questa magia usando la loro API! In questa guida, ti mostro come usare Node.js e Axios per “incapsulare” l'API di Luma AI e renderla facile da usare internamente.

1. Che Cos'è Lumalabs e Dream Machine?

Prima di tuffarci nel codice, parliamo un po' di Lumalabs. Sono i geni dietro Dream Machine, un potente strumento AI che genera video basati su suggerimenti di testo e immagini. Che tu sia un professionista creativo o solo uno che adora smanettare con l'AI, Dream Machine apre un mondo di possibilità.

2. Impostare il Tuo Progetto Node.js

Partiamo configurando un progetto Node.js. Se non lo hai già fatto, crea una nuova cartella per il tuo progetto e lancia:

npm init -y

Questo ti aiuterà a impostare un progetto Node.js base. Poi, dovrai installare Axios per fare richieste HTTP:

npm install axios form-data

Useremo Axios per gestire le richieste all'API di Luma.

3. Incapsulare l'API di Luma con Axios

Ok, ora arriva la parte divertente! Creiamo una semplice funzione di incapsulamento usando Axios. Ecco una rapida panoramica del codice:

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

let data = new FormData();
data.append('arg_prompt', 'il vento soffia');
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 Capire il Codice

  • FormData: Stiamo usando FormData per gestire il corpo della richiesta, che includerà il suggerimento e l'URL di callback.
  • Richiesta Axios: Il metodo axios.request() invia la richiesta POST all'API di Luma. Se tutto va bene, stampa la risposta; in caso contrario, cattura e stampa l'errore.

4. Gestire la Risposta

Una volta che la richiesta va a buon fine, l'API di Luma restituirà una risposta con un ID compito. Ecco un esempio di cosa potresti ricevere:

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

4.1 Cosa Fare con l'ID Compito?

L'ID compito è il tuo biglietto per recuperare il video generato. Luma elaborerà la tua richiesta e poi invierà il risultato all'URL di callback che hai fornito.

5. Gestire il Callback

Parliamo del callback. Quando Luma ha finito di elaborare, invierà il risultato al tuo server all'URL specificato. Ecco un esempio di come potrebbe apparire il dato:

{
  "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 Impostare il Tuo Server di Callback

Per gestire questo, avrai bisogno di un server in esecuzione all'URL di callback. Un semplice server Node.js con Express funzionerebbe alla grande. Ecco un esempio base:

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 ricevuto:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('Server in esecuzione sulla porta 3001');
});

6. Conclusione

Ecco fatto! Hai appena imparato come integrare l'API di Luma AI con Node.js usando Axios. Questo è solo l'inizio; puoi costruire su questo per creare funzionalità più avanzate e davvero sbloccare il potenziale di Dream Machine di Luma.

Buon coding!