Yeqela kokuqukethwe
Kuhlolwe ku Nymbot

Isisekelo solwazi Izinzuzo

Images, audio kanye embedments

I-generators kusuka ku-app, ne-building blocks yokufunda: izithombe, i-video, i-speech, i-transcription kanye ne-embeddings, zonke zithunyelwe ukusetshenziswa kwebhizinisi yakho.

Ukwenza Images

Yenza isithombe 1 kuya 4 kusuka ku-prompt futhi ivumela ngemuva kokwenza. It is the same set of generators as ?image Ngaphandle kwe-app

POST https://nymbot.ai/api/v1/images/generations — unemibuzo ye-API, noma I-Lightning Payment ngesicelo.

Izithombe ezivela GET /api/v1/models?type=imageI-Generator ye-Generator ye-Generator @cf/black-forest-labs/flux-1-schnell, izindleko flat 5 amayunithi standard (50 sats) isithombe. Wonke ezinye generator isithombe amayunithi Pro ngentengo yayo, nge izindleko ezivamile futhi margin, njengoba ku Ngena ngemvume. n Izindleko ze-images n I-field eyenziwe ngama-generator iyahlekile ngokufakelwa; i-generator ye-standard isebenzisa kuphela i-prompt.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYeboI-Generator ID, njenge nano-banana.
promptUkuhlobisaYeboYini ukuyifaka. Kunzima kuphela izici ezingu-2000 ezidlulileyo.
nNgena ngemvumeNgaphandleI-1 kuya ku-4 I-Default 1. Isetshenziswa nangokuthi num_images.
sizeUkuhlobisaNgaphandleI-Aspect Ratio efana ne- "16:9", noma i-OpenAI usayizi efana "1792x1024", okuyinto enhle kakhulu 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 futhi 4:5. "auto" Hlola ku generator.
aspect_ratioUkuhlobisaNgaphandleImininingwane size, futhi wahlanganyela uma amabili zithunyelwe.
qualityUkuhlobisaNgaphandleGenerator-specific, njenge "low", "medium" noma "high".
negative_promptUkuhlobisaNgaphandleYini ukugcina.
output_formatUkuhlobisaNgaphandle"png", "jpeg" noma "webp".
response_formatUkuhlobisaNgaphandle"url" (I-default) noma "b64_json".
image_urlUkuhlobisaNgaphandleUmbhalo ukuqala nge: a https:// umugqa we-maximum ye-4.096 ama-characters ngaphandle kwe-user name noma password, noma data:image/…;base64 I-URL (i-PNG, i-JPEG, i-WebP noma i-GIF; akukho i-SVG). I-Generator kuphela editImininingwane ze-Imunify requires_image_url.

resolution is not used: ngamunye generator yenza ubukhulu yayo. Nge url, zonke izithombe zithunyelwe ku-Blossom ekhukhwini futhi unayo ikhonkco yayo (izinhlayiyana ezimbalwa zithunyelwe kuphela ikhonkco yayo yayo, okuyinto zithunyelwe). Wonke umuntu nge-link angakwazi ukufinyelela futhi akakwazi ukufinyelela; bheka Yintoni i-API angakwazi ukubonaNge b64_json umbhalo ushiye ngesikhathi sokubambisana futhi akuyona engaphansi. A image sent as a data: Ukubuyekezwa image_url Ukubuyekezwa ngokufanayo njenge ekhaya futhi ifakwe ku-Blossom okokuqala ukuze umkhakha ungathola; kususwa futhi uma isicelo akufanele ukufakelwa.

Uma ezinye n imiphumela imiphumela, ungakwazi ukufumana iziphumo ezisebenzayo, zihlanganisa kuphela iziphumo ezisebenzayo (ngezinye ama-providers zihlanganisa ngaphandle kokuphumelela), futhi nymbot.failed Ukubonisa inani elithile. Uma bonke abahlukile, isicelo ivumela 502.

Ukuphendula

