Mage SDK · TypeScript
SDK TypeScript برای Mage
از Node.js تصویر، ویدیو و صدا تولید کنید، با پیکربندی تایپدار برای تکتک مدلهای Mage. یک فراخوانی ارسال میکند، منتظر میماند و نتیجه را برمیگرداند.
npm install @mage-space/sdkدر یک نگاه
SDK TypeScript برای Mage کلاینت رسمی و متنباز API Mage است که با نام @mage-space/sdk منتشر شده. آن را با "npm install @mage-space/sdk" نصب کنید، MAGE_API_KEY را تنظیم کنید و mage.run را با شناسهی مدل و یک پیکربندی صدا بزنید تا از هر یک از ۲۸ مدل، تصویر، ویدیو یا صدای نهایی بگیرید. روی Node.js نسخهی 20.19 یا بالاتر، یا هر محیط اجرای سروری که fetch دارد، کار میکند و هزینهی هر تولید با Gems پرداخت میشود.
- 20.19+Node.js
- 0وابستگیهای زمان اجرا
- 28مدلهای تایپدار
- MITمتنباز
راهاندازی
SDK TypeScript را نصب کنید و یک مدل اجرا کنید
نصب بسته
@mage-space/sdk را به پروژهتان اضافه کنید.
npm install @mage-space/sdkکلید API را تنظیم کنید
در mage.space از بخش API ← API Keys یک کلید بسازید و آن را export کنید. کلاینت، MAGE_API_KEY را میخواند.
export MAGE_API_KEY="mage_sk_..."تولید
run را با شناسهی مدل و پیکربندیاش صدا بزنید. منتظر نتیجه میماند و آن را برمیگرداند؛ خروجی در result.url است.
import Mage from '@mage-space/sdk'; const mage = new Mage(); // reads MAGE_API_KEY const request = await mage.run('mango', { prompt: 'Editorial portrait in soft daylight, 35mm film look', aspect_ratio: '4:5', model_id: 'mango-v3', }); console.log(request.result.url);
نمونهها
SDK TypeScript در عمل
هر نمونه از کلاینتی شروع میشود که MAGE_API_KEY را میخواند.
حالا ارسال، بعداً انتظار
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const submitted = await mage.generate('cherry', {
prompt: 'Waves rolling onto a black sand beach at sunset',
resolution: '720p',
duration: '5',
});
const final = await mage.requests.wait(submitted.request_id, {
timeout: 15 * 60_000,
onUpdate: (request) => console.log(request.status),
});آپلود فایل
import { readFile } from 'node:fs/promises';
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
const clip = await mage.uploads.upload(await readFile('clip.mp4'), {
contentType: 'video/mp4',
});
await mage.run('cherry', {
prompt: 'Restyle this clip as a watercolor painting',
videos: [clip.url],
});استفاده از Character ذخیرهشده
import Mage from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
await mage.characters.create({
name: 'Ana',
handle: 'ana',
image: 'https://example.com/ana.png',
});
await mage.run('mango', { prompt: '@ana walking through a night market' });مدیریت خطاها
import Mage, { MageAPIError, MageGenerationError } from '@mage-space/sdk';
const mage = new Mage(); // reads MAGE_API_KEY
try {
await mage.run('mango', { prompt: 'A lighthouse at night' });
} catch (error) {
if (error instanceof MageAPIError && error.code === 'insufficient_gems') {
// Top up Gems, then try again.
} else if (error instanceof MageGenerationError) {
console.log('No output:', error.code);
} else {
throw error;
}
}چرا SDK
کارهایی که SDK برایتان انجام میدهد
یک فراخوانی، رسانه آماده
run تولید را ارسال میکند، با backoff پیشنهادی API پولینگ میکند و در نهایت درخواست تکمیلشده را همراه با result.url برمیگرداند.
تلاش مجدد بدون پرداخت دوباره
هر درخواست یک کلید idempotency دارد. خطاهای شبکه و سرور با backoff دوباره امتحان میشوند و برای درخواست تکراری هرگز دوباره هزینه کسر نمیشود.
آپلود با یک فراخوانی
فایلهایی که برای data URL بزرگاند با آپلود امضاشده ارسال میشوند و بلیت، PUT و بررسی اندازه را خود SDK انجام میدهد.
خطاهای روشن
رد شدن درخواستها در API همراه با وضعیت HTTP، کد خطا و شناسه درخواست میآید؛ تولیدهای ناموفق یا لغوشده و تایماوتها نوع خطای خودشان را دارند.
تایپدار برای هر مدل
MangoConfig، CherryConfig و بقیه از روی مستندات API تولید میشوند، پس ویرایشگر شما فیلدها را تکمیل میکند و گزینههای نامعتبر را نشان میدهد.
بدون وابستگی
ESM بدون هیچ وابستگی زمان اجرا. از fetch داخلی Node.js استفاده میکند و هر فراخوانی یک AbortSignal میگیرد.
مرجع
SDK TypeScript در یک نگاه
همان متدها همهی مدلها را پوشش میدهند؛ مدل، اولین آرگومان است.
| متد | کاربرد |
|---|---|
| mage.run(model, config) | یک تولید را ارسال میکند، منتظرش میماند و درخواست تکمیلشده را برمیگرداند. |
| mage.generate(model, config) | یک تولید را ارسال میکند و بلافاصله درخواست را برمیگرداند. |
| mage.requests.get / cancel / wait | یک درخواست را با شناسه بخوانید، متوقف کنید یا منتظرش بمانید. |
| mage.uploads.upload(data) | فایلی تا ۱۰۰ MB آپلود میکند و نشانی آن را برمیگرداند. |
| mage.characters / mage.references | فهرست، ساخت و حذف Characters و References ذخیرهشده. |
| mage.account.get() | موجودی Gems شما. |
| mage.architectures.list() | فهرست زندهی مدلها با گزینهها و قیمتها. |
مدلها
با این مدلها شروع کنید
Guava API
واقعگراییای که شبیه عکس واقعی است
Mango API
خانوادهی پرچمدار ما برای تصویر
Nano Banana 2 API
متن شفاف و خوانا، تا 4K
Cherry API
خانوادهی پرچمدار ما برای ویدیو
Lemon API
همهی قابلیتهای ویدیو با قیمتی مناسبتر
Seed Audio API
صدا، موسیقی و افکتهای صوتی از یک پرامپت
سؤالات متداول
سؤالات متداول
آیا میتوانم از Mage TypeScript SDK در مرورگر استفاده کنم؟
آیا SDK TypeScript با CommonJS کار میکند؟
آیا SDK TypeScript با Next.js کار میکند؟
آیا SDKهای Mage رایگان و متنباز هستند؟
آیا مدلهای جدید Mage با SDK قدیمیتر کار میکنند؟
SDKها چطور از پرداخت دوباره برای یک درخواست تکراری جلوگیری میکنند؟
آیا SDKها پایدار هستند؟
هزینهی Mage API چقدر است؟
برای استفاده از API به عضویت Mage نیاز دارم؟
آیا میتوانم از خروجیهای API استفاده تجاری کنم؟
ساختن با Mage را شروع کن
یک حساب، یک موجودی Gems، همهٔ مدلها. فقط برای چیزی که تولید میکنی هزینه بپرداز.