Bingeha zanînê Dizayner/Pêşveber
Wêne, deng û embedding
Generatörên ji appê, û blokên avakirina lêgerînê: wêne, vîdyo, axaftin, nivîsandin û embeddings, her yek bi her bikaranînê ji hejmara we tê hec kirin.
Ev rûpel ji bo rehetiyê bi makîneyê hatiye wergerandin. Orjînala Îngilîzî guhertoya ku derbas dibe ye.
Wêne avajî kirin
Ji bo her daxwazê (prompt) ji yek heta çar wêneyan çêdike û dema amade dibin wan vedigerîne. Ew heman koma amûrên çêker in wekî ?image di aplikasyonê de.
POST https://nymbot.ai/api/v1/images/generations — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment.
ID's ji ku tên GET /api/v1/models?type=image. Generatora standard,
@cf/black-forest-labs/flux-1-schnell, ji bo her wêneyekî 5 krediyên standard (50 sats) hildide. Her generatorek din bi bihatê xwe yên krediyên Pro vedixwîne, bi berfeldarî û bi qeraxdarîya herî xweş, mîna di sepane. n Biha yê wêneyan
n heman caran. Qadê ku generatorek qebûl nake, li şûna redkirinê tê daxistin; generatore standard tenê promptê bikar tîne.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
model | tîrêj | Erê | ID-ekê generatîr, wek mînak nano-banana. |
prompt | tîrêj | Erê | Çi bjezînim. Tenê 2,000 karakterên yekem tên bikaranîn. |
n | hejmarê tam | Na | 1 heta 4. Default 1. Her wiha wekî tê qebûlkirin num_images. |
size | tîrêj | Na | Rêjeyek qemerê wekî "16:9", an an OpenAI mezinahî wekî "1792x1024", ku dibe nêzîkentirîn ji 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 û 4:5. "auto" dixwîne serê xwe dide generatôrê. |
aspect_ratio | tîrêj | Na | Wekî wî/wê/wî/wê size, û heger her du jî bên şandin ser dike. |
quality | tîrêj | Na | Taybet bi generatordê re, wekî "low", "medium" an "high". |
negative_prompt | tîrêj | Na | Çi bêtir li derve biterikîn. |
output_format | tîrêj | Na | "png", "jpeg" an "webp". |
response_format | tîrêj | Na | "url" (yê default) an jî "b64_json". |
image_url | tîrêj | Na | Wêneheke ji bo destpêkirinê: an https:// lînkeke herî kêm 4,096 karakter bi bê nav û şîfreya bikarhêner de, an jî a data:image/…;base64 URL (PNG, JPEG, WebP an GIF; ne SVG). Tenê ji bo generatoreke ku bi edit; ji aliyê yên ku bi ... re pêwîst e requires_image_url. |
resolution ne tê bikaranîn: her generatork bi xwe qebareya xwe çêdike. Bi url,
her wêne li ser hostekî Blossom ê giştî tê bilavkirin û tu lînkê toya dihêli (tenê çend generatordor lînkeke xwe vedidin, ku ew tê parvekirin). Her kesê ku lînk di destê wî de be dikare veke û nayê rakirin; binêre API dikare çi bibîneBi
b64_json wêne di bersivê de vedigere û qet nayê barkirin. Wêne
wekî ... hat şandin data: URL di nav de image_url bi heman şêweyî wekî ... tê kontrolkirin
sererast bike û pêşî li Blossom hate barkirin da ku generator bikaribe bikişîne;
heger daxwaz bê heqdan bi ser neket, dîsa tê jêbirin.
Heke hinek ji n wêne têk çûn, tu yên ku hatine xebitandin werdigirî, tenê ji bo
wan (hevre yên ku pêşniyarkêr tevî têkçûnê faturayê kirine), û nymbot.failed dibêje çend name ne kêm. Heke hemû bihev nebin, daxwaz vedigerîne 502.
Bersiv
{
"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 }
}
| Rewşa | Kengî |
|---|---|
400 | Nagu/Neytu; n ji derve 1 heta 4 (invalid_value); qebareke xerab (invalid_size) an wêneyî (invalid_image, invalid_image_url); modelek ku heye lê ne amûrê amadekirina wêneyan e (invalid_model); ji bo generatorekê ku nikare redigerî bike wêneyek (edit_unsupported); ji bo yê ku hewce dike wêneyek tune (image_required). |
402 | Bala nikare hemû wêneyên ku hatine daxwazkirin biparêze. |
404 | Bi wî navî model tune ye (model_not_found). |
502 | Generatôr ket (upstream_errorHeta dabînker ji bo hewldanê faturayê neşîne, tu tişt nayê cudakirîn; ew dem xeletî xwedî... charged_sats. |
503 | Niha nikaribîn wêneyan bi cih bikin (media_hosting_unavailable). b64_json hêj jî dixebite. |
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);
Dîtina wêneyan budîn kirin
Wêneya ku tu hildivîşî li gorî daxwazekê (prompt) diguherîne. Ev endpointa guhertinê ya OpenAI ye, lewî SDK-yên OpenAI... images.edit wek xwe dimîne. Tenê generatörên Pro bi edit di
lîsteya modelan qebûl bike.
POST https://nymbot.ai/api/v1/images/edits — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment. Laş e multipart/form-data, heta 32 MB.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
image | dosye | Erê | Wêneya ji bo hêjayîkirinê: PNG, JPEG, WebP an GIF, heta 20 MB. Her wiha wekî tê qebûlkirin image[]; yê yekem tê bikaranîn. |
prompt | tîrêj | Erê | Divê çi bê guhertin. |
model | tîrêj | Erê | Generatorek bi edit. |
n | hejmarê tam | Na | 1 heta 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | tîrêj | Na | Ji bo veberhênanê. |
response_format | tîrêj | Na | "b64_json" (li vir ê default e) an jî "url". |
Wêneyê ku tu hildiberî, tê kontrolkirin ku PNG, JPEG, WebP an jî GIF-ekî bi şêwazekî rast pêkhatî be, wekî cureê xwe yê rast hatibe şandin, û hatîye lêkerin ser hostekî giştî yê Blossom, ji ber ku amûrên çêker (generators) agahiyên xwe bi rêya lînkê hildigin. Wekî tiştekî giştî bi wî re tevbigere. Ger guhertin bi ser neket û tiştek nehatî dravdan kirin, kopiya li ser hostê dîsa tê jêbirin. Bersiv jî wekî bersiva çêkirinê (generation) ye. Bihayê dravdanê ew bihayê amûra çêker e, ku ji bo hin amûran ji bo wêneyê yê ketî nava amûrê jî bihayekî di nav de heye.
Bersiv
{
"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 }
}
| Rewşa | Kengî |
|---|---|
400 | Ne wêneyek an jî prompt nîn e, fîlekê ku wêneyek nîn e (invalid_image), an jî generatorek ku nikare guhertinê bike (edit_unsupported). |
413 | Wêne zêdetirî 20 MB ye (file_too_large), an jî hemû daxwaz ji 32 MB mezintir be. |
503 | Wêne niha nayê mêvan kirin (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"));
Vîdyo
Vîdyoyek çend deqîqeyan digire, lewma di paşperde de dixebite. Tu pêşkêşî dikî, rasterast ID-yek werdigerînî, û li ser ID-ê dipirsî heta ku bi dawî bibe. Her generatorkê vîdyoyê hevaqîya Pro qaryay dike.
POST https://nymbot.ai/api/v1/videos — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment. Veger dike 202.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
model | tîrêj | Erê | ID ê generatîkera vîdyoyê ji GET /api/v1/models?type=video, mînak wekî veo. |
prompt | tîrêj | Erê | Divê çi çêbe. |
duration | hejmar an string | Na | Dirêjahiya bi saniyeyan, zêdetir ji 0 û heta 60. Tenê ji aliyê generatorman ve tê bikaranîn ku rê didin te dirêjiyê hilbijêrî; yên din dirêjahiya xwe ya herî xwezayî çêdikin, ku ew çi ye seconds di bersivê de û biha li pey wê tê. |
aspect_ratio | tîrêj | Na | Wek mînak "16:9" an "9:16"; qebareyek wekî "1280x720" dibibe nêzîkatiya rêjeyê. |
resolutionquality | tîrêj | Na | Yek ji yên generatorkê resolutions di lîsteya modelan de, wek mînak "720p" an "1080p"Ew bihayî diyar dike. Her tiştê din bi ... tê redkirin unsupported_resolution. |
image_url | tîrêj | Na | Wêneheke ji bo destpêkirinê: an https:// lînk an a data:image/… URL, ku berî her tişt li hostekî giştî yê Blossom tê barkirin. Ji hêla generatoyên bi ... ve pêdivî ye requires_image_url. |
Dema ku tu pêşkêş dikî, bi rêya sûjeneratorê, rezolûsyon û dirêjiyê bi fîx e, lewma
bi navê balanseya te ya Pro tê barkirin dema ku pêşkêşkar kar qebûl dike, û wekî xuya dibe ku
cost, estimated_cost û nymbotHeke pêşkêş kar red bike, tişt nayê barkirin. Heke render paşê bi ser neket, an jî klîpa temamkirî neyê hilberîn û pêşkêş ji bo wê faturayê nexwîne, bar bi yek caran, bi avtomatîk tê vegerandin. Renderê ku piştî saetekê jî berdewam dike tê rawestandin, û barê xwe dihewîne, ji ber ku pêşkêş dema renderê qebûl dike faturayê dişîne. Vegerandina pereyan (refund) krediyan vedigerîne lê hejmara xerabûna pergelê (key's spend count) kêm nake.
Bersiv (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 wekî ... dest pê dike in_progress, an jî completed bi vîdyoyê re
heyâ di hundur de data dema ku generatôr tavilî vegerand.
Li vidiyoyekê digerim
GET https://nymbot.ai/api/v1/videos/{id} — pêdivî bi kileçekî ku a nymê ku wê pêşkêş kiriye be heye. Kileçek ku gihastiye sînorê xwe dikare hîn jî kontrol bike.
Bersiv dide 202 dema ku vîdyo tê çêkirin û 200 demê ku
temam bû yan jî têk çû. Her 5 heta 10 saniyeyan carekê bipirse. Her kontrol carekê ji radê dike û
carekê bersiv dide; qet li benda vîdyoyê nake. Kar 24 saetê piştî ku hatî pêşkêşkirin tê parastin.
GET /api/v1/videos 50 karên dawî yên kuncê wekî diyar bike
{"object": "list", "data": […]}.
Bersiv (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 ye in_progress, completed an failed. A
karê têkçûyî xwedî... error ({"code": "generation_failed", "message": …});
heke vegerandiye, cost ma 0 û nymbot zêde dike
refunded_credits û refunded_satsVideoya çêkirî li ser hosteke giştî ya Blossom ye, wekî wêne yên hatine afirandin.
| Rewşa | Kengî |
|---|---|
400 | Naguşt; demeke derveyî 0 heta 60 (invalid_value); resolutionek ku generatôr pêşkêş nake (unsupported_resolution); ji bo generatorekê ku wî hewce dike wêneyek tune (image_required); modelek ku generatorekî vîdyoyê ne (invalid_model). |
402 | Hevcekiya Pro nikare vîdyoyê biparêze. |
404 | Generatoreke wisa tune (model_not_found), an jî ji bo navê we bi wê ID'ê tu kar tune ye, an jî zêdetirî 24 saetî bi navê ye (video_not_found). |
429 | Nema te jixwe 10 vîdyoyên di amadekirinê de hene (video_jobs_limit). Kontrol li wan bike û dema ku yek biqedet yên din bişîne. |
502 | Generatôr kar red kir. Heta ku pêşkêşkar faktureya wê nekir, tu tişt nayê dravkirin. |
503 | Vîdyo niha nikarin werin gihanîn an jî hilanîn (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);
Tekst ji bo axaftinê
Tekstê bi dengekî bilind dixwîne û rasterast fîla deng vedegere, ne bi rêya linkê. Ew endpoint-a peyvê ya OpenAI ye,
ên ku audio.speech.create di SDK-ên OpenAI de dixebite.
POST https://nymbot.ai/api/v1/audio/speech — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
model | tîrêj | Na | Modelekî peyvê ji lîsteya modelên dengî. Default: dengê standard, @cf/myshell-ai/melotts. aura-2 Ma Deepgram Aura 2 ye? |
input | tîrêj | Erê | Teksta ji bo xwendinê: heta 800 karakter ji bo dengê standard, 2,000 ji bo Aura 2. |
voice | tîrêj | Na | Nasnameya dengî ji lîsteya dengan: hopirînekî Aura mîna luna (an aura-2-luna-en), an jî zimanekî MeloTTS (en, es, fr, zh). Navên dengê OpenAI wekî alloy tê qebûlkirin û dengekî sereke yê modelê didin. |
language | tîrêj | Na | Koda ziman wekî esBê deng, ji bo wê zimanê dengekî lê dixe. Dengê ku zimanekî din dipeyivî vegeria dertê. 422 voice_language_mismatch, û zimanek ku model nabeze dengê wî bide 422 unsupported_language. |
response_format | tîrêj | Na | Dengê standard vedigeret mp3 tenê. Aura 2 vedigerî mp3 (yê default,) opus, aac, flac, wav an pcm. |
speed | hejmar | Na | Girtin û paşguhkirin. |
Dengê standard ji bo her daxwazê 3 krediyên standard (30 sats) bi navê dibe, wek di app de ye. Aura 2
Pro ye, bi nirxê karakterên ku tu dişînî tê diyar kirin. Beşa bersivê deng e, bi dengekî...)
Content-Type; biha di ... de ye X-Nymbot-Cost-Sats sernav. Heke
modela axaftinê nebaş bibe, çî daxistin nîne.
Bersiv
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Rewşa | Kengî |
|---|---|
400 | Neqayî; daneyên di ser sînorê modelê de derbas bûn (input_too_long); formatek ku model nikare hilberîne (unsupported_response_format); dengekî nehatî (invalid_voice); modelek ku modelê axaftinê nîne (invalid_model). |
422 | Deng zimanê hatî dayîn naxwîne, an jî modelê ji bo wê dengê wî tune ye. |
502 | Modelê peyvê têk çû. Tişt ne hatine barkirin. |
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()));
Modelên deng û dengên (voices)
Du lîsteyên giştî ji bo hilbijartina model û dengê axaftinê, an jî modeleke transkripsiyonê. 41 axaftvanên îngilîzî yên Aura 2 û çar zimanên MeloTTS hene.
GET https://nymbot.ai/api/v1/audio/models — tu nekarî nebelîje.
GET https://nymbot.ai/api/v1/audio/voices?language=en — tu nekarî nebelîje.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
language | tîp (pirsiyar) | Na | Tenê dengên ji bo vê zimanî. |
model | tîp (pirsiyar) | Na | Tenê deng ji bo vê modelê. |
Bersiv (deng)
{
"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 }
]
}
Lîsteya modelan bersivan dide返 {"object": "list", "data": {"tts": […], "stt": […]}}Her modelê axaftinê hevahengî û bihayê xwe dide, max_input_chars,
response_formats, languages û default_voice; modele nivîsandinê navên xwe yên din dide, max_file_bytes, max_seconds,
formatan û biçemê deqîqeyê.
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);
Axaftin bo nivîsandinê
Bi Whisperîn qeydkirinê dike nivîs. Ev endpointa nivîsandinê ya OpenAI ye, lewsa
audio.transcriptions.create kar dike.
POST https://nymbot.ai/api/v1/audio/transcriptions — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment. Laş e multipart/form-data.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
file | dosye | Erê | Qeydkirin, ji 256 byte heta 25 MB û heta 30 jî deqîqeyan: WAV, WebM, MP4 an M4A, Ogg an Opus, MP3 û formatên din ku Whisper dixwîne. MP3 û formatên din ku dirêjahiya wan nebaş di destpêkê de nayê xwendin, dişewtînin 1.8 MB. |
model | tîrêj | Na | Default whisper, ku ew Whisper Large v3 Turbo ye. whisper-1, whisper-large-v3-turbo û @cf/openai/whisper-large-v3-turbo heman tiştê vedisînin. |
language | tîrêj | Na | Zimanê diaxivî, wekî enHeke bê derbas bibe tê dîtin. |
prompt | tîrêj | Na | Peyv an şêwazên nivîsandinê yên ku tê çavserdan, wek nav. Tenê 1,000 karakterên yekem têne bikaranîn. |
response_format | tîrêj | Na | json (yê default,) text, srt, vtt an verbose_json. |
Ji bo fîlên WAV, WebM, MP4 û Ogg, dirêjî berî ku tişt dest pê bike ji fîlê tê xwendin, lewma
qeydkirinên zêdetirî 30 deqîqeyan di destpêkê de tê daxistn (bi 3 saniyeyan demeke zêde). Dirêjahiya fîlekî WAV
ji rêjeya sample, kanal û mezinahiya sample tê. Dirêjahiya formatên din, wek MP3,
nekare di destpêkê de bê xwendin, lewma bi mezinahiyê tê sînorkirin: di herî kêm bitrate de ku Nymbot difikire, 8 kbps,
30 deqîqe 1.8 MB e, û fîlekî mezinتر di wî formatî de bi vê yekê tê daxistin 413
audio_too_long berî ku tiştek dest pê bike. Dengên dirêjtir wekî WAV, WebM, MP4 an jî Ogg bişînin.
Heke Whisper tevî wê yekê rapor bide ku zêdetirî 30 deqîqe ne, daxwaz bi vê yekê tê redkirin:
413 audio_too_long, û ji ber ku Whisper xebitî, 30 deqîqeyan hatine
hesabkirin.
Tu ji bo dirêjahiya dengî dimeşînin, ku tê xala vegerandinê (rounded up) heta saniye: ya herî dirêj a ku ji fîlbê tê xwendin, dirêjahiya ku Whisper raport dike, û ya herî kêm a ku mezinahiya fîlbê destûr dide, bi biçûkiya Whisper a bi her deqîqeyî bi weqîfeya ordinary û qazancê re, û herî kêm 0.05 credit ji bo her daxwazê. Ew ji hejmara standart tê daretin dema ku ew bikaribe hewcedariyê biparêze, û ger ne be ji Pro tê daretin; a 402 diyar dike ku her
balance çi hewce dike. Di appê de, nivîskirina peyama deng dibe ku belaş be; li ser API her tim
dewran tê daxistin. Heke Whisper bi ser neket, tiştekî nayê daxistin.
Bersiv
{
"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 tekstê sade vedigerîne, srt û vtt wergerandinên jêrî, û
verbose_json ziman, dirêjî û beşên demkirî lê zêde dike. Ji bo yên sê yên ku ne JSON in, bihayê di headeran de ye.
| Rewşa | Kengî |
|---|---|
400 | Fîlek nîne, fîlekek ku dengê wê yê bikarhatî nîne (invalid_audio), formatekî nagenihîje, an modelek ku modela nivîskirina deng nîne (invalid_model). |
402 | Tu ji her du balanseyan jî nikare vê biparêze. |
413 | Dosye zêdetirî 25 MB e (file_too_large) an jî qeyda zêdetirî 30 deqîqeyan, an jî, di formatekî ku dirêjahiya wê nebaş bibe, zêdetirî 1.8 MB (audio_too_long). |
502 | Whisper nikarî deng pêvajoyî bike. Tişt ne hatine barkirin. |
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);
Wergerandina axaftinê bo îngilîzî
POST https://nymbot.ai/api/v1/audio/translations — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment. Laş e multipart/form-data.
Wekî nivîsandinê, bi heman qadên li wir ji bilî language, sînor û
biha, lê dema nivîs tê vegerandin bi îngilîzî ye çi ziman hatibe axaftin. SDK yên OpenAI
bi vê yekê memar dikin 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
Tekstê vediguhişîne vektoran ji bo lêgerîn, klasterkirin û dubarekirinê. Modellan li ser Cloudflare dixebitin û hejmara standart bi kar tînin.
POST https://nymbot.ai/api/v1/embeddings — pêdivî bi koda API heye, an jî dema daxwazekê per Lightning payment.
| Zevî | Tîp | Pêwîst e | Wate |
|---|---|---|---|
model | tîrêj | Erê | Modelêka embedding ji GET /api/v1/models?type=embedding. |
input | têgeh an rêzek ji têgehan | Erê | Teksta ji bo hundurînandinê, heta 100 rêzên nevalî. Arrayên tokenan têne redkirin (token_input_unsupported). Her danîn (input) divê li gorî modelê be context_length, ku wekî nêzîkî çar bayt ji bo her tokên tê hesabkirin. |
encoding_format | tîrêj | Na | float (yê default) an jî base64 (floats 32-bit little-endian). |
dimensions | hejmarê tam | Na | Mezinahiya modelê bi xwe, an ji bo modeleke bi supported_dimensions yek ji wan; paşê vektor kurt dikevin û normalization dikin. Her tiştê din tê redkirin. |
| Model | Dimensyon | Kontekst |
|---|---|---|
@cf/baai/bge-m3 | 1024, gelek zimanan | 8,192 token |
@cf/qwen/qwen3-embedding-0.6b | 1024, gelek zimanan | 8,192 token |
@cf/baai/bge-large-en-v1.5 | 1024, Îngilîzî | 512 token |
@cf/baai/bge-base-en-v1.5 | 768, Îngilîzî | 512 token |
@cf/baai/bge-small-en-v1.5 | 384, Îngilîzî | 512 token |
Lîsteya modelan çavkaniya rastiyê ye ku diyar dike kîjan model hene û bi çendî ne; EmbeddingGemma ya Google, ku bi daxwazê vektora kurttir dide, ew jî li wir xuya dike dema ku katalog ji bo wê bihayekê hebe. Embeddings li gorî tokenên girêdanê têne hesabkirin, û minimuma 0.05-krediyê ji bo her daxwazê hatiye sepandin, ne ji bo her girêdanê, lewma komkirina gelek nivîsan di daxwazekê de pir bihaştir e ji şandina wan yek bi yek.
Bersiv
{
"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 }
}
| Rewşa | Kengî |
|---|---|
400 | Neqedana gihîştinê an jî yekî vala; rêzên tokenan (token_input_unsupported); zêdetirî 100 daneyên ketinê (too_many_inputs); daxwazeke ji modelê dirêjtir dibe (input_too_long); qebareyek ku model nikare bide (unsupported_dimensions). |
402 | Balansa standard pir kêm e. Embeddings tu carî balansa Pro naxin bikar. |
404 | Bi wî navî modelê embedding tune ye. |
502 | Model şaş bû. Tişt ne hatine barkirin. |
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);