{
  "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 }
}
UkubuyekezwaKwangathi
400Ngaphandle kwemvelo; n 1 kuya ku 4 (invalid_value); ubukhulu obuthandayo (invalid_size) noma isithombe (invalid_image, invalid_image_url); Model okuyinto kodwa akuyona umbhalo generator (invalid_model); isithombe ye-generator okuyinto awukwazi edit (edit_unsupported); akukho isithombe esithombe (image_required).
402I-Balance ayikwazi ukuhlanganisa zonke izibonelelo ezivame.
404(Hhayi isibonelo esithakazelisayo)model_not_found).
502Ukuhlobisa (upstream_errorNgaphandle kokuba umphakeli umphakeli umphakeli umphakeli; ke umphakeli charged_sats.
503Imibala ayikwazi ukuhanjiswa ngoku (media_hosting_unavailable). b64_json Ukusebenza futhi.

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

Ukubhalisa Images

Ukuguqulwa kwesithombe esithunyelwe, ngokuvamile. Lokhu kuyinto editing endpoint ye-OpenAI, ngakho-ke i-OpenAI SDKs' images.edit isebenza njengoko. Only Pro generators with edit ku-Model List ufumane.

POST https://nymbot.ai/api/v1/images/edits — unemibuzo ye-API, noma I-Lightning Payment ngesicelo• Umzimba multipart/form-dataNgaphezulu kwe-32 MB

isikhuntaUhloboUkubalwaUkucaciswa
imageNgena ngemvumeYeboUmbhalo ukuguqulwa: PNG, JPEG, WebP noma GIF, kuze kube 20 MB. Kwakhona asatholakala image[]Okokuqala isetshenziswa.
promptUkuhlobisaYeboYini ukuguqulwa?
modelUkuhlobisaYeboGenerator nge edit.
nNgena ngemvumeNgaphandle1 ukuze 4.
size
aspect_ratio
quality
negative_prompt
output_format
UkuhlobisaNgaphandleUkuze Generation.
response_formatUkuhlobisaNgaphandle"b64_json" (I-default lapha) noma "url".

Ukubhalisa umbhalo kuhlolwe ukuba i-PNG, JPEG, WebP noma GIF eyenziwe kahle, ifakwe njenge-type yayo yayo, futhi ifakwe ku-Blossom host, ngoba ama-generators zitholela ukufinyelela kwabo nge-link. Ukwelashwa njenge-public. Uma ukuguqulwa kwangapheli futhi akukho ukuguqulwa, i-copy ebhokisini iyahlaziywa. Ukuphendula inesibophelele njenge-generator. I-price yi-price ye-generators, okuyinto kunezinto zihlanganisa i-cost ye-input image.

Ukuphendula

{
  "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 }
}
UkubuyekezwaKwangathi
400Noma isithombe noma ifomu, ifayela okuyinto ayikho isithombe (invalid_image), noma generator okuyinto ayikwazi edit (edit_unsupported).
413Ukubalwa kwevidiyo engaphezulu kwe-20 MB (file_too_large), noma isicelo ephelele engaphezu kuka-32 MB.
503Umhlahlandlela (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"));

Ividiyo

Ividiyo ivame imizuzu, ngakho-ke ivela emkhakheni. Ungathumela, ufike id ngokushesha, futhi ucebele id kuze kube. Yonke i-videogenerator ivame isilinganiso se-Pro.

POST https://nymbot.ai/api/v1/videos — unemibuzo ye-API, noma I-Lightning Payment ngesiceloImininingwane 202.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYeboI-Video Generator id kusuka ku- GET /api/v1/models?type=video, njenge veo.
promptUkuhlobisaYeboYini kufanele kube.
durationInombolo noma stringNgaphandleUsetyenziswa kuphela generators ukuthi ungahambisa ubude; abanye ukwenza ubude yabo ngokuvamile, okuyinto seconds ku-response kanye ne-price elandelayo.
aspect_ratioUkuhlobisaNgaphandleUkulungele "16:9" noma "9:16"; Usayizi efana "1280x720" Ukubuyekezwa kwe-Ratio.
resolution
quality
UkuhlobisaNgaphandleOlandelayo: One of the Generator resolutions ku-model list, njenge "720p" noma "1080p". It is a price. Yonke okuzenzakalelayo is a refusal unsupported_resolution.
image_urlUkuhlobisaNgaphandleUmbhalo ukuqala nge: a https:// Link noma A data:image/… I-URL, okuyinto ifakwe ku-host ye-Blossom ye-publish okokuqala. I-generator ye-Blossom requires_image_url.

I-price iyatholakala lapho uthumele, ukusuka ku-generator, isizukulwane kanye ne-length, ngakho-ke kusetshenziswe ku-pro balance yakho uma umphakeli ukuthatha umsebenzi, futhi ifakwe njenge cost, estimated_cost futhi nymbot. Uma umphakeli uxhumane umsebenzi, akugqoka. Uma umphakeli ngempumelelo ngemva, noma i-clip eyenziwe ayikwazi ukuvikelwa futhi umphakeli awukwazi ukufakelwa, umphakeli uxhumane nje, ngokuzenzakalelayo. Umphakeli owaqhubeka ngemva kwenyanga uxhumane, futhi uxhumane, ngoba umphakeli uxhumane umphakeli uma uxhumane. Umphakeli uxhumane i-credits kodwa akukunciphisa inani lokushintshwa we-key.

Ukuphendula (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 Ukuqala like in_progress, noma completed Ukubuyekezwa kwevidiyo data Ngemuva kwalokho, umugqa wahlala ngokushesha.

Ukubuyekeza ku-video

GET https://nymbot.ai/api/v1/videos/{id} - unemibuzo owenziwe yi-nym enikezela. Umbhali owenziwe ngempumelelo inikeza.

Ukuphendula 202 Phakathi nevidiyo yenzelwe futhi 200 Ngemuva kokufinyelela noma kwangapheli. Qaphela ngalinye amaminithi angu-5 kuya ku-10. Ngemuva kokufinyelela ngalinye i-check i-provider yakhelwe ngexesha lokufinyelela; akufinyelela ngevidiyo. Isikhathi sokufinyelela isikhathi se-24 emva kokufinyelela. GET /api/v1/videos inikeza i-key's last 50 jobs njenge {"object": "list", "data": […]}.

Ukuphendula (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 Yini in_progress, completed noma failedI-A Failed Job Carries error ({"code": "generation_failed", "message": …}(Wagqibela ukuhlaziywa kwebhizinisi) cost 0 futhi nymbot Thumela refunded_credits futhi refunded_satsIvidiyo ephelele iyatholakala ku-Blossom host, njenge-images eyenziwe.

UkubuyekezwaKwangathi
400Ngaphandle kwe-0 kuya ku-60 (invalid_value); isixazululo se-generator ayidinga (unsupported_resolution); akukho isithombe ye-generator enesidingo (image_required); imodeli okuyinto ayikho i-video generator (invalid_model).
402I-Pro Balance ayikwazi ukucubungula i-video.
404Okunye generator (model_not_found), noma akukho umsebenzi ngesi-id yakho ye-nym, noma i-nym engaphezulu kwe-24 amahora (video_not_found).
429I-Your nym already has 10 videos rendering (video_jobs_limit). Hlola kwabo futhi ubhale ngaphezulu uma umphumela omnye.
502Umkhakha wahlanganyela umsebenzi. Akukho ingxubevange ngaphandle kokuba umphakeli wahlanganyelwa.
503Ividiyo ayikwazi ukudluliselwa noma ukugcina ngoku (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);

Umbhalo we-Speech

Ukubuyekeza ingxubevange futhi ivumela ifayela le-audio ngokuvamile, akuyona ingxubevange. It is OpenAI's speech endpoint, ngakho-ke audio.speech.create ku-OpenAI SDKs ukusebenza.

POST https://nymbot.ai/api/v1/audio/speech — unemibuzo ye-API, noma I-Lightning Payment ngesicelo.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaNgaphandleUmhlahlandlela Umhlahlandlela Uhlobo lwe-Audio Models. Default: I-voice ye-standard, @cf/myshell-ai/melotts. aura-2 I-Deepgram Aura 2
inputUkuhlobisaYeboUmbhalo ukubuyekeza: up to 800 imibala for the standard voice, 2,000 for Aura 2.
voiceUkuhlobisaNgaphandleI-voice id kusuka Imininingwane ye-voices: Aura umbhali efana luna (Uma aura-2-luna-en), noma ingxowa MeloTTS (en, es, fr, zh). OpenAI ama-voice ama-names efana alloy zihlanganisa futhi ukunikela ukubuyekezwa kwe-model.
languageUkuhlobisaNgaphandleI-code ye-language efana esNgaphandle kwe-voice, i-voice ithatha i-voice ye-language. I-voice eyenza i-language ye-language. 422 voice_language_mismatch, futhi ulimi ukuthi imodeli ayikho isisindo 422 unsupported_language.
response_formatUkuhlobisaNgaphandleI-Standard Voice iyahambisana mp3 I-Aura 2 iyahamba mp3 (Ukuhlukaniswa okuqhubekayo) opus, aac, flac, wav noma pcm.
speedInomboloNgaphandleUkubuyekezwa futhi ukuncintisana.

I-voice ye-standard inikeza i-flat 3 credit ye-standard (30 sats) isicelo, njenge-app. I-Aura 2 i-Pro, i-priced by the characters you send. I-response body yi-audio, nge-matching Content-TypeI-cost is in the X-Nymbot-Cost-Sats umbhali. Uma umbhali umbhali akufanele, akufanele akukho.

Ukuphendula

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

(audio bytes)
UkubuyekezwaKwangathi
400Okungenani inguqulo; inguqulo ngaphezulu kwe-model limit (input_too_long); ifomati a model ayikwazi ukukhiqiza (unsupported_response_format); isisindo esaziwa (invalid_voice); imodeli okuyinto ayikho umzila umzila (invalid_model).
422I-voice ayixazulule isilinganiso esithathwe, noma isibonelo ayikho isilinganiso esithathwe.
502Umhlahlandlela umhlahlandlela umhlahlandlela. Akukho umhlahlandlela.

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

Imodeli ye-audio kanye nemisindo

Kukho 41 Aura 2 ababhali-English kanye nezilimi ezine zeMeloTTS.

GET https://nymbot.ai/api/v1/audio/models - Akukho isikhwama esidingo.

GET https://nymbot.ai/api/v1/audio/voices?language=en - Akukho isikhwama esidingo.

isikhuntaUhloboUkubalwaUkucaciswa
languageisikhunta (Query)NgaphandleImininingwane kuphela ngezilimi.
modelisikhunta (Query)NgaphandleI-voices kuphela ye-model yayo.

Ukusabela (ukudluliselwa)

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

I-Models List Imibuzo {"object": "list", "data": {"tts": […], "stt": […]}}. Wonke imodeli wokubhalisa inikeza isilinganiso, ixabiso, max_input_chars, response_formats, languages futhi default_voiceI-transcription model inikeza i-aliases yayo, max_file_bytes, max_seconds, ama-format kanye ne-price 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);

Umbhalo ku-Text

Ukuguqulwa kwe-record ku-text nge-Whisper. Lesi yindawo yokuqala ye-Transcription ye-OpenAI, ngakho audio.transcriptions.create Ukusebenza

POST https://nymbot.ai/api/v1/audio/transcriptions — unemibuzo ye-API, noma I-Lightning Payment ngesicelo• Umzimba multipart/form-data.

isikhuntaUhloboUkubalwaUkucaciswa
fileNgena ngemvumeYeboUkubhalisa, kusuka ku-256 ama-byte kuya ku-25 MB kuya ku-30 amaminithi: WAV, WebM, MP4 noma M4A, Ogg noma Opus, MP3 kanye nezinye ama-format Whisper read.
modelUkuhlobisaNgaphandleUkukhangisa whisper, okuyinto Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo futhi @cf/openai/whisper-large-v3-turbo Khetha okuhle.
languageUkuhlobisaNgaphandleI-language eyenziwe, njenge en. Ukuhlobisa uma ushiye.
promptUkuhlobisaNgaphandleImininingwane noma ukubuyekezwa, njenge-imeyili. Kuncike izici ezingu-1000 ziye zisetshenziselwa.
response_formatUkuhlobisaNgaphandlejson (Ukuhlukaniswa okuqhubekayo) text, srt, vtt noma verbose_json.

Ukuze i-WAV, i-WebM, i-MP4 kanye ne-Ogg amafayela, ubude lithunyelwe kusuka ku-file ngaphambi kokusebenza okungenani, ngakho-ke ukubuyekezwa kwe-30 amaminithi kuqala kuqala (ngokusho kwe-3 amaminithi). Ubude we-WAV ifayela lithunyelwe ngesantya yayo, ama-channels kanye ne-sample size. Ubude kwezinye amafayela, njenge-MP3, ayikwazi ukubuyekezwa kuqala, ngakho-ke zithunyelwe ngama-bitrate engaphansi: ku-Nymbot ibheka, i-8 kbps, i-30 amaminithi yi-1.8 MB, futhi ifayela elikhulu kulokhu ifomu lithunyelwe ku-Nymbot 413 audio_too_long Previous Previous post: Ukulandela ukubhuka okwengeziwe njenge-WAV, i-WebM, i-MP4 noma i-Ogg. Uma i-Whisper ibhalisele ngaphezulu kwama-30 amaminithi, isicelo esithathwe 413 audio_too_long, futhi kusukela Whisper wahlala, amaminithi angu-30 kubhalwe.

You pay for the length of the audio, rounded up to the second: the longest of the length read from the file, the length Whisper reports, and the least the file size allows, at Whisper's per-minute price with the usual fee and margin, and at least 0.05 credit a request. It is paid from the standard balance when that can cover the hold, and from Pro otherwise; 402 inikeza ukuthi isilinganiso kuyadingeka. Kwi-app, ukudluliselwa kwebhizinisi ye-voice kungenziwa mahhala; ku-API iyatholakala njalo. Uma i-Whisper akufanele, akufakwa akukho.

Ukuphendula

{
  "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 Ukuguqulwa kwe-Clear Text srt futhi vtt Back subtitles, futhi verbose_json Ukongeza isilimi, ubude kanye nezinhlangano ze-time. Ukuze ama-JSON ezimbini, i-cost iyatholakala emaphaketheni.

UkubuyekezwaKwangathi
400Okungenani ifayela, ifayela ngaphandle kwe-audio eyenziwe (invalid_audio), isithombe esidumile, noma isampula okuyinto ayikho isampula se-transcription (invalid_model).
402Futhi isilinganiso ayikwazi ukucacisa.
413Ifayela ungaphezulu kwe-25 MB (file_too_large) noma ukubuyekeza engaphezulu kwe-30 amaminithi, noma, ngaphansi kwe-format ebonakalayo engaphakathi, engaphezulu kwe-1.8 MB (audio_too_long).
502I-Whisper ayikwazi ukucubungula i-audio. Akukho ukulayishwa.

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

Ukuguqulwa kwe-speech ku-English

POST https://nymbot.ai/api/v1/audio/translations — unemibuzo ye-API, noma I-Lightning Payment ngesicelo• Umzimba multipart/form-data.

I-transcription efanayo, ne-fields efanayo ngaphandle kwe-transcription language, ama-limits kanye ne-price, kodwa i-text iyatholakala e-English kungekho isilimi esebenzayo. I-OpenAI SDK ibizwa 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);

Ukuhlobisa

Ukuguqulwa kwe-text ku-vectors yokufunda, ukuxhumana kanye nokuguqulwa kwe-deduplication. Amamodeli asebenza ku-Cloudflare futhi zithole isilinganiso se-standard.

POST https://nymbot.ai/api/v1/embeddings — unemibuzo ye-API, noma I-Lightning Payment ngesicelo.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYeboI-embedded model kusuka GET /api/v1/models?type=embedding.
inputString noma Array of StringsYeboUmbhalo wokubacindezela, okungenani ama-strings angu-100 ngaphandle kokuzihlanganisa. Izithombe ze-token zihlanganiswa (token_input_unsupported(Wonke inguqulo kufanele ifakwe imodeli context_length, zihlanganisa njengama-byte angu-4 i-token.
encoding_formatUkuhlobisaNgaphandlefloat (I-default) noma base64 (I-Little-endian 32-bit ye-floats)
dimensionsNgena ngemvumeNgaphandleUmbala we-model, noma umbala we-model supported_dimensions One of those; Vector is then shortened and normalized. Yonke okuzenzakalelayo iyahlekile.
UmhlahlandlelaUkuphakamaNgena ngemvume
@cf/baai/bge-m31024 izilimi eziningi8,192 izitolo
@cf/qwen/qwen3-embedding-0.6b1024 izilimi eziningi8,192 izitolo
@cf/baai/bge-large-en-v1.51024, IsiZulu512 izikhwama
@cf/baai/bge-base-en-v1.5768, IsiZulu512 izikhwama
@cf/baai/bge-small-en-v1.5384, IsiZulu512 izikhwama

Umhlahlandlela wama-models iyisisombululo owaziwa ukuthi kukhona futhi ukuthi kunezimali; I-Google's EmbeddingGemma, nge-vectors ezincinane ku-request, ibonisa khona futhi uma ikhathanisi ine-price yayo. Izinhlangano zihlanganiswa ngalinye-token yokufinyelela, futhi i-0.05-credit minimum isetshenziselwa ngamunye isicelo, akuyona ngamunye isicelo, ngakho-ke ukwahlukanisa imithombo eminingi ku-request eyodwa kunezinto engcono kunezinye.

Ukuphendula

{
  "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 }
}
UkubuyekezwaKwangathi
400Ngaphandle kwe-Input noma i-Empty One; i-token array (token_input_unsupported); ezingaphezu kuka-100 ingxube (too_many_inputs); inguqulo eside kunazo imodeli (input_too_long); ubungakanani ungathumela model (unsupported_dimensions).
402Isilinganiso se-standard iyatholakala kakhulu. Ama-embeddings akufanele usebenzisa isilinganiso se-Pro.
404Ngaphandle kokuzihlanganisa umugqa nge-imeyili.
502Model ifakwe. Akukho ifakwe.

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