Mazmuna geçiň
Nymbot-a yzyna gaýdyp

Bilim binýady Programmistler

Suratlar, audio we embeddingler

Programmadaky generatorlar we gözleg üçin esaslary: suratlar, wideo, ses, transkripsiýa we embeddingler, her biri ulanylyşy boýunça balansıňyzdan hasaplanýar.

Surat döretmek

Promptdan bir-dörte çenli surat döredýär we olar taýýar bolanda olary gaýtaryp berýär. Ol şol bir generatorlar toplumydyr... ?image programmanyň içinde.

POST https://nymbot.ai/api/v1/images/generations — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegi.

ID-ler ...-dan/-den gelýär GET /api/v1/models?type=image. Standart generator, @cf/black-forest-labs/flux-1-schnell, her surat üçin 5 standart kredit (50 sats) tölenýär. Beýleki generatorlaryň her biri öz bahasyny, adatky töleg we girdeji bilen Pro kreditlerini sarp edýär, mysal üçin programma. n surataryň bahasy n şunça esse köp. Generator almaýan meýdan ret edilmän, aňdyrylyp taşlanýar; standart generator diňe prompt ulanýar.

MeýdanGörüşTalap edilýärBeýany
modelýazgyHawaGenerator ID-si, mysal üçin nano-banana.
promptýazgyHawaNäme çekmeli. Diňe ilkinji 2 000 simwol ulanylýar.
nbitin sanÝok1-den 4-e çenli. Standart 1. Şeýle hem kabul edilýär num_images.
sizeýazgyÝokŞeýle açylyk gatnaşygy ýaly "16:9", ýa-da OpenAI ölçegi ýaly "1792x1024", haýsy-da 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 we 4:5 gatnaşyklaryna iň ýakynda bolýar. "auto" generatorda galdyrýar.
aspect_ratioýazgyÝokŞuňa meňzeş size, we ikisi hem iberilse ýeňiş gazanýar.
qualityýazgyÝokGeneratora mahsus, mysal üçin "low", "medium" ýa-da "high".
negative_promptýazgyÝokNäme üçin goýberip biljekdigiňiz.
output_formatýazgyÝok"png", "jpeg" ýa-da "webp".
response_formatýazgyÝok"url" (başlangyç) ýa-da "b64_json".
image_urlýazgyÝokBaşlamak üçin surat: bir https:// içinde ulanyjy ady ýa-da paroly bolmadyk, iň köp 4,096 simwoldan ybarat bolan link ýa-da a data:image/…;base64 URL (PNG, JPEG, WebP ýa-da GIF; SVG däl). Diňe şulary ulanýan generatorlar üçin edit; şu adamlaryň talaby: requires_image_url.

resolution ulanylmaýar: her generator öz ölçegini döredýär. With url, her bir surat umumy Blossom host-a ýüklenilýär we siz onuň salgysyny alýarsyňyz (diňe birnäçe generator öz salgysyny berýär, ol bolsa dowam etdirilýär). Salgyny bilýän islendik adam ony açyp bilýär we ony gaýtadan aýyrmak mümkin däl; serediň API nämäni görüp bilýär. Bilän b64_json surat jogapda yzyna gaýdyp gelýär we hiç wagt ýüklänok. A surat ýol bilen iberilen data: URL içinde image_url birmeňzeş usulda barlanýarmy? redaktirle ...we generator ony çekip bilmegi üçin ilki bilen Blossom-a ýüklenýär; eger sorat hasaplaşylmadyk ýagdaýda başarısyz bolsa, ol ýene-de pozulýar.

Eger käbirleri bolsa n suratlar ýalňyş gidýär, siz diňe işleşenlerini alýarsyňyz, diňe şolaryň üçin (göni başarman sogat edilen islendik surat bilen bilelikde) töleg edilýär, we nymbot.failed näçe sanynyň ýitendigini aýdýar. Eger hemmesi başarısyz bolsa, sorag gaýtarýar. 502.

Jogap

{
  "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 }
}
StatusHaçan
400Prompt ýok; n daşaryda 1-den 4 çenli (invalid_value); ýaramasyz ölçeg (invalid_size) ýa-da surat (invalid_image, invalid_image_url); bar bolan, ýöne surat dörediji däl model (invalid_model); redaktirläp bolmaýan generator üçin surat (edit_unsupported); mätäç bolan biri üçin surat ýok (image_required).
402Balans ähli soralan suratlary ýapyp bilmeýär.
404Şol at bilen model ýok (model_not_found).
502Generator işjeň däl (upstream_error). Hyzmat ediji synanygyk üçin hasap düzmedik bolsa, hiç hili töleg alynmaýar; onda ýalňyşlyk... charged_sats.
503Suratlar häzirki wagtda ýerleşdirilip bilmeýär (media_hosting_unavailable). b64_json häli hem işleýär.

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);

