Ale nan kontni an
Retounen nan Nymbot

Konesans baz Devlopè

imaj, odyo ak embeddings

Jeneratè yo soti nan app a, ak blòk bati pou rechèch: foto, videyo, pale, transkripsyon ak embeddings, chak chaje pou chak itilizasyon soti nan balans ou.

Kreye imaj

Li fè youn a kat foto soti nan yon prompt ak retire yo lè yo te fè. Li se menm seri a nan jeneratè kòm ?image Nan aplikasyon an.

POST https://nymbot.ai/api/v1/images/generations — bezwen yon kle API, oswa Yon Lightning peman sou demann.

IDS vini nan GET /api/v1/models?type=imageYon jeneratè estanda, @cf/black-forest-labs/flux-1-schnell, koute yon flat 5 kredi estanda (50 sats) yon foto. Chak lòt jeneratè pase kredi Pro nan pri pwòp li yo, ak frè a nòmal ak marje, kòm nan App nan. n Pwodwi pou foto n Yon jaden yon jeneratè pa pran se chita anvan refize; jeneratè a estanda sèvi ak prompt sèlman.

ZònKi janRechèchDeskripsyon
modelString nanWiYon id jeneratè, tankou nano-banana.
promptString nanWiKi sa yo desen. Se sèlman premye 2000 karaktè yo itilize.
nEntegrepa1 a 4. Default 1. Epitou aksepte kòm num_images.
sizeString nanpaYon aspè rapò tankou "16:9", oswa yon gwosè OpenAI tankou "1792x1024", ki se pi pre nan 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 ak 4:5. "auto" Lè sa a, kite li nan jeneratè a.
aspect_ratioString nanpamenm jan an kòm size, ak genyen si tou de yo te voye.
qualityString nanpajeneratè espesifik, tankou "low", "medium" ou "high".
negative_promptString nanpaKi sa yo dwe kite.
output_formatString nanpa"png", "jpeg" ou "webp".
response_formatString nanpa"url" (ki se default la) oswa "b64_json".
image_urlString nanpaYon foto yo kòmanse soti nan: a https:// yon lyen nan maksimòm 4096 karaktè ak pa gen okenn non itilizatè oswa senp nan li, oswa yon data:image/…;base64 URL (PNG, JPEG, WebP oswa GIF; pa SVG). Se sèlman pou jeneratè ak editRechèch pou moun ki gen requires_image_url.

resolution se pa itilize: chak jeneratè fè gwosè li yo. Avèk url, chak imaj se uploade nan yon òdinatè piblik Blossom ak ou jwenn lyen li (pa gen kèk jeneratè sèlman retire yon lyen pwòp yo, ki se pase sou). Tout moun ki gen lyen an ka louvri li epi li pa ka retire ankò; wè Ki sa ki nan API ka wèavèk b64_json imaj la reponn nan repons la epi yo pa janm ankouraje. Yon imaj voye kòm yon data: URL nan image_url se tcheke nan menm fason ki jan yon Edit nan ak uploaded nan Blossom an premye pou jeneratè a ka retire li; li se retire ankò si demann an pa t 'fwa.

Si kèk nan n imaj manke, ou jwenn moun ki te travay, yo se peye sèlman pou moun (plis nenpòt ki founisè chaje malgre manke), ak nymbot.failed di ki kantite manke. Si tout manke, demann an retire 502.

Reply

