Liikuge sisu juurde
Tagasi Nymboti juurde

Teadmistebaas Arendajad

Pildid, audio ja sisseehitused

Rakenduse generaatorid ja otsingu ehitusblokkid: pildid, videod, kõne, transkriptsioon ja sisseehitused, millest igaüks arvutatakse teie bilansist kasutamise kohta.

Kujutiste genereerimine

Teeb ühe kuni nelja pildi soovitusest ja tagastab need, kui need on tehtud. ?image Kasvõi selle app.

POST https://nymbot.ai/api/v1/images/generations - vajab API võtme või Lightning tasu taotluse alusel.

IUD on pärit GET /api/v1/models?type=imagestandardse generaatori kasutamine, @cf/black-forest-labs/flux-1-schnelliga teine generaator kulutab Pro krediiti oma hinnaga, tavalise tasu ja marginaaliga, nagu Üks app. n Pildid maksavad n Väljad, mida generaator ei võta, on langetatud, mitte tagasi lükatud; standardgeneraator kasutab ainult juhendit.

väljadtüüpiNõutavKirjeldus
modelStringidJahGeneraatori ID, näiteks nano-banana.
promptStringidJahKasutatakse ainult esimesi 2000 tähemärki.
nintegreeritudEi ole1 kuni 4. vaikimisi 1. aktsepteeritakse ka kui num_images.
sizeStringidEi oleProportsionaalne näitaja nagu "16:9"või avatud suurusega, nagu "1792x1024", mis muutub kõige lähemaks 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 ja 4:5. "auto" Jäta see generaatorile.
aspect_ratioStringidEi oleSama nagu sizeja võidab, kui mõlemad on saadetud.
qualityStringidEi oleSpetsiifilised generaatorid, näiteks "low", "medium" või "high".
negative_promptStringidEi oleMida välja jätta.
output_formatStringidEi ole"png", "jpeg" või "webp".
response_formatStringidEi ole"url" (default) või "b64_json".
image_urlStringidEi olePilt algab järgmisest: A https:// link maksimaalselt 4 096 tähemärki ilma kasutajanime või paroolita või data:image/…;base64 URL (PNG, JPEG, WebP või GIF; mitte SVG). editNõuavad need, kellel on requires_image_url.

resolution ei kasutata: iga generaator teeb oma suuruse. url, iga pilt laaditakse üles avalikule Blossom-i võõrustajale ja saate selle linki (mõned generaatorid annavad ainult oma linki, mis edastatakse edasi). Mida tulekahju näebkoos b64_json pilt tagastatakse vastuses ja seda ei laadita kunagi üles. data: URL on image_url Seda kontrollitakse samamoodi nagu Edita ja üles laaditakse Blossom kõigepealt nii, et generaator saab selle üles võtta; see kustutatakse uuesti, kui taotlus ei ole arveldatud.

Kui mõned neist n pildid ebaõnnestuvad, saate need, mis töötasid, makstakse ainult nende eest (pluss kõik teenusepakkuja arveldati hoolimata ebaõnnestumisest) ja nymbot.failed ütleb, kui palju on puudu. Kui kõik ebaõnnestuvad, tagastatakse taotlus 502.

vastus

