logo
pub

بدء استخدام واجهة برمجة تطبيقات Luma AI مع Node.js و Axios

كيف تستخدم واجهة برمجة التطبيقات Luma AI مع Node.js و Axios

Lumalabs قاعده تطلع بالموضوع بشكل كبير مع ميزه Dream Machine، اللي تتيح لك تنشئ محتوى فيديو رهيب باستخدام الذكاء الاصطناعي. وتخيل شنو؟ تقدر تستخدم السحر هذا من خلال واجهتهم! في هذا الدليل، بوريك كيف تستخدم Node.js و Axios لتلف Luma AI API عشان تسهل الاستخدام الداخلي.

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 عشان نتعامل مع الطلبات لواجهة برمجة التطبيقات Luma.

3. لف واجهة 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 عشان نتعامل مع جسم الطلب، اللي فيه النص ورابط الاستجابة.
  • طلب Axios: دالة axios.request() ترسل الطلب من نوع POST لواجهة Luma. إذا كل شيء مشي تمام، بتظهر الاستجابة؛ إذا ما جت، ت Catch وتظهر الخطأ.

4. التعامل مع الاستجابة

لما الطلب يكون ناجح، واجهة Luma بترد باستجابة فيها معرف المهمة. هنا مثال على اللي ممكن تحصل عليه:

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

4.1 وش تسوي بمعرف المهمة؟

معرف المهمة هو تذكرتك عشان تسترجع الفيديو المتولد. Luma بتعالج طلبك بعدين ترسل النتيجة للرابط الاستجابة اللي حطيته.

5. التعامل مع الاستجابة من الخادم

خلنا نتكلم عن الاستجابة. لما Luma ينتهي من المعالجة، بيرسل النتيجة لخادمك على الرابط اللي حددته. هنا مثال للبيانات اللي ممكن تشوفها:

{
  "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 إعداد خادم الاستجابة

عشان تتعامل مع هذا، تحتاج خادم يعمل على رابط الاستجابة. خادم بسيط باستخدام 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. الخاتمة

وهذا كل شيء! الحين تعلمت كيف تدمج واجهة Luma AI مع Node.js باستخدام Axios. هذي بس بداية الطريق؛ تقدر تطور على هذا وتبني ميزات أكثر وتستغل إمكانيات Dream Machine.

ترى استمتع بالبرمجة!