Pāriet uz saturu
Atpakaļ uz Nymbot

Zināšanu bāze Izstrādātāji

Attēli, audio un iebūvējumi

Ģeneratori no lietojumprogrammas un meklēšanas celtniecības bloki: attēli, video, runa, transkripcija un iebūvējumi, katrs iekasēts par lietošanu no jūsu bilances.

Attēlu ģenerēšana

Izveido vienu līdz četras bildes no ielūguma un atgriež tās, kad tās ir pabeigtas. ?image Tajā pašā app.

POST https://nymbot.ai/api/v1/images/generations — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.

Iedvesma nāk no GET /api/v1/models?type=imageStandarta ģenerators @cf/black-forest-labs/flux-1-schnell, izmaksas 5 standarta kredītus (50 sats) attēlu. katrs cits ģenerators tērē Pro kredītus par savu cenu, ar parasto maksu un maržu, kā Apiņa. n Attēlu izmaksas n Lauks, ko ģenerators neņem, tiek izlaists, nevis noraidīts; standarta ģenerators izmanto tikai uzrunu.

LaukuVeidsNepieciešamsApraksts
modelStringaJāGenerators ID, piemēram, nano-banana.
promptStringaJāTikai pirmās 2000 rakstzīmes tiek izmantotas.
nIntegrācijaNē1 līdz 4. noklusējums 1. arī pieņemts kā num_images.
sizeStringaNēAttiecībā uz tādiem aspektiem kā "16:9", vai tādu atvērto izmēru kā "1792x1024", kas kļūst par tuvāko no 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 un 4:5. "auto" Atstājiet to ģeneratorā.
aspect_ratioStringaNēTāpat kā size, un uzvar, ja abi tiek nosūtīti.
qualityStringaNēSpecifiski ģeneratori, piemēram "low", "medium" vai "high".
negative_promptStringaNēKo atstāt ārā.
output_formatStringaNē"png", "jpeg" vai "webp".
response_formatStringaNē"url" (par nepilnībām) vai "b64_json".
image_urlStringaNēAttēls, kas sākas ar: a https:// saite ar ne vairāk kā 4 096 rakstzīmēm bez lietotājvārda vai paroles tajā, vai data:image/…;base64 URL (PNG, JPEG, WebP vai GIF; ne SVG).Tikai ģeneratoriem ar editTādēļ tiem, kam nepieciešama requires_image_url.

resolution nav izmantots: katrs ģenerators rada savu izmēru. url, katrs attēls tiek augšupielādēts publiskam Blossom saimniekam, un jūs saņemsiet saiti (daži ģeneratori atdod tikai savu saiti, kas tiek nodota tālāk). Ko var redzēt ugunsgrēksar b64_json attēls atgriežas atbildē un nekad netiek augšupielādēts. data: URL uz image_url Tas tiek pārbaudīts tāpat kā Edit un vispirms augšupielādē Blossom, lai ģenerators to varētu saņemt; tas tiek dzēsts vēlreiz, ja pieprasījums neizdodas atskaitīt.

Ja daži no n attēli neizdodas, jūs saņemsiet tos, kas strādāja, tiek iekasēti tikai par tiem (plus jebkurš pakalpojumu sniedzējs iekasēja, neskatoties uz neveiksmi), un nymbot.failed norāda, cik daudz trūkst.Ja visi neizdodas, pieprasījums atgriežas 502.

Atbilde

