علم کی بنیاد ڈویلپرز
تصاویر، آڈیو اور سرایت
ایپ کے جنریٹر، اور تلاش کے لیے بلڈنگ بلاکس: تصاویر، ویڈیو، تقریر، نقل اور سرایت، ہر ایک بل آپ کے بیلنس سے فی استعمال۔
یہ صفحہ سہولت کے لیے مشین سے ترجمہ کیا گیا ہے۔ انگریزی اصل وہ ورژن ہے جو لاگو ہوتا ہے۔
تصاویر پیدا کرنا
ایک سے چار تصاویر بناتا ہے اور ان کو واپس کرتا ہے جب وہ مکمل ہو جاتے ہیں. ?image ایپ میں۔
POST https://nymbot.ai/api/v1/images/generations - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگی.
آئی ڈیز سے آتے ہیں GET /api/v1/models?type=imageمعیاری جنریٹر،
@cf/black-forest-labs/flux-1-schnell، کی قیمت ایک فلیٹ 5 معیاری کریڈٹ (50 سیٹس) ایک تصویر ہے۔ ہر دوسرا جنریٹر اپنی قیمت پر پرو کریڈٹ خرچ کرتا ہے، معمول کی فیس اور مارجن کے ساتھ، جیسا کہ اس میں ہے۔ app کے. n تصاویر کی قیمت
n ایک فیلڈ جو ایک جنریٹر نہیں لیتا ہے، اس کو رد نہیں کیا جاتا ہے؛ معیاری جنریٹر صرف پروپٹ کا استعمال کرتا ہے.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | جی ہاں | جنریٹر آئی ڈی، جیسے nano-banana. |
prompt | سٹرنگ | جی ہاں | کیا کھینچنا ہے۔ صرف پہلے 2, 000 حروف استعمال کیے جاتے ہیں۔ |
n | پورے | نہیں | ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ١ - ٣ - ٣ - ٣ - ٣ - ٣ - ٣ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - ٤ - num_images. |
size | سٹرنگ | نہیں | مثال کے طور پر ایک نقطہ نظر جیسے "16:9"، یا اوپن اے آئی سائز جیسے "1792x1024"اس کا مطلب یہ ہے کہ اس کی تعداد 1:1, 16:9, 9:16، 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 اور 4:5 کے قریب ترین ہے. "auto" اسے جنریٹر پر چھوڑ دیں۔ |
aspect_ratio | سٹرنگ | نہیں | جیسا کہ size، اور اگر دونوں کو بھیجا جائے تو جیت جاتا ہے۔ |
quality | سٹرنگ | نہیں | جنریٹر کے طور پر، جیسے "low", "medium" یا "high". |
negative_prompt | سٹرنگ | نہیں | کیا چھوڑنا ہے۔ |
output_format | سٹرنگ | نہیں | "png", "jpeg" یا "webp". |
response_format | سٹرنگ | نہیں | "url" (ڈیفالٹ) یا "b64_json". |
image_url | سٹرنگ | نہیں | شروع کرنے کے لیے ایک تصویر: ایک https:// زیادہ سے زیادہ 4, 096 حروف کا لنک جس میں کوئی صارف نام یا پاس ورڈ نہ ہو، یا data:image/…;base64 یو آر ایل (پی این جی، جے پی ای جی، ویب پی یا جی آئی ایف ؛ ایس وی جی نہیں)۔ صرف جنریٹرز کے لیے editکے ساتھ ان لوگوں کی ضرورت ہے requires_image_url. |
resolution استعمال نہیں کیا جاتا ہے: ہر جنریٹر اپنا سائز بناتا ہے۔ urlہر تصویر کو عوامی بلوم میزبان پر اپ لوڈ کیا جاتا ہے اور آپ کو اس کا لنک مل جاتا ہے (چند جنریٹر صرف اپنا ایک لنک واپس دیتے ہیں، جو منتقل کیا جاتا ہے)۔ لنک والا کوئی بھی شخص اسے کھول سکتا ہے اور اسے دوبارہ نیچے نہیں لیا جا سکتا۔ دیکھیں اے پی آئی کیا دیکھ سکتا ہےکے ساتھ
b64_json تصویر جواب میں واپس آتی ہے اور کبھی اپ لوڈ نہیں کی جاتی ہے۔ ایک تصویر کے طور پر بھیجی گئی data: میں یو آر ایل image_url ایک کے طور پر اسی طرح چیک کیا جاتا ہے
ترمیم کریں اور پہلے بلوم پر اپ لوڈ کیا تاکہ جنریٹر اسے حاصل کر سکے ؛ اگر درخواست غیر بل کرنے میں ناکام رہی تو اسے دوبارہ حذف کر دیا جاتا ہے۔
اگر ان میں سے کچھ n تصاویر ناکام ہو جاتے ہیں، آپ کو وہ حاصل کرتے ہیں جو کام کرتے ہیں، صرف ان کے لئے چارج کیا جاتا ہے (مزید کسی بھی فراہم کنندہ نے ناکام ہونے کے باوجود چارج کیا ہے)، اور nymbot.failed بتاتا ہے کہ کتنے لاپتہ ہیں۔ اگر سب ناکام ہو جائیں تو درخواست واپس آ جاتی ہے۔ 502.
جوابات
{
"created": 1790726400,
"model": "nano-banana",
"cost": 0.2126,
"data": [
{
"url": "https://blossom.example/5c0e4b7d3a91f2e8...c4.png",
"content_type": "image/png"
}
],
"nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 410.608, "balance_sats": 41060.8 }
}
| حیثیت | جب |
|---|---|
400 | کوئی فوری اطلاع نہیں ؛ n 1 سے 4 کے باہر (invalid_value)؛ ایک برا سائز (invalid_size) یا تصویر (invalid_image, invalid_image_url)؛ ایک ماڈل ہے جو موجود ہے لیکن ایک تصویر جنریٹر نہیں ہے (invalid_model)؛ ایک تصویر کے لئے ایک جنریٹر جو ترمیم نہیں کر سکتا (edit_unsupported) ؛ اس شخص کے لیے کوئی تصویر نہیں جس کو اس کی ضرورت ہو (image_required). |
402 | بیلنس مانگی گئی ہر تصویر کا احاطہ نہیں کر سکتا۔ |
404 | اس نام کی کوئی مثال نہیں (model_not_found). |
502 | جنریٹر ناکام ہو گیا (upstream_errorاس کے علاوہ، کوئی بھی چیز نہیں ہے جب تک کہ سپلائر نے کوشش کے لئے چارج کیا ہے؛ پھر غلطی کی ہے. charged_sats. |
503 | تصاویر اب ہوسٹ نہیں کر سکتے (media_hosting_unavailable). b64_json اب بھی کام کرتا ہے۔ |
cURL
curl https://nymbot.ai/api/v1/images/generations \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana",
"prompt": "A lighthouse at dusk, oil painting",
"size": "16:9"
}'
Python
import os
import requests
res = requests.post(
"https://nymbot.ai/api/v1/images/generations",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
json={"model": "nano-banana", "prompt": "A lighthouse at dusk, oil painting", "size": "16:9"},
)
res.raise_for_status()
print(res.json()["data"][0]["url"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/images/generations", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ model: "nano-banana", prompt: "A lighthouse at dusk, oil painting", size: "16:9" }),
});
const body = await res.json();
console.log(body.data[0].url);
تصاویر میں ترمیم کرنا
آپ کی اپ لوڈ کردہ تصویر کو پرامپٹ کے بعد تبدیل کرتا ہے۔ یہ اوپن اے آئی کا ایڈیٹ اینڈ پوائنٹ ہے، اس لیے اوپن اے آئی ایس ڈی کے ' images.edit جیسا ہے ویسا ہی کام کرتا ہے۔ صرف پرو جنریٹر کے ساتھ edit ماڈل کی فہرست میں اسے قبول کریں.
POST https://nymbot.ai/api/v1/images/edits - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگیجسم یہ ہے multipart/form-data32 MB تک
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
image | فائل | جی ہاں | ترمیم کرنے کے لئے تصویر: PNG، JPEG، WebP یا GIF، 20 MB تک. image[]پہلا استعمال کیا جاتا ہے. |
prompt | سٹرنگ | جی ہاں | کیا تبدیل کرنا ہے۔ |
model | سٹرنگ | جی ہاں | ایک جنریٹر کے ساتھ edit. |
n | پورے | نہیں | 1 سے 4 تک۔ |
sizeaspect_ratioqualitynegative_promptoutput_format | سٹرنگ | نہیں | جہاں تک نسل کا تعلق ہے۔ |
response_format | سٹرنگ | نہیں | "b64_json" (یہاں ڈیفالٹ) یا "url". |
آپ جو تصویر اپ لوڈ کرتے ہیں اسے اچھی طرح سے تشکیل شدہ پی این جی، جے پی ای جی، ویب پی یا جی آئی ایف کے طور پر چیک کیا جاتا ہے، جسے اس کی اصل قسم کے طور پر بھیجا جاتا ہے، اور عوامی بلوم میزبان پر ڈال دیا جاتا ہے، کیونکہ جنریٹر لنک کے ذریعے اپنا ان پٹ حاصل کرتے ہیں۔ اسے عوامی سمجھیں۔ اگر ترمیم ناکام ہوجاتی ہے اور کچھ بھی چارج نہیں ہوتا ہے تو، میزبان کاپی دوبارہ حذف کر دی جاتی ہے۔ جواب کی شکل نسل کی طرح ہوتی ہے۔ قیمت جنریٹر کی قیمت ہے، جس میں کچھ جنریٹرز کے لیے ان پٹ تصویر کے لیے چارج شامل ہوتا ہے۔
جوابات
{
"created": 1790726460,
"model": "nano-banana",
"cost": 0.2126,
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }],
"nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 408.791, "balance_sats": 40879.1 }
}
| حیثیت | جب |
|---|---|
400 | کوئی تصویر یا پرامپٹ نہیں، ایک فائل جو تصویر نہیں ہے (invalid_image)، یا ایک جنریٹر جو ترمیم نہیں کر سکتا (edit_unsupported). |
413 | تصویر 20 ایم بی سے زیادہ ہے (file_too_large)، یا 32 ایم بی سے زیادہ کی پوری درخواست۔ |
503 | تصویر کو ابھی ہوسٹ نہیں کیا جا سکتا (media_hosting_unavailable). |
cURL
curl https://nymbot.ai/api/v1/images/edits \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F model=nano-banana \
-F [email protected] \
-F prompt="Make it a snowy evening"
Python
import base64, os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("photo.png", "rb") as f:
result = client.images.edit(model="nano-banana", image=f, prompt="Make it a snowy evening")
with open("edited.png", "wb") as out:
out.write(base64.b64decode(result.data[0].b64_json))
JavaScript
import fs from "node:fs";
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const result = await client.images.edit({
model: "nano-banana",
image: fs.createReadStream("photo.png"),
prompt: "Make it a snowy evening",
});
await writeFile("edited.png", Buffer.from(result.data[0].b64_json, "base64"));
ویڈیو
ایک ویڈیو منٹ لگتا ہے، لہذا یہ پس منظر میں چلتا ہے. آپ اسے جمع کرتے ہیں، فوری طور پر ایک ID حاصل کرتے ہیں، اور ID کے بارے میں پوچھتے ہیں جب تک یہ ختم نہیں ہوتا.
POST https://nymbot.ai/api/v1/videos - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگیواپسی 202.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | جی ہاں | سے ایک ویڈیو جنریٹر آئی ڈی GET /api/v1/models?type=video، جیسے veo. |
prompt | سٹرنگ | جی ہاں | کیا ہونا چاہئے |
duration | نمبر یا string | نہیں | سیکنڈوں میں لمبائی، 0 سے زیادہ اور 60 تک۔ صرف جنریٹرز کے ذریعہ استعمال کیا جاتا ہے جو آپ کو لمبائی کا انتخاب کرنے دیتے ہیں۔ دوسرے اپنی معمول کی لمبائی بناتے ہیں، جو کہ ہے seconds جواب میں اور اس کے بعد قیمت۔ |
aspect_ratio | سٹرنگ | نہیں | جیسے "16:9" یا "9:16"اس طرح کا سائز "1280x720" قریب ترین تناسب بن جاتا ہے۔ |
resolutionquality | سٹرنگ | نہیں | جنریٹر میں سے ایک resolutions ماڈل کی فہرست میں، جیسے "720p" یا "1080p"یہ قیمت طے کرتا ہے۔ اس کے ساتھ کسی اور چیز سے انکار کر دیا جاتا ہے۔ unsupported_resolution. |
image_url | سٹرنگ | نہیں | شروع کرنے کے لیے ایک تصویر: ایک https:// لنک یا ایک data:image/… یو آر ایل، جو پہلے عوامی بلوم میزبان پر اپ لوڈ کیا جاتا ہے۔ جنریٹرز کے لیے ضروری ہے requires_image_url. |
قیمت مقرر کی جاتی ہے جب آپ جمع کرتے ہیں، جنریٹر، حل اور لمبائی سے، لہذا یہ آپ کے پیشہ ورانہ توازن سے چارج کیا جاتا ہے جب تک کہ فراہم کنندہ کام قبول کرتا ہے، اور دکھایا جاتا ہے
cost, estimated_cost اور nymbotاگر فراہم کنندہ کام سے انکار کرتا ہے، تو کچھ بھی وصول نہیں کیا جاتا ہے۔ اگر رینڈر بعد میں ناکام ہوجاتا ہے، یا تیار شدہ کلپ کو اسٹور نہیں کیا جاسکتا ہے اور فراہم کنندہ نے اس کے لیے بل نہیں کیا ہے، تو چارج خود بخود ایک بار واپس کر دیا جاتا ہے۔ ایک رینڈر جو ایک گھنٹے کے بعد بھی چل رہا ہے اسے چھوڑ دیا جاتا ہے، اور اپنا چارج برقرار رکھتا ہے، کیونکہ فراہم کنندہ رینڈر کو قبول کرنے کے بعد اسے بل کرتا ہے۔ رقم کی واپسی کریڈٹ واپس کرتی ہے لیکن کلیدی کے اخراجات کی گنتی کو کم نہیں کرتی ہے۔
جواب (202)
{
"id": "vid_3e9a51c07b2f4d86e0a1c4f2",
"object": "video",
"model": "veo",
"status": "in_progress",
"created": 1790726400,
"seconds": 8,
"resolution": "1080p",
"estimated_cost": 3.18,
"expires_at": 1790812800,
"cost": 3.18,
"nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180, "balance_credits": 378.808, "balance_sats": 37880.8 }
}
status شروع کریں As in_progress، یا completed پہلے سے موجود ویڈیو کے ساتھ data جب جنریٹر نے اسے فورا واپس کر دیا۔
ویڈیو پر چیک کر رہے ہیں
GET https://nymbot.ai/api/v1/videos/{id} - جس nym نے اسے جمع کرایا ہے اس سے تعلق رکھنے والی کلید کی ضرورت ہے۔ ایک کلید جو اپنی ٹوپی تک پہنچ چکی ہے وہ اب بھی چیک کر سکتی ہے۔
جواب دیتا ہے 202 جب کہ ویڈیو بنائی جا رہی ہے اور 200 ایک بار یہ ختم ہو گیا ہے یا ناکام ہو گیا ہے. ہر 5 سے 10 سیکنڈ میں پوچھیں. ہر چیک ایک بار پیشہ ورانہ سے پوچھتا ہے اور فوری طور پر جواب دیتا ہے؛ یہ ویڈیو کے لئے انتظار نہیں کرتا.
GET /api/v1/videos کلیدی کے آخری 50 کاموں کو اس طرح درج کریں
{"object": "list", "data": […]}.
جواب (200)
{
"id": "vid_3e9a51c07b2f4d86e0a1c4f2",
"object": "video",
"model": "veo",
"status": "completed",
"created": 1790726400,
"seconds": 8,
"resolution": "1080p",
"estimated_cost": 3.18,
"expires_at": 1790812800,
"completed_at": 1790726590,
"data": { "url": "https://blossom.example/9b41d0c2e7a3f658...1e.mp4", "content_type": "video/mp4" },
"cost": 3.18,
"nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180 }
}
status ہے in_progress, completed یا failedایک ناکام کام لے جاتا ہے error ({"code": "generation_failed", "message": …}اگر اس کو واپس بھیج دیا جائے تو cost 0 ہے اور nymbot شامل کریں
refunded_credits اور refunded_satsمکمل ویڈیو ایک عوامی Blossom میزبان پر ہے، جیسا کہ پیدا کردہ تصاویر.
| حیثیت | جب |
|---|---|
400 | کوئی پرامپٹ نہیں ؛ 0 سے 60 سے باہر کی مدت (invalid_value) ؛ ایک ریزولوشن جنریٹر پیش نہیں کرتا (unsupported_resolution)؛ کوئی تصویر نہیں ہے جو ایک جنریٹر کی ضرورت ہے (image_required)؛ ایک ماڈل جو ویڈیو جنریٹر نہیں ہے (invalid_model). |
402 | پرو توازن ویڈیو کو چھپا نہیں سکتا. |
404 | ایسا کوئی جنریٹر نہیں (model_not_found)، یا آپ کے این آئی ایم کے لیے اس آئی ڈی کے ذریعے کوئی نوکری نہیں، یا یہ 24 گھنٹے سے زیادہ پرانی ہے (video_not_found). |
429 | آپ کے این آئی ایم کے پاس پہلے سے ہی 10 ویڈیوز ہیں (video_jobs_limitان پر چیک کریں اور ایک بار ختم ہونے کے بعد مزید بھیجیں. |
502 | جنریٹر نے کام کرنے سے انکار کر دیا۔ کچھ بھی وصول نہیں کیا جاتا جب تک کہ فراہم کنندہ اس کے لیے بل نہ دے۔ |
503 | ویڈیوز کو ابھی ڈیلیور یا اسٹور نہیں کیا جا سکتا (media_hosting_unavailable, service_unavailable). |
cURL
curl https://nymbot.ai/api/v1/videos \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"}'
curl https://nymbot.ai/api/v1/videos/vid_3e9a51c07b2f4d86 \
-H "Authorization: Bearer $NYMBOT_API_KEY"
Python
import os, time
import requests
headers = {"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]}
job = requests.post(
"https://nymbot.ai/api/v1/videos",
headers=headers,
json={"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"},
).json()
while True:
time.sleep(8)
status = requests.get("https://nymbot.ai/api/v1/videos/" + job["id"], headers=headers).json()
if status["status"] in ("completed", "failed"):
break
print(status["data"]["url"] if status["status"] == "completed" else status["error"])
JavaScript
const headers = {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
};
const job = await (await fetch("https://nymbot.ai/api/v1/videos", {
method: "POST",
headers,
body: JSON.stringify({ model: "veo", prompt: "Waves rolling onto a beach at sunrise", duration: 8, aspect_ratio: "16:9" }),
})).json();
let status;
do {
await new Promise((r) => setTimeout(r, 8000));
status = await (await fetch("https://nymbot.ai/api/v1/videos/" + job.id, { headers })).json();
} while (status.status !== "completed" && status.status !== "failed");
console.log(status.status === "completed" ? status.data.url : status.error);
تقریر سے متن
متن کو بلند آواز سے پڑھتا ہے اور آڈیو فائل کو خود واپس کرتا ہے، کوئی لنک نہیں ہے. audio.speech.create اوپن اے آئی ایس ڈی کے میں کام کرتا ہے۔
POST https://nymbot.ai/api/v1/audio/speech - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگی.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | نہیں | سے ایک تقریر ماڈل آڈیو ماڈلز کی فہرستڈیفالٹ: معیاری آواز، @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 کے بارے میں |
input | سٹرنگ | جی ہاں | پڑھنے کے لیے متن: معیاری آواز کے لیے 800 حروف تک، آورا 2 کے لیے 2, 000۔ |
voice | سٹرنگ | نہیں | سے ایک وائس آئی ڈی آوازوں کی فہرستAura speaker کے طور پر luna (یا aura-2-luna-en) یا ایک MeloTTS زبان (en, es, fr, zh)۔ اوپن اے آئی آواز کے نام جیسے alloy قبول کیے جاتے ہیں اور ماڈل کی ڈیفالٹ آواز دیتے ہیں۔ |
language | سٹرنگ | نہیں | ایک زبان کوڈ جیسے esکوئی آواز نہیں ہے، یہ اس زبان کے لئے ایک منتخب کرتا ہے. ایک آواز جو کسی دوسرے زبان سے بات کرتا ہے واپس کرتا ہے. 422 voice_language_mismatch, اور ایک زبان جس کے لئے ماڈل کا کوئی آواز نہیں ہے 422 unsupported_language. |
response_format | سٹرنگ | نہیں | معیاری آواز واپس آتی ہے mp3 Aura 2 کی واپسی mp3 (ڈیفالٹ)، opus, aac, flac, wav یا pcm. |
speed | نمبر | نہیں | قبول کیا اور نظر انداز کیا۔ |
معیاری آواز کی قیمت ایک فلیٹ 3 معیاری کریڈٹ (30 sats) ایک درخواست ہے، جیسا کہ ایپ میں ہے. Aura 2 پرو ہے، آپ کو بھیجنے والے حروف کی طرف سے قیمت دی جاتی ہے.
Content-Typeلاگت میں ہے X-Nymbot-Cost-Sats ہیڈر۔ اگر اسپیچ ماڈل ناکام ہوجاتا ہے تو کچھ بھی چارج نہیں ہوتا ہے۔
جوابات
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| حیثیت | جب |
|---|---|
400 | کوئی ان پٹ نہیں ؛ ماڈل کی حد سے زیادہ ان پٹ (input_too_long) ؛ ایک فارمیٹ جو ماڈل تیار نہیں کر سکتا (unsupported_response_format) ؛ ایک نامعلوم آواز (invalid_voice) ؛ ایک نمونہ جو تقریر کا نمونہ نہیں ہے (invalid_model). |
422 | آواز دی گئی زبان نہیں بولتی، یا ماڈل کے پاس اس کے لیے کوئی آواز نہیں ہے۔ |
502 | اسپیچ ماڈل ناکام ہو گیا۔ کچھ بھی چارج نہیں کیا جاتا ہے۔ |
cURL
curl https://nymbot.ai/api/v1/audio/speech \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "aura-2", "voice": "luna", "input": "Your invoice has been paid."}' \
--output speech.mp3
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
audio = client.audio.speech.create(
model="aura-2",
voice="luna",
input="Your invoice has been paid.",
)
audio.write_to_file("speech.mp3")
JavaScript
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const audio = await client.audio.speech.create({
model: "aura-2",
voice: "luna",
input: "Your invoice has been paid.",
});
await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));
آڈیو ماڈل اور آوازیں
ایک بات کی ماڈل اور آواز کو منتخب کرنے کے لئے دو عوامی فہرستیں، یا ایک ٹرانسپیشن ماڈل. 41 Aura 2 انگریزی بولنے والے اور چار MeloTTS زبانوں.
GET https://nymbot.ai/api/v1/audio/models کوئی کلید کی ضرورت نہیں
GET https://nymbot.ai/api/v1/audio/voices?language=en کوئی کلید کی ضرورت نہیں
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
language | سٹرنگ (استفسار) | نہیں | صرف اس زبان کے لئے آوازیں. |
model | سٹرنگ (استفسار) | نہیں | اس ماڈل کے لیے صرف آوازیں۔ |
کے جوابات (Voices)
{
"object": "list",
"data": [
{ "id": "luna", "name": "Luna", "provider": "deepgram", "model_id": "aura-2", "models": ["aura-2"], "language": "en", "description": "Aura 2 English voice", "gender": "female", "preview_url": null },
{ "id": "en", "name": "MeloTTS English", "provider": "myshell", "model_id": "@cf/myshell-ai/melotts", "models": ["@cf/myshell-ai/melotts", "melotts"], "language": "en", "description": "English (MeloTTS)", "gender": null, "preview_url": null }
]
}
ماڈل کے جوابات کی فہرست {"object": "list", "data": {"tts": […], "stt": […]}}ہر اسپیچ ماڈل اپنا توازن، قیمت، max_input_chars,
response_formats, languages اور default_voiceٹرانسکرپشن ماڈل اپنے عرفی نام دیتا ہے، max_file_bytes, max_secondsفارمیٹس اور قیمت فی منٹ۔
cURL
curl https://nymbot.ai/api/v1/audio/models
curl "https://nymbot.ai/api/v1/audio/voices?language=en"
Python
import requests
print(requests.get("https://nymbot.ai/api/v1/audio/models").json())
for voice in requests.get("https://nymbot.ai/api/v1/audio/voices", params={"language": "en"}).json()["data"]:
print(voice["id"], voice["model_id"])
JavaScript
console.log(await (await fetch("https://nymbot.ai/api/v1/audio/models")).json());
const voices = await (await fetch("https://nymbot.ai/api/v1/audio/voices?language=en")).json();
for (const v of voices.data) console.log(v.id, v.model_id);
کلام کا ترجمہ
ریکارڈنگ کو وسپر کے ساتھ ٹیکسٹ میں بدل دیتا ہے۔ یہ اوپن اے آئی کا ٹرانسکرپشن اینڈ پوائنٹ ہے، لہذا
audio.transcriptions.create کام کرتا ہے
POST https://nymbot.ai/api/v1/audio/transcriptions - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگیجسم یہ ہے multipart/form-data.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
file | فائل | جی ہاں | ریکارڈنگ، 256 بائٹس سے لے کر 25 ایم بی تک اور 30 منٹ تک: ڈبلیو اے وی، ویب ایم، ایم پی 4 یا ایم 4 اے، اوگ یا اوپس، ایم پی 3 اور دیگر فارمیٹس وسپر ریڈز۔ ایم پی 3 اور دیگر فارمیٹس جن کی لمبائی سامنے نہیں پڑھی جا سکتی وہ 1. 8 ایم بی تک محدود ہیں۔ |
model | سٹرنگ | نہیں | ڈیفالٹ whisper، جو کہ وسپر لارج وی 3 ٹربو ہے۔ whisper-1, whisper-large-v3-turbo اور @cf/openai/whisper-large-v3-turbo اسی کا مطلب ہے |
language | سٹرنگ | نہیں | بولنے والی زبان، جیسے enاگر چھوڑ دیا جائے تو پتہ چلا۔ |
prompt | سٹرنگ | نہیں | مطلوبہ الفاظ یا ہجے، جیسے نام۔ صرف پہلے 1, 000 حروف استعمال کیے جاتے ہیں۔ |
response_format | سٹرنگ | نہیں | json (ڈیفالٹ)، text, srt, vtt یا verbose_json. |
ڈبلیو اے وی، ویب ایم، ایم پی 4 اور اوگ فائلوں کے لیے لمبائی کو کسی بھی چیز کے چلنے سے پہلے فائل سے پڑھا جاتا ہے، لہذا 30 منٹ سے زیادہ کی ریکارڈنگ کو سامنے سے مسترد کر دیا جاتا ہے (3 سیکنڈ کے فضل کے ساتھ)۔ ایک ڈبلیو اے وی فائل کی لمبائی اس کے نمونے کی شرح، چینلز اور نمونے کے سائز سے آتی ہے۔ دیگر فارمیٹس کی لمبائی، جیسے ایم پی 3، کو سامنے سے نہیں پڑھا جا سکتا، لہذا وہ سائز کے لحاظ سے محدود ہیں: سب سے کم بٹ ریٹ پر نمبوٹ فرض کرتا ہے، 8 کے بی پی ایس، 30 منٹ 1. 8 ایم بی ہے، اور اس طرح کی شکل میں ایک بڑی فائل کو اس کے ساتھ مسترد کر دیا جاتا ہے۔ 413
audio_too_long کسی بھی چیز کے چلنے سے پہلے۔ طویل ریکارڈنگ کو ڈبلیو اے وی، ویب ایم، ایم پی 4 یا اوگ کے طور پر بھیجیں۔ اگر وسپر پھر بھی 30 منٹ سے زیادہ کی رپورٹ کرتا ہے، تو درخواست کو اس کے ساتھ مسترد کر دیا جاتا ہے۔
413 audio_too_long، اور چونکہ وسپر دوڑتا ہے، اس لیے 30 منٹ چارج کیے جاتے ہیں۔
آپ آڈیو کی لمبائی کے لیے ادائیگی کرتے ہیں، جو دوسرے تک گول ہوتی ہے: فائل سے پڑھی جانے والی لمبائی کی سب سے لمبی لمبائی، وہسپر رپورٹ کی لمبائی، اور کم از کم فائل کا سائز اجازت دیتا ہے، وہسپر کی فی منٹ کی قیمت پر معمول کی فیس اور مارجن کے ساتھ، اور کم از کم 0. 05 کریڈٹ کی درخواست کریں۔ یہ معیاری بیلنس سے ادا کیا جاتا ہے جب وہ ہولڈ کا احاطہ کر سکتا ہے، اور دوسری صورت میں پرو سے ؛ a 402 یہ بتاتا ہے کہ ہر بیلنس کی کیا ضرورت ہوگی۔ ایپ میں، صوتی پیغام نقل کرنا مفت ہو سکتا ہے۔ اے پی آئی پر یہ ہمیشہ چارج کیا جاتا ہے۔ اگر وسپر ناکام ہو جاتا ہے، تو کچھ بھی چارج نہیں کیا جاتا ہے۔
جوابات
{
"text": "Your invoice has been paid.",
"usage": { "type": "duration", "seconds": 3 },
"nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 120.35, "balance_sats": 1203.5 }
}
text سادہ متن واپس کرتا ہے، srt اور vtt سب ٹائٹلز واپس کریں، اور
verbose_json زبان، مدت اور وقت کے حصوں کو شامل کرتا ہے۔ ان تینوں کے لیے جو جے ایس او این نہیں ہیں، قیمت ہیڈر میں ہے۔
| حیثیت | جب |
|---|---|
400 | کوئی فائل نہیں، ایک فائل جس میں کوئی قابل استعمال آڈیو نہیں ہے (invalid_audio)، ایک نامعلوم فارمیٹ، یا ایک ماڈل جو ٹرانسفر ماڈل نہیں ہے (invalid_model). |
402 | نہ ہی توازن اس کا احاطہ کر سکتا ہے۔ |
413 | فائل 25 ایم بی سے زیادہ ہے (file_too_large ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ،audio_too_long). |
502 | وسپر آڈیو پر عمل نہیں کر سکا۔ کچھ بھی چارج نہیں کیا گیا ہے۔ |
cURL
curl https://nymbot.ai/api/v1/audio/transcriptions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F [email protected] \
-F model=whisper \
-F response_format=json
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("memo.m4a", "rb") as f:
transcript = client.audio.transcriptions.create(model="whisper", file=f)
print(transcript.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const transcript = await client.audio.transcriptions.create({
model: "whisper",
file: fs.createReadStream("memo.m4a"),
});
console.log(transcript.text);
تقریر کا انگریزی میں ترجمہ کرنا
POST https://nymbot.ai/api/v1/audio/translations - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگیجسم یہ ہے multipart/form-data.
نقل کے طور پر ایک ہی، کے علاوہ ایک ہی شعبوں کے ساتھ language، حدود اور قیمت، لیکن متن انگریزی میں واپس آتا ہے جو بھی زبان بولی جاتی تھی۔ اوپن اے آئی ایس ڈی کے اسے اس کے ساتھ کہتے ہیں audio.translations.create.
cURL
curl https://nymbot.ai/api/v1/audio/translations \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F [email protected] \
-F model=whisper
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("nota.m4a", "rb") as f:
translation = client.audio.translations.create(model="whisper", file=f)
print(translation.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const translation = await client.audio.translations.create({
model: "whisper",
file: fs.createReadStream("nota.m4a"),
});
console.log(translation.text);
سرایتات
تلاش، کلسٹرنگ اور کٹوتی کے لیے متن کو ویکٹر میں بدل دیتا ہے۔ ماڈل کلاؤڈ فلیئر پر چلتے ہیں اور معیاری بیلنس خرچ کرتے ہیں۔
POST https://nymbot.ai/api/v1/embeddings - API کلید کی ضرورت ہے، یا فی درخواست بجلی کی ادائیگی.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | جی ہاں | ایک متحرک ماڈل سے GET /api/v1/models?type=embedding. |
input | string یا string کے مترادفات | جی ہاں | سرایت کرنے کے لیے متن، 100 تک غیر خالی تار۔ ٹوکن صفوں کو مسترد کر دیا جاتا ہے (token_input_unsupported)۔ ہر ان پٹ ماڈل کے مطابق ہونا چاہیے۔ context_length، تقریبا چار بائٹس ایک ٹوکن کے طور پر شمار کیا جاتا ہے۔ |
encoding_format | سٹرنگ | نہیں | float (ڈیفالٹ) یا base64 (لٹل اینڈین 32 بٹ فلوٹس)۔ |
dimensions | پورے | نہیں | ماڈل کے اپنے سائز، یا ایک ماڈل کے لئے supported_dimensions ان میں سے ایک ؛ اس کے بعد ویکٹر کو چھوٹا اور نارمل کیا جاتا ہے۔ کسی اور چیز سے انکار کر دیا جاتا ہے۔ |
| ماڈل | طول و عرض | سیاق و سباق |
|---|---|---|
@cf/baai/bge-m3 | 1024۔ بہت سے زبانیں | 8, 192 ٹوکن |
@cf/qwen/qwen3-embedding-0.6b | 1024۔ بہت سے زبانیں | 8, 192 ٹوکن |
@cf/baai/bge-large-en-v1.5 | 1024، انگریزی | 512 ٹکٹ |
@cf/baai/bge-base-en-v1.5 | 768، انگریزی | 512 ٹکٹ |
@cf/baai/bge-small-en-v1.5 | 384۔ انگریزی | 512 ٹکٹ |
ماڈلز کی فہرست سچائی کا ذریعہ ہے جس کے لیے دستیاب ہیں اور ان کی قیمت کیا ہے۔ گوگل کا ایمبیڈنگ گیما، درخواست پر چھوٹے ویکٹروں کے ساتھ، وہاں بھی ظاہر ہوتا ہے جب کیٹلاگ کی قیمت ہوتی ہے۔ ایمبیڈنگز فی ان پٹ ٹوکن پر میٹر کی جاتی ہیں، اور 0.05-credit کم از کم ہر درخواست پر لاگو ہوتا ہے، ہر ان پٹ پر نہیں، لہذا ایک درخواست میں بہت سے متن کو بیچنا انہیں ایک وقت میں ایک بھیجنے سے کہیں زیادہ سستا ہے۔
جوابات
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0213, -0.0487, 0.0112] }
],
"model": "@cf/baai/bge-m3",
"usage": { "prompt_tokens": 9, "total_tokens": 9 },
"nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 1204.35, "balance_sats": 12043.5 }
}
| حیثیت | جب |
|---|---|
400 | کوئی ان پٹ یا خالی نہیں ؛ ٹوکن صف (token_input_unsupported)؛ زیادہ سے زیادہ 100 انٹرفیس (too_many_inputs)؛ ایک انٹرویو زیادہ وقت لیتا ہے کہ ماڈل لیتا ہے (input_too_long) ؛ ایک ایسا سائز جو ماڈل نہیں دے سکتا (unsupported_dimensions). |
402 | معیاری بیلنس بہت کم ہے۔ ایمبیڈنگز کبھی بھی پرو بیلنس کا استعمال نہیں کرتے۔ |
404 | اس نام کے ساتھ کوئی نمونہ نہیں. |
502 | سٹائل ناکام ہو گیا ہے، کچھ بھی نہیں ہے |
cURL
curl https://nymbot.ai/api/v1/embeddings \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "@cf/baai/bge-m3", "input": ["Lightning invoices expire.", "Invoices on Lightning have a time limit."]}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
result = client.embeddings.create(
model="@cf/baai/bge-m3",
input=["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
)
print(len(result.data), len(result.data[0].embedding))
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const result = await client.embeddings.create({
model: "@cf/baai/bge-m3",
input: ["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
});
console.log(result.data.length, result.data[0].embedding.length);