Mage SDK · پایتون
SDK پایتون Mage
با کلاینتهای sync و asyncio و پیکربندی تایپدار برای همه مدلهای Mage، از داخل پایتون تصویر، ویدیو و صدا تولید کنید.
pip install mage-spaceدر یک نگاه
SDK پایتون Mage کلاینت رسمی و متنباز Mage API است که با نام mage-space منتشر شده. آن را با «pip install mage-space» نصب کنید، MAGE_API_KEY را تنظیم کنید و mage.run را با شناسه مدل و یک پیکربندی صدا بزنید تا از هر یک از 28 مدل، تصویر، ویدیو یا صدای نهایی بگیرید. روی Python 3.10 یا جدیدتر اجرا میشود و هزینه هر تولید با Gem پرداخت میشود.
- 3.10+پایتون
- httpxکلاینت HTTP
- 28مدلهای تایپدار
- MITمتنباز
راهاندازی
SDK پایتون را نصب کنید و یک مدل را اجرا کنید
نصب بسته
mage-space را به پروژهتان اضافه کنید.
pip install mage-spaceکلید API را تنظیم کنید
در mage.space از بخش API ← API Keys یک کلید بسازید و آن را export کنید. کلاینت، MAGE_API_KEY را میخواند.
export MAGE_API_KEY="mage_sk_..."تولید
run را با شناسهی مدل و پیکربندیاش صدا بزنید. منتظر نتیجه میماند و آن را برمیگرداند؛ خروجی در result.url است.
from mage_space import Mage mage = Mage() # reads MAGE_API_KEY request = mage.run("mango", { "prompt": "Editorial portrait in soft daylight, 35mm film look", "aspect_ratio": "4:5", "model_id": "mango-v3", }) print(request["result"]["url"])
نمونهها
SDK پایتون در عمل
هر نمونه از کلاینتی شروع میشود که MAGE_API_KEY را میخواند.
حالا ارسال، بعداً انتظار
from mage_space import Mage
mage = Mage() # reads MAGE_API_KEY
submitted = mage.generate("cherry", {
"prompt": "Waves rolling onto a black sand beach at sunset",
"resolution": "720p",
"duration": "5",
})
final = mage.requests.wait(
submitted["request_id"],
timeout=900,
on_update=lambda request: print(request["status"]),
)آپلود فایل
from mage_space import Mage
mage = Mage() # reads MAGE_API_KEY
clip = mage.uploads.upload("clip.mp4") # a path, bytes, or a binary file
mage.run("cherry", {
"prompt": "Restyle this clip as a watercolor painting",
"videos": [clip["url"]],
})استفاده از Character ذخیرهشده
from mage_space import Mage
mage = Mage() # reads MAGE_API_KEY
mage.characters.create(
name="Ana",
handle="ana",
image="https://example.com/ana.png",
)
mage.run("mango", {"prompt": "@ana walking through a night market"})مدیریت خطاها
from mage_space import Mage, MageAPIError, MageGenerationError
mage = Mage() # reads MAGE_API_KEY
try:
mage.run("mango", {"prompt": "A lighthouse at night"})
except MageAPIError as error:
if error.code == "insufficient_gems":
print("Gems needed:", error.body["error"]["gems_required"])
else:
raise
except MageGenerationError as error:
print("No output:", error.code)چرا SDK
کارهایی که SDK برایتان انجام میدهد
یک فراخوانی، رسانه آماده
run تولید را ارسال میکند، با backoff پیشنهادی API پولینگ میکند و در نهایت درخواست تکمیلشده را همراه با result.url برمیگرداند.
تلاش مجدد بدون پرداخت دوباره
هر درخواست یک کلید idempotency دارد. خطاهای شبکه و سرور با backoff دوباره امتحان میشوند و برای درخواست تکراری هرگز دوباره هزینه کسر نمیشود.
آپلود با یک فراخوانی
فایلهایی که برای data URL بزرگاند با آپلود امضاشده ارسال میشوند و بلیت، PUT و بررسی اندازه را خود SDK انجام میدهد.
خطاهای روشن
رد شدن درخواستها در API همراه با وضعیت HTTP، کد خطا و شناسه درخواست میآید؛ تولیدهای ناموفق یا لغوشده و تایماوتها نوع خطای خودشان را دارند.
Sync و asyncio
Mage و AsyncMage همه متدها را مشترک دارند. کلاینت async برای وبسرورها، نوتبوکها و پایپلاینهایی که چند تولید را همزمان اجرا میکنند مناسب است.
پیکربندی تایپدار
هر مدل یک TypedDict دارد، مثل MangoConfig، که از مرجع API تولید شده است. پیکربندی را با آن annotate کنید تا type checker فیلدها را بررسی کند.
مرجع
SDK پایتون در یک نگاه
همان متدها همهی مدلها را پوشش میدهند؛ مدل، اولین آرگومان است.
| متد | کاربرد |
|---|---|
| mage.run(model, config) | یک تولید را ارسال میکند، منتظرش میماند و درخواست تکمیلشده را برمیگرداند. |
| mage.generate(model, config) | یک تولید را ارسال میکند و بلافاصله درخواست را برمیگرداند. |
| mage.requests.get / cancel / wait | یک درخواست را با شناسه بخوانید، متوقف کنید یا منتظرش بمانید. |
| mage.uploads.upload(data) | یک مسیر، بایت یا فایل تا 100 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
صدا، موسیقی و افکتهای صوتی از یک پرامپت
سؤالات متداول
سؤالات متداول
آیا SDK پایتون از asyncio پشتیبانی میکند؟
SDK از کدام نسخههای پایتون پشتیبانی میکند؟
آیا میتوانم SDK پایتون را در نوتبوک یا پایپلاین داده استفاده کنم؟
آیا SDKهای Mage رایگان و متنباز هستند؟
آیا مدلهای جدید Mage با SDK قدیمیتر کار میکنند؟
SDKها چطور از پرداخت دوباره برای یک درخواست تکراری جلوگیری میکنند؟
آیا SDKها پایدار هستند؟
هزینهی Mage API چقدر است؟
برای استفاده از API به عضویت Mage نیاز دارم؟
آیا میتوانم از خروجیهای API استفاده تجاری کنم؟
ساختن با Mage را شروع کن
یک حساب، یک موجودی Gems، همهٔ مدلها. فقط برای چیزی که تولید میکنی هزینه بپرداز.