{
  "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 nanKòm
400Pa vit; n soti nan 1 nan 4 (invalid_value); yon gwosè mal (invalid_size) oswa foto (invalid_image, invalid_image_url); yon modèl ki egziste men se pa yon imaj jeneratè (invalid_model); yon imaj pou yon jeneratè ki pa ka edit (edit_unsupported); pa gen okenn foto pou yon moun ki bezwen li (image_required).
402balans pa ka kouvri tout imaj mande pou.
404Pa gen yon modèl ak non sa a (model_not_found).
502jeneratè a se pa t 'kapab (upstream_errorPa gen anyen se chaje san yo pa founisè a chaje pou eseye; Lè sa a, erè a te charged_sats.
503imaj pa ka hosting kounye a (media_hosting_unavailable). b64_json Toujou ap travay

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

Edite imaj

Chanje yon imaj ou upload, apre yon rekòmandasyon. Sa a se Endpoint edit nan OpenAI, se konsa OpenAI SDKs ' images.edit travay kòm li se. Se sèlman Pro jeneratè ak edit nan lis modèl aksepte li.

POST https://nymbot.ai/api/v1/images/edits — bezwen yon kle API, oswa Yon Lightning peman sou demannCorps la se multipart/form-datajiska 32 MB.

ZònKi janRechèchDeskripsyon
imageDosyeWiimaj yo edite: PNG, JPEG, WebP oswa GIF, jiska 20 MB. Epitou aksepte kòm image[]Premye a se itilize.
promptString nanWiKi sa yo dwe chanje.
modelString nanWiYon jeneratè ak edit.
nEntegrepa1 nan 4.
size
aspect_ratio
quality
negative_prompt
output_format
String nanpaPou jenerasyon an.
response_formatString nanpa"b64_json" (default nan isit la) oswa "url".

imaj la ou upload se tcheke pou yo dwe yon byen fòme PNG, JPEG, WebP oswa GIF, voye sou kòm kalite reyèl li yo, ak mete sou yon òdinatè Blossom piblik, paske jeneratè yo retire entèlijans yo pa lyen. Trete li kòm piblik. Si editè a échoue ak pa gen anyen se chaje, kopi a òdinatè se retire ankò. Repons la gen fòm la menm jan ak pou jenerasyon. Pri a se pri a jeneratè a, ki pou kèk jeneratè gen ladan yon frè pou imaj la entèlijans.

Reply

{
  "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 nanKòm
400Pa gen imaj oswa prompt, yon dosye ki pa yon imaj (invalid_image), oswa yon jeneratè ki pa ka edit (edit_unsupported).
413imaj ki gen plis pase 20 MB (file_too_large), oswa tout kesyon an plis pase 32 MB.
503Foto a pa ka hosting kounye a (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"));

Videyo

Yon videyo pran minit, se konsa li kouri nan background la. Ou soumèt li, jwenn yon id imedyatman, ak mande sou id la jiskaske li se fini. Chak videyo jeneratè pase balans la Pro.

POST https://nymbot.ai/api/v1/videos — bezwen yon kle API, oswa Yon Lightning peman sou demannRetounen 202.

ZònKi janRechèchDeskripsyon
modelString nanWiYon videyo jeneratè id soti nan GET /api/v1/models?type=videoKòm veo.
promptString nanWiKi sa ki ta dwe.
durationNimewo oswa stringpaLongè nan segonn, plis pase 0 ak jiska 60. Sèvi sèlman pa jeneratè ki pèmèt ou chwazi longè; lòt fè longè yo nòmal, ki se sa ki seconds nan repons la ak pri a swiv.
aspect_ratioString nanpaKòm "16:9" ou "9:16"; yon gwosè tankou "1280x720" Li se rapò a ki pi pre.
resolution
quality
String nanpaYon nan jeneratè a resolutions Nan lis la modèl, tankou "720p" ou "1080p"Li mete pri a. Tout lòt bagay se refize ak unsupported_resolution.
image_urlString nanpaYon foto yo kòmanse soti nan: a https:// Lyen oswa a data:image/… URL, ki ankouraje nan yon òdinatè piblik Blossom premye. Requisite pa jeneratè ak requires_image_url.

Pri a se fixe lè ou soumèt, soti nan jeneratè a, rezolisyon ak longè, se konsa li chaje soti nan salè Pro ou tanpri ke founisè a aksepte travay la, ak montre kòm cost, estimated_cost epi nymbot. Si founisè a refize travay la, pa gen anyen se chaje. Si render la pita manke, oswa clip la fini pa ka sove ak founisè a pa te chaje pou li, chaj la se refize yon fwa, otomatikman. Yon render ki toujou ap ale apre yon èdtan se kite, ak kenbe chaj li yo, paske founisè a chaje yon render yon fwa li aksepte li. Yon refwadisman retire kredi a men pa ba kantite lajan an nan kle a.

Retounen (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 Kòmanse kòm in_progressOu se completed ak videyo a deja nan data lè jeneratè a retire li imedyatman.

Tcheke sou yon videyo

GET https://nymbot.ai/api/v1/videos/{id} - bezwen yon kle ki apwopriye nan nym la ki te soumèt li. Yon kle ki te rive nan cap li kapab toujou tcheke.

Li reponn 202 pandan ke videyo a se fè ak 200 Yon fwa li se konplete oswa te fè mal. Demann chak 5 a 10 segonn. Chèk chak mande founisè a yon fwa ak reponn nan yon sèl fwa; li pa janm ap tann pou videyo a. Yon travay se kenbe pou 24 èdtan apre li te soumèt. GET /api/v1/videos lis dènye 50 travay la nan kle a kòm {"object": "list", "data": […]}.

Repons nan (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 se in_progress, completed ou failedYon travay ki pa t 'kapab pote error ({"code": "generation_failed", "message": …}); si li te retounen, cost se 0 ak nymbot Ajoute refunded_credits epi refunded_satsVideyo a fini se sou yon òdinatè piblik Blossom, tankou imaj yo te kreye.

Status nanKòm
400Pa gen okenn prompt; yon peryòd deyò 0 a 60 (invalid_value); yon rezolisyon jeneratè pa ofri (unsupported_resolution); pa gen okenn imaj pou yon jeneratè ki bezwen yon (image_required); yon modèl ki pa se yon videyo jeneratè (invalid_model).
402Pro balans pa ka kouvri videyo a.
404pa gen yon jeneratè (model_not_found), oswa pa gen okenn travay pa id sa a pou nim ou a, oswa li se plis pase 24 èdtan (video_not_found).
429Nimewo a ou deja gen 10 videyo retransmisyon (video_jobs_limitTcheke sou yo ak soumèt plis yon fwa yon fini.
502Jeneratè a refize travay la. Pa gen anyen chaje si founisè a chaje pou li.
503Videyo pa ka livrezon oswa sove kounye a (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);

Tèks nan pale

Li lèt tèks nan wout la ak retire dosye a odyo tèt li, pa yon lyen. Li se OpenAI nan tèks Endpoint, se konsa audio.speech.create nan OpenAI SDKs travay.

POST https://nymbot.ai/api/v1/audio/speech — bezwen yon kle API, oswa Yon Lightning peman sou demann.

ZònKi janRechèchDeskripsyon
modelString nanpaYon modèl pale soti nan List la nan modèl odyo. default: vwa a estanda, @cf/myshell-ai/melotts. aura-2 se Deepgram Aura 2.
inputString nanWiTèks yo li: jiska 800 karakter pou vwa estanda, 2,000 pou Aura 2.
voiceString nanpaYon id vwa soti nan Liste nan vwa: yon speaker Aura tankou luna (Ou nan aura-2-luna-en), oswa yon lang MeloTTS (en, es, fr, zh). OpenAI non vwa tankou alloy yo aksepte ak bay vòt la default nan modèl la.
languageString nanpaYon kòd lang tankou esPa gen yon vwa, li chwazi youn pou lang sa a. Yon vwa ki pale yon lòt lang retire 422 voice_language_mismatch, ak yon lang ki modèl la pa gen yon vwa pou 422 unsupported_language.
response_formatString nanpaRetounen nan vòt la estanda mp3 Aura 2 se tounen mp3 (pou yon defèt) opus, aac, flac, wav ou pcm.
speedNimewopaTe aksepte ak ignore.

Vwa a estanda koute yon plat 3 kredi estanda (30 sats) pou chak demann, tankou nan app la. Aura 2 se Pro, pri pa karaktè yo ou voye. Kò a reponn se odyo a, ak yon korespondan Content-Type; pri a se nan X-Nymbot-Cost-Sats header. Si modèl la pale defèt, pa gen anyen chaje.

Reply

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

(audio bytes)
Status nanKòm
400Pa gen okenn entwodiksyon; entwodiksyon sou limit nan modèl la (input_too_long); yon fòma modèl pa ka pwodwi (unsupported_response_format); yon vwa inik (invalid_voice); yon modèl ki pa se yon modèl pale (invalid_model).
422Vòt la pa pale lang la bay, oswa modèl la pa gen yon vòt pou li.
502Modèl la nan pale kache. Pa gen anyen peye.

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

Modèl odyo ak vwa

Dwa lis piblik pou chwazi yon modèl pale ak vwa, oswa yon modèl transkripsyon. Gen 41 Aura 2 moun ki pale angle ak kat lang MeloTTS.

GET https://nymbot.ai/api/v1/audio/models Pa gen okenn kle bezwen.

GET https://nymbot.ai/api/v1/audio/voices?language=en Pa gen okenn kle bezwen.

ZònKi janRechèchDeskripsyon
languageRègleman nan (Query)paSe sèlman vwa pou lang sa a.
modelRègleman nan (Query)paSe sèlman vwa pou modèl sa a.

Reply (vòt yo)

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

Modèl lis repons {"object": "list", "data": {"tts": […], "stt": […]}}Tout modèl pale bay balans li yo, pri, max_input_chars, response_formats, languages epi default_voice; modèl la transkripsyon bay alyans li yo, max_file_bytes, max_seconds, fòma ak pri pou chak minit.

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

Diskisyon nan tèks

Konvèti yon anrejistreman nan tèks ak Whisper. Sa a se OpenAI a transkripsyon Endpoint, se konsa audio.transcriptions.create travay nan.

POST https://nymbot.ai/api/v1/audio/transcriptions — bezwen yon kle API, oswa Yon Lightning peman sou demannCorps la se multipart/form-data.

ZònKi janRechèchDeskripsyon
fileDosyeWiEnskripsyon an, soti nan 256 byte a 25 MB ak jiska 30 minit: WAV, WebM, MP4 oswa M4A, Ogg oswa Opus, MP3 ak lòt fòma Whisper li. MP3 ak lòt fòma ki longè yo pa ka li louvri nan devan yo limite nan 1.8 MB.
modelString nanpapafè whisper, ki se Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo epi @cf/openai/whisper-large-v3-turbo vle di menm bagay la.
languageString nanpase lang la pale, tankou enDetekte si te kite deyò.
promptString nanpaPawòl oswa ortografik pou espere, tankou non. Se sèlman premye 1000 karaktè yo itilize.
response_formatString nanpajson (pou yon defèt) text, srt, vtt ou verbose_json.

Pou dosye WAV, WebM, MP4 ak Ogg, longè a se li soti nan dosye a anvan anyen kouri, se konsa yon anrejistreman plis pase 30 minit refize nan devan (ak 3 sekondè 'grati). Longè a nan yon dosye WAV vini nan vitès echantiyon li yo, chanèl yo ak gwosè echantiyon. Longè a nan lòt fòma, tankou MP3, pa ka li dwe li nan devan, se konsa yo limite nan gwosè: nan pi ba bitrate Nymbot asume, 8 kbps, 30 minit se 1.8 MB, ak yon dosye pi gwo nan fòma sa a refize ak 413 audio_too_long voye enskripsyon pi long tankou WAV, WebM, MP4 oswa Ogg. Si Whisper Lè sa a rapòte plis pase 30 minit, demann an se refize ak 413 audio_too_long, ak depi Whisper te kouri, 30 minit yo chaje.

Ou peye pou longè a nan odyo a, aranjman jiska dezyèm: pi long nan longè a li soti nan dosye a, longè a rapòte Whisper, ak pi piti gwosè a dosye a pèmèt, nan pri a per-minit nan Whisper a ak frè a nòmal ak marje, ak omwen 0.05 kredi yon demann. Li se peye soti nan balans la estanda lè sa a ka kouvri kenbe, ak soti nan Pro anyen; 402 bay sa ki chak balans ta bezwen. Nan aplikasyon an, transkripsyon yon mesaj vwa ka gratis; sou API a li se toujou chaje. Si Whisper échoue, pa gen anyen chaje.

Reply

{
  "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 Retire tèks klè, srt epi vtt Retour sous tit, ak verbose_json ajoute lang, tanperati ak segman timed. Pou twa ki pa JSON, pri a se nan tèt yo.

Status nanKòm
400Pa gen okenn dosye, yon dosye ki pa gen okenn odyo itilize (invalid_audio), yon fòma pa konnen, oswa yon modèl ki pa se yon modèl transkripsyon (invalid_model).
402Epitou balans pa ka kouvri li.
413Dosye a se plis pase 25 MB (file_too_large) oswa anrejistreman nan plis pase 30 minit, oswa, nan yon fòma ki longè yo pa ka li louvri tèt ou, plis pase 1,8 MB (audio_too_long).
502Soumèt pa te kapab pwosesis odyo. Pa gen anyen chaje.

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

Tradiksyon nan lang angle

POST https://nymbot.ai/api/v1/audio/translations — bezwen yon kle API, oswa Yon Lightning peman sou demannCorps la se multipart/form-data.

menm jan ak transkripsyon, ak menm jaden an nan language, limit ak pri, men tèks la vin tounen nan lang angle nenpòt ki lang te pale. OpenAI SDK yo rele li ak 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);

entwodiksyon

Konvèti tèks nan vèktè pou rechèch, klasman ak deduplikasyon. Modèl yo kouri sou Cloudflare ak pase balans la estanda.

POST https://nymbot.ai/api/v1/embeddings — bezwen yon kle API, oswa Yon Lightning peman sou demann.

ZònKi janRechèchDeskripsyon
modelString nanWiYon modèl embedded soti nan GET /api/v1/models?type=embedding.
inputstring oswa array nan stringsWiYon tèks entegre, jiska 100 strings ki pa vè. Yon seri token refize (token_input_unsupported). Chak entwodiksyon dwe koresponn ak modèl la context_length, konsidere kòm apeprè 4 byte pou yon token.
encoding_formatString nanpafloat (ki se default la) oswa base64 (Little-endian 32-bit flòt yo).
dimensionsEntegrepaModel la nan gwosè pwòp ou, oswa pou yon modèl ak supported_dimensions youn nan sa yo; vektè a se Lè sa a abbrevi ak normalize. Tout lòt bagay se refize.
ModèlDimansyonKonteks
@cf/baai/bge-m31024, plizyè lang8,192 token yo
@cf/qwen/qwen3-embedding-0.6b1024, plizyè lang8,192 token yo
@cf/baai/bge-large-en-v1.51024, Angletè512 tèkstur
@cf/baai/bge-base-en-v1.5768, Angletè512 tèkstur
@cf/baai/bge-small-en-v1.5384 Angletè512 tèkstur

List la modèl se sous a nan verite pou ki yo disponib ak ki sa yo koute; Google a EmbeddingGemma, ak vètikulè pi kout sou demann, ap parèt isit la tou lè kataloz la gen yon pri pou li. Enbalaj yo mete pou chak token envantè, ak minimòm la 0.05 kredi aplike pou chak demann, pa pou chak envantè, se konsa batch anpil tèks nan yon sèl demann se anpil pi bon mache pase voye yo yon sèl nan yon fwa.

Reply

{
  "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 nanKòm
400Pa gen okenn antrepriz oswa yon sèl vid; token arè (token_input_unsupported); plis pase 100 entwodiksyon (too_many_inputs); envantè ki pi long pase modèl la pran (input_too_long); yon gwosè modèl pa ka bay (unsupported_dimensions).
402balans estanda se trè ba. Embeddings pa janm sèvi ak balans la Pro.
404Pa gen yon modèl embedded pa non sa a.
502Modèl la te default. Pa gen anyen peye.

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