Znalostná báza Vývojári
Obrázky, audio a embeddings
Generátory z aplikácie a stavebné bloky pre vyhľadávanie: obrázky, video, reč, transkripcia a vkladanie, každý účtovaný za použitie z vášho zostatku.
Táto stránka je pre pohodlie preložená strojovo. Platí anglický originál.
Generovanie obrázkov
Vytvorí jeden až štyri snímky z výzvy a vráti ich, keď sú hotové. ?image v rámci aplikácie.
POST https://nymbot.ai/api/v1/images/generations potrebuje kľúč API, alebo Lightning platba na požiadanie.
ids pochádzajú z GET /api/v1/models?type=imageštandardný generátor,
@cf/black-forest-labs/flux-1-schnell, stojí ploché 5 štandardných kreditov (50 sats) obrázok. Každý iný generátor míňa Pro kreditov za svoju vlastnú cenu, s obvyklým poplatkom a marže, ako v Aplikácia. n Obrázky náklady
n Pole, ktoré generátor neprijme, je spustené namiesto odmietnutého; štandardný generátor používa iba výzvu.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
model | Stringová | áno | Generátor ID, ako napríklad nano-banana. |
prompt | Stringová | áno | Používa sa iba prvých 2000 znakov. |
n | integer | nie | 1 až 4. predvolené 1. tiež akceptované ako num_images. |
size | Stringová | nie | Aspekt proporcie, ako je "16:9", alebo veľkosť OpenAI ako "1792x1024", ktorá sa stáva najbližšou hodnotou 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 a 4:5. "auto" Dajte ho do generátora. |
aspect_ratio | Stringová | nie | Rovnaké ako sizea vyhráva, ak sú obaja poslaní. |
quality | Stringová | nie | Generátor špecifický, ako napríklad "low", "medium" alebo "high". |
negative_prompt | Stringová | nie | Čo nechať von. |
output_format | Stringová | nie | "png", "jpeg" alebo "webp". |
response_format | Stringová | nie | "url" (zodpovednosť za neplatnosť) alebo "b64_json". |
image_url | Stringová | nie | Obrázok na začiatok: A https:// prepojenie s maximálne 4 096 znakmi bez používateľského mena alebo hesla, alebo data:image/…;base64 URL (PNG, JPEG, WebP alebo GIF; nie SVG). Len pre generátory s editVyžaduje sa od tých, ktorí requires_image_url. |
resolution sa nepoužíva: každý generátor robí svoju vlastnú veľkosť. url, každý obrázok je nahraný do verejného hostiteľa Blossom a dostanete jeho odkaz (niekoľko generátorov len vráti odkaz vlastný, ktorý je odovzdaný). ktokoľvek s odkazom ho môže otvoriť a nemôže byť znova stiahnutý; pozri Čo môže oheň vidieťs
b64_json obrázok sa vráti v odpovedi a nikdy sa neuloží. obrázok odoslaný ako data: URL v image_url je kontrolovaný rovnakým spôsobom ako
editovať a nahrané na Blossom najprv tak, aby generátor mohol vyzdvihnúť; je odstránený znova, ak požiadavka zlyhá bez faktúry.
Ak niektoré z n obrázky zlyhajú, dostanete tie, ktoré fungovali, sú účtované len za tie (plus akékoľvek poskytovateľ účtovaný napriek zlyhaniu), a nymbot.failed ukazuje, koľko chýba. Ak všetky zlyhajú, žiadosť sa vráti 502.
odpoveď
{
"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 }
}
| statusu | Kedy |
|---|---|
400 | nie je rýchly; n od 1 do 4 (invalid_value); zlá veľkosť (invalid_size) alebo obrázok (invalid_image, invalid_image_url); model, ktorý existuje, ale nie je generátorom obrazu (invalid_model); obrázok pre generátor, ktorý nemôže editovať (edit_unsupported); žiadny obrázok pre toho, kto ho potrebuje (image_required). |
402 | Zostatok nemôže pokryť každý požadovaný obrázok. |
404 | Žiadny model s týmto názvom (model_not_found). |
502 | generátor zlyhal (upstream_errorNič nie je účtované, pokiaľ poskytovateľ neúčtuje za pokus; potom chyba charged_sats. |
503 | Fotky sa momentálne nemôžu hosťovať (media_hosting_unavailable). b64_json Stále to funguje. |
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);
editovať obrázky
Zmení obrázok, ktorý nahrávate, po výzve.Toto je OpenAI edit endpoint, takže OpenAI SDK images.edit funguje tak, ako je. iba Pro generátory s edit v zozname modelov ho akceptujte.
POST https://nymbot.ai/api/v1/images/edits potrebuje kľúč API, alebo Lightning platba na požiadanieTelo je multipart/form-dataAž 32 MB.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
image | súboru | áno | Obrázok na úpravu: PNG, JPEG, WebP alebo GIF, až do 20 MB. image[]Prvý sa používa. |
prompt | Stringová | áno | Čo sa zmeniť. |
model | Stringová | áno | Generátor s edit. |
n | integer | nie | 1 až 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | Stringová | nie | Čo sa týka generácie. |
response_format | Stringová | nie | "b64_json" (v predvolenom nastavení tu) alebo "url". |
Obrázok, ktorý nahráte, je skontrolovaný ako dobre vytvorený PNG, JPEG, WebP alebo GIF, odoslaný ako jeho skutočný typ a umiestnený na verejnom hostiteľovi Blossom, pretože generátory získavajú svoj vstup cez odkaz. Zaobchádzajte s ním ako s verejným. Ak editácia zlyhá a nič nie je účtované, hostiteľská kópia sa znova odstráni. Odpoveď má rovnaký tvar ako pre generáciu. Cena je cena generátora, ktorá pre niektoré generátory zahŕňa poplatok za vstupný obrázok.
odpoveď
{
"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 }
}
| statusu | Kedy |
|---|---|
400 | Žiadny obrázok alebo príkaz, súbor, ktorý nie je obrázkom (invalid_image), alebo generátor, ktorý nemôže editovať (edit_unsupported). |
413 | Obrázok je väčší ako 20 MB (file_too_large), alebo celá žiadosť nad 32 MB. |
503 | Obrázok sa momentálne nedá hostiť (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"));
Videá
Video trvá minúty, takže beží v pozadí. Odosielate ho, dostanete id okamžite a požiadajte o id, kým to nie je hotové.
POST https://nymbot.ai/api/v1/videos potrebuje kľúč API, alebo Lightning platba na požiadanie• Návraty 202.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
model | Stringová | áno | Video generátor id od GET /api/v1/models?type=video, ako napríklad veo. |
prompt | Stringová | áno | Čo by sa malo stať. |
duration | Číslo alebo string | nie | Dĺžka v sekundách, viac ako 0 a až 60. Používajú len generátory, ktoré vám umožňujú vybrať si dĺžku; ostatné robia svoju obvyklú dĺžku, čo je to, čo seconds v odpovedi a cena nasleduje. |
aspect_ratio | Stringová | nie | Tak ako "16:9" alebo "9:16"veľkosť, ako je "1280x720" sa stáva najbližším pomerom. |
resolutionquality | Stringová | nie | Jeden z generátorov resolutions v zozname modelov, ako napríklad "720p" alebo "1080p"Nastavuje cenu.Čokoľvek iné je odmietnuté unsupported_resolution. |
image_url | Stringová | nie | Obrázok na začiatok: A https:// Link alebo A data:image/… URL, ktorý sa najprv nahrá na verejný Blossom hostiteľ. Požadované generátormi s requires_image_url. |
Cena je stanovená pri odosielaní z generátora, rozlíšenia a dĺžky, takže sa účtuje z vášho Pro zostatku, akonáhle poskytovateľ prijme prácu a zobrazí sa ako
cost, estimated_cost a nymbotAk poskytovateľ odmietne prácu, nič sa neúčtuje. Ak renderovanie neskôr zlyhá, alebo hotový klip nie je možné uložiť a poskytovateľ ho neúčtuje, poplatok sa vráti raz, automaticky. Renderovanie, ktoré stále prebieha po jednej hodine, sa vzdá a zachováva svoje poplatky, pretože poskytovateľ účtuje renderovanie, akonáhle ho prijme.
Príspevok (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 Začiatok ako in_progressalebo completed s videom už v data generátor ho okamžite vrátil.
Skontrolovať na video
GET https://nymbot.ai/api/v1/videos/{id} - potrebuje kľúč patriaci k nim, ktorý ho predložil.Kľúč, ktorý dosiahol svoj limit, môže ešte skontrolovať.
odpovedá 202 Počas tvorby videa a 200 po dokončení alebo zlyhaní. Opýtajte sa každých 5 až 10 sekúnd. Každá kontrola sa pýta poskytovateľa raz a odpovie naraz; nikdy nečaká na video.
GET /api/v1/videos Zoznam posledných 50 pracovných miest kľúča ako
{"object": "list", "data": […]}.
Odpovede na otázky (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 je in_progress, completed alebo failedNeúspešná práca prináša error ({"code": "generation_failed", "message": …}a) ak bol vrátený, cost je 0 a nymbot Pridať
refunded_credits a refunded_satsHotové video je na verejnom hostiteľovi Blossom, ako sú vytvorené obrázky.
| statusu | Kedy |
|---|---|
400 | Žiadna rýchlosť; trvanie mimo 0 až 60 (invalid_value); rozlíšenie, ktoré generátor neposkytuje (unsupported_resolution); žiadny obrázok pre generátor, ktorý potrebuje jednu (image_required); model, ktorý nie je generátor videa (invalid_model). |
402 | Pro rovnováha nemôže pokrývať video. |
404 | Žiadny generátor (model_not_found), alebo žiadna práca podľa toho id pre váš nym, alebo je viac ako 24 hodín starý (video_not_found). |
429 | Vaša nym už má 10 videí rendering (video_jobs_limitPozrite sa na ne a predložiť viac, akonáhle jeden dokončí. |
502 | Generátor odmietol prácu. Nič nie je účtované, pokiaľ poskytovateľ za to neúčtuje. |
503 | Videá sa momentálne nedajú doručiť ani uložiť (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);
Text na prejav
Prečíta text nahlas a vráti samotný zvukový súbor, nie odkaz. audio.speech.create v OpenAI SDKs funguje.
POST https://nymbot.ai/api/v1/audio/speech potrebuje kľúč API, alebo Lightning platba na požiadanie.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
model | Stringová | nie | Model prejavu od Zoznam audio modelovDefault: štandardný hlas @cf/myshell-ai/melotts. aura-2 Hrať Deepgram Aura 2 |
input | Stringová | áno | Text na čítanie: až 800 znakov pre štandardný hlas, 2000 pre Aura 2. |
voice | Stringová | nie | Hlasový ID od Zoznam hlasov: Aura reproduktor ako luna (alebo aura-2-luna-en), alebo jazyk MeloTTS (en, es, fr, zhOpenAI hlasové mená, ako sú alloy sú prijaté a dať predvolený hlas modelu. |
language | Stringová | nie | Jazykový kód, ako je esBez hlasu si vyberie jeden pre daný jazyk. hlas, ktorý hovorí iným jazykom, sa vráti 422 voice_language_mismatch, a jazyk, pre ktorý model nemá hlas 422 unsupported_language. |
response_format | Stringová | nie | Štandardný hlas sa vracia mp3 Aura 2 sa vracia mp3 (z dôvodu nedodržania podmienok), opus, aac, flac, wav alebo pcm. |
speed | Číslo | nie | Prijaté a ignorované. |
Štandardný hlas stojí ploché 3 štandardné kredity (30 sats) žiadosť, ako v aplikácii. Aura 2 je Pro, ceny podľa znakov, ktoré posielate.
Content-TypeNáklady sú v X-Nymbot-Cost-Sats header.Ak model reči zlyhá, nič nie je účtované.
odpoveď
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| statusu | Kedy |
|---|---|
400 | Žiadny vstup; vstup nad limit modelu (input_too_long); formát, ktorý model nemôže produkovať (unsupported_response_format); neznámy hlas (invalid_voice); model, ktorý nie je modelom prejavu (invalid_model). |
422 | Hlas nehovorí daným jazykom, alebo model nemá pre neho hlas. |
502 | Model reči zlyhal. Nič nie je účtované. |
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 modely a hlasy
Dva verejné zoznamy pre výber modelu reči a hlasu, alebo prepis modelu. Existuje 41 Aura 2 angličtiny a štyri jazyky MeloTTS.
GET https://nymbot.ai/api/v1/audio/models Kľúč nie je potrebný.
GET https://nymbot.ai/api/v1/audio/voices?language=en Kľúč nie je potrebný.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
language | String (požiadavka) | nie | Iba hlasy pre tento jazyk. |
model | String (požiadavka) | nie | Len hlasy pre tento model. |
Reakcie (z hlasov)
{
"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 }
]
}
Modely Zoznam odpovedí {"object": "list", "data": {"tts": […], "stt": […]}}Každý model reči dáva svoju rovnováhu, cenu, max_input_chars,
response_formats, languages a default_voice; transkripčný model dáva svoje aliasy, max_file_bytes, max_seconds, formáty a cena za minútu.
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);
Príhovor k textu
Premení záznam na text pomocou funkcie Whisper. Toto je koncový bod transkripcie OpenAI, takže
audio.transcriptions.create Práca sa.
POST https://nymbot.ai/api/v1/audio/transcriptions potrebuje kľúč API, alebo Lightning platba na požiadanieTelo je multipart/form-data.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
file | súboru | áno | Záznam, od 256 bajtov do 25 MB a až do 30 minút: WAV, WebM, MP4 alebo M4A, Ogg alebo Opus, MP3 a ostatné formáty Whisper číta. |
model | Stringová | nie | defektné whisperČo je Whisper Large v3 Turbo? whisper-1, whisper-large-v3-turbo a @cf/openai/whisper-large-v3-turbo Znamená to isté. |
language | Stringová | nie | v rozprávanom jazyku, ako napríklad enZistené, ak je vynechané |
prompt | Stringová | nie | Slová alebo pravopisy, ktoré môžete očakávať, napríklad mená. Používa sa iba prvých 1000 znakov. |
response_format | Stringová | nie | json (z dôvodu nedodržania podmienok), text, srt, vtt alebo verbose_json. |
Pre WAV, WebM, MP4 a Ogg súbory je dĺžka prečítaná z súboru predtým, než sa niečo spustí, takže nahrávanie nad 30 minút je odmietnuté dopredu (s 3 sekundami). Dĺžka WAV súboru pochádza z jeho vzorkovej rýchlosti, kanálov a veľkosti vzorky. Dĺžka iných formátov, ako je MP3, sa nedá prečítať dopredu, takže sú obmedzené veľkosťou: pri najnižšej bitrate Nymbot predpokladá, 8 kbps, 30 minút je 1,8 MB a väčší súbor v takom formáte je odmietnutý s 413
audio_too_long Pošlite dlhšie nahrávky ako WAV, WebM, MP4 alebo Ogg. Ak Whisper potom hlásí viac ako 30 minút, žiadosť je odmietnutá
413 audio_too_long, a keďže Whisper spustil, 30 minút sú účtované.
Platíte za dĺžku zvuku, zaokrúhlenú na druhú: najdlhšia dĺžka čítania z súboru, dĺžka Whisper správy, a najmenej veľkosť súboru umožňuje, za cenu za minútu Whisper s obvyklým poplatkom a marže, a najmenej 0,05 kredit žiadosti. 402 dáva to, čo by každá rovnováha potrebovala. V aplikácii môže byť prepisovanie hlasovej správy zadarmo; na rozhraní API sa vždy účtuje. Ak Whisper zlyhá, nič nie je účtované.
odpoveď
{
"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 vráti čistý text, srt a vtt vrátiť titulky a
verbose_json pridáva jazyk, trvanie a časované segmenty. Pre tri, ktoré nie sú JSON, náklady sú v hlavičkách.
| statusu | Kedy |
|---|---|
400 | Žiadny súbor, súbor bez použiteľného zvuku (invalid_audio, neznámy formát, alebo model, ktorý nie je transkripčným modelom (invalid_model). |
402 | Ani rovnováha ho nedokáže pokryť. |
413 | Súbor je väčší ako 25 MB (file_too_largea) v rozsahu, ktorý je dlhší ako 30 minút, alebo vo formáte, ktorého dĺžka sa nedá čítať dopredu, viac ako 1,8 MB (audio_too_long). |
502 | Whisper nemohol spracovať zvuk. Nič nie je účtované. |
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);
Preklad reči do angličtiny
POST https://nymbot.ai/api/v1/audio/translations potrebuje kľúč API, alebo Lightning platba na požiadanieTelo je multipart/form-data.
Rovnaký ako prepis, s rovnakými poľami okrem language, limity a cena, ale text sa vracia v angličtine bez ohľadu na jazyk. 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);
Embeddingové
Premení text na vektory pre vyhľadávanie, zoskupovanie a deduplikáciu.Modely bežia na Cloudflare a míňajú štandardnú bilanciu.
POST https://nymbot.ai/api/v1/embeddings potrebuje kľúč API, alebo Lightning platba na požiadanie.
| Poľné | typ | Potrebné | Popis |
|---|---|---|---|
model | Stringová | áno | Vstavaný model od GET /api/v1/models?type=embedding. |
input | String alebo Array Strings | áno | V prípade, že sa nepoužíva, je potrebné vykonať maximálne 100 testov. (token_input_unsupportedKaždý vstup musí zodpovedať modelu context_length, počítané ako asi štyri bajty tokenu. |
encoding_format | Stringová | nie | float (zodpovednosť za neplatnosť) alebo base64 (Little-endian 32-bitové plávajúce zariadenia) |
dimensions | integer | nie | Vlastná veľkosť modelu, alebo pre model s supported_dimensions jeden z nich; vektor je potom skrátený a normalizovaný. |
| Modelka | Rozmery | kontext |
|---|---|---|
@cf/baai/bge-m3 | 1024 v mnohých jazykoch | 8 192 žetónov |
@cf/qwen/qwen3-embedding-0.6b | 1024 v mnohých jazykoch | 8 192 žetónov |
@cf/baai/bge-large-en-v1.5 | 1024 Angličtina | 512 tokenov |
@cf/baai/bge-base-en-v1.5 | 768, angličtina | 512 tokenov |
@cf/baai/bge-small-en-v1.5 | 384 Angličtina | 512 tokenov |
Zoznam modelov je zdrojom pravdy, pre ktoré sú k dispozícii a čo stoja; EmbeddingGemma spoločnosti Google, s kratšími vektormi na požiadanie, sa objavuje aj vtedy, keď má katalóg cenu.
odpoveď
{
"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 }
}
| statusu | Kedy |
|---|---|
400 | Žiadny vstup alebo prázdna jedna; token array (token_input_unsupported); viac ako 100 vstupov (too_many_inputs); vstup je dlhší ako model trvá (input_too_long); veľkosť, ktorú model nemôže dať (unsupported_dimensions). |
402 | Štandardná rovnováha je príliš nízka. Vkladanie nikdy nepoužíva Pro rovnováhu. |
404 | Žiadny model s týmto názvom. |
502 | Model zlyhal. nič nie je účtované. |
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);