pub

Node.js ve Axios ile Luma AI API'sine Başlarken

Luma AI API'sini Node.js ve Axios ile Kullanma

Lumalabs, harika Dream Machine özelliğiyle gündeme damga vurdu. Bu özellik sayesinde AI kullanarak muhteşem video içerikleri oluşturabiliyorsun. Ve tahmin et ne oldu? Bu sihirli dünya, API'si sayesinde parmaklarının ucunda! Bu rehberde sana, Luma AI'nin API'sini kullanarak Node.js ve Axios ile nasıl kolayca hale getireceğini göstereceğim.

1. Lumalabs Nedir ve Dream Machine?

Koda girmeden önce, önce biraz Lumalabs'yi konuşalım. Bu grup, Dream Machine adında güçlü bir AI aracı geliştiriyor. Bu araç, metin ve görsellerden yola çıkarak videolar oluşturuyor. Yani, eğer yaratıcı bir profesyonelsen ya da AI ile oynamayı seven birisin, Dream Machine sana harika fırsatlar sunuyor.

2. Node.js Projeni Kurma

Hadi şimdi bir Node.js projesi oluşturalım. Eğer daha önce yapmadıysan, yeni bir dizin oluştur ve şunu çalıştır:

npm init -y

Bu, temel bir Node.js projesi başlatır. Sonra, HTTP istekleri göndermek için Axios'u yüklemen gerekiyor:

npm install axios form-data

Axios'u, Luma’in API'sine istek göndermek için kullanacağız.

3. Luma API'sini Axios ile Sarma

Tamam, şimdi eğlenceli kısma geldik! Hadi Axios kullanarak basit bir sarıcı fonksiyonu oluşturalım. İşte kodun kısa bir özeti:

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

let data = new FormData();
data.append('arg_prompt', 'rüzgar esiyor');
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 Kodun Anlaşılması

  • FormData: FormData'yı, isteğin gövdesini oluşturmak için kullanıyoruz. Yani, buraya istemci istemciden gelecek olan istemi ve geri arama URL'sini ekliyoruz.
  • Axios İsteği: axios.request() metodu ile Luma API'sine POST isteği gönderiliyor. Her şey yolunda giderse, yanıtı yazdırıyor; bir sorun olursa, hatayı yakalayıp yazdırıyor.

4. Yanıtı İşleme

İstek başarılı olduğunda, Luma’in API'si bir görev ID'si ile yanıt dönecek. İşte alabileceğin bir örnek:

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

4.1 Görev ID'si ile Ne Yapmalısın?

Görev ID'si, oluşturulan videoyu almak için biletin. Luma isteğini işler ve sonucunu belirttiğin geri arama URL'sine gönderir.

5. Geri Arama İşleme

Hadi geri aramayı konuşalım. Luma işlemi bitirdiğinde, sonucu belirttiğin URL'ye gönderecek. İşte alabileceğin bir veri örneği:

{
  "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 Geri Arama Sunucunu Kurma

Bunu işlemek için, geri arama URL'sinde çalışacak bir sunucuya ihtiyacın var. Basit bir Node.js Express sunucusu bunu harika bir şekilde yapabilir. İşte basit bir örnek:

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

app.use(express.json());

app.post('/api/cb_task', (req, res) => {
  const data = req.body;
  console.log('Geri arama alındı:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('3001 portunda sunucu çalışıyor');
});

6. Sonuç

İşte bu kadar! Luma AI’nin API'sini Node.js ile Axios kullanarak entegre etmeyi öğrendin. Bu işin sadece başlangıcı; bunun üzerine inşa ederek daha gelişmiş özellikler oluşturabilir ve Luma’in Dream Machine'tan en iyi şekilde yararlanabilirsin.

Hadi kodlamaya devam!