Jya ku bikubiyemo
Kongera muri Nymbot

Ubumenyi shingiro Abakora porogaramu

Amafoto, amajwi n'imikorere y'ubwenge bw'ubukorano (embeddings)

Ibikora biva muri porogaramu, hamwe n'ibice by'ibanze byo gushakashaka: amafoto, videwo, ijambo, kwandika ibivugwa, n'embeddings, buri kimwe kishurwa buri gihe gikoreshejwe biva ku mafaranga asigaye kuri konti yawe.

Gukora amashusho

Ikora amashusho rimwe kugeza kuri ane hakoreshejwe amagambo agena icyo ushaka, hanyuma akabaha iyo amaze kuyakorera. Ni itsinda rimwe ry'ibikora nk'irya ?image mu muyandiko w'urubuga.

POST https://nymbot.ai/api/v1/images/generations — bikenera API key, cyangwa kwishyura Lightning kuri buri gusaba.

ID zituruka kuri GET /api/v1/models?type=imageUmubare usanzwe, @cf/black-forest-labs/flux-1-schnell, bifata ibiciro bishingiye ku miterere ya 5 standard credits (50 sats) ku ifoto imwe. Buri generator bindi bikoresha Pro credits ku giciro cyabo, hagati y'uburindamuryango busanzwe n'inyungu, nk'uko biri muri agakoresho. n igiciro cy'amafoto n inshuro nyinshi kurusha. Urubuga generator itarekura ntigihagarikwa ahubwo rirangirira aho, generator isanzwe ikoresha ubutumwa (prompt) gusa.

