مواد پر جائیں۔
نمبوٹ پر واپس جائیں

علم کی بنیاد ڈویلپرز

تصاویر، آڈیو اور سرایت

ایپ کے جنریٹر، اور تلاش کے لیے بلڈنگ بلاکس: تصاویر، ویڈیو، تقریر، نقل اور سرایت، ہر ایک بل آپ کے بیلنس سے فی استعمال۔

تصاویر پیدا کرنا

ایک سے چار تصاویر بناتا ہے اور ان کو واپس کرتا ہے جب وہ مکمل ہو جاتے ہیں. ?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 تک۔
size
aspect_ratio
quality
negative_prompt
output_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" قریب ترین تناسب بن جاتا ہے۔
resolution
quality
سٹرنگنہیںجنریٹر میں سے ایک 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.
inputstring یا string کے مترادفاتجی ہاںسرایت کرنے کے لیے متن، 100 تک غیر خالی تار۔ ٹوکن صفوں کو مسترد کر دیا جاتا ہے (token_input_unsupported)۔ ہر ان پٹ ماڈل کے مطابق ہونا چاہیے۔ context_length، تقریبا چار بائٹس ایک ٹوکن کے طور پر شمار کیا جاتا ہے۔
encoding_formatسٹرنگنہیںfloat (ڈیفالٹ) یا base64 (لٹل اینڈین 32 بٹ فلوٹس)۔
dimensionsپورےنہیںماڈل کے اپنے سائز، یا ایک ماڈل کے لئے supported_dimensions ان میں سے ایک ؛ اس کے بعد ویکٹر کو چھوٹا اور نارمل کیا جاتا ہے۔ کسی اور چیز سے انکار کر دیا جاتا ہے۔
ماڈلطول و عرضسیاق و سباق
@cf/baai/bge-m31024۔ بہت سے زبانیں8, 192 ٹوکن
@cf/qwen/qwen3-embedding-0.6b1024۔ بہت سے زبانیں8, 192 ٹوکن
@cf/baai/bge-large-en-v1.51024، انگریزی512 ٹکٹ
@cf/baai/bge-base-en-v1.5768، انگریزی512 ٹکٹ
@cf/baai/bge-small-en-v1.5384۔ انگریزی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);