pub

使用 Node.js 和 Axios 开始使用 Luma AI API

如何用 Node.js 和 Axios 使用 Luma AI API

嘿,最近 Lumalabs 可火了,他们的 Dream Machine 功能真是太厉害了,能用 AI 创造超赞的视频内容。你信不信?你可以用他们的 API 来体验这个魔法!在这篇指南中,我会教你如何用 Node.js 和 Axios 来封装 Luma AI 的 API,好让你用起来更方便。

1. 什么是 Lumalabs 和 Dream Machine?

在我们直接写代码之前,先聊聊 Lumalabs。它们是 Dream Machine 背后的天才,这个强大的 AI 工具能根据文本提示和图片生成视频。不管你是创意工作者,还是喜欢折腾 AI 的小伙伴,Dream Machine 都能给你打开一扇新大门。

2. 设置你的 Node.js 项目

首先咱们来创建一个 Node.js 项目。如果你还没开始,先新建一个项目目录,然后运行:

npm init -y

这条命令会创建一个基本的 Node.js 项目。接下来,你需要安装 Axios 来处理 HTTP 请求:

npm install axios form-data

我们会用 Axios 来处理对 Luma API 的请求。

3. 用 Axios 封装 Luma API

好了,现在来点有趣的吧!咱们来创建一个简单的封装函数,使用 Axios。下面是代码的简要介绍:

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

let data = new FormData();
data.append('arg_prompt', 'wind blows');
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 请求到 Luma 的 API。如果一切顺利,它会打印响应;反之,如果出错,它会捕获并打印错误。

4. 处理响应

一旦请求成功,Luma 的 API 会返回一个包含任务 ID 的响应。下面是你可能收到的示例:

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

4.1 任务 ID 有什么用?

任务 ID 就是你获取生成视频的“通行证”。Luma 会处理你的请求,然后把结果发送到你提供的回调 URL。

5. 处理回调

接下来聊一下回调。当 Luma 处理完后,它会把结果发送到你指定的服务器 URL。下面是一种可能的数据格式:

{
  "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 设置回调服务器

为了处理这个回调,你需要在回调 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. 总结

好了,没问题,你已经学会了怎么用 Node.js 和 Axios 集成 Luma AI 的 API。这只是一个开始,你可以在这个基础上继续开发更多高级功能,真正释放 Luma 的 Dream Machine 的潜力。

祝你编码愉快!