Preskočite na sadržaj
Povratak na Nymbot

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.

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.

PoljeVrstePotrebnoOpis
modelStrukturaDaGenerator ID, kao što je nano-banana.
promptStrukturaDaŠta nacrtati. Koristi se samo prvih 2000 znakova.
nIntegracijaNe1 do 4. podrazumevano 1. takođe prihvaćen kao num_images.
sizeStrukturaNeRazlika 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_ratioStrukturaNeIsti kao sizei pobeđuje ako se oboje pošalju.
qualityStrukturaNeSpecijalni generatori, kao što su "low", "medium" ili "high".
negative_promptStrukturaNeŠto ostaviti napolje.
output_formatStrukturaNe"png", "jpeg" ili "webp".
response_formatStrukturaNe"url" (u slučaju neispunjenja obaveza) ili "b64_json".
image_urlStrukturaNeSlika 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 }
}
StatusKada
400bez ž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).
402Bilans ne može pokriti svaku traženu sliku.
404Nema modela s tim imenom (model_not_found).
502Generator 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.
503Slike 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.

PoljeVrstePotrebnoOpis
imagefajlDaSlika za uređivanje: PNG, JPEG, WebP ili GIF, do 20 MB. image[]Prva se koristi.
promptStrukturaDaŠta promijeniti.
modelStrukturaDaGenerator sa edit.
nIntegracijaNeOd 1 do 4.
size
aspect_ratio
quality
negative_prompt
output_format
StrukturaNeŠto se tiče generacija
response_formatStrukturaNe"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 }
}
StatusKada
400Nema slike ili prompt, datoteka koja nije slika (invalid_image), ili generator koji ne može uređivati (edit_unsupported).
413Slika je veća od 20 MB (file_too_large), ili čitav zahtjev preko 32 MB.
503Fotografija 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.

PoljeVrstePotrebnoOpis
modelStrukturaDaVideo generator id od GET /api/v1/models?type=video, kao što su veo.
promptStrukturaDaŠto bi trebalo da se dogodi.
durationBroj ili stringNeDuž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_ratioStrukturaNekao "16:9" ili "9:16"Veličina kao što je "1280x720" postaje najbliži omjer.
resolution
quality
StrukturaNeJedan od generatora resolutions Na listi modela, kao što "720p" ili "1080p"On postavlja cenu.Sve ostalo je odbijeno sa unsupported_resolution.
image_urlStrukturaNeSlika 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.

StatusKada
400Nema 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).
402Pro balans ne može pokriti video.
404Nema takvog generatora (model_not_found), ili nema posla po tom id-u za vaš nim, ili je stariji od 24 sata (video_not_found).
429Vaš nym već ima 10 video rendering (video_jobs_limitProvjerite ih i pošaljite više kada jedan završi.
502Generator je odbio posao. ništa se ne naplaćuje osim ako je dobavljač naplaćivao za to.
503Videozapisi 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.

PoljeVrstePotrebnoOpis
modelStrukturaNeModeli govora iz Popis audio modela.Default: standardni glas, @cf/myshell-ai/melotts. aura-2 U pitanju je Deepgram Aura 2.
inputStrukturaDaTekst za čitanje: do 800 znakova za standardni glas, 2000 za Aura 2.
voiceStrukturaNeGlasovni 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.
languageStrukturaNeJezikovni 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_formatStrukturaNeStandardni glas se vraća mp3 Aura 2 se vraća mp3 (u slučaju neispunjavanja obaveza), opus, aac, flac, wav ili pcm.
speedBrojNePrihvać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)
StatusKada
400Nema 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).
422Glas ne govori jezik koji je dat, ili model nema glas za to.
502Model 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č.

PoljeVrstePotrebnoOpis
languageString (preuzimanje pitanja)NeSamo glasovi za ovaj jezik.
modelString (preuzimanje pitanja)NeSamo 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.

PoljeVrstePotrebnoOpis
filefajlDaSnimanje, od 256 bajti do 25 MB i do 30 minuta: WAV, WebM, MP4 ili M4A, Ogg ili Opus, MP3 i drugi formati Whisper čita.
modelStrukturaNeNedostatak whisper, koji je Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo i @cf/openai/whisper-large-v3-turbo Znači isto.
languageStrukturaNeGovorni jezik, kao što je enOtkriveno ako je ostavljeno.
promptStrukturaNeRiječi ili pravopis možete očekivati, kao što su imena. Koristi se samo prvih 1000 znakova.
response_formatStrukturaNejson (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.

StatusKada
400Nema datoteke, datoteka bez korisnog audio (invalid_audio, nepoznat format, ili model koji nije transkripcijski model (invalid_model).
402Ni ravnoteža ga ne može pokriti.
413datoteka 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.

PoljeVrstePotrebnoOpis
modelStrukturaDaJedan od modela iz GET /api/v1/models?type=embedding.
inputString ili array od stringaDaUslovi 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_formatStrukturaNefloat (u slučaju neispunjenja obaveza) ili base64 (Little-endian 32-bitni plutači)
dimensionsIntegracijaNevlastite veličine modela ili za model sa supported_dimensions jedan od njih; vektor se zatim skraćuje i normalizira.Sve ostalo se odbija.
ModeliDimenzijeKontekst
@cf/baai/bge-m31024, mnogi jezici8,192 tokena
@cf/qwen/qwen3-embedding-0.6b1024, mnogi jezici8,192 tokena
@cf/baai/bge-large-en-v1.51024 na engleskom512 članova
@cf/baai/bge-base-en-v1.5768, engleski512 članova
@cf/baai/bge-small-en-v1.5384 na engleskom512 č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 }
}
StatusKada
400Nema 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).
402Standardna ravnoteža je previše niska. Ugradnje nikada ne koriste Pro ravnotežu.
404Nema ugradnje modela pod tim imenom.
502Model 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);