Aqbeż għall-kontenut
Lura għal Nymbot

Bażi ta 'għarfien Żviluppaturi

Imaġni, awdjo u embeddings

Il-ġeneraturi mill-app, u l-blokki tal-bini għar-riċerkra: ir-ritratti, vidjo, diskors, transkrizzjoni u embeddings, kull wieħ iċċajta għal kull użu mill-bażi tal-flus tiegħek.

Ġenerazzjoni ta' immaġni

Jfassal minn wieħed għal erba' ritratti minn prompt u jirritornawhom meta jkollu’. Huwa l-istess sett ta' generatori bħal ?image fl-app.

POST https://nymbot.ai/api/v1/images/generations — għandu bżonn chiave API, jew Pagament Lightning għal kull talba.

L-IDs jiġu minn GET /api/v1/models?type=imageIl-ġeneratur standard, @cf/black-forest-labs/flux-1-schnell, jikkostja 5 krediċi standard (50 sats) għal kull ritratt. Kull ġeneratur ieħor juża krediċi Pro bi l-prezz tiegħu stess, b'dak il-ħarfien tas-sħab u l-margini, bħal f' l-app. n prezzu tal-istampaġni n ħafna aktar. Kamp li generator ma jieħudx jiġi mħassar minn qabel li jirrifuta; il-generator standard juża biss il-prompt.

KampTipMeħtieġDeskrizzjoni
modelStringIvaId ta' ġeneratur, bħal nano-banana.
promptStringIvaX'għandek tpinna. L-ewwel 2,000 tal-karatteri biss huma użati.
nintegerLe1 għal 4. Defawlt 1. Aċċettat ukoll bħala num_images.
sizeStringLeRapport tal-aspett bħal "16:9", jew dimensione OpenAI bħal "1792x1024", li ssir l-aktar qrib ta' 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 u 4:5. "auto" it-tifel jħallih lill-ġeneratur.
aspect_ratioStringLeL-istess bħu size, u jirbaħ jekk ittielem ittielem jiġu mibgħutina.
qualityStringLeSpeċifiku għall-ġeneratur, bħal "low", "medium" jew "high".
negative_promptStringLeX'għandek tħalli barra.
output_formatStringLe"png", "jpeg" jew "webp".
response_formatStringLe"url" (id-default) jew "b64_json".
image_urlStringLeRitrat biex nibdew minnu: waħda https:// link ta' massimum ta' 4,096 karakteri mingħajr username jew password fih, jew a data:image/…;base64 URL (PNG, JPEG, WebP jew GIF; mhux SVG). Skeletu biss għal ġeneraturi b' edit; meħtieġ minn dawk li għandhom requires_image_url.

resolution ma jintużax: kull ġeneratur jagħmel id-daqs tiegħu stess. B' url, kull ritratt jiġittajta fuq host pubbliku ta' Blossom u tikseb il-link tiegħu (ch few generators only hand back a link of their own, which is passed on). Kulħadd li għandu l-link jista' jiftaħu u ma jistax jitneħħa mill-ġdid; xoffi x'tista' tara l-API. Ma' b64_json it-ritra tidħolli mill-ġeww fir-rispons u qatt ma tiġittajata. Ritra imkejla bħala data: URL f' image_url jiġi ċċekkjat l-istess mod kif wieħed edit u uploaded għal Blossom l-ewwel biex il-generator ikun jista' jiġibha; tiddeleta mill-ġdid jekk it-talba tinstena bla billing.

Jekk xi wħud mill- n ir-ritratti jfajlu, tirċievi dawk li marru wtew, tiġi ċċarġjat biss għal dawk (plu xejn li l-fornitur iċċarġja nonostante l-ħnub), u nymbot.failed jgħid kemm għandhom jinqasṣu. Jekk kollha jfajlu, it-talba tirritorna 502.

Rispons

{
  "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 }
}
StatusMeta
400L-ebda promt; n barra mill-1 għal 4 (invalid_value); dimensione ħżina (invalid_size) jew ritratt (invalid_image, invalid_image_url); mudell li jinsab iżda mhuwiex generator ta' imgħajja (invalid_model); ritratt għal ġeneratur li ma jistax jagħmel editjoni (edit_unsupported); l-ebda ritratt għal wieħed li għandu bżonnha (image_required).
402Il-bażi ma tista'x cover kull ritratt maqtub.
404Nefih mudell b'dak isem (model_not_found).
502Il-ġeneratur falla (upstream_error). Xejn ma jiġi ċċarġat imma jekk il-fornitur ikun iċċarġa għall-attentat; biċċa kollox l-error għandu charged_sats.
503Immaġni ma jistgħux jiġu stajtati bħalissa (media_hosting_unavailable). b64_json pered imexxoli xorta.

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

