Pereiti prie turinio
Grįžti į Nymbot

Žinių bazė kūrėjai

Vaizdai, garso ir įterpimai

Programos generatoriai ir paieškos blokai: nuotraukos, vaizdo įrašai, kalba, transkripcija ir įterpimai, kiekvienas iš jūsų balanso.

Vaizdų generavimas

Sukuria nuo vienos iki keturių nuotraukų iš skambučio ir grąžina juos, kai jie yra atlikti. ?image Į programėlę

POST https://nymbot.ai/api/v1/images/generations — reikia API rakto arba „Lightning“ mokėjimas pagal prašymą.

Idėja ateina iš GET /api/v1/models?type=imageStandartinis generatorius @cf/black-forest-labs/flux-1-schnell, kainuoja lygus 5 standartiniai kreditai (50 sats) nuotrauka. Kiekvienas kitas generatorius praleidžia Pro kreditai savo kaina, su įprasta mokesčio ir maržos, kaip ir Aplikacijos. n Nuotraukos kainuoja n Laukas, kurio generatorius neužima, yra nuleistas, o ne atmestas; standartinis generatorius naudoja tik žingsnį.

LaukoTipasReikalingasAprašymas
modelStringųTaipGeneratoriaus ID, pavyzdžiui, nano-banana.
promptStringųTaipNaudojami tik pirmieji 2000 simbolių.
nIntegracijosne1 į 4. numatytasis 1. taip pat priimtas kaip num_images.
sizeStringųneVienas iš tokių santykių, kaip "16:9"arba tokio dydžio, kaip "1792x1024", kuris tampa artimiausiu 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 ir 4:5. "auto" Palikite jį ant generatoriaus.
aspect_ratioStringųneTas pats kaip sizeIr laimės, jei abu bus išsiųsti.
qualityStringųneSpecifiniai generatoriai, tokie kaip "low", "medium" arba "high".
negative_promptStringųneKą palikti lauke.
output_formatStringųne"png", "jpeg" arba "webp".
response_formatStringųne"url" (Darbo sutartis) arba "b64_json".
image_urlStringųnePaveikslėlį pradėti nuo: a https:// ne ilgesnė kaip 4 096 simbolių su jokiu vartotojo vardu ar slaptažodžiu, arba data:image/…;base64 URL (PNG, JPEG, WebP arba GIF; ne SVG). editReikalavimai tiems, kurie requires_image_url.

resolution nėra naudojamas: kiekvienas generatorius sukuria savo dydį. url, kiekvienas vaizdas yra įkeliamas į viešą Blossom hostą ir jūs gaunate jo nuorodą (kai kurie generatoriai tik grąžina savo nuorodą, kuri perduodama toliau). Ką gali pamatyti ugnissu b64_json nuotrauka grįžta į atsakymą ir niekada nėra įkeliama. data: URL į image_url Jis tikrinamas taip pat, kaip ir EDIT ir pirmiausia įkeliamas į Blossom, kad generatorius galėtų jį paimti; jis vėl ištrinamas, jei užklausa nepavyksta išskaityti.

Jei kai kurie iš n nuotraukos nepavyksta, jūs gaunate tuos, kurie dirbo, yra apmokestinami tik už tuos (plius bet kuris teikėjas sąskaitą, nepaisant to, kad nepavyko), ir nymbot.failed nurodo, kiek trūksta. jei visi nepavyksta, prašymas grąžinamas 502.

Atsakymas

