Batayan ng kaalaman mga developer
Mga imahe, audio at mga embeddings
Ang mga generator mula sa app, at ang mga building blocks para sa paghahanap: pictures, video, speech, transcription at embeddings, ang bawat isa ay inilathala sa bawat paggamit mula sa iyong balance.
Ang pahinang ito ay isinalin sa makina para sa kaginhawahan. Ang orihinal na Ingles ay ang bersyon na naaangkop.
Paggawa ng Images
Makakakuha ng 1 hanggang 4 mga imahe mula sa isang prompt at i-return ang mga ito kapag ang mga ito ay ginawa. Ito ay ang parehong set ng generators tulad ng ?image sa pamamagitan ng app.
POST https://nymbot.ai/api/v1/images/generations — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng request.
Ang mga ito ay mula sa GET /api/v1/models?type=imageAng mga generator,
@cf/black-forest-labs/flux-1-schnell, ay nagkakahalaga ng isang flat 5 standard credits (50 sats) isang picture. Ang bawat iba pang generator ay gumagamit ng Pro credits sa kanyang sarili na presyo, na may karaniwang bayaran at margin, tulad ng ang app. n Bilang ng mga gastos
n A field a generator does not take is dropped rather than rejected; ang standard generator ay gumagamit lamang ang prompt.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
model | ang string | Oo | Ang isang generator id, tulad ng nano-banana. |
prompt | ang string | Oo | Ano ang upang i-draw? lamang ang unang 2,000 character ay ginagamit. |
n | ang integer | Hindi | 1 sa 4.Default 1.Ako rin ay nakatuon bilang num_images. |
size | ang string | Hindi | Ang isang aspeto ratio ay tulad ng "16:9"o magkakaiba ng isang openAI size tulad ng "1792x1024", na kung saan ay mas malapit sa 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 at 4:5. "auto" Pumunta ito sa generator. |
aspect_ratio | ang string | Hindi | Ang parehong sizeKung ikaw ay nagkakahalaga, ikaw ay nagkakahalaga ng dalawang. |
quality | ang string | Hindi | Ang mga generator, tulad ng "low", "medium" o sa "high". |
negative_prompt | ang string | Hindi | Ano ang ibig sabihin sa out. |
output_format | ang string | Hindi | "png", "jpeg" o sa "webp". |
response_format | ang string | Hindi | "url" (Ang pagbabago) o "b64_json". |
image_url | ang string | Hindi | Ang mga imahe ay nagsisimula sa: a https:// ang link ng higit sa 4,096 character na walang user name o password sa kanya, o isang data:image/…;base64 URL (PNG, JPEG, WebP o GIF; hindi SVG). Iba para sa mga generator na may editAng mga kailangan ng mga requires_image_url. |
resolution hindi ginagamit: ang bawat generator ay gumagawa ng kanyang sarili. url, ang bawat imahe ay i-upload sa isang public Blossom host at makakuha ka ng kanyang link (ang ilang mga generator lamang nag-aalok ng isang link ng kanilang sarili, na ay inilathala). Ang mga taong may link ay maaaring i-open ito at ito ay hindi maaaring i-download din; tingnan ang Ano ang dapat makita ng Fireat sa
b64_json ang larawan ay bumalik sa reaksyon at hindi mai-upload. Ang isang larawan ay ibinigay bilang isang data: ang url image_url Ito ay tinatanggap ng sama-sama na isang
ang edit at i-upload sa Blossom na unang upang ang generator ay maaaring i-recover ito; ito ay i-delete din kung ang request ay hindi dischargeed.
Kung ang ilang mga n ang mga imahe ay batay, ikaw ay makakuha ng mga na nagtatrabaho, ay naka-charge lamang para sa mga (plus ang anumang provider na naka-charge maliban sa pag-aralan), at nymbot.failed Kung ang lahat ng mga ito ay hindi gumagamit, ang mga ito ay hindi gumagamit para sa pagbutihin. 502.
Reaksiyon
{
"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 ng | kapag |
|---|---|
400 | Huwag mag-alala; n 1 sa 4 (invalid_valueMaaring gumawa ng anotasyon (invalid_sizeMaaring gumawa ng anotasyon (invalid_image, invalid_image_url); isang modelo na ginagamit ngunit hindi isang generator ng imahe (invalid_model); isang larawan para sa isang generator na hindi maaaring i-edit (edit_unsupported(Hindi ko alam kung ano ang kailangan ko)image_required). |
402 | Ang balanse ay hindi makukuha ng lahat ng mga larawan na kinakailangan. |
404 | Walang modelo sa pangalan na ito (model_not_found). |
502 | nagtatapos sa tuldok (upstream_errorWalang pag-aalala kung hindi na-aalala ang mga taong nag-aalala; pagkatapos ay mag-aalala ang error. charged_sats. |
503 | Ang mga imahe ay hindi maaaring mag-host sa ngayon (media_hosting_unavailable). b64_json Ngayon ay gumagana. |
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);
Pag-edit ng Images
Ibalik ang isang imahe na i-upload mo, sumunod sa isang prompt. Ito ay ang edit endpoint ng OpenAI, kaya ang OpenAI SDKs' images.edit Ang mga generator na ito ay may mga generator na edit sa listahan ng modelo ay tumatanggap ito.
POST https://nymbot.ai/api/v1/images/edits — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng requestAng katawan ay multipart/form-dataSa loob ng 32 MB.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
image | ang file | Oo | Ang imahe upang i-edit: PNG, JPEG, WebP o GIF, hanggang sa 20 MB. image[]Ang unang ito ay ginagamit. |
prompt | ang string | Oo | Ano ang changing. |
model | ang string | Oo | Ang isang generator ay edit. |
n | ang integer | Hindi | 1 sa 4 |
sizeaspect_ratioqualitynegative_promptoutput_format | ang string | Hindi | sa pamamagitan ng Generation. |
response_format | ang string | Hindi | "b64_json" (Ang default dito) o "url". |
Ang imahe na i-upload mo ay i-check na ito ay isang well-formed PNG, JPEG, WebP o GIF, i-send sa bilang ang kanyang tunay na uri, at i-send sa isang public Blossom host, dahil ang mga generator i-pick ang kanilang input sa pamamagitan ng link. I-treat ito bilang public. Kung ang pag-edit ay nangangailangan at walang pag-charge, ang hosted copy ay i-delete din. Ang pag-response ay may parehong shape na para sa generator. Ang presyo ay ang presyo ng generator, na para sa ilang generators ay naglalaman ng isang bayad para sa input picture.
Reaksiyon
{
"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 ng | kapag |
|---|---|
400 | Walang imahe o prompt, isang file na hindi isang imahe (invalid_image), o isang generator na hindi maaaring edit (edit_unsupported). |
413 | Ang larawan ay higit sa 20 MB (file_too_large), o ang buong request ng higit sa 32 MB. |
503 | Huwag kang gagaw ng pasiya na nagmamadali (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"));
ang video
Ang isang video ay nangangailangan ng ilang minuto, kaya ito ay gumagana sa background. I-submit ito, makakuha ng isang id ngayong araw, at magtanong tungkol sa id hanggang ito ay dumating.
POST https://nymbot.ai/api/v1/videos — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng requestPagbalik 202.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
model | ang string | Oo | Ang isang video generator id mula sa GET /api/v1/models?type=video, tulad ng veo. |
prompt | ang string | Oo | Ano ang dapat gawin. |
duration | Mga numero o string | Hindi | Panatilihin ang pagpapatala para sa isang minimum na dalawang magkasunod na semestre. seconds sa reaksyon at ang presyo ay sumusunod. |
aspect_ratio | ang string | Hindi | tulad ng "16:9" o sa "9:16"Ang isang size ay tulad ng "1280x720" Ito ay ang pinakamataas na ratio. |
resolutionquality | ang string | Hindi | Ang isang generator ay resolutions sa listahan ng mga modelo, tulad ng "720p" o sa "1080p"Ito ay nagtatag ng presyo. Ang lahat ng iba ay inihayag sa unsupported_resolution. |
image_url | ang string | Hindi | Ang mga imahe ay nagsisimula sa: a https:// ang link na a data:image/… URL, na inilabas sa isang public Blossom host unang. Kailangan ng mga generator na may requires_image_url. |
Ang presyo ay matatagpuan kapag inilathala mo, mula sa generator, resolusyon at length, kaya ito ay inirerekomenda mula sa iyong Pro balance kapag ang provider ay sumali ng trabaho, at inihayag bilang
cost, estimated_cost at nymbotKung ang provider ay humihingi ng trabaho, walang karagdagang karagdagang. Kung ang rendering pagkatapos ay humihingi, o ang nakalipas na clip ay hindi maaaring i-save at ang provider ay hindi na-faktura para sa kanya, ang karagdagang ay i-reimbursado ng isang beses, automatically. Ang isang rendering na ay patuloy pagkatapos ng isang oras ay inihahanda, at matatagpuan ang kanyang karagdagang, dahil ang provider ay inihayag ng isang render kapag ito ay nakuha ito. Ang isang refund ay i-returns ang mga credits ngunit ay hindi humihingi ng key's spending count.
Mga pahinang tumuturo (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 Nagsimula ang in_progresso sa completed Sa video na ngayon ay data Kapag bumalik na ang generator, ipatupad ito.
Tingnan ang isang video
GET https://nymbot.ai/api/v1/videos/{id} - kailangan ng isang key na may pangyayari sa nym na inilathala ito. Ang isang key na nakukuha ng kanyang cap ay maaaring mag-check.
Ang mga response 202 Kapag ang video ay ginawa at 200 kapag ito ay dumating o ay nangangailangan. Ask every 5 to 10 seconds. Each check asks the provider once and answers at pagkatapos; it never waits for the video. A job is kept for 24 hours after it was submitted.
GET /api/v1/videos I-list ang last 50 jobs ng key bilang
{"object": "list", "data": […]}.
ang napili ng mga taga-hanga:
{
"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 ay in_progress, completed o sa failedAng isang failed job carries error ({"code": "generation_failed", "message": …}Kapag bumalik na siya, cost ang 0 at nymbot ang adds
refunded_credits at refunded_satsAng nakalipas na video ay sa isang public Blossom host, tulad ng mga imahe.
| Status ng | kapag |
|---|---|
400 | Walang prompt; isang durasyon sa loob ng 0 hanggang 60 (invalid_value); isang resolution na ang generator ay hindi nag-aalok (unsupported_resolution); walang larawan para sa isang generator na kinakailangan ng isang (image_required); isang modelo na hindi isang video generator (invalid_model). |
402 | Ang Pro balance ay hindi makukuha ng video. |
404 | Huwag dry sa banyo (model_not_found), o walang trabaho sa pamamagitan ng id na ito para sa iyong nym, o ito ay higit sa 24 oras na (video_not_found). |
429 | Ang iyong nym na ngayon ay may 10 mga video rendering (video_jobs_limitTingnan ang mga ito at i-submit ang higit sa isang beses sa isang taon. |
502 | Ang generator ay nangangahulugang ang trabaho. Walang karagdagang karagdagang kung ang provider ay naka-charge para sa ito. |
503 | Ang mga imahe kasama sa loob ng file (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);
Text sa pamamagitan ng speech
I-read text at i-return ang audio file na ito, hindi isang link. Ito ay ang OpenAI's speech endpoint, kaya audio.speech.create sa mga OpenAI SDKs ay gumagana.
POST https://nymbot.ai/api/v1/audio/speech — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng request.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
model | ang string | Hindi | Ang isang speech model mula sa Listahan ng mga Audio ModelAng default ay ang standard voice. @cf/myshell-ai/melotts. aura-2 Ipinanganak ang Deepgram Aura 2. |
input | ang string | Oo | Ang teksto na ibinigay: hanggang sa 800 character para sa standard voice, 2,000 para sa Aura 2. |
voice | ang string | Hindi | isang voice id mula sa ang listahan ng voices: isang Aura speaker tulad ng luna (Ang aura-2-luna-enMga pahinang tumuturo (en, es, fr, zhOpenAI voice names tulad ng alloy ang mga ito at magbibigay ng default voice ng modelo. |
language | ang string | Hindi | Ang isang language code ay esKung walang isang salita, ito ay piliin ang isa para sa anumang wika. Ang isang salita na nagsasalita ng isang iba pang wika ay bumalik 422 voice_language_mismatch, at isang wika na ang modelo ay walang balita para sa 422 unsupported_language. |
response_format | ang string | Hindi | Ibalik ang Standard Voice mp3 Aura 2 ay bumalik mp3 (Ang mga sumusunod ay opus, aac, flac, wav o sa pcm. |
speed | ang number | Hindi | Nakalimutan at ignorado ang |
Ang standard voice ay nagkakahalaga ng isang flat 3 standard credits (30 sats) isang request, tulad ng sa app. Aura 2 ay Pro, na-priced sa pamamagitan ng mga character na ibinigay mo.
Content-TypeAng gastos ay sa X-Nymbot-Cost-Sats If the speech model fails, walang charge.
Reaksiyon
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Status ng | kapag |
|---|---|
400 | Walang input; input sa ibabaw ng limitasyon ng modelo (input_too_long); isang format na ang modelo ay hindi maaaring lumikha (unsupported_response_formatang napili ng mga taga-hanga: Unknown (invalid_voiceAng mga ito ay hindi tulad ng isang model (invalid_model). |
422 | Ang salita ay hindi nagsasalita ang wika na ibinigay, o ang modelo ay walang salita para sa kanya. |
502 | Ang modelo ng pag-uusap ay nangangahulugan. walang karapatan. |
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 mga modelo at mga voices
Dalawang public na mga listahan para sa pagpilit ng isang modelo ng salita at mga salita, o isang transcription model. Mayroong 41 Aura 2 English speakers at 4 MeloTTS languages.
GET https://nymbot.ai/api/v1/audio/models Hindi kailangan ng key.
GET https://nymbot.ai/api/v1/audio/voices?language=en Hindi kailangan ng key.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
language | Mga Tiket sa Paglipad ( | Hindi | Ang mga sumusunod lamang para sa mga ito. |
model | Mga Tiket sa Paglipad ( | Hindi | Ang mga ito lamang para sa modelo. |
nagtatapos sa tuldok (
{
"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 }
]
}
Mga modelo sa listahan ng mga solusyon {"object": "list", "data": {"tts": […], "stt": […]}}Ang bawat modelo ng pag-uusap ay nagbibigay ng kanyang balanse, presyo, max_input_chars,
response_formats, languages at default_voice· ang transcription model ay nagbibigay ng mga aliases, max_file_bytes, max_seconds, format at presyo sa bawat minuto.
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);
Tungkol sa Text
Ibalik ang isang pag-record sa teksto gamit ang Whisper. Ito ang transcription endpoint ng OpenAI, kaya
audio.transcriptions.create ang trabaho.
POST https://nymbot.ai/api/v1/audio/transcriptions — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng requestAng katawan ay multipart/form-data.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
file | ang file | Oo | Ang pag-record, mula sa 256 bytes sa 25 MB at hanggang sa 30 minuto: WAV, WebM, MP4 o M4A, Ogg o Opus, MP3 at ang iba pang mga format Whisper reads. |
model | ang string | Hindi | ang defect whisperAng mga ito ay ang Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo at @cf/openai/whisper-large-v3-turbo Siguro ang parehong. |
language | ang string | Hindi | Ang mga wika, tulad ng enMag-detect kung ikaw ay out. |
prompt | ang string | Hindi | Ang mga salita o spelling ay dapat mong mag-atubiling, tulad ng mga pangalan. Ang mga unang 1,000 character lamang ay ginagamit. |
response_format | ang string | Hindi | json (Ang mga sumusunod ay text, srt, vtt o sa verbose_json. |
Para sa WAV, WebM, MP4 at Ogg file ang length ay inilathala mula sa file bago ang anumang ginagawa, kaya ang isang pag-record ng higit sa 30 minuto ay inilathala up front (sa 3 segundo' grace). Ang length ng isang WAV file ay dumating mula sa kanyang sample rate, mga channel at sample size. Ang length ng iba pang mga format, tulad ng MP3, ay hindi maaaring inilathala up front, kaya sila ay limitado sa size: sa mas mababang bitrate Nymbot ay sumulat, 8 kbps, 30 minuto ay 1.8 MB, at isang mas mataas na file sa format na ito ay inilathala sa 413
audio_too_long Magpadala ng mas mahabang mga recordings tulad ng WAV, WebM, MP4 o Ogg. Kung ang Whisper pagkatapos ay nag-report ng higit sa 30 minuto kahit na, ang request ay inihayag sa pamamagitan ng
413 audio_too_long, at dahil ang Whisper ay dumating, 30 minuto ay naka-charge.
Maaari mong bayaran para sa length ng audio, rounded up to the second: ang pinakamalaking ng length read mula sa file, ang length Whisper reports, at ang pinakamalaking size ng file ay nagbibigay-daan, sa Whisper's per-minute na presyo na may ang karaniwang fee at margin, at hindi bababa sa 0.05 credit a request. It's paid from the standard balance when that can cover the hold, and from Pro otherwise; 402 Nagbibigay ang kung ano ang kailangan ng bawat balanse. Sa app, ang pag-transcript ng isang voice message ay maaaring libre; sa API ito ay karaniwang na-charge. Kung ang Whisper ay hindi kailangang, walang pag-charge.
Reaksiyon
{
"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 Ibalik ang mga teksto, srt at vtt Ibalik ang mga subtitles, at
verbose_json Ipasok ang language, duration at timed segments. Para sa tatlong na hindi JSON, ang gastos ay sa mga headers.
| Status ng | kapag |
|---|---|
400 | Walang file, isang file na walang usable audio (invalid_audioAng maliliit na negosyo sa mga sumusunod na sektor ay kinakailangan (invalid_model). |
402 | Walang balanse ay maaaring mapupunta ito. |
413 | Ang file ay higit sa 25 MB (file_too_largeAng mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod na mga sumusunod (audio_too_long). |
502 | Hindi ko alam kung ano ang dapat gawin ng audio, hindi ko alam. |
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);
Translated sa English
POST https://nymbot.ai/api/v1/audio/translations — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng requestAng katawan ay multipart/form-data.
Samakatuwid na ang transcription, na may parehong mga fields sa pagitan ng language, limitasyon at presyo, ngunit ang teksto ay bumalik sa Ingles kung saan ang wika ay nagsasalita. 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);
Mga Embedded
I-convert text sa vectors para sa paghahanap, clustering at deduplication. Ang mga modelo ay gumagana sa Cloudflare at gumagamit ang standard balance.
POST https://nymbot.ai/api/v1/embeddings — kailangan ng isang API key, o Pagbabayad ng Lightning sa pamamagitan ng request.
| ang field | Tipong | Kailangan | ang description |
|---|---|---|---|
model | ang string | Oo | Ang isang model na mula sa GET /api/v1/models?type=embedding. |
input | ang string o array ng strings | Oo | Pumili ng kategorya, gaya ng mga gasolinahan o grocery store, o maghanap ng partikular na uri ng lugar. (token_input_unsupportedAng bawat input ay dapat matugunan sa modelo context_lengthAng mga ito ay tungkol sa 4 bytes ng isang token. |
encoding_format | ang string | Hindi | float (Ang pagbabago) o base64 (Ang iba pang 32-bit floats) |
dimensions | ang integer | Hindi | Ang modelo ng sarili, o para sa isang modelo na may supported_dimensions Ang mga ito ay nagtatagumpay at normalized, at ang lahat ng bagay ay hindi. |
| ang model | Mga Dimensyon | ang konteksto |
|---|---|---|
@cf/baai/bge-m3 | 1024, maraming mga wika | 8,192 mga token |
@cf/qwen/qwen3-embedding-0.6b | 1024, maraming mga wika | 8,192 mga token |
@cf/baai/bge-large-en-v1.5 | 1024 sa English | 512 Mga pahinang |
@cf/baai/bge-base-en-v1.5 | 788 sa English | 512 Mga pahinang |
@cf/baai/bge-small-en-v1.5 | 384 sa English | 512 Mga pahinang |
Ang listahan ng mga modelo ay ang kilala ng katotohanan para sa kung ano ang magagamit at kung ano ang mga ito ay nagkakahalaga; ang EmbeddingGemma ng Google, na may mas mababang vector sa pag-aari, ay matatagpuan dito din kapag ang catalog ay may isang presyo para sa kanya.
Reaksiyon
{
"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 ng | kapag |
|---|---|
400 | Huwag kang gagaw ng pasiya na nagmamadali. ipatupad ito at ipatupad ito.token_input_unsupported(Pero sa loob ng isang taon na ang nakalipas)too_many_inputs); ang input ay higit sa ang modelo ay gumagamit (input_too_long(Hindi ko alam kung ano ang ibig sabihin ng modelo)unsupported_dimensions). |
402 | Ang standard balance ay mas mababang. Ang mga embeddings ay hindi gumagamit ng Pro balance. |
404 | Walang model sa pangalan na ito. |
502 | Ang modelo ay nangangahulugang. walang charge. |
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);