Skip nav naverokê
Vegere Nymbot

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.

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îpPêwîst eWate
modeltîrêjErêID-ekê generatîr, wek mînak nano-banana.
prompttîrêjErêÇi bjezînim. Tenê 2,000 karakterên yekem tên bikaranîn.
nhejmarê tamNa1 heta 4. Default 1. Her wiha wekî tê qebûlkirin num_images.
sizetîrêjNaRê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_ratiotîrêjNaWekî wî/wê/wî/wê size, û heger her du jî bên şandin ser dike.
qualitytîrêjNaTaybet bi generatordê re, wekî "low", "medium" an "high".
negative_prompttîrêjNaÇi bêtir li derve biterikîn.
output_formattîrêjNa"png", "jpeg" an "webp".
response_formattîrêjNa"url" (yê default) an jî "b64_json".
image_urltîrêjNaWê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şaKengî
400Nagu/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).
402Bala nikare hemû wêneyên ku hatine daxwazkirin biparêze.
404Bi wî navî model tune ye (model_not_found).
502Generatôr ket (upstream_errorHeta dabînker ji bo hewldanê faturayê neşîne, tu tişt nayê cudakirîn; ew dem xeletî xwedî... charged_sats.
503Niha 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îpPêwîst eWate
imagedosyeErê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.
prompttîrêjErêDivê çi bê guhertin.
modeltîrêjErêGeneratorek bi edit.
nhejmarê tamNa1 heta 4.
size
aspect_ratio
quality
negative_prompt
output_format
tîrêjNaJi bo veberhênanê.
response_formattîrêjNa"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şaKengî
400Ne 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).
413Wêne zêdetirî 20 MB ye (file_too_large), an jî hemû daxwaz ji 32 MB mezintir be.
503Wê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îpPêwîst eWate
modeltîrêjErêID ê generatîkera vîdyoyê ji GET /api/v1/models?type=video, mînak wekî veo.
prompttîrêjErêDivê çi çêbe.
durationhejmar an stringNaDirê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_ratiotîrêjNaWek mînak "16:9" an "9:16"; qebareyek wekî "1280x720" dibibe nêzîkatiya rêjeyê.
resolution
quality
tîrêjNaYek 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_urltîrêjNaWê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şaKengî
400Naguş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).
402Hevcekiya Pro nikare vîdyoyê biparêze.
404Generatoreke 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).
429Nema 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.
502Generatôr kar red kir. Heta ku pêşkêşkar faktureya wê nekir, tu tişt nayê dravkirin.
503Vî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îpPêwîst eWate
modeltîrêjNaModelekî peyvê ji lîsteya modelên dengî. Default: dengê standard, @cf/myshell-ai/melotts. aura-2 Ma Deepgram Aura 2 ye?
inputtîrêjErêTeksta ji bo xwendinê: heta 800 karakter ji bo dengê standard, 2,000 ji bo Aura 2.
voicetîrêjNaNasnameya 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.
languagetîrêjNaKoda 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_formattîrêjNaDengê standard vedigeret mp3 tenê. Aura 2 vedigerî mp3 (yê default,) opus, aac, flac, wav an pcm.
speedhejmarNaGirtin û 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şaKengî
400Neqayî; 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).
422Deng zimanê hatî dayîn naxwîne, an jî modelê ji bo wê dengê wî tune ye.
502Modelê 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îpPêwîst eWate
languagetîp (pirsiyar)NaTenê dengên ji bo vê zimanî.
modeltîp (pirsiyar)NaTenê 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îpPêwîst eWate
filedosyeErê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.
modeltîrêjNaDefault 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.
languagetîrêjNaZimanê diaxivî, wekî enHeke bê derbas bibe tê dîtin.
prompttîrêjNaPeyv an şêwazên nivîsandinê yên ku tê çavserdan, wek nav. Tenê 1,000 karakterên yekem têne bikaranîn.
response_formattîrêjNajson (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şaKengî
400Fî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).
402Tu ji her du balanseyan jî nikare vê biparêze.
413Dosye 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).
502Whisper 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îpPêwîst eWate
modeltîrêjErêModelêka embedding ji GET /api/v1/models?type=embedding.
inputtêgeh an rêzek ji têgehanErê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_formattîrêjNafloat (yê default) an jî base64 (floats 32-bit little-endian).
dimensionshejmarê tamNaMezinahiya 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.
ModelDimensyonKontekst
@cf/baai/bge-m31024, gelek zimanan8,192 token
@cf/qwen/qwen3-embedding-0.6b1024, gelek zimanan8,192 token
@cf/baai/bge-large-en-v1.51024, Îngilîzî512 token
@cf/baai/bge-base-en-v1.5768, Îngilîzî512 token
@cf/baai/bge-small-en-v1.5384, Î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şaKengî
400Neqedana 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).
402Balansa standard pir kêm e. Embeddings tu carî balansa Pro naxin bikar.
404Bi wî navî modelê embedding tune ye.
502Model ş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);