Suratlary redaktirlemek

Promptyň esasynda ýükleýän suratyňyzy üýtgedýär. Bu OpenAI-nyň redaktirleme (edit) nokady bolup, şonuň üçin OpenAI SDK-larynyň images.edit Bar bolşy ýaly işleýär. Diňe Pro generatorlar bilen edit model sanawynda ony kabul et.

POST https://nymbot.ai/api/v1/images/edits — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegiBeden... multipart/form-data, 32 MB çenli.

MeýdanGörüşTalap edilýärBeýany
imagefaýlHawaRedetmeli surat: PNG, JPEG, WebP ýa-da GIF, 20 MB çenli. Şeýle hem kabul edilýär: image[]; birinji ulanylýar.
promptýazgyHawaNäme üýtgetmeli?
modelýazgyHawaGenerator bilen edit.
nbitin sanÝok1-den 4-e çenli.
size
aspect_ratio
quality
negative_prompt
output_format
ýazgyÝokGeneration barada bolsa.
response_formatýazgyÝok"b64_json" (bu ýerdäki standart) ýa-da "url".

Siz ýüklän suratyň dogry emele gelnen PNG, JPEG, WebP ýa-da GIF bolandygyny, öz hakyky görnüşinde iberilendigini we generatorlar giriş maglumatlaryny link arkaly alýandygy sebäpli, public Blossom host-da ýerleşdirilendigini barlamak maksadyna ulanýarys. Ony public (umumy) hasaplalyň. Eger redaktirleme başarmazsa we hiç hili töleg alynmasa, ýerleşdirilen nusga ýene-de öçüriler. Jogap generator üçin degişli bolan görnüşde bolar. Bahalar generatoriň bahasydyr, käbir generatorlar üçin bu bahanyň içine giriş suraty üçin töleg hem goşulýar.

Jogap

