Baza znanja Razvijatelji
Slike, audio i ugradnje
Generatori iz aplikacije i građevinski blokovi za pretraživanje: slike, video, govor, transkripcija i ugrađivanja, svaki obračunati po uporabi iz vaše bilance.
Ova stranica je strojno prevedena radi praktičnosti. Engleski izvornik je verzija koja se primjenjuje.
Generiranje slika
Napravi jednu do četiri slike iz prompt i vraća ih kada su završene. ?image U aplikaciji
POST https://nymbot.ai/api/v1/images/generations – potreban je API ključ, ili Lightning plaćanje po zahtjevu.
IDS dolazi od GET /api/v1/models?type=imageStandardni generator
@cf/black-forest-labs/flux-1-schnell, košta ravno 5 standardnih kredita (50 sats) na sliku. Svaki drugi generator troši Pro kredite po vlastitoj cijeni, uz uobičajenu naknadu i maržu, kao u Aplikacija. n Fotografije koštaju
n Polje koje generator ne uzima je otpušteno umjesto odbijeno; standardni generator koristi samo pozivnicu.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | Da | Generator ID, kao što je nano-banana. |
prompt | String | Da | Koristi se samo prvih 2000 znakova. |
n | integer | Ne | 1 do 4. podrazumijevanje 1. također prihvaćeno kao num_images. |
size | String | Ne | Različiti aspekti kao što su "16:9", ili otvorenih veličina kao što su "1792x1024", koji postaje najbliži 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 i 4:5. "auto" Ostavite ga na generator. |
aspect_ratio | String | Ne | Isti kao sizeI pobjeđuje ako se oboje pošalju. |
quality | String | Ne | Specijalni generatori, kao što su "low", "medium" ili "high". |
negative_prompt | String | Ne | Što ostaviti van. |
output_format | String | Ne | "png", "jpeg" ili "webp". |
response_format | String | Ne | "url" (u slučaju neispunjenja obveze) ili "b64_json". |
image_url | String | Ne | Slike koje treba započeti s: a https:// poveznica od najviše 4096 znakova bez korisničkog imena ili lozinke u njoj, ili data:image/…;base64 URL (PNG, JPEG, WebP ili GIF; ne SVG). editPotrebno je da oni koji imaju requires_image_url. |
resolution ne koristi se: svaki generator proizvodi svoju veličinu. url, svaka slika se prenosi na javni Blossom host i dobivate njezin link (nekoliko generatora samo vraća svoju poveznicu, koja se prenosi). Što vatra može vidjetiS
b64_json slika se vraća u odgovoru i nikada se ne učitava. slika poslana kao data: URL u image_url Provjerava se na isti način kao i
Edit Prvo se prenosi na Blossom kako bi ga generator mogao preuzeti; ponovno se briše ako se zahtjev ne napravi.
Ako neki od n slike ne uspiju, dobivate one koji su radili, naplaćuju se samo za one (plus bilo koji pružatelj računa unatoč neuspjehu), i nymbot.failed kaže koliko ih nedostaje. ako svi ne uspiju, zahtjev se vraća 502.
Odgovor
{
"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 }
}
| Status | Kada |
|---|---|
400 | ne brzo; n Između 1 i 4 (invalid_value(na primjer, u velikoj mjeri)invalid_size) ili slika (invalid_image, invalid_image_url); model koji postoji, ali nije generator slike (invalid_model); slika za generator koji ne može uređivati (edit_unsupported); nema slike za nekoga tko to treba (image_required). |
402 | Bilans ne može pokriti svaku traženu sliku. |
404 | Ne postoji model s tim imenom (model_not_found). |
502 | Sljedeći Članak Generator nije uspio (upstream_errorNišta se ne naplaćuje osim ako pružatelj ne naplaćuje za pokušaj; onda je pogreška charged_sats. |
503 | Fotografije se trenutno ne mogu pohraniti (media_hosting_unavailable). b64_json Još uvijek djeluje. |
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);
Redigiranje slika
Promijeni sliku koju postavljate, slijedeći uputstvo. Ovo je OpenAI-ova krajnja točka za uređivanje, tako da su OpenAI SDK-ovi images.edit radi kao što je. samo Pro generatori s edit na listi modela to prihvatiti.
POST https://nymbot.ai/api/v1/images/edits – potreban je API ključ, ili Lightning plaćanje po zahtjevuTijelo je multipart/form-dataDo 32 MB.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
image | datoteka | Da | Slika za uređivanje: PNG, JPEG, WebP ili GIF, do 20 MB. image[]Prva se koristi. |
prompt | String | Da | Što promijeniti |
model | String | Da | Generator s edit. |
n | integer | Ne | 1 do 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | String | Ne | Što se tiče generacije. |
response_format | String | Ne | "b64_json" (u nastavku ovdje) ili "url". |
Slika koju postavite provjerava se da je dobro oblikovana PNG, JPEG, WebP ili GIF, šalje se kao njezin pravi tip i stavlja se na javni Blossom host, jer generatori preuzimaju svoj unos putem poveznice. Tretirajte ga kao javni. Ako uređivanje ne uspije i ništa se ne naplaćuje, hostirana kopija se ponovno briše. Odgovor ima isti oblik kao i za generaciju. Cijena je cijena generatora, koja za neke generatore uključuje naknadu za ulaznu sliku.
Odgovor
{
"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 }
}
| Status | Kada |
|---|---|
400 | Nema slike ili prompt, datoteka koja nije slika (invalid_image), ili generator koji ne može uređivati (edit_unsupported). |
413 | Fotografija je veća od 20 MB (file_too_large), ili cijeli zahtjev preko 32 MB. |
503 | Fotografija se trenutno ne može pohraniti (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 traje nekoliko minuta, pa se pokreće u pozadini. Podnosite ga, odmah dobijete id i pitajte za id dok se ne završi.
POST https://nymbot.ai/api/v1/videos – potreban je API ključ, ili Lightning plaćanje po zahtjevuPovratak 202.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | Da | ID generatora videa GET /api/v1/models?type=video, kao što su veo. |
prompt | String | Da | Što bi se trebalo dogoditi. |
duration | Broj ili string | Ne | Dužina u sekundama, više od 0 i do 60. Koriste samo generatori koji vam omogućuju da odaberete duljinu; ostali čine svoju uobičajenu duljinu, što je ono što seconds U odgovoru i cijena slijedi. |
aspect_ratio | String | Ne | Takvi kao "16:9" ili "9:16"veličine kao što je "1280x720" postaje najbliži omjer. |
resolutionquality | String | Ne | Jedan od generatora resolutions Na primjer, u modelima, kao što su "720p" ili "1080p"To određuje cijenu.Sve ostalo je odbijeno s unsupported_resolution. |
image_url | String | Ne | Slike koje treba započeti s: a https:// Link ili A data:image/… URL, koji se najprije prenosi na javni Blossom host. requires_image_url. |
Cijena je fiksna kada pošaljete, od generatora, rezolucije i dužine, tako da se naplaćuje iz Pro salda čim pružatelj prihvati posao i prikazuje se kao
cost, estimated_cost i nymbotAko dobavljač odbije posao, ništa se ne naplaćuje. Ako renderiranje kasnije ne uspije, ili završeni klip ne može biti pohranjen i dobavljač nije računao za njega, naknada se vraća jednom, automatski.
Odgovor (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 Počinje kao in_progressili completed Video je već u data Kada ga je generator odmah vratio.
Provjerite na videu
GET https://nymbot.ai/api/v1/videos/{id} - treba ključ koji pripada nimu koji ga je podnio. ključ koji je dosegao svoju granicu još uvijek može provjeriti.
Odgovori 202 Tijekom snimanja videa i 200 kada je završena ili nije uspjela. Pitajte svakih 5 do 10 sekundi. Svaka provjera pita pružatelja jednom i odmah odgovara; nikada ne čeka na video.
GET /api/v1/videos Popisuje posljednjih 50 radnih mjesta kao
{"object": "list", "data": […]}.
Odgovor na pitanje (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 ili failedNeuspješni posao nosi error ({"code": "generation_failed", "message": …}a) ako je bilo vraćeno, cost 0 i nymbot Dodaj
refunded_credits i refunded_satsZavršen video je na javnom Blossom domaćinu, poput generiranih slika.
| Status | Kada |
|---|---|
400 | Bez prompt; trajanje izvan 0 do 60 (invalid_value); rezolucija koja generator ne nudi (unsupported_resolution); nema slike za generator koji treba jednu (image_required); model koji nije generator videa (invalid_model). |
402 | Pro ravnoteža ne može pokriti video. |
404 | Nema takvog generatora (model_not_found), ili nema posla po tom id-u za vaš nym, ili je stariji od 24 sata (video_not_found). |
429 | Vaša nym već ima 10 videozapisa (video_jobs_limitProvjerite ih i pošaljite više kada jedan završi. |
502 | Generator je odbio posao.Ništa se ne naplaćuje osim ako je pružatelj računa za to. |
503 | Videozapisi se trenutno ne mogu isporučiti ili pohraniti (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);
Tekst za govor
Čita tekst glasno i vraća sam audio datoteku, a ne poveznicu. audio.speech.create u OpenAI SDKs djeluje.
POST https://nymbot.ai/api/v1/audio/speech – potreban je API ključ, ili Lightning plaćanje po zahtjevu.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | Ne | Model govora iz Popis audio modelaDefinicija: Standardni glas @cf/myshell-ai/melotts. aura-2 Riječ je o Deepgram Aura 2. |
input | String | Da | Tekst za čitanje: do 800 znakova za standardni glas, 2000 za Aura 2. |
voice | String | Ne | Glasovni id od Popis glasovaAura speaker kao što je luna ( ili aura-2-luna-en), ili MeloTTS jezik (en, es, fr, zh). OpenAI glasovna imena kao što su alloy su prihvaćeni i daju privzeti glas modela. |
language | String | Ne | jezični kodovi kao što su esBez glasa, odabire jedan za taj jezik. 422 voice_language_mismatchi jezik za koji model nema glas 422 unsupported_language. |
response_format | String | Ne | Standardni glas se vraća mp3 Aura 2 se vraća mp3 (u slučaju neispunjenja obveze) opus, aac, flac, wav ili pcm. |
speed | Broj | Ne | Prihvaćeni i ignorirani. |
Standardni glas košta 3 standardna kredita (30 sats) po zahtjevu, kao u aplikaciji. Aura 2 je Pro, cijenjena po znakovima koje šaljete.
Content-TypeCijena je u X-Nymbot-Cost-Sats Ako govorni model ne uspije, ništa se ne naplaćuje.
Odgovor
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Status | Kada |
|---|---|
400 | Nema ulaza; ulaz iznad granice modela (input_too_long); format koji model ne može proizvesti (unsupported_response_format); nepoznati glas (invalid_voice); model koji nije model govora (invalid_model). |
422 | Glas ne govori danim jezikom, ili model nema glas za to. |
502 | Model govora nije uspio.Ništa se ne naplaćuje. |
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 modeli i glasovi
Dvije javne liste za odabir govornog modela i glasa, ili transkripcijskog modela.
GET https://nymbot.ai/api/v1/audio/models Nije potreban ključ.
GET https://nymbot.ai/api/v1/audio/voices?language=en Nije potreban ključ.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
language | String (zahtjev za upit) | Ne | Samo glasovi za ovaj jezik. |
model | String (zahtjev za upit) | Ne | Samo glasovi za ovaj model. |
Odgovori na pitanja (glasovi)
{
"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 }
]
}
Modeli popis odgovora {"object": "list", "data": {"tts": […], "stt": […]}}Svaki model govora daje svoju ravnotežu, cijenu, max_input_chars,
response_formats, languages i default_voice· transkripcijski model daje svoje nadimke, max_file_bytes, max_seconds, formati i cijena po minuti.
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);
Govor na tekst
Pretvara zapis u tekst s Whisperom. Ovo je transkripcijska krajnja točka OpenAI-a, pa
audio.transcriptions.create djeluje
POST https://nymbot.ai/api/v1/audio/transcriptions – potreban je API ključ, ili Lightning plaćanje po zahtjevuTijelo je multipart/form-data.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
file | datoteka | Da | Snimanje, od 256 bajta do 25 MB i do 30 minuta: WAV, WebM, MP4 ili M4A, Ogg ili Opus, MP3 i drugi formati Whisper čita. |
model | String | Ne | Nedostatak whisperSljedeći članakBio je to Whisper Large v3 Turbo whisper-1, whisper-large-v3-turbo i @cf/openai/whisper-large-v3-turbo To znači isto. |
language | String | Ne | Govorni jezik, kao što je enOtkriveno ako je ostavljeno. |
prompt | String | Ne | Riječi ili pravopis koje možete očekivati, kao što su imena. Koristi se samo prvih 1000 znakova. |
response_format | String | Ne | json (u slučaju neispunjenja obveze) text, srt, vtt ili verbose_json. |
Za WAV, WebM, MP4 i Ogg datoteke dužina se čita iz datoteke prije nego što se nešto pokrene, tako da je snimanje duže od 30 minuta odbijeno unaprijed (s 3 sekundi milosti). Dužina WAV datoteke dolazi od njegove brzine uzorka, kanala i veličine uzorka. Dužina drugih formata, kao što je MP3, ne može se čitati naprijed, tako da su ograničeni veličinom: na najnižoj bitnoj stopi Nymbot pretpostavlja, 8 kbps, 30 minuta je 1.8 MB, a veća datoteka u takvom formatu je odbijena s 413
audio_too_long Pošaljite duže snimke kao što su WAV, WebM, MP4 ili Ogg. Ako Whisper zatim izvještava više od 30 minuta, zahtjev se odbija s
413 audio_too_long, a budući da je Whisper radio, 30 minuta se naplaćuje.
Plaćate za duljinu zvuka, zaokružene do sekunde: što je duža duljina čitana iz datoteke, duljina Whisper izvješća, a najmanje veličina datoteke dopušta, na Whisper je po cijeni po minuti uz uobičajenu naknadu i maržu, i najmanje 0.05 kredit zahtjev. 402 U aplikaciji, transkripcija glasovne poruke može biti besplatna; na API-ju se uvijek naplaćuje.
Odgovor
{
"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 Povratak jasnog teksta, srt i vtt Povratak podnaslova i
verbose_json dodaje jezik, trajanje i vremenske segmente. Za tri koja nisu JSON, trošak je u glavi.
| Status | Kada |
|---|---|
400 | Nema datoteke, datoteka bez upotrebljivog audio (invalid_audio, nepoznat format, ili model koji nije transkripcijski model (invalid_model). |
402 | Ni ravnoteža ga ne može pokriti. |
413 | Podaci su veći od 25 MB (file_too_large(a) u trajanju od 30 minuta ili, u formatu čija se duljina ne može čitati ispred, više od 1,8 MB (audio_too_long). |
502 | Šaputanje nije moglo obrađivati audio. ništa se ne naplaćuje. |
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);
Prevođenje govora na engleski
POST https://nymbot.ai/api/v1/audio/translations – potreban je API ključ, ili Lightning plaćanje po zahtjevuTijelo je multipart/form-data.
Isti kao transkripcija, s istim poljima osim language, ograničenja i cijena, ali tekst se vraća na engleskom jeziku bez obzira na jezik koji se govori. 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
Pretvara tekst u vektor za pretraživanje, grupiranje i deduplikiranje.Modeli se pokreću na Cloudflareu i troše standardni saldo.
POST https://nymbot.ai/api/v1/embeddings – potreban je API ključ, ili Lightning plaćanje po zahtjevu.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | Da | Ugradni model iz GET /api/v1/models?type=embedding. |
input | String ili array od stringa | Da | Sljedeći članakKako se riješiti neugodnih situacija u kućanstvu (token_input_unsupportedSvaki ulaz mora odgovarati modelu context_length, izračunano kao oko četiri bajta po tokenu. |
encoding_format | String | Ne | float (u slučaju neispunjenja obveze) ili base64 (Sljedeći članakSljedeći članakLittle-endian 32-bit floats |
dimensions | integer | Ne | vlastite veličine, ili za model s supported_dimensions jedan od njih; vektor se zatim skraćuje i normalizira.Sve ostalo se odbija. |
| modela | Dimenzije | Kontekst |
|---|---|---|
@cf/baai/bge-m3 | 1024 različiti jezici | 8,192 žetona |
@cf/qwen/qwen3-embedding-0.6b | 1024 različiti jezici | 8,192 žetona |
@cf/baai/bge-large-en-v1.5 | 1024 na engleskom | 512 Hrvata |
@cf/baai/bge-base-en-v1.5 | 768, Engleski | 512 Hrvata |
@cf/baai/bge-small-en-v1.5 | 384 na engleskom | 512 Hrvata |
Popis modela je izvor istine za koje su dostupne i što koštaju; Googleov EmbeddingGemma, s kraćim vektorima na zahtjev, pojavljuje se i kada katalog ima cijenu za to.
Odgovor
{
"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 }
}
| Status | Kada |
|---|---|
400 | Nema ulaza ili prazno jedno; token array (token_input_unsupported); više od 100 ulazaka (too_many_inputs); unos je duži od uzimanja modela (input_too_long); veličina koju model ne može dati (unsupported_dimensions). |
402 | Standardna ravnoteža je previše niska. Ugradnje nikada ne koriste Pro ravnotežu. |
404 | Ne smije se koristiti model s tim imenom. |
502 | Model nije uspio.Ništa se ne naplaćuje. |
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);