UruhandeAndikaBisabwaIbisobanuro
modelumushyikiranoYegoIndangamuntu y'imashini ikora amashanyarazi, nk'urugero nano-banana.
promptumushyikiranoYegoIcyo gushushanya. Icyo gushushanya. Ibanze amagambo ya mbere 2,000 gusa ni yo akoreshwa.
nintegereOya1 kugeza kuri 4. 1 ni yo yagenewe. Nanone bishobora kwemera nka num_images.
sizeumushyikiranoOyaUbwiriranwa bw'ubugari n'uburebure nk'urugero "16:9", cyangwa ingano ya OpenAI nk'uko "1792x1024", kiba ari imwe mu mibare irushaho hafi ya 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 na 4:5. "auto" bireka generator.
aspect_ratioumushyikiranoOyaBimeze nk'ibindi size, kandi atsinda iyo zose ebyiri zagiye.
qualityumushyikiranoOyaBihariye generator, nk'urugero nibyo "low", "medium" cyangwa "high".
negative_promptumushyikiranoOyaIcyo ugomba kutashyiramo.
output_formatumushyikiranoOya"png", "jpeg" cyangwa "webp".
response_formatumushyikiranoOya"url" (iy'ibanze) cyangwa "b64_json".
image_urlumushyikiranoOyaIfoto yo gutangiraho: an https:// ikilink kigira bitarenze inyuguti 4,096 kitagira izina ry'umukoresha cyangwa ijambo ry'ibanga, cyangwa data:image/…;base64 URL (PNG, JPEG, WebP cyangwa GIF; si SVG). Ku banyagitari gusa bafite edit; bisabwa n'abo bafite requires_image_url.

resolution ntakoreshwa: buri generator ikora uburebure bwayo bwihariye. Na url, isura buri imwe ishyirwa kuri Blossom host isobanutse kandi ubona ikintu cyayo (imashini zimwe na zimwe gusa ziha ikintu cyazo, kigahita kishyirwaho). Umuntu wese ufite iyo link ashobora kuyifungura kandi ntiyo ishobora gukurwaho kandi; reba iyo API ishobora kubona kiHamwe na b64_json ifoto igaruka mu gisubizo kandi ntabwo ishyirwa kuri interineti. Ifoto yoherejwe nka data: URL muri image_url bisuzwa mu buryo bumwe n'uburyo bwa guhindura kandi byashyizweho kuri Blossom mbere kugira ngo generator ishobore kukikura; kirasemwa nanone niba ubusabe bwanga butarashyirwa mu bintu byishyurwa.

Niba bamwe muri n amafoto arangira, ubona ayo banyuze, wishyurirwa gusa ayo (n'ayandi ubyicaro bwo muri serivisi byari byibaritse nubwo yari yatsindwe), kandi nymbot.failed bibwira ubumenyi bw'imibare itariho. Niba byose byatsindwe, ubusabe butanga 502.

Igisubizo

{
  "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 }
}
ImiterereRyari
400Nta musozo; n り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-compose-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-th-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( in-out-of-4 ( り-out-of-4 ( り-out-of-4 ( data-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( in-out-of-of-4 ( for-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-4 ( り-out-of-of-4 ( り-out-of-of-4 ( り-out-of-of-4 ( hanze ya 1 kugeza kuri 4 (invalid_value); ingano mbi (invalid_size) cyangwa ifoto (invalid_image, invalid_image_url); imodeli ibaho ariko itari iyerekana amashusho (invalid_model); ifoto y'imashini ikora amashanyarazi itashobora guhindurwa (edit_unsupported); nta ifoto iboneye ku wandi ukeneye (image_required).
402Umubare w'amafaranga ntushobora kwishyura amafoto yose yasabwe.
404Nta masezerano afite iryo zina (model_not_found).
502Generator ihashemiye (upstream_error). Nta kintu kiryozwa keretse iyo umuperekayi yashyizeho ikiguzi cy'icyo gerageza; ubwo rero ikosa ryaba charged_sats.
503Amafoto ntiyashobora gushyirwa kuri interineti ubu (media_hosting_unavailable). b64_json bikora kabiri.

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

Gukora ishyushano ku mafoto

Ihindura ifoto ugaragaje, ukurikije amabwiriza. Ibi ni uburyo bwo guhindura bwa OpenAI (edit endpoint), bityo SDK za OpenAI images.edit bikora uko biri. Ibikora Pro gusa bifite edit mu urutonde rw'imimodeli yemera.

POST https://nymbot.ai/api/v1/images/edits — bikenera API key, cyangwa kwishyura Lightning kuri buri gusabaUmubiri ni multipart/form-data, kugeza kuri 32 MB.

UruhandeAndikaBisabwaIbisobanuro
imageifishiYegoIfoto yo guhindura: PNG, JPEG, WebP cyangwa GIF, kugera kuri 20 MB. Ikunze kwemezwa kandi nka image[]; iy'imbere ni yo ikoreshwa.
promptumushyikiranoYegoIcyo uhindura.
modelumushyikiranoYegoImashini ikora amashanyarazi ifite edit.
nintegereOyaKuva kuri 1 kugeza kuri 4.
size
aspect_ratio
quality
negative_prompt
output_format
umushyikiranoOyaKu bijyanye no kurema.
response_formatumushyikiranoOya"b64_json" (icyo bimenyerewe hano) cyangwa "url".

Ifoto ucuritse ihindurwa ikagenzurwa kugira ngo irebe niba ari PNG, JPEG, WebP cyangwa GIF yemewe, ikomoka ku bwoko bwayo nyako, kandi ikasangizwa ku rubuga rw'isi rwa Blossom, kuko ibikora (generators) bikura amakuru yazo binyuze kuri link. Iyite ko ari iy'isi. Iyo igenzuramikoromo ryatsindwe kandi nta kintu gishonje, kopi yasangishijwe isi irasibwa nanone. Igisubizo kiba kimeze nk'icyo mu gihe cyo gukora ibintu bishya. Igiciro ni icyo gikoramo (generator) gihari, kandi kuri bimwe mu bikora, bishobora kuba birimo n'igiciro cy'ifoto yakoreshejwe.

Igisubizo

{
  "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 }
}
ImiterereRyari
400Nta ifoto cyangwa itegeko ririmo, dosiye itari ifoto (invalid_image), cyangwa generator itashobora guhindura (edit_unsupported).
413Ifoto ifite ibirenge kurusha MB 20 (file_too_large), cyangwa ubusabe bwose kurenza 32 MB.
503Ifoto ntishobora guhagarazwa ubu (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"));

Video

Video itwara iminota, bityo ikora mu buryo bwihishe. Uyishyizeho, ugahita ubona ID, ukabaza kuri iyo ID kugeza igihe yarangiye. Buri generator ya video ishira umutungo wa Pro.

POST https://nymbot.ai/api/v1/videos — bikenera API key, cyangwa kwishyura Lightning kuri buri gusaba. Gusubizwa 202.

UruhandeAndikaBisabwaIbisobanuro
modelumushyikiranoYegoID y'igikoresho gihimbaza videwo ivuye kuri GET /api/v1/models?type=video, nko veo.
promptumushyikiranoYegoBikwiye kubaho bite.
durationumubare cyangwa interuroOyaIgihe mu masegonda, birenze 0 kugeza kuri 60. Bikoreshwa gusa n'ibigega (generators) bitanga amahitamo y'igihe; ibindi bikora igihe biba bimenyereye, ni cyo kiba ari cyo seconds mu gisubizo n'igiciro biba bikurikiraho.
aspect_ratioumushyikiranoOyaNka "16:9" cyangwa "9:16"; ingano nk'iy' "1280x720" iba igice cya hafi cyane.
resolution
quality
umushyikiranoOyaKimwe mu bya generatori resolutions mu rutonde rw'imodeli, nk'ibyo "720p" cyangwa "1080p". Icyo nicyo gihagarika igiciro. Ibindi byose biragarurwa na unsupported_resolution.
image_urlumushyikiranoOyaIfoto yo gutangiraho: an https:// urusobe cyangwa a data:image/… URL, ivugurwa ku nkingi ya Blossom yose mbere na mbere. Bisabwa n'izikora generators hamwe na requires_image_url.

Igiciro kiganzwe igihe ugiye gutanga ibintu, kuva ku generator, imiterere n'uburebure, bityo bigashyurwa mu miterere yawe ya Pro igihe cyose uwakira akazi yemeye, kandi bikerekanywa nka cost, estimated_cost na nymbotNiba utanga serivisi akomeye kwemera igikorwa, nta kintu kirashyurwa. Niba ubuvugururwa (render) bwatsindwe nyuma, cyangwa videwo yakozwe itashobora kubikwa kandi utanga serivisi atari we wibaruye, amafaranga asubizwa rimwe, mu buryo bw'imanzuro. Ubuvugururwa bukomeje kugenda nyuma y'isaha bwakurwaho, kandi bukagumana ikiguzi cyacyo, kuko utanga serivisi abarisha ubuvugururwa akaba yarabuhembye igihe yarwakiriye. Gusubizwa amafaranga (refund) gusubiza amaponto (credits) ariko ntibagabanye umubare w'amafaranga yakoreshejwe kuri key.

Igisubizo (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 bitangira nka in_progress, cyangwa completed na videwo yari imaze kwinjiramo data igihe generator yabonye mu buryo bw'uburyo.

Kugenzura video

GET https://nymbot.ai/api/v1/videos/{id} — ikenera urufunguzo rwa nym yabishyije. Urufunguzo rugeze ku mupaka rushobora gusubiramo gusuzuma.

Bisubiza 202 mu gihe video ikorwa kandi 200 iyo imirimo isoje cyangwa ikaba yarashatse, biba bivuze ko yarangiye. Baza buri sekunde 5 kugeza kuri 10. Buri kureba kubaza ugutanga serivisi rimwe kandi gusubiza bitabaye binyuze mu buryo bwihuse; ntitegereza video. Umurimo uratunganywa mu gihe cy'amasaha 24 nyuma y'uko washyizweho. GET /api/v1/videos amenyetsa imirimo 50 ya nyuma ya kaminyo nka {"object": "list", "data": […]}.

Igisubizo (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 ni in_progress, completed cyangwa failed. A akazi kangiye kwananirwa kiba kagezeho error ({"code": "generation_failed", "message": …}); ngo biba byahawe, cost ese 0 na nymbot arongera refunded_credits na refunded_satsVideo yakozwe iriboneka kuri Blossom public host, nk'amafoto yakozwe n'ikoranabuhanga.

ImiterereRyari
400Nta muntu; igihe gihari hanze ya 0 kugeza kuri 60 (invalid_value); urwego rw'ubuziranenge generator itanga (unsupported_resolution); nta ifoto iboneye ku gashushanyo kigomba kugira (image_required); ikoranabuhanga ritari igituma video itangwa (invalid_model).
402Imbaraga za Pro ntizishobora kwambura video.
404Nta generator iboneka (model_not_found), cyangwa nta kazi ihuye n'iyo id ku nym yawe, cyangwa bimezeho igihe kirekire kurusha amasaha 24 (video_not_found).
429Izina ryawe ririmo amashusho 10 ari kwitumbura (video_jobs_limit). Babonereho hanyuma ugasubize izindi iyo imwe irangiye.
502Imashini y'amashanyarazi (generator) yanze akazi. Nta kintu cyishyurwa keretse niba uwakoze abishyurije.
503Video ntizishobora koherezwa cyangwa kubikwa ubu (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);

Kuvugisha inyandiko

Asoma inyandiko mu ijwi kandi akagarura dosiye y'ijwi ubwayo, si link. Ni OpenAI's speech endpoint, nuko audio.speech.create mu SDK za OpenAI bikora.

POST https://nymbot.ai/api/v1/audio/speech — bikenera API key, cyangwa kwishyura Lightning kuri buri gusaba.

UruhandeAndikaBisabwaIbisobanuro
modelumushyikiranoOyaUbushobozi bwo kuvuga buturutse kuri urutonde rw'imikoresho y'amajwi. Icyo usanzwe ukoresha: ijwi risanzwe, @cf/myshell-ai/melotts. aura-2 ese Deepgram Aura 2.
inputumushyikiranoYegoInyandiko isomwa: kugera kuri 800 by'inyuguti ku ijwi rya kawaida, 2,000 kuri Aura 2.
voiceumushyikiranoOyaID y'ijwi ivuye kuri urutonde rw'amajwi: ikinyabuzima cy'amajwi nka luna (cyangwa aura-2-luna-en), cyangwa ururimi rwa MeloTTS (en, es, fr, zh). Amazina y'amajwi ya OpenAI nk'uko ya alloy bikemurwa kandi bitanga ijwi rya bya mambere rya model.
languageumushyikiranoOyaIcyode cy'ururimi nk'urugero es. Isezerera amajwi atari yo, ikahitamo iryo rurimi. Ijwi rivuga urundi rurimi rivuguruka 422 voice_language_mismatch, n'ururimi umuvuduko w'imashini utagira ijwi rwo kugivuga 422 unsupported_language.
response_formatumushyikiranoOyaIjwi rishingiye ku miterere rigaruka mp3 gusa. Aura 2 itanga mp3 (uburyo busanzwe), opus, aac, flac, wav cyangwa pcm.
speedimibareOyaYakiriwe kandi ikarengagurwa.

Ijwi rigenewe risanzwe rishaka amatsinda 3 asanzwe (30 sats) kuri buri gusaba, nk'uko bimeze muri porogaramu. Aura 2 ni Pro, igomba kwishyurwa hashingiwe ku ntekerezo wanditse. Umubare w'ibisubizo ni amajwi, ahuye na Content-Type; ikiguzi kiri muri X-Nymbot-Cost-Sats umutwe. Niba imodeli y'ijambo itanyuranye, nta kintu gishyurwa.

Igisubizo

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

(audio bytes)
ImiterereRyari
400Nta mivugire; imivugire irenga urugero rw'icyiciro cy'imashini (input_too_long); imiterere imodeli itashobora gutanga (unsupported_response_format); ijwi ritari ryamenyekanye (invalid_voice); imodeli itari imodeli y'imvugo (invalid_model).
422Ijwi ntirivuga ururimi rwatanzwe, cyangwa imodeli ifite ijwi ryo kurivugamo.
502Imvugo y'imashini yaje kutarangije akazi. Nta kintu cyashyorewe.

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

Amodeli z'amajwi n'amazwi

Imbonerahamwe zigaragara ibiri zo guhitamo imiterere y'imvugo n'ijwi, cyangwa imiterere yo kwandika ibivugwa. Hari abavuga icyongereza 41 ba Aura 2 n'indimi ine za MeloTTS.

GET https://nymbot.ai/api/v1/audio/models — nta kirango kibikeneye.

GET https://nymbot.ai/api/v1/audio/voices?language=en — nta kirango kibikeneye.

UruhandeAndikaBisabwaIbisobanuro
languagestring (ubushakashatsi)OyaImivugire yonyine kuri uru rurimi.
modelstring (ubushakashatsi)OyaImivugire gusa kuri uyu muryango.

Igisubizo (amajwi)

{
  "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 }
  ]
}

Imodeli zerekana ibisubizo {"object": "list", "data": {"tts": […], "stt": […]}}. Buri moshini y'ijambo ihereye imbalanse yayo, igiciro, max_input_chars, response_formats, languages na default_voice; igimodeli yo guhindura amagambo ivuga amazina yayo ayandi, max_file_bytes, max_seconds, uburyo bwo kubikora n'igiciro per minute.

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

Icyivugo kigira inyandiko

Ihindura amashusho cyangwa amajwi akaba inyandiko ukoresheje Whisper. Iyi ni endpoint ya OpenAI yo guhindura ibivugwa mu nyandiko, bityo audio.transcriptions.create bikora.

POST https://nymbot.ai/api/v1/audio/transcriptions — bikenera API key, cyangwa kwishyura Lightning kuri buri gusabaUmubiri ni multipart/form-data.

UruhandeAndikaBisabwaIbisobanuro
fileifishiYegoIgituno cy'amajwi, kuva kuri 256 bytes kugeza kuri 25 MB n'iminota kugeza kuri 30: WAV, WebM, MP4 cyangwa M4A, Ogg cyangwa Opus, MP3 n'andi mafomati Whisper isoma. MP3 n'andi mafomati aho igihe bitashobora gusomwa mbere bagabanijwe 1.8 MB.
modelumushyikiranoOyaIcyerekezo cy'ibanze whisper, ari Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo na @cf/openai/whisper-large-v3-turbo bishatse kuvuga kimwe.
languageumushyikiranoOyaUrurimi rw'imvugo, nk'urugero enBimenyekana niba bitekanyeho.
promptumushyikiranoOyaAmagambo cyangwa imyandikire uzategereza, nko amazina. Inyuguti ibanza 1,000 gusa ni zo zikoreshwa.
response_formatumushyikiranoOyajson (uburyo busanzwe), text, srt, vtt cyangwa verbose_json.

Ku mafayili ya WAV, WebM, MP4 na Ogg, igihe kirenga isaha isomwa muri fayili mbere y'uko ibintu bibera, bityo inyandiko irenga iminota 30 irahanwa mbere (hagaragariwe iminota 3 y'ihari). Igihe cya fayili ya WAV kiva ku isaha y'amajwi (sample rate), imirongo (channels) n'uburebure bw'ijwi (sample size). Igihe cy'andi maformat, nko kuri MP3, nticyashobora gusomwa mbere, bityo agahinda kabyo kaba ku bw'uburebure bwayo: kuri bitrate niniya Nymbot ibitekereza, 8 kbps, iminota 30 ni 1.8 MB, kandi fayili nini muri uwo muryango irahanwa na 413 audio_too_long mbere y'uko ibintu biba bimeze. <br>Kohereza amashusho cyangwa amajwi maremare nka WAV, WebM, MP4 cyangwa Ogg.<br> <br>Niba Whisper igenzura ko ari menshi kurusha iminota 30, ubusabe burasubirwaho na 413 audio_too_long, kandi kubera ko Whisper yakoreye akazi, iminota 30 izwishyurwa.

Wishyura hashingiwe ku igihe cy'amajwi, hagarikirwa ku segundo: igihe kirekireza kuremewe mu kintu (file) ukeneye gusoma, igihe Whisper ivuga, n'igihe gito cyane uburemere bw'iyo file bwemera, ku giciro cya Whisper cy'iminota n'uruzitiro n'inyongezo isanzwe, kandi nibura 0.05 credit kuri buri gusaba. Bishyurwa mu miterere isanzwe (standard balance) iyo ishobora kubishyura, kandi niba itabishoboye, bishyurwa kuri Pro; a 402 ibigaragaza ibyo buri mubare w'amafaranga ukeneye. Mu kantu k'itumanaho (app), kwandika ubutumwa bw'amajwi bishobora kuba bwisanzuye; kuri API ntibishobora kuba bwisanzuye. Niba Whisper itakoze, nta mafaranga yishyurwa.

Igisubizo

{
  "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 gusubiza inyandiko isanzwe, srt na vtt gusubiza amagambo agerwa, na verbose_json ongeraho ururimi, igihe, n'ibice bishingiye ku gihe. Ku bitatu bitari JSON, igiciro kiba kiri mu miterere y'imbere (headers).

ImiterereRyari
400Nta dosiye, dosiye itagira amajwi akoreshwa (invalid_audio), imiterere itazwi, cyangwa imodeli itari imodeli y'ihindurira ijambo mu nyandiko (invalid_model).
402Ibyo mbonezamubare byombi ntibishobora kubishyura.
413Ifishi ifite ibirenge ya 25 MB (file_too_large) cyangwa ikubiri kurenza iminota 30, cyangwa, mu miterere aho igihe kacyo kitashobora gusomwa mbere, kurenza 1.8 MB (audio_too_long).
502Whisper ntiyashoboye gukora akazi ku ijwi. Nta kintu cyashyorewe.

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

Guhindura imvugo mu Cyongereza

POST https://nymbot.ai/api/v1/audio/translations — bikenera API key, cyangwa kwishyura Lightning kuri buri gusabaUmubiri ni multipart/form-data.

Nka transcription, hagire ibindi bintu bihindutse uretse language, imipaka n' igiciro, ariko inyandiko isubira mu Cyongereza haba ari ururimi rwumvikanywe. OpenAI SDKs zabyita na 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

Uhindura inyandiko ziba imigabane (vectors) kugira ngo zishakwe, zishyirwe mu matsinda, kandi zikemurwe mu bintu biganze, bikoreshwa kuri Cloudflare kandi bikoresha umutungo usanzwe.

POST https://nymbot.ai/api/v1/embeddings — bikenera API key, cyangwa kwishyura Lightning kuri buri gusaba.

UruhandeAndikaBisabwaIbisobanuro
modelumushyikiranoYegoUrugero rw'imashini ishinzwe gukora embedding ivuye kuri GET /api/v1/models?type=embedding.
inputinyandiko cyangwa urutonde rw'inyandikoYegoInyandiko yo gushyiramo, kugeza ku ntego 100 zidakoresheje imvugo yongereye (token_input_unsupported). Buri kintu kigomba kwubakwamo imiterere y'icyiciro (model) context_length, bisiwe nk'ibipimo by'abayo (bytes) binecyari ku ntekerezo imwe (token).
encoding_formatumushyikiranoOyafloat (iy'ibanze) cyangwa base64 (float za biti 32 muri little-endian).
dimensionsintegereOyaIngano y'icyo kigega ubwayo, cyangwa ku kigega gifite supported_dimensions rimwe muri zo; ubu vector igabanukirwa n’uburyo bwo kuyigira isanzwe. Ibindi byose birasubizwa.
ImbonerahamweInganoImiterere y'ibyiyumviro
@cf/baai/bge-m31024, indimi nyinshi8,192 tokens
@cf/qwen/qwen3-embedding-0.6b1024, indimi nyinshi8,192 tokens
@cf/baai/bge-large-en-v1.51024, Icyongereza512 tokeni
@cf/baai/bge-base-en-v1.5768, Icyongereza512 tokeni
@cf/baai/bge-small-en-v1.5384, Icyongereza512 tokeni

Urutonde rw'amajambo (models) ni rwo nshingiro y'ukuri ku bijyanye n'ayo ariho n'amafaranga agomba kwishyurwa; Google's EmbeddingGemma, ifite amashami (vectors) mato kuri ubusabe, na yo iba irimo iyo urutonde igihe rufite igiciro cyacyo. Embeddings bishyingurwa bitewe n'ibitekerezo (tokens) byinjiriye, kandi igiciro cyo hagati ya 0.05-credit cyo ku busabe buri umwe, si ku buri kintu kinjiriye, bityo guhuriza inyandiko nyinshi mu busabe bumwe bituma biba byoroheje cyane kuruta kuzituma imwe ku yindi.

Igisubizo

{
  "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 }
}
ImiterereRyari
400Nta kintu cyasubijwe cyangwa bishize mu kantu k'ubwenge; amatsinda ya token (token_input_unsupported); ibirenge birenze 100 (too_many_inputs); input irenga urugero rwa model (input_too_long); ingano ikoreshwa ntabwo ishobora gutangwa na model (unsupported_dimensions).
402Ubwuzuzanye busanzwe ni bwo buke cyane. Embeddings ntizigera zikoresha ubwuzuzanye bwa Pro.
404Nta modeli ya embedding ifite iryo zina.
502Imodeli yaguye. Nta kintu cyaturitswe.

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