{
  "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 }
}
StatusHaçan
400Surat ýa-da prompt ýok, surat bolmadyk faýl (invalid_image), ýa-da redaktirläp bilmeýän generator (edit_unsupported).
413Surat 20 MB-dan uly (file_too_large), ýa-da bütin sorag 32 MB-dan köp.
503Surat häzir ýerleşdirilip bilmeýär (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"));

Wideo

Wideo birnäçe minut dowam edýär, şonuň üçin ol arka planda işleýär. Siz ony ugradýarsyňyz, derrew ID alýarsyňyz we wideo tamamlanýança şol ID barada soraýarsyňyz. Her wideo generator Pro balansyny sarp edýär.

POST https://nymbot.ai/api/v1/videos — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegi. Gaýtaryşlar 202.

MeýdanGörüşTalap edilýärBeýany
modelýazgyHawaWideo generator ID-si şundan: GET /api/v1/models?type=video, ýaly veo.
promptýazgyHawaNäme bolmaly.
durationsan ýa-da setirÝokSekunt görnüşinde dowamlylygy, 0-dan köp we 60-a çenli. Diňe dowamlylygy saýlamaga rugsat berýän generatorlar tarapyndan ulanylýar; beýlekiler bolsa öz adatky dowamlylygyny ýasaýarlar, ol bolsa näme? seconds jogapda we baha yzyndan gelýär.
aspect_ratioýazgyÝokMeselem "16:9" ýa-da "9:16"; ölçeg ýaly "1280x720" iň ýakyn gatnaşyga öwrülýär.
resolution
quality
ýazgyÝokGeneratorlaryň biriniň resolutions model sanawynda, mysal üçin "720p" ýa-da "1080p". Ol bahany kesgitleýär. Başga hiç zat bilen ret edilýär unsupported_resolution.
image_urlýazgyÝokBaşlamak üçin surat: bir https:// link ýa-da a data:image/… Ilki bilen umumy Blossom host-a ýüklenen URL. Generatorlar üçin talap edilýär requires_image_url.

Generator, разрешениe we uzynlyk boýunça tabşyran wagtyňyz bahasy anyklanýar, şonuň üçin ulygy (provider) işi kabul eden badyna Pro balansyňyzdan hasaplanýar we şeýle görkezilýär cost, estimated_cost we nymbotEger üpjünçi işden ýüz öwürse, hiç zat tölenmeýär. Eger render soňra başarjysyz bolsa ýa-da taýýar klip saklanyp bilinmese we üpjünçi mun üçin hasap sormasa, töleg bir gezek awtomatiki usulda yzyna gaýtarylýar. Bir sagatdan soň hem dowam edýän render duruzylýar we tölegi saklanýar, sebäbi üpjünçi renderi kabul edende onuň tölegini hasaplaýar. Yzyna gaýtarylma (refund) kreditleri yzyna berýär, ýöne açaryň (key) sarp edilen sanyny azaltmaýar.

Jogap (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 başlanýar in_progress, ýa-da completed wideo bilen eýýäm içinde data Generator ony derrew gaýtaryp berende.

Widehow geçirilýär

GET https://nymbot.ai/api/v1/videos/{id} — ony tabşyran nym-a degişli açar gerekdir. Çäkine ýetip gelen açar hem barlap bilýär.

Ol jogap berýär 202 wideo döredilýän wagty we 200 ol tamamlananda ýa-da ýalňyşlyk berende. Her 5-den 10 sekuntdan soraň. Her barlag provayderden bir gezek soraýar we şol bada jogap berýär; ol wideo üçin hiç wagt garaşmaýar. Iş tabşyrylan pursatdan başlap 24 sagatlap saklanýar. GET /api/v1/videos açaryň soňky 50 işini ... hökmünde sanap berýär {"object": "list", "data": […]}.

Jogap (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 ýa-da failed. A başarmadyk iş ýük goýýar error ({"code": "generation_failed", "message": …}); eger yzyna gaýtarylýan bolsa, cost 0 we nymbot goşmalar refunded_credits we refunded_satsTaýýar wideo, döredilen suratlary ýaly, umumy Blossom host-da ýerleşdirilýär.

StatusHaçan
400Prompt ýok; 0-dan 60-a çenli bolmadyk dowamlylyk (invalid_value); generator hödürleýän çözgüt däl (unsupported_resolution); bir surata mätäç generator üçin surat ýok (image_required); wideo generator bolmadyk model (invalid_model).
402Pro balansyny wideo üçin ýeterlik däl.
404Beýle generator ýok (model_not_found), ýa-da siziň nym-yňyz üçin şol ID boýunça iş ýok, ýa-da ol 24 sagatdan köp wagt geçendir (video_not_found).
429Siziň nym-yňyzda eýýäm 10 sany wideo render edilýär (video_jobs_limit). Olary barlap, biri tamamlananda täzesini ugradyň.
502Generator işi ret etdi. Üpjün ediji hasaplamady bolsa, hiç zat tölenmeýär.
503Wideo häzir elýeterli däl ýa-da saklanyp bilmeýär (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);

Tekstden seslendirme

Teksti sesli okaýar we link däl-de, ses faýlynyň özüni gaýtaryp berýär. Bu OpenAI-iň ses uçwazy (endpoint), şonuň üçin audio.speech.create OpenAI SDK-larynda işleýär.

POST https://nymbot.ai/api/v1/audio/speech — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegi.

MeýdanGörüşTalap edilýärBeýany
modelýazgyÝok...-dan/den gürleýiş modeli audio modelleriň sanawy. Standart: standart ses, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 bolýarmy?
inputýazgyHawaOkaljak tekst: standart ses üçin 800 simvola çenli, Aura 2 üçin 2 000.
voiceýazgyÝokSesiň ID-si şundan: sesleriň sanawy: Aura speaker ýaly luna (ýa aura-2-luna-en), ýa-da MeloTTS dili (en, es, fr, zh). OpenAI ses atlary ýaly alloy kabul edilýär we modeliniň standart sesini berýär.
languageýazgyÝokMeselem, dil kody ýaly esSes bolmazdan, ol şol dil üçin bir ses saýlaýar. Başga dili gürleýän ses bolsa yzyna dolanýar 422 voice_language_mismatch, we modeliň sesi ýok bolan dil 422 unsupported_language.
response_formatýazgyÝokStandart ses yene dolanyp gelýär mp3 diňe. Aura 2 gaýtaryp berýär mp3 (başlangyç), opus, aac, flac, wav ýa-da pcm.
speedsanÝokKabul edildi we üýtgeşik bolup galdy.

Standart ses her soraýyş üçin app-däki ýaly 3 standart kredit (30 sats) möçberinde tölenýär. Aura 2 Pro bolup, ol ugradýan simwollaryňyza görä baha berilýär. Jogabyň gody audio bolup, şol bir wagtda şeýle hem degişli Content-Type; bahasy ...-da X-Nymbot-Cost-Sats header. Eger geplegi modeli işlemeýän bolsa, hiç zat tölenilmeýär.

Jogap

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6

(audio bytes)
StatusHaçan
400Giriş ýok; giriş modeliň çägi aşýar (input_too_long); modeliň öndürip bilmeýän formaty (unsupported_response_format); nätanyş ses (invalid_voice); aýdyş modeli bolmadyk model (invalid_model).
422Ses berlen dili gepleýär ýa-da modelde onuň üçin ses ýok.
502Söz modeli işjeň bolmady. Hiç zat tölenmedi.

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()));

Audio modelleri we sesleri

Nutdeňli model we ses saýlamak ýa-da transkripsiýa modeli üçin iki sany umumy sanaw bar. Olarda 41 Aura 2 iňlisçe gepleýän we dört MeloTTS dili bar.

GET https://nymbot.ai/api/v1/audio/models — açary gerek däl.

GET https://nymbot.ai/api/v1/audio/voices?language=en — açary gerek däl.

MeýdanGörüşTalap edilýärBeýany
languagesetir (sorag)ÝokBu dil üçin diňe sesler.
modelsetir (sorag)ÝokDiňe şu model üçin sesler.

Jogap (sesler)

{
  "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 jogaplaryň sanawyny berýärler {"object": "list", "data": {"tts": […], "stt": […]}}Her ses modeli öz balansyny, bahasyny berýär, max_input_chars, response_formats, languages we default_voice; transkripsiýa modeli öz aliaslaryny berýär, max_file_bytes, max_seconds, formatlar we bir minut üçin baha.

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);

Sözden tekst ýazgyda

Whisper arkaly ses ýazgysyny tekst görnüşine öwürýär. Bu OpenAI-niň transkripsiýa nokadydyr, şonuň üçin audio.transcriptions.create işleýär.

POST https://nymbot.ai/api/v1/audio/transcriptions — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegiBeden... multipart/form-data.

MeýdanGörüşTalap edilýärBeýany
filefaýlHawaHasylat, 256 baýtdan 25 MB çenli we 30 minuda çenli: WAV, WebM, MP4 ýa-da M4A, Ogg ýa-da Opus, MP3 we Whisper tarapyndan okalýan beýleki formatlar. MP3 we uzynlygy öňünden okalyp bilinmeýän beýleki formatlar 1.8 MB bilen çäklendirilen.
modelýazgyÝokEsasy whisper, haýsy-da bolsa Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo we @cf/openai/whisper-large-v3-turbo şol bir zady aňladýar.
languageýazgyÝokGürleýiş dili, mysal üçin enÇykaryp goýulsa, anyklanar.
promptýazgyÝokGaraşylýan sözler ýa-da ýazylyşlar, meselem, atlar. Diňe ilkinji 1 000 belgi ulanylýar.
response_formatýazgyÝokjson (başlangyç), text, srt, vtt ýa-da verbose_json.

WAV, WebM, MP4 we Ogg faýllary üçin dowamlylygy hiç zat başlamanka faýldan okalýar, şonuň üçin 30 minutdan uzyn ýazgy öňünden ret edilýär (3 sekuntlyk goşmaça wagt bilen). WAV faýlynyň dowamlylygy onuň nusga tizligi (sample rate), kanallary we nusga ölçegi bilen kesgitlenýär. MP3 ýaly beýleki formatlaryň dowamlylygy öňünden okap bolmaýar, şonuň üçin olar ölçegi bilen çäklendirilýär: Nymbot iň pes bitratanyň (8 kbps) 30 minutyny 1.8 MB diýip hasaplaýar we şeýle formatdaky has uly faýl bilen ret edilýär 413 audio_too_long hiç zat işläp başlamanka. Uzakrak ýazgylary WAV, WebM, MP4 ýa-da Ogg görnüşinde iberiň. Eger Whisper ýene-de 30 minutdan köp wagty aýtsa, sorag şu aşakdakylar bilen ret edilýär: 413 audio_too_long, we Whisper işlediği üçin, 30 minut hasaplanýar.

Siz audio uzynlygy üçin töleýärsiňiz, ol sekuntlara çenli ýokary hasaplanýar: faýldan okalan iň uzyn uzynlyk, Whisper tarapyndan berlen uzynlyk we faýlyň ölçegi iň az nämä rugsat berýän bolsa şol uzynlyk, Whisper-iň bir minutlyk bahasy bilen adatky töleg we girdeji bilen, we her sorag üçin azyndan 0.05 kredit. Eger standart balans bu tölegi ýapyp bilýän bolsa, ol standart balansdan, ýoksa Pro balansdan tölenýär; a 402 her bir balansyň näme gerekdigini görkezýär. Programmada sesli habary tekst görnüşine geçirmek mugt bolup biler; API-da bolsa bu hemişe tölenýär. Eger Whisper işjeň bolmasa, hiç zat tölenmeýär.

Jogap

{
  "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 adaty tekst gaýtaryp berýär, srt we vtt subtitrlary gaýtaryň, we verbose_json dil, dowamlylyk we wagtly bölekleri goşýar. JSON däl üç sany üçin, bahasy sarlawdalarda (headers) görkezilýär.

StatusHaçan
400Faýl ýok, peýdalanyp bolmajak audio ýok bolan faýl (invalid_audio), bilinmeýän format ýa-da transkripsiýa modeli bolmadyk model (invalid_model).
402Hiç haýsy balans ony ýapyp bilmez.
413Faýl 25 MB-dan uly (file_too_large) ýa-da ýazgy 30 minutdan köp bolsa, ýa-da uzynlygy öňünden okap bolmaýan formatda bolsa, 1.8 MB-dan köp (audio_too_long).
502Whisper audiony işläp bilmedi. Hiç zat tölenmedi.

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);

Gürleýşi iňlis diline terjime etmek

POST https://nymbot.ai/api/v1/audio/translations — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegiBeden... multipart/form-data.

Transkripsiýa ýaly, diňe şundan başga birmeňzeş meýdançalar bilen language, çäkler we bahasy, ýöne tekst haýsy dilde gürlenilse-de, iňlis dilinde yzyna gelýär. OpenAI SDK-lary ony şular bilen çagyrýar 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

Teksti gözleg, klasterleşdirme we deduplikasiýa üçin vektorlara öwürýär. Modeller Cloudflare-da işleýär we standart balansy sarp edýär.

POST https://nymbot.ai/api/v1/embeddings — API açaryny gerek, ýa-da Her sargyt üçin Lightning tölegi.

MeýdanGörüşTalap edilýärBeýany
modelýazgyHawa...den gelen embedding modeli GET /api/v1/models?type=embedding.
inputsetir ýa-da setirleriň massiviHawaGömüriljek tekst, 100 sany boş däl setire çenli. Token massiwleri ret edilýär (token_input_unsupported). Her bir giriş modeliň ... bolmaly context_length, bir token üçin takmynan dört baýt hasaplanýar.
encoding_formatýazgyÝokfloat (başlangyç) ýa-da base64 (little-endian 32-bit float-lar).
dimensionsbitin sanÝokModeliň öz ölçegi ýa-da ... modeli üçin supported_dimensions şol birinden biri; vektor soňra gysaldylýar we normalizirlenýär. Başga zatlar ret edilýär.
ModelÖlçegleriKontekst
@cf/baai/bge-m31024, köp dillerde8,192 token
@cf/qwen/qwen3-embedding-0.6b1024, köp dillerde8,192 token
@cf/baai/bge-large-en-v1.51024, iňlisçe512 token
@cf/baai/bge-base-en-v1.5768, iňlis dili512 token
@cf/baai/bge-small-en-v1.5384, iňlisçe512 token

Modeller sanawy haýsy modelleriň elýeterlidigi we olaryň bahasy barada esasy maglumatdyr; katalogda baha görkezilen ýagdaýynda, Google-yň isleg boýunça gysgaça vektoralary bolan EmbeddingGemma modeli hem şol ýerde görünýär. Embeddingler her giriş tokeni üçin hasaplanýar we her bir isleg üçin 0.05-kredit minimal tölegi degişlidir, bu bolsa her bir giriş üçin däl-de, her bir isleg üçin degişlidir, şonuň üçin köp sanly teksti bir islege toplumlamak, olary her gezek aýratyn ugratmakdan has arzan bolýar.

Jogap

{
  "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 }
}
StatusHaçan
400Giriş ýok ýa-da boş giriş; token massiwleri (token_input_unsupported); 100-den köp giriş (too_many_inputs); model üçin kabul edilenden has uzyn giriş (input_too_long); model berip bilmeýän ölçegi (unsupported_dimensions).
402Standart balans örän pes. Embeddings hiç wagt Pro balansyny ulanmaýar.
404Şu atly embedding modeli ýok.
502Model ýetmedi. Hiç zat tölenmedi.

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);