{
  "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 }
}
StatussKad
400nav ātra; n no 1 līdz 4 (invalid_value• slikta garastāvokļa (invalid_size) vai attēlu (invalid_image, invalid_image_url); modelis, kas pastāv, bet nav attēla ģenerators (invalid_model); attēlu ģeneratoram, kas nevar rediģēt (edit_unsupportedNeviens no tiem, kam tas ir vajadzīgs (image_required).
402Balanss nevar segt katru pieprasīto attēlu.
404Nav modeļa ar šo nosaukumu (model_not_found).
502Šķidrums ir bojāts (upstream_errorNekas netiek iekasēts, ja vien piegādātājs nav iekasējis par mēģinājumu; tad kļūda ir charged_sats.
503Fotogrāfijas pašlaik nevar uzglabāt (media_hosting_unavailable). b64_json Joprojām darbojas

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

Attēlu rediģēšana

Mainās attēls, kuru augšupielādējat, sekojot norādījumam.Tas ir OpenAI rediģēšanas gala punkts, tāpēc OpenAI SDK images.edit darbojas tā, kā tas ir. tikai Pro ģeneratori ar edit Modelu sarakstā tas ir pieņemts.

POST https://nymbot.ai/api/v1/images/edits — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-dataLīdz pat 32 MB.

LaukuVeidsNepieciešamsApraksts
imagefailuJāAttēls rediģēšanai: PNG, JPEG, WebP vai GIF, līdz 20 MB. image[]Pirmais no tiem tiek izmantots.
promptStringaJāKo mainīt
modelStringaJāĢenerators ar edit.
nIntegrācijaNē1 līdz 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringaNēAttiecībā uz paaudzi.
response_formatStringaNē"b64_json" (parastais attēls šeit) vai "url".

Attēls, ko augšupielādējat, tiek pārbaudīts, vai tas ir labi izveidots PNG, JPEG, WebP vai GIF, nosūtīts kā tā reālais veids, un ievietots publiskā Blossom hostā, jo ģeneratori saņem savu ievadi ar saiti. Rūpējieties par to kā publisku. Ja rediģēšana neizdodas un nekas netiek iekasēts, hostētā kopija tiek izdzēsta vēlreiz. Atbilde ir tādas pašas formas kā ģenerācijai. Cena ir ģeneratora cena, kas dažiem ģeneratoriem ietver ievades attēla maksu.

Atbilde

{
  "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 }
}
StatussKad
400Nav attēla vai ielūguma, fails, kas nav attēls (invalid_image), vai ģenerators, kas nevar rediģēt (edit_unsupported).
413Attēls ir lielāks par 20 MB (file_too_large), vai visu pieprasījumu, kas pārsniedz 32 MB.
503Fotogrāfiju pašlaik nevar uzglabāt (media_hosting_unavailable).

cURL

curl https://nymbot.ai/api/v1/images/edits \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F model=nano-banana \
  -F [email protected] \
  -F prompt="Make it a snowy evening"

Python

import base64, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("photo.png", "rb") as f:
    result = client.images.edit(model="nano-banana", image=f, prompt="Make it a snowy evening")

with open("edited.png", "wb") as out:
    out.write(base64.b64decode(result.data[0].b64_json))

JavaScript

import fs from "node:fs";
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const result = await client.images.edit({
  model: "nano-banana",
  image: fs.createReadStream("photo.png"),
  prompt: "Make it a snowy evening",
});
await writeFile("edited.png", Buffer.from(result.data[0].b64_json, "base64"));

Video

Video aizņem minūtes, tāpēc tas darbojas fonā. Jūs to iesniedzat, saņemsiet ID tūlīt un jautājat par ID, līdz tas ir pabeigts.

POST https://nymbot.ai/api/v1/videos — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaAtgriešanās 202.

LaukuVeidsNepieciešamsApraksts
modelStringaJāVideo ģeneratora ID no GET /api/v1/models?type=videoTāpat kā veo.
promptStringaJāKas būtu jādara.
durationNumurs vai stringNēGarums sekundēs, vairāk nekā 0 un līdz 60. Izmanto tikai ģeneratori, kas ļauj izvēlēties garumu; pārējie padara savu parasto garumu, kas ir tas, ko seconds Atbilde un cena seko.
aspect_ratioStringaNēTāpat kā "16:9" vai "9:16"Tāds izmērs kā "1280x720" Tas kļūst par tuvāko attiecību.
resolution
quality
StringaNēViens no ģeneratoriem resolutions sarakstā, piemēram, tāda veida "720p" vai "1080p"Tas nosaka cenu.Viss pārējais tiek noraidīts ar unsupported_resolution.
image_urlStringaNēAttēls, kas sākas ar: a https:// Saite vai a data:image/… URL, kas vispirms tiek augšupielādēts publiskajam Blossom saimniekam. requires_image_url.

Cena ir fiksēta, kad jūs iesniedzat, no ģeneratora, izšķirtspējas un garuma, tāpēc tas tiek iekasēts no jūsu Pro bilances, tiklīdz pakalpojumu sniedzējs pieņem darbu, un tiek parādīts kā cost, estimated_cost un nymbotJa piegādātājs atsakās no darba, nekas netiek iekasēts.Ja atskaņošana vēlāk neizdodas, vai pabeigtais klips nevar tikt saglabāts un piegādātājs par to nav rēķinājies, maksa tiek atmaksāta vienu reizi, automātiski. Atskaņošana, kas joprojām notiek pēc stundas, tiek atņemta un saglabā savu maksu, jo piegādātājs rēķina atskaņošanu, kad tas to pieņem. Atmaksāšana atgriež kredītus, bet nesamazina atslēgas izdevumu skaitu.

Atbilde uz jautājumu (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 Sākas kā in_progressvai completed Video jau ir iekļauts data Kad ģenerators to nekavējoties atdeva.

Pārbaudiet video

GET https://nymbot.ai/api/v1/videos/{id} — nepieciešama atslēga, kas pieder tam nimam, kas to iesniedza. atslēga, kas ir sasniegusi savu maksimumu, joprojām var pārbaudīt.

Tā atbild 202 Kamēr videoklips tiek uzņemts un 200 kad tas ir pabeigts vai nav izdevies. Jautājiet ik pēc 5 līdz 10 sekundēm. Katra pārbaude jautā piegādātājam vienu reizi un atbild uzreiz; tas nekad negaida video. Darbs tiek turēts 24 stundas pēc tam, kad tas tika iesniegts. GET /api/v1/videos Saraksta pēdējos 50 darbavietas kā {"object": "list", "data": […]}.

Atbilde uz jautājumu (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 ir in_progress, completed vai failedNeveiksmīgs darbs pārvadā error ({"code": "generation_failed", "message": …}Ja tas ir atmaksāts, cost ir 0 un nymbot Papildināt refunded_credits un refunded_satsGatavā video ir publiskā Blossom hostā, tāpat kā ģenerētie attēli.

StatussKad
400Nav ātruma; ilgums ārpus 0 līdz 60 (invalid_value); izšķirtspēja, ko ģenerators nesniedz (unsupported_resolution); nav attēla ģeneratoram, kas prasa vienu (image_required(Pāradresēts no VID, kas nav VID vadītājs)invalid_model).
402Pro līdzsvars nevar aptvert video.
404Nav šāda ģeneratora (model_not_found), vai nav darba ar šo ID jūsu nym, vai tas ir vairāk nekā 24 stundas vecs (video_not_found).
429Jūsu nym jau ir 10 video rādīšana (video_jobs_limitPārbaudiet tos un iesniedziet vairāk, kad viens beidzas.
502Ģenerators atteicās no darba. Nekas netiek iekasēts, ja vien pakalpojumu sniedzējs par to nav samaksājis.
503Video pašlaik nevar piegādāt vai saglabāt (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);

Teksts uz runu

Lasīt tekstu skaļi un atgriež pašu audio failu, nevis saiti. audio.speech.create OpenAI SDK darbojas.

POST https://nymbot.ai/api/v1/audio/speech — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.

LaukuVeidsNepieciešamsApraksts
modelStringaNēRunas modelis no Audio modeļu sarakstsStandarta balss: standarta balss @cf/myshell-ai/melotts. aura-2 Tā ir Deepgram Aura 2.
inputStringaJāTeksts, kas jāizlasa: līdz 800 rakstzīmēm standarta balss, 2000 Aura 2.
voiceStringaNēBalss ID no Balss sarakstsAura skaļruņi, piemēram, luna (vai aura-2-luna-enVārds, uzvārds un uzvārds MeloTTS (en, es, fr, zhOpenAI balss nosaukumi, piemēram, alloy tiek pieņemti un dod modeļa noklusējuma balsi.
languageStringaNēValodas kods, kas esBez balss, tā izvēlas vienu valodu. balss, kas runā citā valodā atgriežas 422 voice_language_mismatchun valoda, kurai modelim nav balss 422 unsupported_language.
response_formatStringaNēStandarta balss atgriežas mp3 Aura 2 atgriežas mp3 (Tā ir deficīta situācija) opus, aac, flac, wav vai pcm.
speedNumursNēPieņemts un ignorēts.

Standarta balss maksā 3 standarta kredītus (30 sats) par pieprasījumu, kā lietojumprogrammā. Aura 2 ir Pro, cenu nosaka pēc rakstzīmēm, ko nosūtāt. Atbildes ķermenis ir audio, ar atbilstīgu Content-Type• izmaksas ir iekļautas X-Nymbot-Cost-Sats Ja runas modelis neizdodas, nekas netiek iekasēts.

Atbilde

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

(audio bytes)
StatussKad
400Nav ievades; ievade pārsniedz modeļa robežu (input_too_long); formāts, ko modelis nevar ražot (unsupported_response_format1) nezināmā balss (invalid_voice(Tas ir tikai viens no veidiem, kā atrisināt problēmu, kas nav uzskatāma par problēmu)invalid_model).
422Balss nerunā norādīto valodu, vai modelim nav balss par to.
502Runas modelis neizdevās. nekas nav iekasēts.

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 modeļi un balsis

Divi publiski saraksti, lai izvēlētos runas modeli un balsi vai transkripcijas modeli.Ir 41 Aura 2 angļu valodas un četras MeloTTS valodas.

GET https://nymbot.ai/api/v1/audio/models Nav nepieciešama atslēga.

GET https://nymbot.ai/api/v1/audio/voices?language=en Nav nepieciešama atslēga.

LaukuVeidsNepieciešamsApraksts
languageString (prasības vārdi)NēTikai balsis šai valodai.
modelString (prasības vārdi)NēTikai balsis šim modelim.

Atbildes uz jautājumiem (balss)

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

Modelu saraksts Atbildes {"object": "list", "data": {"tts": […], "stt": […]}}Katrs runas modelis sniedz savu līdzsvaru, cenu, max_input_chars, response_formats, languages un default_voice; transkripcijas modelis sniedz savas alianses, max_file_bytes, max_seconds, formāti un cena par minūti.

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

Vārds uz tekstu

Pārvērš ierakstu tekstā ar Whisper.Tas ir OpenAI transkripcijas gala punkts, tāpēc audio.transcriptions.create Darbojas kā.

POST https://nymbot.ai/api/v1/audio/transcriptions — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-data.

LaukuVeidsNepieciešamsApraksts
filefailuJāUzņemšana, no 256 baitiem līdz 25 MB un līdz 30 minūtēm: WAV, WebM, MP4 vai M4A, Ogg vai Opus, MP3 un citi formāti Whisper lasa.
modelStringaNēdefekts whisper, kas ir Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo un @cf/openai/whisper-large-v3-turbo Tas nozīmē to pašu.
languageStringaNēRunājošās valodas, piemēram, enApstiprināts, ja ir atstāts ārā
promptStringaNēVārdi vai pareizrakstības, piemēram, vārdi. tiek izmantoti tikai pirmie 1000 rakstzīmes.
response_formatStringaNējson (Tā ir deficīta situācija) text, srt, vtt vai verbose_json.

WAV, WebM, MP4 un Ogg failu garums tiek izlasīts no faila, pirms kaut kas darbojas, tāpēc ieraksts, kas pārsniedz 30 minūtes, tiek noraidīts uz priekšu (ar 3 sekundēm). WAV faila garums nāk no tā parauga ātruma, kanāliem un parauga izmēra. Citu formātu, piemēram, MP3, garumu nevar izlasīt uz priekšu, tāpēc tie ir ierobežoti pēc izmēra: zemākajā bitrate Nymbot pieņem, 8 kbps, 30 minūtes ir 1,8 MB, un lielāks fails šādā formātā tiek noraidīts ar 413 audio_too_long Sūtiet garākus ierakstus, piemēram, WAV, WebM, MP4 vai Ogg. Ja Whisper ziņo vairāk nekā 30 minūtes, pieprasījums tiek noraidīts ar 413 audio_too_long, un, tā kā Whisper notika, 30 minūtes tiek iekasētas.

Jūs maksājat par garumu audio, noapaļots līdz otram: garākais garums lasīts no faila, garums Whisper ziņojumus, un vismazākais faila izmērs ļauj, par Whisper minūtes cenu ar parastā maksa un maržu, un vismaz 0.05 kredītu pieprasījumu. tas tiek maksāts no standarta bilances, kad tas var segt turēt, un no Pro citādi; 402 sniedz to, kas katram līdzsvaram būtu nepieciešams. lietotnē balss ziņojuma transkripcija var būt bezmaksas; API tas vienmēr tiek uzlādēts.

Atbilde

{
  "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 Atgriež skaidru tekstu, srt un vtt atgriezties subtitrus, un verbose_json pievieno valodu, ilgumu un laika segmentus. Trīs, kas nav JSON, izmaksas ir virsrakstos.

StatussKad
400Nav failu, failu ar neizmantojamu audio (invalid_audio, nezināms formāts vai modelis, kas nav transkripcijas modelis (invalid_model).
402Arī līdzsvars to nesedz.
413Filma ir lielāka par 25 MB (file_too_large2) ieraksts ilgāks par 30 minūtēm, vai formātā, kura garums nav lasāms uz priekšu, vairāk nekā 1,8 MB (audio_too_long).
502Šūpuļkrēsls nespēja apstrādāt audio.

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

Runas tulkošana angļu valodā

POST https://nymbot.ai/api/v1/audio/translations — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-data.

Tas pats kā transkripcija, ar tādiem pašiem laukiem, izņemot language, ierobežojumi un cena, bet teksts atgriežas angļu valodā neatkarīgi no valodas. 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);

Iebūvējumi

Teksts tiek pārvērsts par vektoru meklēšanai, grupēšanai un deduplikācijai. modeļi darbojas Cloudflare un tērē standarta bilanci.

POST https://nymbot.ai/api/v1/embeddings — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.

LaukuVeidsNepieciešamsApraksts
modelStringaJāIebūvēts modelis no GET /api/v1/models?type=embedding.
inputStrings vai string arrayJāSaskaņā ar likuma "Par valsts un pašvaldību institūcijām" 10.panta ceturto daļu, valsts un pašvaldību institūcijām ir jānodrošina, lai valsts un pašvaldību institūcijas (token_input_unsupportedKatram ievadam jāatbilst modeļa context_length, aprēķināts kā aptuveni četri bajti par tokenu.
encoding_formatStringaNēfloat (par nepilnībām) vai base64 (Little-endian 32 bitu floats)
dimensionsIntegrācijaNēpaša modeļa izmērs vai modelim ar supported_dimensions Vektors tiek saīsināts un normalizēts.Viss pārējais tiek noraidīts.
ModelisDimensijasKonteksts
@cf/baai/bge-m31024 daudzās valodās8,192 zīmes
@cf/qwen/qwen3-embedding-0.6b1024 daudzās valodās8,192 zīmes
@cf/baai/bge-large-en-v1.51024 Angļu valoda512 tējkarotes
@cf/baai/bge-base-en-v1.5768, angļu valoda512 tējkarotes
@cf/baai/bge-small-en-v1.5384 Angļu valoda512 tējkarotes

Modeļu saraksts ir patiesības avots, par kuriem tie ir pieejami un ko tie maksā; Google EmbeddingGemma, ar īsākiem vektoriem pēc pieprasījuma, parādās arī tad, kad katalogā ir cena.

Atbilde

{
  "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 }
}
StatussKad
400Nav iekļūšanas vai tukša viena; token arheoloģija (token_input_unsupported(vairāk nekā 100 ieejas)too_many_inputs); ievades ilgums ir lielāks nekā modelis aizņem (input_too_long3) izmērs, ko modelis nevar dot (unsupported_dimensions).
402Standarta līdzsvars ir pārāk zems. Iebūvējumi nekad neizmanto Pro līdzsvaru.
404Nav iebūvēts modelis ar šo nosaukumu.
502Modelis ir neveiksmīgs. nekas nav iekasēts.

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