بىلىم ئاساسى دىۋېلپەرلەر
ئىماج، ئاودیو ۋە ئىممېدىڭلەر
ئەپتىكىدىكى گېنېراتورلار ۋە ئىزلىش ئۈچۈن تەشوف قۇرمىلىرى: رەسىملار، ۋىدېيو، گەپ، تېكىستگە ئۆتۈش ۋە ئېمبېدىڭلەر (embeddings)، ھەر بىر ئىشلىتىش ئۈچۈن مۇبالىغەلىگىڭىزدىن ھېسابلىنىدۇ.
بۇ بەت قۇلايلىق ئۈچۈن ماشىنا تەرجىمە قىلىنغان. ئىنگلىزچە ئەسلى نۇسخىسى قوللىنىلىدۇ.
كارتىنلارنى يaratۇش
بۇ سۆزلىك ئۇچۇرغا ئاساسlanغانلا بىر彷رازغا تۆتتىنغاچە رەسىملەر يaratىدۇ ۋە تەزلىق تەخمինلىنىپلا بولۇپ ئۇنى قايتۇرىدۇ. ئۇ ... بىلەن ئانۇنىڭ ئىگىسى ئىگىلىگىدەكى مولدىتورلار توپىدۇر ?image ئەپتىكىچە.
ID-لار كېلىپ چىقىدۇ GET /api/v1/models?type=imageستاندات جنتراتور،
@cf/black-forest-labs/flux-1-schnell, ھەر بىر رەسىم ئۈچۈن تۇخان 5 ستاندرت كىرېدىت (50 sats) تۇرىدۇ. ئۇنىڭ يانىدقى ھەر بىر جەنېراتور ئورتاچا تومۇر ۋە قېمىت ئارقىلىق ئۆزining Pro كىرېدىتلىرىنى ئىشلىتىدۇ، مەن تېخلىك دەۋەندەك ئەپلىكات. n سۈرەتلەرنىڭ باھىسى
n ...قىلىپ كۆپتۇر. جانەراتور ئالمايدىغان مەيدان رد قىلىنمىغان، بەلكى تاشلىنىدۇ؛ ستاندرت جانەراتور پەقەت پڕۆمپنى ئىشلىتىدۇ.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
model | سىlying (تار) | ھەئە | بۇلىشچى ID، مەسىلەن nano-banana. |
prompt | سىlying (تار) | ھەئە | نە چىزىشىلغۇچە. تېكىنلەرنىڭ پەرتە ئىگىلىگى 2,000 بولغاچە ئىگىلانىدۇ. |
n | بۇت سان | يوق | 1 تىنچە 4 تىنچە. سىلدە 1. شۇنداقلا قاتلاشىلغان num_images. |
size | سىlying (تار) | يوق | بىر تۈرلىك ئاسپېكت قотноسى، مەسىلەن "16:9", ياكى OpenAI ئېتىزلىقى بىل lack چۇقۇش تək "1792x1024", ئۇنىڭ ئۈچىنچى 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 ۋە 4:5 نىڭ يېقىنلىق نىتжамиگە ئۆتىدۇ. "auto" تولغۇچىغا قалدۇرىدۇ. |
aspect_ratio | سىlying (تار) | يوق | بۇنىڭ ئۆزىدەك size, ۋە ئىككىلىغىمۇ يۆتكىزۈلگەن بولسا كىلاتۇ. |
quality | سىlying (تار) | يوق | جېنېراتۇرغا خاس، مەسىلەن "low", "medium" ياكىلا "high". |
negative_prompt | سىlying (تار) | يوق | نېمىنى چىقىرىپ تاشلاش كېرەك. |
output_format | سىlying (تار) | يوق | "png", "jpeg" ياكىلا "webp". |
response_format | سىlying (تار) | يوق | "url" (دېئولت) ياكى "b64_json". |
image_url | سىlying (تار) | يوق | باشلانغۇچ سۈپەتتە بىر سۈرەت: an https:// ئىچىدە ئىسسىملىك ئەلتىن تېكىلىك ياكى پאַسلىغى بولمىغان، ئەڭ مۇمكىن 4,096 خarakterli كۆرۈنمەس بىر ئۇلەنگە يەرەيدۇ، ياكى بىرەنمۇ data:image/…;base64 URL (PNG, JPEG, WebP ياكى GIF; SVG بولماي). بىلەن گېنېراتورلار ئۈچۈنلا edit; ئىگەلىگەنلەر تەرىپىدە تەلىپ قىلىنىدۇ requires_image_url. |
resolution ئىشلىتىلمايدۇ: ھەر بىر جنتراتور ئۆز ئۆزۈنىكىنىڭ ئۆلچىمىنى يaratىدۇ. بىلەن url,
ھەر بىر رەسىم ئ umumىي Blossom seenىغا يۇكلەنىدۇ ۋە ئۇنىڭلىقى سىزگە بېرىلىدۇ (بەزى generatorلار ئۆزلىرىنىڭ بىر لینکىنى بېرىدۇ، ئۇ ئۆتۈكىلىدۇ). لنکقا ئىگە بولغان ھەر كىمسە ئۇنى ئېچىش مۈمكىن ۋە ئۇنى قايتىشۇن ئۆچۈرۈپ بولالمايدۇ؛ قارىڭ API نىڭ نېمىنى كۆرەلىysىبىلەن.
b64_json رەسىم جاۋابقا قايتىپ كېلىدۇ ۋە ھարگىداچەڭ يۈكلەنمىيدۇ. رەسىم
بىر ... سۈپىتىدە يەڭگەن data: URL ئېچەرىدە image_url بىرلىگ تېكىش بىلەن ئىلگىرى كېلىدۇ
تەھرىپلىنىش ۋە مولدۇرىنىڭ ئالدىن ئېلىپ ئېلىشى ئۈچۈن تۇਪىچكىگە Blossom نىڭ بىرىكىشىگە ئالدىن يۈكلەندى؛ ئەگەر تاللانغان سۈرەت تۇگەتكىچە ھەسرەت بولمايانلىق ئۆتكىچە ئۇچۇر ناجاۋان بولسا، ئۇنىڭ ئۆچۈتىلىدۇ.
ئەگەر بىر نەچەس... n سۈئرەتler مۇۋەپپەقىيەتلىك بولمىغانتا، سىزگە ئىشلىگەنلىرى ئېلىنىدۇ، سىزگە پەقەت شۇلار ئۈچۈن (ۋە مۇۋەپپەقىيەتلىك بولمىغانلىققا قaramay تەمىنلىگچى تۇھۇقىدىن ھېسابلانغان ھەر قانداق سۈئرەت ئۈچۈن) تومۇرىۋېتلىنىدۇ، ۋە 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 }
}
| ھۆل | قاي قanda؟ |
|---|---|
400 | ئېمكىت يوق؛ n چەتكىدە 1 تىن 4 تke (invalid_value); يامون ئۆلچۈم (invalid_size) ياكى تەسۋىر (invalid_image, invalid_image_url); بار بولغان، ئەمما رەسىم يaratqich بولمىغان بىر مودېل (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);
ئەسەر يەرتەشخىپلash (ئەسەر تىزىلىشى)
سىز يۇقتۇرغان رەسىمنى سۆزلىك بۇيۇرىققا ئاساسلانغان حالدا ئۆزگەرتىدۇ. بۇ OpenAI نىڭ تەھرىرلەش endpoint-ى، شۇڭا OpenAI SDK-لىرى... images.edit ئىشلىۋاتىدۇ. پەقەت Pro generatorلار بىلەن edit مىدل رەپسىدە قېلىپ ئال مىڭ.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
image | فایل | ھەئە | تەھرىپلىنىدىغان سۈرەت: PNG, JPEG, WebP ياكى GIF, 20 MB قىدار. شۇنداقلا شۇنداق قەبۇل قىلىنىدۇ: image[]; بىرىنچى سۈپىتىدە ئىشلىتىلىدۇ. |
prompt | سىlying (تار) | ھەئە | نېمەلىك ئىزغا ئېلىنىشى كېرەك. |
model | سىlying (تار) | ھەئە | بىر جېنراتور بىلەن edit. |
n | بۇت سان | يوق | 1 تىنچە 4 تىنچە. |
sizeaspect_ratioqualitynegative_promptoutput_format | سىlying (تار) | يوق | ي لېتىش تەرەپتىن. |
response_format | سىlying (تار) | يوق | "b64_json" (بۇ يەرگىگە سىتتەلىگەن) ياكى "url". |
سۇراتىڭىزنىڭ yaxشى تۈرگە كىرىتىلگەن PNG، JPEG، WebP ياكى GIF ئىكەنلىكى، ئۆزىنىڭ ھەقىقىي تۈرىدە يىبەرىلىدۇ ۋە ھەپسە pessimistic 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 }
}
| ھۆل | قاي قanda؟ |
|---|---|
400 | رەسىم ياكى تۇنۇش يوق، رەسىم ئەمەس بولغان بىر fayl (invalid_image), ياكى تابسۇغۇچ (generator) تەھرىرلەنگىلى بولمايدىغان (edit_unsupported). |
413 | Surèt 20 MB تىن surpassed (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"));
ۋىدېو
ۋىدېئو مىنۇتلىق ۋاقىتنى ئالماقلىدى، شۇڭچە ئۇ ئارقىق پىلاندا ئىشلايدۇ. ئۇنى يۈكلىysىز، كۆرۈنۈش ئىدىسىنى ئېتىيان ئېلىسىز ۋە ئۇ تۇگۇلغۇچە ئىدىسى ھəkكىدە سۆزلىysىز. ھەر بىر ۋىدېئو يարاتقۇچ Pro بالانسىنى ئىشلىتىپ تۇرىدۇ.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
model | سىlying (تار) | ھەئە | بىر วิดېئو يەتىقلاشتىرىچى ئىدى -دىن GET /api/v1/models?type=video، مىسالدا veo. |
prompt | سىlying (تار) | ھەئە | نەما بولىدىغان؟ |
duration | سان ياكى سېلىھە (string) | يوق | سانىئە 秒ىدە، 0 دىن كۆپ ۋە 60 غىچە. پەقەت ئۇزۇنلىقىنى تاللاشقا رۇخ سالغان جەنېراتورلار تەرىپىدىن ئىگىلانىدۇ؛ قارىشىلار ئөзلىرىنىڭ ئادەتتىكى ئۇزۇنلىقىنى يارىتىدۇ، ئۇنىڭ ئۇزۇنلىقى نېمە؟ seconds جاۋابدا ۋە باهىسىda ئىزوھىلانغان. |
aspect_ratio | سىlying (تار) | يوق | مەسىلەن "16:9" ياكىلا "9:16"; بىر چوڭلۇق قاتارلىق "1280x720" يېقىنلىق ناتىҗە مەلۇماتلىرىغا ئايرىلىپ ئېتىلىدۇ. |
resolutionquality | سىlying (تار) | يوق | گېنېراتورلارنىڭ بىرىنىڭ resolutions مىدل listىدا، مەسىلەن "720p" ياكىلا "1080p". ئۇنى باھىنى بېلگىلەيدۇ. باشقا ھەر خىل ھالەتلىرىگە رەت قىلىنىدۇ unsupported_resolution. |
image_url | سىlying (تار) | يوق | باشلانغۇچ سۈپەتتە بىر سۈرەت: an https:// بۇلىم or a data:image/… ئالىمىدىگەچ (URL)، تۇنجىتەرتەپ ئۈمۇمىي Blossom seenini تىزگىتلىگىچە يۈكلەنگەن بولىشى كېرەك. جەنېراتورلار بىلەن تەلىپ قىلىنىدۇ requires_image_url. |
سېز يۆتتۈگەن ۋاقىتتا گېنېراTor، رېزولۇتسىيە ۋە ئۇزۇنلىققا ئاساسلانغان باھىنىڭ تەڭلىگەن بولىدۇ، شۇڭلۇچىن ئۇيغۇنلىغۇچۇ مۇلازمىچىلىقنى قəبۇل قىلغان ۋاقىتتا Pro بالانسىڭىزدىن تولىنىدۇ ۋە تۆلەڭگە تۆۋەندىكىچە كۆرسىتىلىدۇ
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 بۇ ... دەپ باشلانىدۇ in_progress, ياكىلىق completed ۋىدېئو بىلەن
ئالدىراقكىلىدۇ data گېنىراتور ئۇنى ئېگىزدىن قايتارغاندا.
بىر تېكىلوپ (video)نى تەكشۈرۈپ تۇرمۇشتۇمۇ
GET https://nymbot.ai/api/v1/videos/{id} — ئۆز ئۆzi تاشلىغان نىمغا (nym) تايىنلىق بولغان ئاپرۇچكا كېرەك. چەكىمىسى تۈگىتىلگەن ئاپرۇچكا ھ jî تەكشۈرۈپ 보기لىدۇ.
جاۋاب بېرىدۇ 202 ۋىدېيو تۈزۈلۋاتقان ۋاقىتتا ۋە 200 تاپلىغان يەڭىلىقلار تۇگىتىلگەن ياكى مۇۋەپپەقىيەتسىز بولغان قانچىلىقتا. ھەر 5 تىن 10ىچە سېكۇندە سورىلىدۇ. ھەر بىر تەكشەۋە ئۇلتۇرمىتىدىن بىرلىك떼 سۆرىۋە يەتەكچىدىن بىر مӓdetectChanges جەۋاب ئالېلىدۇ؛ ئۇ ھېچقىچان ۋىدېوﻧىڭ كېلىۋېلىشىنى كۈتپەيدۇ. بىر ئىش تۇغۇلغان ۋاقىتتىن باشلاپ 24 سوات ئىچىدە ساقلىنىدۇ.
GET /api/v1/videos ئالماشتىن ئۇچۇنكى 50 تىن ئەڭ אַخىر ئىشلىرىنى تېخلىنىدۇ
{"object": "list", "data": […]}.
Javap (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. A
مۇتاۋۋەقى قىلغان ئىش ئېقىنىدىكى كېسىرلىك مېنىۋالارنى كېلىكتۈرىدۇ error ({"code": "generation_failed", "message": …});
ئەگەر قايتارپۇقلىق قىلىنغان بولسا, cost 0 ۋە nymbot ئاددلار
refunded_credits ۋە refunded_satsتۆرتىلىپ بولغان ۋىدېو، ياراتىلغان رەسىملەرگە ئ𝘰خششاش، ئاممىۋى Blossom پۇرسەتىدە (host).
| ھۆل | قاي قanda؟ |
|---|---|
400 | بۇ يۆرتەلمە ئەمەس؛ 0 دان 60 غىچە بولمىغان ۋاقىت مۇددىتى (invalid_value); گېنېراتور تەمىنلەپ بېرمەيدىغان بىر رېزولۇتسىيا (unsupported_resolution); بىر سۈرەت تۇتۇنلىشىش keperluanى بار جينېراتور ئۈچۈن سۈرەت يوق (image_required); วิดีโอ生成器 دەۋال بولمىغان بىر مودېل (invalid_model). |
402 | Pro بىلانسى วىدىونى قاپلىاپالمايدۇ. |
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);
تېخستنى ئوازغا ئېلىش
مەزلىكتەكى تېكىستنى ئاۋاز قىلىپ ئوقۇۋاتىدۇ ۋە ئۇنى ئۇچۇرلىق بىرلىك (link) ئەمەس، بەلكى ئاۋازلىق fayl نىڭ ئۆزى قىلىپ qaytarىدۇ. بۇ OpenAI نىڭ سۆز بېرىش نۇقتىسى (speech endpoint)، شۇڭا audio.speech.create OpenAI SDK-لىرىدا ئىشلىيد.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
model | سىlying (تار) | يوق | ...دىكن نۇقتا سۆزلىك مودېلى ئودیو مودېللەر رەبسې. سېلىپ: ئاساسى ئاۋاز، @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 مۇ؟ |
input | سىlying (تار) | ھەئە | ئۇقۇلىدىغان تېكىست: سادىي ئاۋاز ئۈچۈن 800 خاراكتەرگە چəkMLىگىمۇچە، Aura 2 ئۈچۈن 2,000 خاراكتەر. |
voice | سىlying (تار) | يوق | ...دىكى ئاۋاز ئىزاھاتى ئاۋازلار تىزىملىكى: مەلۇمەتلىگىچە ئۆرىك ئاۋاز chiqarغۇچى (Aura speaker) بولغان سىپەتلىگىچە luna (ياكىلاسە aura-2-luna-en), ياكى MeloTTS تىلى (en, es, fr, zh). OpenAI ئاۋاز ئىدلىرى، مەسىلەن alloy قېلىپلىنىدۇ ۋە مودېلنىڭ ئاساسىي ئاۋازىنى بېرىدۇ. |
language | سىlying (تار) | يوق | مىسالدىن تىل كودى es. ئاۋاز بولمىغان حالدا، ئۇ ئۇشۇ تىلغا ئائتە ئاۋاز بىرنى تاللايدۇ. باشقا تىلدا گەپلىگەن ئاۋاز قايتىدۇ 422 voice_language_mismatch, ۋە مودېلنىڭ تېشىدە قالغان بىر تىل 422 unsupported_language. |
response_format | سىlying (تار) | يوق | ستاندات ئ𝘰چات تۇگۇن قايتىدۇ mp3 پەقەت. Aura 2 qayتىدۇ. mp3 (ئالگىرى سىتلىمىدەكى)، opus, aac, flac, wav ياكىلا pcm. |
speed | سان | يوق | قىبۇل قىلىندى ۋە چۈشەنمىدى. |
ستاندات ئواز ئالدىنى ھەر بىر سورۇش ئۈچۈن توغرىسىچە 3 ستانداត کریڊىت (30 سات) تۇرىدۇ، تېكىلىكتەكىدەكىدەك. Aura 2
Pro تۈرىدە بولۇپ، يەننېگەن خاراكتېر تۈرىگە قاراپ باھالەنەدۇ. جاۋاب گەۋدىسى ئاۋاز بولۇپ، ئۇنىڭگە ئۇيغۇنلاشقان
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)
| ھۆل | قاي قanda؟ |
|---|---|
400 | ئىندىخە تەمىنلەدىم؛ كىلىت مەلۇمات مودېلنىڭ چىقىش چىغىرىنىڭ تۇسىدى (input_too_long); مودېلنىڭ ئىزاھات قىلىپ بولмайدىغان بىر فورمات (unsupported_response_format); نالماج بىر ئۆچ بىر ئاۋاز (invalid_voice); سۆز مودېلی بولماغان بىر مودېل (invalid_model). |
422 | ئەتคาگىت قىلىنغان تىلدا ئەس səس چىقىقمايدۇ، ياكى مودېلنىڭ ئۇ تىلدا ئەسسىسى يوق. |
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 | سىستېمىدىكى سۆز (سۆرىش) | يوق | بۇ مودېل ئۈچۈن پەقەت ئاۋازلار. |
جەۋاب (ئەسسەرلىگەرلىكلىرى)
{
"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 }
]
}
Modeller رەisلىتە جەۋابلارنى بېرىدۇ {"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 نىڭ تېكىستكە ئايلاندۇرۇش نهايەتى، شۇڭا
audio.transcriptions.create ئىشلىۋاتىدۇ.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
file | فایل | ھەئە | سىرەتكۈش، 256 بايتتىڭ بۇلۇپ 25 MB غىچە ۋە 30 مىنۇتكىچە: WAV, WebM, MP4 or M4A, Ogg or Opus, MP3 ۋە Whisper ئېلىپ بايقاش قىلالدىغان باشقا فورماتلار. MP3 ۋە ئۇچۇرلىرىنىڭ ئۇزۇنلىقى ئالدىن ئېلىپ بايقالمايدىغان باشقا فورماتلار 1.8 MB بىلەن چەكلەنگەن. |
model | سىlying (تار) | يوق | ئەسلى whisper, ئۇيغۇرچە Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo ۋە @cf/openai/whisper-large-v3-turbo مۇنىمۇ ئورتاق دېگەنلىكى. |
language | سىlying (تار) | يوق | ئىزىلانغان تىل، مەسىلەن enئارتققا قaldۇرۇلغان بولسا، ئېنىقىلىدۇ. |
prompt | سىlying (تار) | يوق | ئالماشتۇرغۇچە كۈتۈلەيدىغان سۆزلىك تېكىستلەر، مەسىلەن ئىسىملار. پەقەت بىرىنچى 1,000 خاراكتېر ئىگىلانىدۇ. |
response_format | سىlying (تار) | يوق | json (ئالگىرى سىتلىمىدەكى)، text, srt, vtt ياكىلا verbose_json. |
WAV، WebM، MP4 ۋە Ogg fayllار ئۈچۈن ئۇزۇنلىق ھېچ نאַר باشلانغانغاچ fayl ئىچىدىن ئۆقۇلماقta، شۇڭا 30 دىكنىقتىن ئۇزۇن يېزىلىش تاللانماقتا (3 سېگۇندىن مۇئەددە ۋاقىت بېرىلىدۇ). WAV fayلىنىڭ ئۇزۇنلىقى ئۇنىڭ سېمپل ئىدرېتى (sample rate)، کاناللىرى ۋە سېمپل ئۆلچىمى بىلەن بېلگىلىنىدۇ. MP3 كىدەرلىك باشقا فورماتلارنىڭ ئۇزۇنلىقىنى باشلانغانلا ئۆقۇش مۇمكىن ئەمەس، شۇڭا ئۇلار ۋاقىت بىلە مېڭ (size) بىلەن چىكىلگەن: ئەڭھەڭ تۆۋەن بېرىت بېýt رېت (bitrate) بولغان 8 kbps بولغاچ، 30 دىقىقىەت 1.8 MB بولىدۇ، بۇ فورماتتا بۇنىڭدىن چوڭراق fayl بولسا تۆۋەندىكىچە تاللانماقتا 413
audio_too_long ھەر şeyi ئىشلىتىشتىن بۇرۇن. ئۇزۇنرىق قەزگۇلارنى WAV, WebM, MP4 ياكى Ogg سىپاتىدا يөڭگۈلىڭ.
ئەگەر Whisper بارغاق 30 միنىڭەتتىن كۆپlik قەزگۇنى بىلدۈرسە، تەلەپ تۆۋەندىكىگە ئاساسەن رەت قىلىنىدۇ:
413 audio_too_long, ۋە Whisper ئىشلىگەنلىكى سېبىبلىكن، 30 مىنۇت تۇھۇمغا چېكىلدى.
سىتا ئاۋازنىڭ ئۇزۇنلىقىغا قاراپ تۈگۈنلىتىلغان سان بىلкнуن تۆلەيمە: fayldan ئېلىنگەن ئەڭ ئۇزۇن ئۇزۇنلۇق، Whisper سالغىچلىغان ئۇزۇنلۇق ۋە fayl ئۆلچىمىنىڭ ئىچكى ئەڭ كىچىك ئۇزۇنلىقى، Whisperنىڭ ھەر مىنىتلىق باھىسىغا ئاساسلانغان ھالدا، ئادەتتىكى خەزىنىت ۋە مۇئمەلىي فارقى بىلەن، ھەر بىر سۆرىگە ئەڭ كەم 0.05 kredit بىلەن تۆلىنىدۇ. ئەگەر ستاندارت بالانست بۇ باھىنى قاپلىسىدۇ، ئۇنىڭدىن تۆلىنىدۇ، بولمىماسا Pro ھېسابىدىن تۆلىنىدۇ; a 402 ھەر بىر بالانستىڭنىڭ نېمەگە ئىلاللىق ئىكەنلىكىنى كۆرسىتىدۇ. قۇرۇلما ئىچىدە، ئاۋازلىق خەبارنى يېزىققا ئۆتۈش مۇجتارىچە بولۇشى مۇمكىن؛ API ئارقىلىق بولسا، ھەمىدە تۇھمەتلىنىدۇ. ئەگەر Whisper ئىشلىمەسە، ھېچقان تۇھمەت ئېلىنمىدۇ.
جەۋاب
{
"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 سادا تېكىست qayتۇرىدۇ, srt ۋە vtt سەپتەتلەرنى قايتۇرۇڭ، ۋە
verbose_json تىل، ۋاقىت ئۇزۇنلىقى ۋە ۋاقىتلىق بۆلۈملەرنى قوشۇپ قالىدۇ. JSON بولمىغان ئۈچتىن ئۈچۈن باھىسى سېرلىگىلەرنىڭ ئىچىدە.
| ھۆل | قاي قanda؟ |
|---|---|
400 | فىيل يوق، ئىشلاتىشقا بولىدىغان ئاۋاز بولمىغان فىيل (invalid_audio), نى bilinmegen فورمات، ياكى تەرگىمه تۇرىدىغان مودېل ئەمەس (invalid_model). |
402 | ھېچقانداق بالانست (قىယمەت) بұنى تۇلىق قاپلاشالمايدۇ. |
413 | ဖိုင်သည် 25 MB ထက်ကျော်နေသည် (file_too_large) ياكىسى يېزىلىشىپ تۇرغان يېزىش 30 dəقىقىدىن كۆپ بولسا، ياكى ئۇنىڭ ئۇزۇنلىقى ئالدىن ئۆلچەلمەيدىغان فورماتتۇكى ئۇزۇنلىقى 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);
گەپنى ئىنگلىزچە تىلغا تەرجىمە قىلىش
تەخريپ (transcription) بىلندىن پايدىلىق سېلىمى سىپىتىدە، ئەمما ... دىن باشقا language, چەكلەملەر ۋە
باھىسى، بەلكى قايتىپ كېلىدىغان تېكىست خۇما ئۇيغۇرچە بولغان تىلدا بولسىمۇ ئىنگلىزچە بولۇپ كەلىدوغان بولىدۇ. OpenAI SDK-لىرى ئۇنى
ئوناچە كۆرسىتىدۇ 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);
ئەھمىيەتلىك كۆتىكەتلەر (Embeddings)
تېكىستنى ئىزلىش، گۇرۇپقا توپلاش ۋە تەكراৰلانغانلىقنى ئẢلىب تاشلاش ئۈچۈن ۋېكتۇرلارغا ئايلانىدۇ. مودېللەر Cloudflare ئۈستىدە ئىشلىنىدۇ ۋە ستاندرت بەلەنچىنى ئىشلىتىدۇ.
| مەيدان | تەپ | تەلەپ قىلىنىدۇ | تەپسىۋەر |
|---|---|---|---|
model | سىlying (تار) | ھەئە | بۇنىڭ ئاجرىتىلغان مودېلىدىن GET /api/v1/models?type=embedding. |
input | سىلئم ياكى سىلئمىنىڭ تەkkى قۇرۇلمىسى | ھەئە | ئېمبېد قىلىنغۇچاق تېكىست، 100تىگە چəkەن تۈگەن ئەمەس سطرلار. تېكىن ئارەزىلىرى قəبۇل قىلىنمەيدۇ (token_input_unsupported). ھەر بىر كىرىش مودېلنىڭگە ماسلىشىشى كېرەك context_length, ھەر بىر توكنگە تەخمىنى تۆت بايت ھېسەپلىنىدۇ. |
encoding_format | سىlying (تار) | يوق | float (دېئولت) ياكى base64 (kichik-endian 32-bit flotlar). |
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 توكن |
مودېللىر تىزىملىسى قايسى مودېللىرىنىڭ بارلىقى ۋە ئۇلارنىڭ باھىسى نېمە ئىگەلىكىنى بىلدۈرۈۋاتقان ئەڭ تېخنىكىلىق مەnbە ئىدىر؛ Google ئېلىپكىلىنىشى (EmbeddingGemma)، تەلەپ قىلىنغانتا قىسقىراق ۋېكتۇرلار بىلەن، كاتالوجدا ئۇنىڭ باھىسى بار بولغان چەكىمدە ئۇ يەنە ئۇ يەرگە چىقىدۇ. ئىلمىدىلەر (Embeddings) كىرگۈزۈلگەن توكىن بىلەن ئۆلچىلىدۇ، ھەر بىر تەلەپ قىلىش ئۈچۈن 0.05- kredit ئەڭھەمىنىنى ئىشلىتىش كېرەك، ئۇ ھەر بىر كىرگۈزۈلگەن ماتنىغا ئەمەس، بەلكى ھەر بىر تەلەپ قىلىشقا ئېتىلگەن، شۇڭا كۆپلىكنە ماتنىلەرنى بىر تەلەپكە توپلاش، ئۇنى بىر-بىرden يөڭلىتىشتىن كىراچاق ئەۋاز much cheaper بولىدۇ.
جەۋاب
{
"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 }
}
| ھۆل | قاي قanda؟ |
|---|---|
400 | گىرىش يوق ياكى بوش سانلىق; تۆكىن تەرتىپلىرى (token_input_unsupported); 100تىن ئۆتۈپ مەلۇمات كېلىش ۋەلىگى (too_many_inputs); مودېلنىڭ قېلىپلىشىدىن ئۇزۇن كىرگۈزۈلگەن سان (input_too_long); مودېل بېرالمايغان بىر ئۆلچە็ม (unsupported_dimensions). |
402 | ستاندارت بالانسى (balance) جى quite تۆۋەن. Embeddings ھېچقىچۇن Pro بالانسىنى ئىشلىتمەيدۇ. |
404 | بۇ ئىسIM بىلەن تېخلىگەن ئىزاھلەتلىھ (embedding) مودېلى يوق. |
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);