د پوهې بنسټ پراختیا
انځورونه، غږونه او embeddings
د اپلیکیشن څخه جنراتورونه، او د څیړنې لپاره د بڼې: انځورونه، ویډیو، خبرې، transcription او embeddings، په هر ډول ستاسو د توازن څخه د کارولو لپاره حساب شوي.
دا پاڼه د اسانتیا لپاره ماشین ژباړل شوې ده. انګلیسي اصلي نسخه ده چې پلي کیږي.
د انځورونو تولید
د یو څخه تر چار انځورونه له یو پینټ څخه جوړوي او کله چې دوی بشپړ شي دوی ته ورسیږي. دا د جنراتورونو په ورته ټولګه دی چې د ?image په app کې.
POST https://nymbot.ai/api/v1/images/generations - د API کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیه.
د اډې د GET /api/v1/models?type=imageد معياري جنراتور،
@cf/black-forest-labs/flux-1-schnell، د 5 معياري کریډیټونه (50 sats) د انځور په پرتله. هر بل جنراتور پرو کریډیټونه په خپل لګښت کې، د عادي لګښت او margin سره، لکه څنګه چې د App. n د عکسونو بیه
n د جنراتور لخوا د ځمکې چې نه راټول کیږي د راټولولو په پرتله راټول کیږي؛ د معياري جنراتور یوازې د پروپټ کاروي.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | د جنراتور ID، لکه nano-banana. |
prompt | د String | هو | هغه څه چې کارول کیږي. یوازې د لومړي 2000 ځانګړنو کارول کیږي. |
n | انټرنیټ | نه | 1 ته 4. د معياري 1. هم په توګه accepted num_images. |
size | د String | نه | لکه څنګه چې د یو Aspect Ratio "16:9"، یا د OpenAI اندازه لکه "1792x1024"، کوم چې د 1:1, 16:9, 9:16، 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 او 4:5 څخه ترټولو وي. "auto" دا به د جنراتور ته ورسیږي. |
aspect_ratio | د String | نه | په ورته توګه size، او کولی شي په هر دوو کې ګټور شي. |
quality | د String | نه | د جنراتور ځانګړي، لکه "low", "medium" یا "high". |
negative_prompt | د String | نه | هغه څه چې له لاسه ورکړي. |
output_format | د String | نه | "png", "jpeg" یا "webp". |
response_format | د String | نه | "url" (د default) یا "b64_json". |
image_url | د String | نه | د انځور څخه پیل کولو لپاره: د https:// د لنډ 4،096 کارپوه سره د کارن نوم یا پاسورډ په لټه کې، یا data:image/…;base64 URL (PNG، JPEG، WebP یا GIF؛ نه SVG). یوازې د جنراتورونو لپاره edit؛ د هغو کسانو لپاره چې د requires_image_url. |
resolution نه کارول: هر جنراتور خپل اندازه کوي. سره url، هر انځور د یو عام Blossom میزبان ته اپلوډ کیږي او تاسو د لنکس ترلاسه کړئ (د ځينو جنراتورونه یوازې د خپل لنکس ته ورسیږي، کوم چې پیژندل کیږي). هر څوک چې د لنکس لري کولی شي دا وټاکل شي او دا نه کولی شي دوبارہ وټاکل شي. وګورئ هغه څه چې د API کولای شي وګورئسره
b64_json د عکس په ځواب کې راځي او هیڅکله اپلوډ نه کیږي. د عکس د data: URL په image_url په ورته ډول څاروي چې د
نندارتون او په لومړي کې د Blossom ته اپلوډ شي نو د جنراتور کولای شي دا ترلاسه کړي؛ دا په لوړه وخت کې د غوښتنلیک ناکام شي.
که ځینې د 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 (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);
انځورونه
بدلونونه د انځور چې تاسو اپلوډ کړئ، د لارښوونې وروسته. دا د OpenAI edit endpoint دی، نو د OpenAI SDKs' images.edit کار کوي لکه څنګه چې دا دی. یوازې د Pro جنراتور سره edit په نمونوي لیست کې د دې قبول وکړئ.
POST https://nymbot.ai/api/v1/images/edits - د API کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیهد بدن د multipart/form-dataد 32 MB پورې.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
image | فورمه | هو | د ترمیم لپاره د انځور: PNG، JPEG، WebP یا GIF، د 20 MB پورې. هم د image[]; د لومړي کارول کیږي. |
prompt | د String | هو | چیرته بدل کړئ |
model | د String | هو | د جنراتور سره edit. |
n | انټرنیټ | نه | 1 د 4 |
sizeaspect_ratioqualitynegative_promptoutput_format | د String | نه | د نسل په اړه. |
response_format | د String | نه | "b64_json" (د فورمه دلته) یا "url". |
د انځور چې تاسو اپلوز کړئ د PNG، JPEG، WebP یا GIF په ښه توګه جوړ شوي وي، په حقیقت ډول په توګه سپارل کیږي، او د یو عام Blossom میزبان ته ورسیږي، ځکه چې جنراتورونه د لینک له لارې د انډول ترلاسه کوي. دا په عمومي توګه درملنه وکړئ. که د ترمیم ناکام کیږي او هیڅکله کارول نه کیږي، د میزبان کاپي دوبارہ پاک کیږي. د ځواب د جنراتور لپاره ورته شکل لري. قیمت د جنراتور قیمت دی، کوم چې د ځینې جنراتورونو لپاره د انډول انځور لپاره د لګښت شامل دي.
ځواب
{
"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 (edit_unsupported). |
413 | د انځور د 20 MB څخه زيات (file_too_large), یا ټولې غوښتنلیک د 32 MB څخه زيات. |
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 کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیهد پلورلو 202.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | د ویډیو جنراتور ID GET /api/v1/models?type=videoلکه څنګه veo. |
prompt | د String | هو | هغه څه چې باید وي |
duration | شمیره یا string | نه | اوږدوالی په ثانیو کې، د 0 څخه زيات او د 60 پورې. یوازې د جنراتورونو لخوا کارول کیږي چې تاسو ته اجازه ورکوي چې اوږدوالی انتخاب کړئ؛ د نورو په معمولي اوږدوالي کې کاروي، کوم چې seconds په ځواب کې او د بیلګې په توګه. |
aspect_ratio | د String | نه | لکه څنګه "16:9" یا "9:16"; یو اندازه لکه "1280x720" د مخکښو په پرتله. |
resolutionquality | د String | نه | د جنراتور یو resolutions په نمونوي لیست کې، لکه "720p" یا "1080p". دا د بيه تنظیموي. هر څه بل سره انکار کیږي unsupported_resolution. |
image_url | د String | نه | د انځور څخه پیل کولو لپاره: د https:// لینک یا A data:image/… د URL، چې لومړی د یو عام Blossom میزبان ته اپلوډ کیږي. د جنراتورونو سره اړتیا لري requires_image_url. |
د بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو بیلابیلو
cost, estimated_cost او nymbot. که پلورونکي د کار څخه انکار کوي، کومه ورکړل شي. که د render وروسته ناکام کیږي، یا د بشپړ کلپ کولی شي ذخیره شي او پلورونکي د دې لپاره حساب نه ورکوي، دا لګښت په اتوماتيک ډول یو ځل ورکړل کیږي. د render چې د یو ساعت وروسته هم چمتو کیږي، له لاسه ورکړل کیږي، او د دې لګښت لري، ځکه چې پلورونکي د render لګښت کوي کله چې دا قبول کوي. د کیدای شي د کریډیټونو ته ورسیږي مګر د کلید لګښت لګښت کم نه کوي.
ځواب (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} - اړتيا لري چې د نيم چې دا وړاندې کړي. د کلیدي چې د خپل کپس ته ورسیږي، هم کولای شي چیک کړي.
ځوابونه 202 کله چې د ویډیو جوړ شوي او 200 کله چې دا بشپړ شوی یا ناکام شوی. هر 5 څخه تر 10 ثانیو ته پوښتنه. هر چک د پلورونکي څخه یو ځل پوښتنه او په هر وخت کې ځواب کوي؛ دا د ویډیو لپاره هیڅکله انتظار نه کوي. د کار د سپارلو وروسته د 24 ساعتونو لپاره ذخیره کیږي.
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), یا د دې ID لخوا د خپل نیم کار نه کوي، یا دا د 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);
Text ته خبرې کول
د متن روښانه وښيي او د صوتی فایل ځان ته ورسیږي، نه د لنک. دا د OpenAI خبرې پایلې ده، نو audio.speech.create په OpenAI SDKs کار کوي.
POST https://nymbot.ai/api/v1/audio/speech - د API کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیه.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | نه | د نندارتون نمونې د آډیو ماډل لیستDefault: د معياري غږ، @cf/myshell-ai/melotts. aura-2 د Deepgram Aura 2 په اړه |
input | د String | هو | د لیکلو متن: د معياري غږ لپاره د 800 حروف پورې، د Aura 2 لپاره د 2000 حروف پورې. |
voice | د String | نه | د Voice ID څخه د غږونو لیست: د Aura speaker لکه luna یا aura-2-luna-en) یا د MeloTTS ژمي (en, es, fr, zh). OpenAI غږونه لکه alloy راټول شوي دي او د نمونوي غږ ورکوي. |
language | د String | نه | یو ژبه کوډ لکه es. د یو غږ نه، دا د دې ژور لپاره یو انتخاب کوي. د یو غږ چې د نورو ژور خبرې کوي، راځي 422 voice_language_mismatch، او یو ژبه چې د نمونې لپاره هیڅ غږ نه لري 422 unsupported_language. |
response_format | د String | نه | د معياري غږونه راځي 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()));
د آډیو ماډل او غږونه
د دوو عام لیستونو لپاره د خبرې ماډل او غږ انتخاب، یا یو transcription ماډل. د 41 Aura 2 انګلیسي بولونکي او د 4 MeloTTS ژبو لري.
GET https://nymbot.ai/api/v1/audio/models د کلیدي اړتیا نلري.
GET https://nymbot.ai/api/v1/audio/voices?language=en د کلیدي اړتیا نلري.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
language | String (د پوښتنې) | نه | یوازې د دې زبان لپاره غږونه. |
model | String (د پوښتنې) | نه | یوازې د دې ماډل لپاره غږونه. |
ځوابونه (د غږونه)
{
"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);
د کلام په متن
سره Whisper د ریکارډونو په متن کې بدل کړئ. دا د OpenAI transcription پایلې ده، نو
audio.transcriptions.create کارونه
POST https://nymbot.ai/api/v1/audio/transcriptions - د API کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیهد بدن د multipart/form-data.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
file | فورمه | هو | د ریکارډ، له 256 بټ څخه تر 25 MB او د 30 دقیقې پورې: WAV، WebM، MP4 یا M4A، Ogg یا Opus، MP3 او نورو فارمونو Whisper لوستل. MP3 او نورو فارمونو چې د اوږدوالي نه کولای شي په مخ کې لوستل محدود دي 1.8 MB. |
model | د String | نه | د کمښت whisper، چې د Whisper لوی v3 Turbo دی. whisper-1, whisper-large-v3-turbo او @cf/openai/whisper-large-v3-turbo د ورته معنی. |
language | د String | نه | د خبرې شوي ژبه، لکه en. د نښلیدلو په صورت کې د نښلیدلو |
prompt | د String | نه | کلمه یا کلمې چې انتظار لري، لکه نومونه. یوازې د لومړي 1000 حروف کارول کیږي. |
response_format | د String | نه | json (د فورمه په اړه) text, srt, vtt یا verbose_json. |
د WAV، WebM، MP4 او Ogg فایلونو لپاره، د اوږدوالی د فایل څخه د هر ډول کارولو مخکې لیږل کیږي، نو د 30 دقیقې څخه زیات ریکارډونه د 3 ثانیو سره مخنیوی کیږي). د WAV فایل اوږدوالی د نمونې سرعت، چینلونو او نمونې اندازه له مخې دی. د نورو فارمونو، لکه MP3، اوږدوالی د مخنیوی له لارې نه لیږل کیدی شي، نو دوی په اندازه کې محدود دي: په کم ترین بټیټ نرخ کې Nymbot فرض کوي، 8 kbps، 30 دقیقې ده 1.8 MB، او په دې فارم کې یو لوی فایل سره مخنیوی کیږي 413
audio_too_long مخکې هر څه چلند. د اوږد ریکارډونه لکه WAV، WebM، MP4 یا Ogg. که Whisper بيا د 30 دقیقې څخه ډیر راپور ورکوي، د غوښتنلیک په هرصورت له خوا راټول کیږي
413 audio_too_long، او لکه څنګه چې Whisper ترسره شوی، د 30 دقیقې په لټه کې دي.
تاسو د اډیو اوږدوالی لپاره پیسې ورکړئ، د ثانیو پورې راکړئ: د فایل څخه د اوږدوالي څخه تر ټولو اوږدوالی، د اوږدوالي د Whisper گزارشونه، او لږ تر لږه د فایل اندازه اجازه ورکړئ، د Whisper د هر دقیقې بیه سره د عادي لګښت او لګښت، او لږ تر لږه 0.05 کریډیټ د غوښتنې سره. دا د معياري توازن څخه ورکړل کیږي کله چې دا کولی شي د لګښت پوښښ، او له Pro په بل ډول؛ 402 د هر توازن ته اړتيا لري. په اپلیکیشن کې، د صوتی پیژندنې ترانسپورت کولی شي وړیا وي؛ په API کې دا تل چارج کیږي. که چیپیر ناکام کیږي، هیڅکله چارج نه کیږي.
ځواب
{
"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 د زبان، د اوږدوالي او د وخت په برخه کې اضافه کوي. د درې چې JSON نه دي، د لګښت په نومونو کې دی.
| د شرایطو | کله چې |
|---|---|
400 | نه فایل، نه د کارول وړ آډیو فایبر (invalid_audio) ، یو نامتو فورم یا د نمونوي چې نه یو transcription نمونوي (invalid_model). |
402 | د توازن نه کولی شي د دې پوښښ. |
413 | د فایل د 25 MB څخه زيات (file_too_large) یا د 30 دقیقې څخه زیات ریکارډ، یا، په یو فورمټ کې چې په اوږدوالي کې نلري، د 1.8 MB څخه زیات (audio_too_long). |
502 | Whisper کولی شي د صوتی پروسس نه کړي. هیڅکله د لګښت نه کوي. |
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 کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیهد بدن د multipart/form-data.
ورته څنګه چې transcription، سره د ورته ځمکې غیر language، محدودیتونه او قیمتونه، مګر د متن په انګلیسي کې واپس کیږي کوم چې ژوره خبرې شوي. د OpenAI SDKs دا سره خبرې کوي 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);
نندارتونونه
ټیکټ د جستجو، کلستر کولو او deduplication لپاره ویټورونو کې بدل کیږي. ماډلونه په Cloudflare کې کارول کیږي او د معياري توازن لګښت کوي.
POST https://nymbot.ai/api/v1/embeddings - د API کلید ته اړتيا لري، یا له خوا د غوښتنې له خوا د Lightning تادیه.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | د انټرنیټ ماډل څخه GET /api/v1/models?type=embedding. |
input | د string یا array د string | هو | د ټیکن تر پوښښ، تر 100 غیر خالی string. Token array (token_input_unsupported) هر input باید د نمونوي سره مطابقت لري context_length، لکه څنګه چې د یو ټکین په اړه د 4 بائټونو په شمول. |
encoding_format | د String | نه | float (د default) یا base64 (د 32-bit floats په کوچني توګه کارول کیږي). |
dimensions | انټرنیټ | نه | د موډل په خپل اندازه، یا د يو موډل سره supported_dimensions یو: د وکتور وروسته shorted او normalized. هر څه نور refused. |
| د نمونوي | اندازه | مخکښ |
|---|---|---|
@cf/baai/bge-m3 | 1024 ډیرو ژبو | 8192 ټوکن |
@cf/qwen/qwen3-embedding-0.6b | 1024 ډیرو ژبو | 8192 ټوکن |
@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 کریډیټ کمېسيون د هر غوښتنې لپاره کارول کیږي، نه د هر انډول لپاره، نو د یو غوښتنې کې ډیری متنونه ډیری ارزانه ده، د دوی د یو په وخت کې وړاندې کولو په پرتله.
ځواب
{
"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 array (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);