- 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 的潜力。
祝你编码愉快!