Baza znanja Razvijači
Slike, audio i embeddings
Generatori iz aplikacije, i građevinske blokove za pretraživanje: slike, video, govor, transkripcija i ugrađivanja, svaki obračunati po upotrebi iz vaše bilance.
Ova stranica je strojno prevedena radi praktičnosti. Engleski original je verzija koja se primjenjuje.
Generiranje slika
Napravi jednu do četiri slike iz prompt i vrati ih kada su završeni. ?image U aplikaciji
POST https://nymbot.ai/api/v1/images/generations – potreban je API ključ, ili Lightning plaćanje po zahtevu.
IDS dolaze iz 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 svojoj 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 prompt.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
model | Struktura | Da | Generator ID, kao što je nano-banana. |
prompt | Struktura | Da | Šta nacrtati. Koristi se samo prvih 2000 znakova. |
n | Integracija | Ne | 1 do 4. podrazumevano 1. takođe prihvaćen kao num_images. |
size | Struktura | Ne | Razlika između aspekta kao što je "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" Prebacite ga na generator. |
aspect_ratio | Struktura | Ne | Isti kao sizei pobeđuje ako se oboje pošalju. |
quality | Struktura | Ne | Specijalni generatori, kao što su "low", "medium" ili "high". |
negative_prompt | Struktura | Ne | Što ostaviti napolje. |
output_format | Struktura | Ne | "png", "jpeg" ili "webp". |
response_format | Struktura | Ne | "url" (u slučaju neispunjenja obaveza) ili "b64_json". |
image_url | Struktura | Ne | Slika za početak od: a https:// poveznica od najviše 4 096 znakova bez korisničkog imena ili lozinke u njoj, ili data:image/…;base64 URL (PNG, JPEG, WebP ili GIF; ne SVG). editZa one koji traže requires_image_url. |
resolution nije korišten: svaki generator čini svoju veličinu. url, svaka slika se prenosi na javni Blossom host i dobijate njen link (nekoliko generatora samo vraća link svoj, koji se prenosi). Šta vatra može vidjetisa
b64_json slika se vraća u odgovoru i nikada se ne postavlja. slika poslana kao data: Uslovi u image_url Proverava se na isti način kao i
Izdvajanje i učitava na Blossom prvo tako da generator može da ga preuzme; to se briše ponovo ako zahtjev ne odbije.
Ako neki od n slike ne uspevaju, dobijate one koji su radili, naplaćuju se samo za one (plus bilo koji pružatelj računa uprkos 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 | bez žurbe n od 1 do 4 (invalid_value); loša veličina (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 kome je potrebna (image_required). |
402 | Bilans ne može pokriti svaku traženu sliku. |
404 | Nema modela s tim imenom (model_not_found). |
502 | Generator nije uspio (upstream_errorNišta se ne naplaćuje osim ako pružatelj ne naplaćuje za pokušaj; onda greška ima charged_sats. |
503 | Slike se trenutno ne mogu pohraniti (media_hosting_unavailable). b64_json Još uvek radi. |
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);
Izrada slika
Menja sliku koju postavljate, nakon uputstva. Ovo je OpenAI edit endpoint, tako da OpenAI SDKs images.edit radi kao što je. samo Pro generatori sa edit na listi modela prihvatite ga.
POST https://nymbot.ai/api/v1/images/edits – potreban je API ključ, ili Lightning plaćanje po zahtevuTijelo je multipart/form-dataNajviše 32 MB.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
image | fajl | Da | Slika za uređivanje: PNG, JPEG, WebP ili GIF, do 20 MB. image[]Prva se koristi. |
prompt | Struktura | Da | Šta promijeniti. |
model | Struktura | Da | Generator sa edit. |
n | Integracija | Ne | Od 1 do 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | Struktura | Ne | Što se tiče generacija |
response_format | Struktura | Ne | "b64_json" (default ovde) ili "url". |
Slika koju učitate je proverena da je dobro oblikovana PNG, JPEG, WebP ili GIF, poslana kao njen pravi tip, i stavljena na javni Blossom host, jer generatori preuzimaju svoj unos putem veze. Tretirajte ga kao javni. Ako uređivanje ne uspije i ništa se ne naplaćuje, hostovana kopija se ponovo briše. Odgovor ima isti oblik kao i za generaciju. Cijena je generatora, što 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 | Slika je veća od 20 MB (file_too_large), ili čitav 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"));
Videozapis
Video traje nekoliko minuta, tako da radi u pozadini. Vi ga pošaljete, dobijete id odmah, i pitajte o id dok se ne završi.
POST https://nymbot.ai/api/v1/videos – potreban je API ključ, ili Lightning plaćanje po zahtevuPovratak 202.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
model | Struktura | Da | Video generator id od GET /api/v1/models?type=video, kao što su veo. |
prompt | Struktura | Da | Što bi trebalo da se dogodi. |
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 dužinu; drugi čine svoju uobičajenu dužinu, što je ono što seconds U odgovoru i cijena sledi. |
aspect_ratio | Struktura | Ne | kao "16:9" ili "9:16"Veličina kao što je "1280x720" postaje najbliži omjer. |
resolutionquality | Struktura | Ne | Jedan od generatora resolutions Na listi modela, kao što "720p" ili "1080p"On postavlja cenu.Sve ostalo je odbijeno sa unsupported_resolution. |
image_url | Struktura | Ne | Slika za početak od: a https:// Link ili A data:image/… URL, koji se prvo 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 vašeg 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 uspe, ili završeni klip ne može biti pohranjen i dobavljač nije računao za to, naknada se vraća jednom, automatski. Rendering koji se i dalje odvija nakon sat vremena odustaje, i zadržava svoju naknadu, jer dobavljač računa render kada ga prihvati. Povrat vraća kredite, ali ne smanjuje broj troškova ključa.
Odgovori (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četak kao in_progressili completed Video je već u data kada ga je generator odmah vratio.
Proveravanje na video
GET https://nymbot.ai/api/v1/videos/{id} - treba ključ koji pripada nimu koji ga je podnio. ključ koji je dostigao svoju granicu još uvijek može proveriti.
Odgovori 202 Dok je snimljen video i 200 kada je završena ili nije uspjela. Pitajte svakih 5 do 10 sekundi. Svaka provjera pita pružatelja jednom i odgovara odmah; nikada ne čeka na video.
GET /api/v1/videos Popisuje posljednjih 50 poslova ključa 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šan posao nosi error ({"code": "generation_failed", "message": …}Ukoliko se vrati, cost 0 0 i nymbot Dodavanje
refunded_credits i refunded_satsZavršen video je na javnom Blossom hostu, kao što su generirane slike.
| Status | Kada |
|---|---|
400 | Nema prompt; trajanje van 0 do 60 (invalid_value); rezolucija koja generator ne nudi (unsupported_resolution); nema slike za generator koji treba jedan (image_required); model koji nije video generator (invalid_model). |
402 | Pro balans ne može pokriti video. |
404 | Nema takvog generatora (model_not_found), ili nema posla po tom id-u za vaš nim, ili je stariji od 24 sata (video_not_found). |
429 | Vaš nym već ima 10 video rendering (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 dobavljač naplaćivao 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 vezu. audio.speech.create u OpenAI SDKs radi.
POST https://nymbot.ai/api/v1/audio/speech – potreban je API ključ, ili Lightning plaćanje po zahtevu.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
model | Struktura | Ne | Modeli govora iz Popis audio modela.Default: standardni glas, @cf/myshell-ai/melotts. aura-2 U pitanju je Deepgram Aura 2. |
input | Struktura | Da | Tekst za čitanje: do 800 znakova za standardni glas, 2000 za Aura 2. |
voice | Struktura | 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 podrazumevani glas modela. |
language | Struktura | Ne | Jezikovni kodovi kao što su esBez glasa, odabire jedan za taj jezik. Glas koji govori drugim jezikom vraća 422 voice_language_mismatch, a jezik za koji model nema glas 422 unsupported_language. |
response_format | Struktura | Ne | Standardni glas se vraća mp3 Aura 2 se vraća mp3 (u slučaju neispunjavanja obaveza), opus, aac, flac, wav ili pcm. |
speed | Broj | Ne | Prihvaćeno i ignorisano. |
Standardni glas košta 3 standardna kredita (30 sats) po zahtjevu, kao u aplikaciji. Aura 2 je Pro, cijenjen po znakovima koje šaljete.
Content-TypeTroškovi su u X-Nymbot-Cost-Sats Ako govorni model ne uspe, 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 jezik koji je dat, 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
Dve javne liste za odabir govornog modela i glasa, ili transkripcijskog modela. Postoje 41 Aura 2 engleski govornici i četiri MeloTTS jezika.
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 | Vrste | Potrebno | Opis |
|---|---|---|---|
language | String (preuzimanje pitanja) | Ne | Samo glasovi za ovaj jezik. |
model | String (preuzimanje pitanja) | 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 Lista odgovora {"object": "list", "data": {"tts": […], "stt": […]}}Svaki model govora daje svoju ravnotežu, cenu, max_input_chars,
response_formats, languages i default_voice; transkripcijski model daje svoje nadimke, max_file_bytes, max_seconds, formati i cena 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 pomoću aplikacije Whisper. Ovo je OpenAI transkripcijska krajnja tačka, pa
audio.transcriptions.create Radili su
POST https://nymbot.ai/api/v1/audio/transcriptions – potreban je API ključ, ili Lightning plaćanje po zahtevuTijelo je multipart/form-data.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
file | fajl | Da | Snimanje, od 256 bajti do 25 MB i do 30 minuta: WAV, WebM, MP4 ili M4A, Ogg ili Opus, MP3 i drugi formati Whisper čita. |
model | Struktura | Ne | Nedostatak whisper, koji je Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo i @cf/openai/whisper-large-v3-turbo Znači isto. |
language | Struktura | Ne | Govorni jezik, kao što je enOtkriveno ako je ostavljeno. |
prompt | Struktura | Ne | Riječi ili pravopis možete očekivati, kao što su imena. Koristi se samo prvih 1000 znakova. |
response_format | Struktura | Ne | json (u slučaju neispunjavanja obaveza), text, srt, vtt ili verbose_json. |
Za WAV, WebM, MP4 i Ogg datoteke dužina se čita iz datoteke pre nego što se nešto pokrene, tako da je snimanje duže od 30 minuta odbijeno ispred (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 ispred, 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 sa 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 u svakom slučaju, zahtjev se odbija sa
413 audio_too_long, i budući da je Šaputalo trčao, 30 minuta se naplaćuje.
Plaćate za dužinu zvuka, zaokružene do sekunde: najduža dužina čitanja iz datoteke, dužina Whisper izveštaja, i najmanje veličina datoteke dopušta, po Whisper-ovoj ceni po minuti uz uobičajenu naknadu i maržu, i najmanje 0.05 kredit zahtjev. 402 daje ono što bi svaka ravnoteža trebala. U aplikaciji, transkripcija glasovne poruke može biti besplatna; na API-ju se uvek 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 vraća jasni tekst, srt i vtt Povratak podnaslova, i
verbose_json dodaje jezik, trajanje i vremenske segmente. Za tri koja nisu JSON, trošak je u naslovima.
| Status | Kada |
|---|---|
400 | Nema datoteke, datoteka bez korisnog audio (invalid_audio, nepoznat format, ili model koji nije transkripcijski model (invalid_model). |
402 | Ni ravnoteža ga ne može pokriti. |
413 | datoteka je veća od 25 MB (file_too_large) ili snimanje duže od 30 minuta, ili, u formatu čija se dužina 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);
Prevod govora na engleski
POST https://nymbot.ai/api/v1/audio/translations – potreban je API ključ, ili Lightning plaćanje po zahtevuTijelo je multipart/form-data.
Isti kao transkripcija, sa 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);
Uključivanje
Pretvara tekst u vektor za pretraživanje, grupiranje i deduplikovanje. Modeli se pokreću na Cloudflare-u i troše standardni saldo.
POST https://nymbot.ai/api/v1/embeddings – potreban je API ključ, ili Lightning plaćanje po zahtevu.
| Polje | Vrste | Potrebno | Opis |
|---|---|---|---|
model | Struktura | Da | Jedan od modela iz GET /api/v1/models?type=embedding. |
input | String ili array od stringa | Da | Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenja: Uslovi korišćenjatoken_input_unsupportedSvaki unos mora odgovarati modelu context_length, broji se kao oko četiri bajta po tokenu. |
encoding_format | Struktura | Ne | float (u slučaju neispunjenja obaveza) ili base64 (Little-endian 32-bitni plutači) |
dimensions | Integracija | Ne | vlastite veličine modela ili za model sa supported_dimensions jedan od njih; vektor se zatim skraćuje i normalizira.Sve ostalo se odbija. |
| Modeli | Dimenzije | Kontekst |
|---|---|---|
@cf/baai/bge-m3 | 1024, mnogi jezici | 8,192 tokena |
@cf/qwen/qwen3-embedding-0.6b | 1024, mnogi jezici | 8,192 tokena |
@cf/baai/bge-large-en-v1.5 | 1024 na engleskom | 512 članova |
@cf/baai/bge-base-en-v1.5 | 768, engleski | 512 članova |
@cf/baai/bge-small-en-v1.5 | 384 na engleskom | 512 članova |
Popis modela je izvor istine za koje su dostupne i koliko koštaju; Googleov EmbeddingGemma, sa kraćim vektorima na zahtjev, pojavljuje se i kada katalog ima cenu 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 uputstva ili prazno jedno; token arrays (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 | Nema ugradnje modela pod tim imenom. |
502 | Model nije uspio. ništa nije naplaćeno. |
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);