Editjar tal-immaġni

Jbiddel ritratt li tniżżel, segwuendo prompt. Dan huwa l-endpoint tal-edit ta' OpenAI, għalhekk l-SDKs ta' OpenAI images.edit taħdem kif hija. Chaffi biss generator Pro b' edit fil- lista tal-modelli aċċettah.

POST https://nymbot.ai/api/v1/images/edits — għandu bżonn chiave API, jew Pagament Lightning għal kull talbaIl-ġisem huwa multipart/form-data, sa 32 MB.

KampTipMeħtieġDeskrizzjoni
imagefajlIvaIr-ritratt li trid tuża: PNG, JPEG, WebP jew GIF, sal mass ta' 20 MB. Aċċettat ukoll bħala image[]; l-ewwel wieħed huwa użat.
promptStringIvaX'għandek tibdel.
modelStringIvaĠeneratur b' edit.
nintegerLe1 għal 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringLePeress li dwar il-ġenerazzjoni.
response_formatStringLe"b64_json" (id-default hawn) jew "url".

Ir-ritratt li tniżżel jiġi verifikat biex ikun PNG, JPEG, WebP jew GIF imsemmiġa tajjeb, imkejjel bħala tip veru tiegħu, u meqjus fuq host pubbliku ta' Blossom, għax il-ġeneraturi jġibbu l-input tagħhom permezz ta' link. Trattuh bħala pubbliku. Jekk il-modifika tfajalt u xejn ma jiġi ċċarġat, il-kopja immeqgħa tiddeleta mill-ġdid. Ir-rispons għandu l-istess forma bħal għall-ġenerazzjoni. Il-prezz huwa l-prezz tal-ġeneratur, li għal xi ġeneraturi jinkludi ċ-ċarġ għall-ritratt tal-input.

Rispons

{
  "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 }
}
StatusMeta
400L-ebda immaġni jew prompt, fju tal-li mhux ritratt (invalid_image), jew ġeneratur li ma jistax edita (edit_unsupported).
413L-istampa hija fuq ta' 20 MB (file_too_large), jew ir-reqwistjoni kollha aktar minn 32 MB.
503L-istampa ma tista'x toħhost issa (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"));

Vidjow

Video jieħu minuti, għalhekk jippassaw fil-background. Int issibtu, tieħu ID mill-eżatt u tistenna dwar l-ID sakemm jkun lest. Kull generator ta' video jnaqqas il-bażi Pro.

POST https://nymbot.ai/api/v1/videos — għandu bżonn chiave API, jew Pagament Lightning għal kull talba. Ritirovs 202.

KampTipMeħtieġDeskrizzjoni
modelStringIvaId ta' generator ta' vidjow minn GET /api/v1/models?type=video, bħal veo.
promptStringIvaX'għandu jiġri.
durationnumru jew stringLeĦafna sekondi, aktar minn 0 u sal 60. Tuża biss minn generators li jħalluk tagħżel il-ġentura; l-oħra jagħmlu l-ġentura tipika tagħhom, li hija x'hekk seconds fir-risposta u l-prezz jinttieħu.
aspect_ratioStringLeBħal "16:9" jew "9:16"; daqs bħal "1280x720" isir ir-rapport ilmestri.
resolution
quality
StringLeWieħed mill-ġeneraturijiet ta' resolutions fil-lista tal-mudelli, bħal "720p" jew "1080p"Huwa jiddestina l-prezz. Kewl xi ħaġa oħra huwa rfidut b' unsupported_resolution.
image_urlStringLeRitrat biex nibdew minnu: waħda https:// link jew a data:image/… URL, li huwatt uploaded għal host pubbliku ta' Blossom l-ewwel. Meħtieġ minn generatori b' requires_image_url.

Il-prezz huwa fiss meta sottometti, mill-ġeneratur, ir-resoluzzjoni u t-tul, għalhekk huwa miċċarġjat mill-bilanċ Pro tiegħek mallinmax il-fornitur aċċetta l-impjieg, u jappara bħala cost, estimated_cost u nymbotJekk il-fornitur jirrifuta il-xogħol, xejn ma jiġi ċċarġat. Jekk il-render tard jfajjar, jew il-clip lest ma jistax jiġi maħżun u l-fornitur ma ħallasx għalih, il-ċarġ jiġi rrifundat darba waħda, awtomatikament. Render li għadu qed jiġri wara siegħa jiġi waħħdu, u jżomm il-ċarġ tiegħu, għaliex il-fornitur iċċarġa render malli j接受u. Refund irażżel l-krediti imma ma jnaqqasx il-kont ta' spese tal-key.