{
  "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
400ne greitai; n nuo 1 iki 4 (invalid_valuePavyzdžiui, blogas dydis (invalid_size) arba nuotrauka (invalid_image, invalid_image_url); modelis, kuris egzistuoja, bet nėra vaizdo generatorius (invalid_model); vaizdas generatoriui, kuris negali redaguoti (edit_unsupportedNėra nuotraukos tam, kam jos reikia (image_required).
402Balansas negali apimti kiekvienos pageidaujamos nuotraukos.
404Nėra tokio pavadinimo (model_not_found).
502generatorius nepavyko (upstream_errorNėra nieko apmokestinama, nebent teikėjas sąskaitą už bandymą; tada klaida yra charged_sats.
503Nuotraukos šiuo metu negali būti prieinamos (media_hosting_unavailable). b64_json Vis dar veikia.

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

Redaguoti vaizdus

Pakeičia paveikslėlį, kurį įkeliate, po perspėjimo.Tai yra „OpenAI“ redagavimo galutinis taškas, todėl „OpenAI SDK“ images.edit veikia taip, kaip yra. Tik Pro generatoriai su edit Į sąrašą įtrauktas modelis.

POST https://nymbot.ai/api/v1/images/edits — reikia API rakto arba „Lightning“ mokėjimas pagal prašymąKūnas yra multipart/form-dataiki 32 MB.

LaukoTipasReikalingasAprašymas
imagefailąTaipVaizdas, kurį reikia redaguoti: PNG, JPEG, WebP arba GIF, iki 20 MB. Taip pat priimamas kaip image[]Pirmasis yra naudojamas.
promptStringųTaipKą reikia keisti.
modelStringųTaipGeneratorius su edit.
nIntegracijosne1 iš 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringųneKaip ir kartos.
response_formatStringųne"b64_json" (išskyrus čia pateiktą formą) arba "url".

Vaizdas, kurį įkeliate, yra patikrinamas, ar jis yra gerai suformuotas PNG, JPEG, WebP ar GIF, siunčiamas kaip jo tikrasis tipas, ir dedamas į viešą Blossom prieglobą, nes generatoriai paima savo įvestį per nuorodą. Gydykite jį kaip viešą. Jei redagavimas nepavyksta ir nieko nėra įkraunama, prieglobos kopija vėl ištrinama. Atsakymas turi tokią pačią formą kaip ir generatoriui. Kaina yra generatoriaus kaina, kuri kai kuriems generatoriams apima įvesties vaizdo mokestį.

Atsakymas

{
  "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
400Nėra vaizdo ar skambučio, failas, kuris nėra vaizdas (invalid_image), arba generatorius, kuris negali redaguoti (edit_unsupported).
413Nuotrauka yra didesnė nei 20 MB (file_too_large), arba visą užklausą virš 32 MB.
503Nuotrauka šiuo metu negali būti prieinama (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"));

Vaizdo

Vaizdo įrašas trunka keletą minučių, todėl jis veikia fone.Jūs jį pateikiate, iš karto gausite ID ir paprašysite apie ID, kol jis bus baigtas.

POST https://nymbot.ai/api/v1/videos — reikia API rakto arba „Lightning“ mokėjimas pagal prašymąGrįžta 202.

LaukoTipasReikalingasAprašymas
modelStringųTaipVaizdo generatoriaus ID GET /api/v1/models?type=videoTokie kaip veo.
promptStringųTaipKas turėtų įvykti.
durationSkaičius arba stringaneIlgis per sekundes, daugiau nei 0 ir iki 60. Naudojamas tik generatorių, kurie leidžia jums pasirinkti ilgį; kiti daro savo įprastą ilgį, kuris yra tai, ką seconds Atsižvelgiant į atsakymą ir kainą.
aspect_ratioStringųneToks kaip "16:9" arba "9:16"Toks dydis, kaip "1280x720" Tai yra artimiausias santykis.
resolution
quality
StringųneVienas iš generatorių resolutions Šio modelio sąraše, pavyzdžiui, "720p" arba "1080p"Jis nustato kainą.Viskas kita yra atsisakyta su unsupported_resolution.
image_urlStringųnePaveikslėlį pradėti nuo: a https:// LINK arba A data:image/… URL, kuris pirmiausia įkeliamas į viešą Blossom hostą.Reikalingas generatoriams su requires_image_url.

Kaina yra fiksuota, kai pateikiate, iš generatoriaus, rezoliucijos ir ilgio, todėl ji apmokestinama iš jūsų Pro balanso, kai tik teikėjas priima darbą, ir parodyta kaip cost, estimated_cost ir nymbotJei paslaugų teikėjas atsisako atlikti darbą, nieko neapmokestinama. Jei perdavimas vėliau nepavyksta arba paruoštas klipas negali būti saugomas ir paslaugų teikėjas jo neapmokėjo, mokestis grąžinamas vieną kartą, automatiškai. Perdavimas, kuris vis dar vyksta po valandos, nustoja galioti ir išlaiko savo mokestį, nes paslaugų teikėjas perdavimą apmokestina, kai tik jį priima.

Atsakymas į klausimą (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 Pradėk kaip in_progressarba completed Vaizdo įrašas jau yra data Kai generatorius jį iš karto grąžino.

Patikrinkite vaizdo įrašą

GET https://nymbot.ai/api/v1/videos/{id} — reikia raktą, priklausantį nym, kuris jį pateikė. raktas, kuris pasiekė savo viršutinę ribą, vis dar gali patikrinti.

Atsakė 202 Vaizdo įrašas yra sukurtas ir 200 kai jis yra baigtas arba nepavyko. Paklauskite kas 5 iki 10 sekundžių. Kiekvienas patikrinimas klausia teikėjo vieną kartą ir atsako iš karto; jis niekada nelaukia vaizdo įrašo. Darbas laikomas 24 valandas po to, kai jis buvo pateiktas. GET /api/v1/videos išvardija paskutinius 50 darbo vietų kaip {"object": "list", "data": […]}.

Atsakymas į šį klausimą (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 yra in_progress, completed arba failedNesėkmingas darbas atlieka error ({"code": "generation_failed", "message": …}Jei jis buvo grąžintas, cost 0 ir nymbot Pridėti refunded_credits ir refunded_satsBaigtas vaizdo įrašas yra viešame „Blossom“ prieglobos sistemoje, kaip ir sukurtos nuotraukos.

statusąKada
400Nėra skubiai; trukmė ne 0 iki 60 (invalid_value); rezoliucija generatorius nesuteikia (unsupported_resolution); nėra vaizdo generatoriui, kuriam reikia vieno (image_required); modelis, kuris nėra vaizdo generatorius (invalid_model).
402Pro balansas negali apimti vaizdo įrašą.
404Nėra tokio generatoriaus (model_not_found), arba joks darbas pagal tą ID jūsų nym, arba jis yra daugiau nei 24 valandos senumo (video_not_found).
429Jūsų nym jau turi 10 vaizdo įrašų perdavimą (video_jobs_limitPatikrinkite juos ir pateikite daugiau, kai vienas baigiasi.
502Generatorius atsisakė darbo. nieko neapmokestinama, nebent teikėjas už tai atsiskaito.
503Vaizdo įrašai šiuo metu negali būti pristatomi ar saugomi (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);

Tekstas į kalbą

Skaito tekstą garsiai ir grąžina pačią garso failą, o ne nuorodą. audio.speech.create „OpenAI SDK“ veikia.

POST https://nymbot.ai/api/v1/audio/speech — reikia API rakto arba „Lightning“ mokėjimas pagal prašymą.

LaukoTipasReikalingasAprašymas
modelStringųneKalbėjimo modelis iš Audio modelių sąrašasPagal numatytuosius nustatymus – standartinis balsas; @cf/myshell-ai/melotts. aura-2 „Deepgram Aura 2“ žaidimas.
inputStringųTaipTekstas, kurį reikia perskaityti: iki 800 simbolių standartiniam balsui, 2000 Aura 2.
voiceStringųnebalso ID iš Balsų sąrašasAura garsiakalbis, kaip luna (arba aura-2-luna-en, arba MeloTTS kalba (en, es, fr, zhOpenAI balso vardai, tokie kaip alloy yra priimami ir suteikia modelio numatytąjį balsą.
languageStringųneKalbos kodai, tokie kaip esBe balso, jis pasirenka vieną tą kalbą. Balso, kuris kalba kita kalba grįžta 422 voice_language_mismatch, ir kalba, kuriai modelis neturi balso 422 unsupported_language.
response_formatStringųneStandartinis balsas grįžta mp3 Aura 2 sugrįžta mp3 (Tai yra nesėkmė) opus, aac, flac, wav arba pcm.
speedNumerisnePriimtas ir ignoruojamas.

Standartinis balsas kainuoja 3 standartinius kreditus (30 sats) už prašymą, kaip ir programoje. „Aura 2“ yra „Pro“, kainuojamas pagal siunčiamus simbolius. Content-TypeKaina yra į X-Nymbot-Cost-Sats Jei kalbos modelis nepavyksta, nieko nekompensuojama.

Atsakymas

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
400Nėra įvesties; įvesties virš modelio ribos (input_too_long); formatas, kurio modelis negali gaminti (unsupported_response_format); nežinomas balsas (invalid_voice); modelis, kuris nėra kalbos modelis (invalid_model).
422Balsas nekalba nurodyta kalba, arba modelis neturi balso už tai.
502Kalbos modelis nepavyko. nieko nėra apmokėta.

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 modeliai ir balsai

Du viešieji sąrašai, skirti pasirinkti kalbos modelį ir balsą arba transkripcijos modelį.Yra 41 Aura 2 anglų kalbos ir keturios MeloTTS kalbos.

GET https://nymbot.ai/api/v1/audio/models Nereikia jokių raktų.

GET https://nymbot.ai/api/v1/audio/voices?language=en Nereikia jokių raktų.

LaukoTipasReikalingasAprašymas
languageŽymės: String QueryneTik balsai šiai kalbai.
modelŽymės: String QueryneTik balsai šiam modeliui.

Atsakymai į klausimus (balsai)

{
  "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ų sąrašas Atsakymai {"object": "list", "data": {"tts": […], "stt": […]}}Kiekvienas kalbėjimo modelis suteikia savo balansą, kainą, max_input_chars, response_formats, languages ir default_voice· transkripcijos modelis suteikia savo slapyvardžius, max_file_bytes, max_seconds, formatai ir kaina už minutę.

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

Kalba į tekstą

Paverčia įrašą į tekstą su šnabžda.Tai yra OpenAI transkripcijos galutinis taškas, todėl audio.transcriptions.create Veikia ir

POST https://nymbot.ai/api/v1/audio/transcriptions — reikia API rakto arba „Lightning“ mokėjimas pagal prašymąKūnas yra multipart/form-data.

LaukoTipasReikalingasAprašymas
filefailąTaipĮrašai, nuo 256 baitų iki 25 MB ir iki 30 minučių: WAV, WebM, MP4 arba M4A, Ogg arba Opus, MP3 ir kiti formatai Šnabždėti skaito.
modelStringųneDefektų whisperIšmanusis telefonas Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo ir @cf/openai/whisper-large-v3-turbo Tai reiškia tą patį.
languageStringųneKalbama kalba, kaip enNustatyta, jei ji buvo palikta.
promptStringųneŽodžiai ar rašybos, kurių galima tikėtis, pvz., vardai. Naudojami tik pirmieji 1000 simbolių.
response_formatStringųnejson (Tai yra nesėkmė) text, srt, vtt arba verbose_json.

WAV, WebM, MP4 ir Ogg failams ilgis skaitomas iš failo prieš tai, kai kas nors veikia, todėl daugiau nei 30 minučių įrašas yra atmestas iš anksto (su 3 sekundžių malonės). WAV failo ilgis priklauso nuo jo pavyzdžio greičio, kanalų ir pavyzdžio dydžio. Kitų formatų, tokių kaip MP3, ilgis negali būti perskaitytas iš priekio, todėl jie yra ribojami dydžiu: mažiausiu bitiniu greičiu Nymbot mano, kad 8 kbps, 30 minučių yra 1,8 MB, o didesnis failas tokiu formatu yra atmestas su 413 audio_too_long Siųskite ilgesnius įrašus, pvz., WAV, WebM, MP4 arba Ogg. Jei Whisper tada praneša daugiau nei 30 minučių, prašymas atmetamas 413 audio_too_long, ir kadangi šnabždesys buvo paleistas, 30 minučių yra įkraunama.

Jūs mokate už garso ilgį, suapvalintą iki antrojo: ilgesnis ilgio skaitymas iš failo, ilgio šnabždesio ataskaitos ir mažiausias failo dydis leidžia, už šnabždesio kainą per minutę su įprasta mokesčiu ir marža, ir ne mažiau kaip 0,05 kredito už prašymą. 402 suteikia tai, ko reikėtų kiekvienam balansui. programoje balso pranešimo transkripcija gali būti nemokama; API ji visada įkraunama.

Atsakymas

{
  "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 grąžina aiškų tekstą, srt ir vtt grąžinti subtitrus ir verbose_json prideda kalbą, trukmę ir laiko segmentus. Trijų, kurie nėra JSON, kaina yra antraštėse.

statusąKada
400Nėra failų, failų, kuriuose nėra naudojamo garso (invalid_audio, nežinomas formatas, arba modelis, kuris nėra transkripcijos modelis (invalid_model).
402Nei pusiausvyra negali jį padengti.
413Duomenų rinkinys yra didesnis nei 25 MB (file_too_large1) ne ilgesniam nei 30 minučių laikotarpiui, arba ne ilgesniam nei 1,8 MB laikotarpiui (audio_too_long).
502Šnabžda negalėjo apdoroti garso. nieko nėra apmokestinama.

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

Vertimas kalbos į anglų kalbą

POST https://nymbot.ai/api/v1/audio/translations — reikia API rakto arba „Lightning“ mokėjimas pagal prašymąKūnas yra multipart/form-data.

Tas pats kaip transkripcija, su tais pačiais laukais, išskyrus language, apribojimai ir kaina, tačiau tekstas grįžta į anglų kalbą, nesvarbu, kokia kalba buvo kalbama. 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);

Įdėklai

Konvertuoja tekstą į vektorius paieškai, grupavimui ir deduplikavimui.Modeliai veikia „Cloudflare“ ir praleidžia standartinį balansą.

POST https://nymbot.ai/api/v1/embeddings — reikia API rakto arba „Lightning“ mokėjimas pagal prašymą.

LaukoTipasReikalingasAprašymas
modelStringųTaipĮterpimo modelis iš GET /api/v1/models?type=embedding.
inputStrings arba string arrayTaipPavyzdžiui, norint įdėti tekstą, ne daugiau kaip 100 tuščių eilučių. žetonų diapazonai yra atmesti (token_input_unsupportedKiekvienas įvestis turi atitikti modelio context_length, skaičiuojamas kaip apie keturis bytes tokeną.
encoding_formatStringųnefloat (Darbo sutartis) arba base64 (Little-endian 32 bitų plaukiojimas)
dimensionsIntegracijosnemodelio dydį arba modelio dydį su supported_dimensions Vienas iš jų; vektoris tada sutrumpinamas ir normalizuojamas.
ModelismatmenysKontekstas
@cf/baai/bge-m31024 daugybė kalbų8,192 žetonai
@cf/qwen/qwen3-embedding-0.6b1024 daugybė kalbų8,192 žetonai
@cf/baai/bge-large-en-v1.51024 anglų kalba512 žetonų
@cf/baai/bge-base-en-v1.5768 Anglų kalba512 žetonų
@cf/baai/bge-small-en-v1.5384 Anglų kalba512 žetonų

Modelių sąrašas yra tiesos šaltinis, už kurį jie yra prieinami ir kiek jie kainuoja; "Google" "EmbeddingGemma", turintis trumpesnius vektorius pagal užklausą, taip pat pasirodo ten, kai katalogas turi kainą.

Atsakymas

{
  "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
400Nėra įvesties arba tuščios vienos; žetonų diapazonas (token_input_unsupporteddaugiau nei 100 įvesties (too_many_inputs); įvadas ilgesnis nei modelis imasi (input_too_long• dydis, kurį modelis negali pateikti (unsupported_dimensions).
402Standartinis balansas yra per mažas. Įterpimai niekada nenaudoja Pro balanso.
404Nėra modelio su tokiu pavadinimu.
502Modelis nepavyko. nieko nėra apmokėta.

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