{
  "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 }
}
staatuseMillal
400ei ole kiire; n Väljaspool 1 kuni 4 (invalid_value(Väga halb suurus)invalid_size) või pilt (invalid_image, invalid_image_url); mudel, mis eksisteerib, kuid ei ole pildi generaator (invalid_model); pilt generaatorile, mis ei saa redigeerida (edit_unsupported); ei ole pilti kellelegi, kes seda vajab (image_required).
402Tasakaal ei saa katta kõiki soovitud pilte.
404Ei ole sellise nimega mudelit (model_not_found).
502Võitja ei suutnud (upstream_errorMitte midagi ei nõuta, välja arvatud juhul, kui teenusepakkuja on selle katse eest tasunud; siis on viga charged_sats.
503Pildid ei saa hetkel majutada (media_hosting_unavailable). b64_json Töötab ikka veel.

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

Piltide redigeerimine

Muudab üleslaaditud pilti, järgides juhendit.See on OpenAI redigeerimise lõpp-punkt, nii et OpenAI SDK-d images.edit töötab nii nagu see on. ainult Pro generaatorid edit Sinu nimekirjas on see aktsepteeritud.

POST https://nymbot.ai/api/v1/images/edits - vajab API võtme või Lightning tasu taotluse aluselKeha on multipart/form-dataKuni 32 MB.

väljadtüüpiNõutavKirjeldus
imagefailidJahMuudetav pilt: PNG, JPEG, WebP või GIF, kuni 20 MB. image[]Esimene neist on kasutatud.
promptStringidJahMida siis muuta.
modelStringidJahÜks generaator koos edit.
nintegreeritudEi ole1 kuni 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringidEi oleJa põlvkondade kohta.
response_formatStringidEi ole"b64_json" (põhimõtteliselt siin) või "url".

Teie üleslaaditud pilt kontrollitakse, kas see on hästi vormitud PNG, JPEG, WebP või GIF, saadetakse selle tegelikuks tüübiks ja pannakse avalikule Blossom-i võõrustajale, sest generaatorid võtavad oma sisendi lingilt. Kohtle seda avalikuna. Kui redigeerimine ebaõnnestub ja midagi ei laadita, kustutatakse hostitud koopia uuesti. Vastus on sama kuju kui generaatoril. Hind on generaatori hind, mis mõne generaatori puhul sisaldab sisendpildi eest tasu.

vastus

{
  "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 }
}
staatuseMillal
400Ei ole pilti ega juhendit, fail, mis ei ole pilt (invalid_image) või generaator, mis ei saa redigeerida (edit_unsupported).
413Pilt on üle 20 MB (file_too_large), või kogu taotlus üle 32 MB.
503Pilti ei saa hetkel majutada (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"));

Videod

Video võtab minutit, nii et see töötab taustal. Saate selle esitada, saada id kohe ja küsida id kuni see on tehtud.

POST https://nymbot.ai/api/v1/videos - vajab API võtme või Lightning tasu taotluse aluselTagasitulek 202.

väljadtüüpiNõutavKirjeldus
modelStringidJahVideogeneratsiooni ID GET /api/v1/models?type=videoNagu näiteks veo.
promptStringidJahMis peaks juhtuma.
durationnumber või stringEi olePikkus sekundites, rohkem kui 0 ja kuni 60. Kasutatakse ainult generaatorite poolt, mis võimaldavad teil valida pikkust; teised teevad oma tavapärase pikkuse, mis on see, mida seconds vastus ja hind järgneb.
aspect_ratioStringidEi oleSellised nagu "16:9" või "9:16"Sellise suurusega nagu "1280x720" See muutub lähimaks proportsiooniks.
resolution
quality
StringidEi oleÜks generaatoritest resolutions nimekirjas, nagu näiteks "720p" või "1080p"See määrab hinna.Kõik muu on keeldunud unsupported_resolution.
image_urlStringidEi olePilt algab järgmisest: A https:// link või a data:image/… URL, mis laaditakse kõigepealt üles avalikule Blossom-i võõrustajale. requires_image_url.

Hind on fikseeritud, kui esitate, generaatorist, resolutsioonist ja pikkusest, nii et see laaditakse teie Pro tasakaalust kohe, kui pakkuja aktsepteerib tööd, ja näidatakse kui cost, estimated_cost ja nymbotKui teenusepakkuja keeldub tööst, ei võeta midagi tasu.Kui renderimine hiljem ebaõnnestub või valmis klippi ei saa salvestada ja teenusepakkuja ei ole selle eest arvet teinud, tagastatakse tasu üks kord, automaatselt.Render, mis jätkub veel ühe tunni pärast, loobub ja säilitab oma tasu, sest teenusepakkuja nõuab renderimist, kui ta seda aktsepteerib.Restitus tagastab krediiti, kuid ei vähenda võtme kulude arvu.

Ülevaade (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 Algab kui in_progressvõi completed Video, mis on juba data Pärast seda andis generaator selle kohe tagasi.

Vaadake videot

GET https://nymbot.ai/api/v1/videos/{id} - vajab võtme, mis kuulub nimele, kes selle esitas.

See vastab 202 Kui video on tehtud ja 200 kui see on lõpetatud või on ebaõnnestunud. Küsige iga 5 kuni 10 sekundi järel. Iga kontroll küsib pakkujale üks kord ja vastab korraga; see ei oota kunagi videot. GET /api/v1/videos loetleb võtme viimased 50 töökohta kui {"object": "list", "data": […]}.

Küsitlused (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 on in_progress, completed või failedEbaõnnestunud töökoht viib error ({"code": "generation_failed", "message": …}Kui see on tagastatud, cost on 0 ja nymbot Lisatud refunded_credits ja refunded_satsLõppenud video on avalikul Blossom hostil, nagu loodud pildid.

staatuseMillal
400Ei ole kiireloomuline; kestus väljaspool 0 kuni 60 (invalid_value); resolutsioon, mida generaator ei paku (unsupported_resolution); ei ole pilti generaatorile, mis vajab ühte (image_required); mudel, mis ei ole video generaator (invalid_model).
402Pro tasakaal ei saa videot katta.
404Ei ole sellist generaatorit (model_not_found) või ei tööta selle ID-ga teie nimme jaoks või see on vanem kui 24 tundi (video_not_found).
429Teie nimel on juba 10 videot rendering (video_jobs_limitKontrollige neid ja esitage rohkem, kui üks lõpetab.
502Generator keeldus tööst. Mitte midagi ei võeta tasu, kui teenusepakkuja ei ole selle eest tasunud.
503Videod ei saa praegu tarnida ega salvestada (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);

Teksti kõne

Loeb teksti valjusti ja tagastab helifaili ise, mitte linki. audio.speech.create OpenAI SDK töötab.

POST https://nymbot.ai/api/v1/audio/speech - vajab API võtme või Lightning tasu taotluse alusel.

väljadtüüpiNõutavKirjeldus
modelStringidEi oleRääkimise mudel alates Audio mudelite nimekiriVaikimisi: standardne hääl @cf/myshell-ai/melotts. aura-2 See on Deepgram Aura 2.
inputStringidJahTeksti lugemine: kuni 800 tähemärki standardhäälele, 2000 Aura 2 jaoks.
voiceStringidEi oleHääle ID Häälte nimekiriAura kõlarid nagu luna (või aura-2-luna-enMeloTTS (või MeloTTS keel)en, es, fr, zhOpenAI hääl nimed nagu alloy on vastu võetud ja annab mudeli vaikimisi hääle.
languageStringidEi oleKeele koodid nagu esIlma hääleta valib ta selle keele jaoks ühe hääle. 422 voice_language_mismatchja keel, mille jaoks mudelil ei ole häält 422 unsupported_language.
response_formatStringidEi oleStandardne hääl naaseb mp3 Aura 2 tagasitulek mp3 (Kõik need defektid on opus, aac, flac, wav või pcm.
speednumbriEi oleaktsepteeritud ja ignoreeritud.

Standardne hääl maksab 3 standardkrediiti (30 sats) ühe taotluse kohta, nagu rakenduses. Aura 2 on Pro, hinnatakse teie saadetud tähemärkide järgi. Content-TypeKulud on selles, et X-Nymbot-Cost-Sats Kui kõne mudel ebaõnnestub, ei laadita midagi.

vastus

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

(audio bytes)
staatuseMillal
400Ei ole sisend; sisend ületab mudeli piiri (input_too_long); vorm, mida mudel ei saa toota (unsupported_response_format); tundmatu hääl (invalid_voice(See ei ole üheselt mõistetav näide)invalid_model).
422Hääl ei räägi antud keelt või mudelil pole selle jaoks häält.
502Rääkimise mudel ebaõnnestus.

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 mudelid ja hääled

Kaks avalikku nimekirja, et valida kõnemudel ja hääl või transkriptsioonimudel.On 41 Aura 2 inglise keelt kõnelejad ja neli MeloTTS keelt.

GET https://nymbot.ai/api/v1/audio/models Ei ole vaja võtmeid.

GET https://nymbot.ai/api/v1/audio/voices?language=en Ei ole vaja võtmeid.

väljadtüüpiNõutavKirjeldus
languageString (või küsimus)Ei oleAinult hääled selle keele jaoks.
modelString (või küsimus)Ei oleAinult hääled selle mudeli jaoks.

Vastused (või hääled

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

Vastused mudelite nimekirja {"object": "list", "data": {"tts": […], "stt": […]}}Iga kõne mudel annab oma tasakaalu, hinna, max_input_chars, response_formats, languages ja default_voice; transkriptsioonimudel annab oma aliasid, max_file_bytes, max_seconds, formaadid ja hind minutis.

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

Räägi tekstiga

Muundab salvestuse tekstiks Whisperiga.See on OpenAI transkriptsiooni lõpp-punkt, nii et audio.transcriptions.create See töötab.

POST https://nymbot.ai/api/v1/audio/transcriptions - vajab API võtme või Lightning tasu taotluse aluselKeha on multipart/form-data.

väljadtüüpiNõutavKirjeldus
filefailidJahSalvestamine, alates 256 baiti kuni 25 MB ja kuni 30 minutit: WAV, WebM, MP4 või M4A, Ogg või Opus, MP3 ja muud formaadid Whisper loeb.
modelStringidEi oledefektid whisperÜks neist on Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo ja @cf/openai/whisper-large-v3-turbo See tähendab sama.
languageStringidEi oleKõnelevad keeled, nagu enAvastatud kui välja jäetud.
promptStringidEi oleSõnad või õigekirja oodata, näiteks nimed. Kasutatakse ainult esimese 1000 tähemärki.
response_formatStringidEi olejson (Kõik need defektid on text, srt, vtt või verbose_json.

WAV, WebM, MP4 ja Ogg failide puhul loetakse pikkus failist enne, kui miski töötab, nii et üle 30 minuti pikkune salvestus on tagasi lükatud (koos 3 sekundiga). WAV-faili pikkus tuleneb selle proovi kiirusest, kanalidest ja proovi suurusest. Muude vormingute pikkust, näiteks MP3, ei saa ette lugeda, nii et need on piiratud suurusega: madalaima bitikiirusega Nymbot eeldab, et 8 kbps, 30 minutit on 1,8 MB ja suurem fail sellises vormingus on tagasi lükatud 413 audio_too_long Saada pikemaid salvestisi nagu WAV, WebM, MP4 või Ogg. Kui Whisper siis aru rohkem kui 30 minutit niikuinii, taotlus on tagasi lükatud 413 audio_too_long, ja kuna Whisper jooksis, laaditakse 30 minutit.

Te maksate audio pikkuse eest, ümardatuna kuni teiseni: mida pikem on failist lugenud pikkus, Whisper'i aruannete pikkus ja mida väiksem failide suurus võimaldab, Whisper'i minutitasu eest tavalise tasu ja marginaaliga ning vähemalt 0,05 krediiti taotlusele. 402 annab, mida iga tasakaal vajaks. rakenduses võib häälsõnumi transkribeerimine olla tasuta; API-l on see alati laetud.

vastus

{
  "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 tagastab selge teksti, srt ja vtt tagastab subtiitrid ja verbose_json lisab keele, kestuse ja ajastatud segmendid. Kolme jaoks, mis ei ole JSON, on maksumus pealkirjades.

staatuseMillal
400Ei ole faili, faili, millel ei ole kasutatavat heli (invalid_audio, tundmatu formaat või mudel, mis ei ole transkriptsioonimudel (invalid_model).
402Ka tasakaal ei suuda seda katta.
413fail on suurem kui 25 MB (file_too_large(Võimalik, et see on rohkem kui 10 minutit, kuid mitte rohkem kui 10 minutit, kui see ei ole võimalik lugeda)audio_too_long).
502Whisper ei suutnud audiot töödelda.

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

Kõne tõlkimine inglise keelde

POST https://nymbot.ai/api/v1/audio/translations - vajab API võtme või Lightning tasu taotluse aluselKeha on multipart/form-data.

Sama nagu transkriptsioon, samade väljadega peale language, piirangud ja hind, kuid tekst tuleb tagasi inglise keeles, sõltumata keelest. 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);

Sisseehitatud

Muundab teksti vektoriteks otsinguks, klastriks ja deduplikatsiooniks.Mudelid töötavad Cloudflare'is ja kulutavad standardse tasakaalu.

POST https://nymbot.ai/api/v1/embeddings - vajab API võtme või Lightning tasu taotluse alusel.

väljadtüüpiNõutavKirjeldus
modelStringidJahSisseehitatud mudel alates GET /api/v1/models?type=embedding.
inputstring või string arrayJahTeksti sisestamine, kuni 100 tühja stringiga.token_input_unsupportedIga sisend peab sobima mudeli context_length, loendatud kui umbes neli baiti token.
encoding_formatStringidEi olefloat (default) või base64 (Little-endian 32-bit floats mõõdud)
dimensionsintegreeritudEi olemudeli enda suurus või mudeli puhul, millel on supported_dimensions üks neist; vektor on siis lühendatud ja normaliseeritud.
mudelmõõtmedkontekstis
@cf/baai/bge-m31024 paljudes keeltes8,192 märki
@cf/qwen/qwen3-embedding-0.6b1024 paljudes keeltes8,192 märki
@cf/baai/bge-large-en-v1.51024 inglise keeles512 krooni
@cf/baai/bge-base-en-v1.5768, inglise keel512 krooni
@cf/baai/bge-small-en-v1.5384 Inglise keel512 krooni

Mudelite nimekiri on tõe allikas, mille jaoks need on saadaval ja mida nad maksavad; Google'i EmbeddingGemma, kus on lühemad vektorid taotluse korral, ilmub seal ka siis, kui kataloogil on selle hind.

vastus

{
  "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 }
}
staatuseMillal
400Ei ole sisend või tühi üks; token array (token_input_unsupported); rohkem kui 100 sisendit (too_many_inputs); sisend on pikem kui mudel võtab (input_too_long); suurus, mida mudel ei saa anda (unsupported_dimensions).
402Standardtasakaal on liiga madal.Sisseehitused ei kasuta kunagi Pro tasakaalu.
404Ühtegi mudelit sellise nime all ei ole.
502See mudel ebaõnnestus.Midagi ei ole tasutud.

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