Risposta (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 ibda bħala in_progress, jew completed bil-vidjow diġà fiha data meta l-ġeneratur irritorna lura mill-ewwel.

Checking fuq videw |

GET https://nymbot.ai/api/v1/videos/{id} — jeħtieġ klavijiet li jappartajnu lill-nym li submitsih. Klavijiet li laqgħu l-limitu tagħhom għad għandhom il-possibilità li jċċekkjaw.

Huwa jwieġeb 202 waqt li l-vidjow qed jiġi magħmul u 200 malli jkun mittemt jew jfajja. Is'al kull 5 għal 10 secondi. Kull check jista' l-fornitur darba waħda u jwieġeb immedjatament; qatt ma jistenna l-vidjow. Il-jazb huwa żomm għal 24 sigħat wara li kien ġie ssibmit. GET /api/v1/videos jipplista l-aħħar 50 xogħol tal-key bħala {"object": "list", "data": […]}.

Rispons (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 huwa in_progress, completed jew failed. A impennjatijiet ta' xogħl jġibu miegħu error ({"code": "generation_failed", "message": …}); jekk kienet ġie rritornat, cost hu 0 u nymbot żidi refunded_credits u refunded_satsIl-vidjow lest è huwa fuq host pubbliku ta' Blossom, bħal ritratti generati.

StatusMeta
400L-ebda prompt; durata barra mill-0 għal 60 (invalid_value); resoluzzjoni li l-ġeneratur ma joffrix (unsupported_resolution); l-ebda ritratt għal generator li għandu bżonn wieħed (image_required); mudell li mhux ġeneratur ta' videw (invalid_model).
402Il-balanċ Pro ma jistax ikopri l-vidjow.
404Ma hemmx tali generator (model_not_found), jew l-ebda xogħol b'dik il-ID għal n-nym tiegħek, jew huwa aktar minn 24 sigħat ilu (video_not_found).
429In-nim ewlija tiegħek għalih wisemm għandha 10 vidjuri li qed jiġu renderjati (video_jobs_limit). Iċċekkja'hom u ibgħat aktar malli wieħed jintemm.
502Il-ġeneratur irrifjuta l-impjieg. Xejn ma jiġi ċċarġat sakemm il-fornitur ma jibbiljaċċih.
503Il-vidjows ma jistgħu jinstegħu jew jinżammu bħalissa (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);

Test għal leħen

Qara t-test bilqelb u jirritorna l-fajl tal-awdyo stess, mhux link. Huwa l-endpoint tal-isem ta' OpenAI, għalhekk audio.speech.create f'OpenAI SDKs taħdem.

POST https://nymbot.ai/api/v1/audio/speech — għandu bżonn chiave API, jew Pagament Lightning għal kull talba.

KampTipMeħtieġDeskrizzjoni
modelStringLeModell ta' diskors minn il-lista tal-modelli tal-awdjo. Default: l-għawd standard, @cf/myshell-ai/melotts. aura-2 jiżda Deepgram Aura 2.
inputStringIvaIt-test li jitqara: sa 800 karakteri għax-xejn tal-leħen standard, 2,000 għal Aura 2.
voiceStringLeID tal-leħen minn lista tal-vuċi: speaker Aura bħal luna (jew aura-2-luna-en), jew lingwa MeloTTS (en, es, fr, zh). Naming tal-leħen ta' OpenAI bħal alloy jiġu aċċettati u jagħtu l-leħen tal-modell default.
languageStringLeKodiċi lingwa bħal esMingħajr leħen, huwa jagħżel wieħed għal dik il-lingwa. Leħen li jitkellem lingwa oħra jirritorna 422 voice_language_mismatch, u lingwa li l-mudell m'għandux leħ għaliha 422 unsupported_language.
response_formatStringLeIl-leħen standard jirritorna mp3 biss. Aura 2 jirritorna mp3 (id-default), opus, aac, flac, wav jew pcm.
speednumruLeAċċettat u miftuħ.

Il-leħen standard jikkostja 3 krediti standard fissi (30 sats) għal kull talba, kif fil-app. Aura 2 huwa Pro, ipprezzat skont il-karatteri li tibgħat. Il-body tal-rispons huwa l-awdyo, b'wieħed li jaqbel Content-Type; il-kost huwa fil- X-Nymbot-Cost-Sats header. Jekk il-mudell tal-diskors ma jaħtammx b'suċċess, ma jiġi miżżied xejn.

Rispons

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

(audio bytes)
StatusMeta
400L-ebda input; l-input qájetx lura mill-limitu tal-mudell (input_too_long); format li l-mudell ma jistax jipproduċi (unsupported_response_format); leħen mhux magħruf (invalid_voice); mudell li mhuwiex mudell ta' diskors (invalid_model).
422Il-leħen ma jitkellem il-lingwa mogħtija, jew il-mudell m'għandu l-ebda leħen għaliha.
502Il-mudell tal-diskorsx falla. Xejn ma ġie miċċargedjat.

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

Modelli tal-awdjo u vuċi

Żewġ listi pubbliċi għall-għażla ta' mudell tal-iswu u leħen, jew mudell ta' transkrizzjoni. Hemm 41 leħen tal-Ingliż ta' Aura 2 u erba' lingwi MeloTTS.

GET https://nymbot.ai/api/v1/audio/models — m'hemmx bżonn klavijiet.

GET https://nymbot.ai/api/v1/audio/voices?language=en — m'hemmx bżonn klavijiet.

KampTipMeħtieġDeskrizzjoni
languagestring (query)LeChawt biss għal din il-lingwa.
modelstring (query)LeVuċijiet biss għal dan il-mudell.

Risposta (vuċi)

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

Il-lista tal-modelli twieġiws {"object": "list", "data": {"tts": […], "stt": […]}}Mhux kull mudell tal-diskors jagħti l-ibbankanza tiegħu, il-prezz, max_input_chars, response_formats, languages u default_voice; il- mudell tat-transkrizzjoni jagħti l-alias tiegħu, max_file_bytes, max_seconds, formati u prezz għal kull minuta.

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

Diskurz għal tekst

J turning ta' reġistrazzjoni f'test b'Whisper. Dan huwa l-endpoint ta' transkrizzjoni ta' OpenAI, għalhekk audio.transcriptions.create taħdem.

POST https://nymbot.ai/api/v1/audio/transcriptions — għandu bżonn chiave API, jew Pagament Lightning għal kull talbaIl-ġisem huwa multipart/form-data.

KampTipMeħtieġDeskrizzjoni
filefajlIvaIr-recording, mill-256 bytes għal 25 MB u salta' 30 minuti: WAV, WebM, MP4 jew M4A, Ogg jew Opus, MP3 u l-formati l-oħra li Whisper jaqra. MP3 u formati oħra li t-tul tagħhom ma jistax jitqara minn qabel huma limitati għal 1.8 MB.
modelStringLeDefault whisper, li huwa Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo u @cf/openai/whisper-large-v3-turbo għandhom l-istess mezz.
languageStringLeIl-lingwa mitqella, bħal en. Iddeċċinat jekk ma jintreżax.
promptStringLeKelimes jew ittieħa li tista' taspettat, bħal ismi. Doċċi l-ewwel 1,000 karakteri biss huma użati.
response_formatStringLejson (id-default), text, srt, vtt jew verbose_json.

Għal fajl ta' WAV, WebM, MP4 u Ogg, it-tul jitqara mill-fajl qabel ma jiġri xejn, għalhekk reġistrazzjoni li tavvada l-ħin ta' 30 minuti tiġi rifiċuta minnewnt flura (b'3 sekondi ta' grazja). It-tul ta' fajl WAV jiġi mill-rate tal-kampjun, l-kanaali u s- 사이즈 tal-kampjun. It-tul ta' formati oħra, bħal MP3, ma jistax jitqara minnewnt, għalhekk huma limitati mid-daqs: fuq l-akbar bitrate li Nymbot ipoġġi, 8 kbps, 30 minuti huma 1.8 MB, u fajl akbar f'dak il-format jiġi rifiċut b' 413 audio_too_long qabel ma xejn jiġri. Ibgħat rekorrdings itwal bħala WAV, WebM, MP4 jew Ogg. Jekk Whisper jirrapporta aktar minn 30 minuti għalxxejn, id-digjkas jiġiwaqqaf b' 413 audio_too_long, u billi Whisper kien għamel, 30 minuti huma mħasba.

Tħallas għat-tul tal-awdyo, ipprovukat għall-sekund ta'𝑘ompletament: it-tulu l-aktar twil li jitqara mill-fajl, it-tulu li rrapportera Whisper, u l-inqas li s-sajża tal-fajl tippermetti, bi l-prezz ta' Whisper għal kull minuta bil-ħlas tas-servizz u l-margini komuni, u mill-inqas 0.05 kredi għal kull talba. Huwa mħallas mill- bażi standard meta dak setgħu jikoveri l-ħlas, u mill-Pro otherwise; a 402 jagħti x'għandu xorta kull bilanċ ikoll bżonn. Fl-app, it-transkrizzjoni ta' messaggio tal-leħen tista' tkun gratis; fuq l-API dejjem tiġi ċċarġjata. Jekk Whisper jfajjel, xejn ma jiġi ċċarġjat.

Rispons

{
  "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 jirritorna teskt sempliċi, srt u vtt return subtitoli, u verbose_json jżid il-lingwa, id-durata u s-segmenti b'ħin. Għat-tliet li mhumiex JSON, il-kost huwa fil-headers.

StatusMeta
400L-ebda fajl, fajl mingħajr awdjo li jista' jintuża (invalid_audio), format mhux magħruf, jew mudell li mhuwiex mudell ta' transkrizzjoni (invalid_model).
402L-ebda wieħen mill-bilanċ ma jistgħu jikopruha.
413Il-fajl huwa fuq 25 MB (file_too_large) jew ir-recording ta' aktar minn 30 minuti, jew, f'format li l-ġenb tiegħu ma jistax jitqara minn idea, aktar minn 1.8 MB (audio_too_long).
502Whisper ma setgħach jipproċessa l-awdjew. Xejn ma ġie ċċarġat.

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

It-traduzzjoni tal-diskors għall-Ingliż

POST https://nymbot.ai/api/v1/audio/translations — għandu bżonn chiave API, jew Pagament Lightning għal kull talbaIl-ġisem huwa multipart/form-data.

L-istess bħall-transkrizzjoni, b'l-istess kampi ħlief language, limiti u prezz, iżda t-test jerġa' jiġi lura bil-Ingliż independenti mill-lingwa li kienet intqid. L-SDKs ta' OpenAI jċċempluhom bil- 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

J बदलना it-test f'vektori għat-tfriżijiet, il-clustering u d-deduplikazzjoni. Il-modelli jiffurmaw fuq Cloudflare u jirreżervaw il-bażi tal-bilanċ standard.

POST https://nymbot.ai/api/v1/embeddings — għandu bżonn chiave API, jew Pagament Lightning għal kull talba.

KampTipMeħtieġDeskrizzjoni
modelStringIvaMudell tal-embedding minn GET /api/v1/models?type=embedding.
inputstring jew array ta' stringsIvaIt-test li jinqasam, sal-għax 100 stringa mhux vojta. L-arrays ta' tokenijiet huma rfiduti (token_input_unsupported). Kull input għandu jaqbel fil-mudell tal- context_length, kontabbilti bħala madwar erba' bytes għal kull token.
encoding_formatStringLefloat (id-default) jew base64 (floats ta' 32-bit little-endian).
dimensionsintegerLeId-dażjun stess tal-mudell, jew għal mudell b' supported_dimensions wieħed minn dawk; il-vettur imbagħad inaqas u jiġi normalizzat. Kewlhebgħ ieħuż mill-oħra jiġi rifjutat.
MudellDimensjonijietKuntest
@cf/baai/bge-m31024, ħafna lingwi8,192 tokens
@cf/qwen/qwen3-embedding-0.6b1024, ħafna lingwi8,192 tokens
@cf/baai/bge-large-en-v1.51024, Ingliż512 tokenijiet
@cf/baai/bge-base-en-v1.5768, Malti512 tokenijiet
@cf/baai/bge-small-en-v1.5384, Malti512 tokenijiet

Il-lista tal-modelli hija s-sors tal-verità għal kemm hemm disponibbli u kemm jikostaw; EmbeddingGemma ta' Google, b'vektori qosrin fuq talba, tidher hemm ukoll meta l-katalogu jkollu prezz għaliha. L-embeddings jitkejjesu għal kull token tal-input, u l-minimun ta' 0.05-krediti japplika għal kull talba, mhux għal kull input, għalhekk il-grupp ta' testi ħafna f'talba waħda huwa ħafna aktar murah minn li tagħatlehom waħda wħieda.

Rispons

{
  "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 }
}
StatusMeta
400Nema input jew wieħed voj empty; token arrays (token_input_unsupported); aktar minn 100 input (too_many_inputs); input aktar twil minn quello li jieħu l-mudell (input_too_long); dimensione li l-mudell ma jistax jagħti (unsupported_dimensions).
402Il-bilanċ standard huwa żgħir wisq. L-embeddings qatt ma jużaw il-bilanċ Pro.
404M'hemmx mudell tal-embedding b'dak isem.
502Il-mudell falla. Xejn ma ġie miċċarġjat.

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