Pangkalan pengetahuan Pengembang
imej, audio dan embeddings
Generator dari aplikasi, dan blok bangunan untuk carian: imej, video, ucapan, transkrip dan embeddings, masing-masing dikira per penggunaan daripada baki anda.
Halaman ini diterjemahkan mesin untuk kemudahan. Versi asal bahasa Inggeris ialah versi yang digunakan.
Menghasilkan imej
Menghasilkan satu hingga empat imej daripada prompt dan mengembalikan mereka apabila mereka selesai. ?image dalam aplikasi tersebut.
POST https://nymbot.ai/api/v1/images/generations memerlukan kunci API, atau Pembayaran Lightning mengikut permintaan.
IDS berasal daripada GET /api/v1/models?type=imagedaripada generator standard,
@cf/black-forest-labs/flux-1-schnell, kos rata 5 kredit standard (50 sats) satu imej. Setiap generator lain menghabiskan kredit Pro pada harga sendiri, dengan yuran biasa dan margin, seperti dalam daripada app. n imej kos
n Satu medan yang tidak diambil oleh generator ditinggalkan bukannya ditolak; generator standard hanya menggunakan prompt.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
model | String yang | ya | Sebuah pengeluar id, seperti nano-banana. |
prompt | String yang | ya | Apa yang perlu dicatatkan? hanya 2,000 watak pertama yang digunakan. |
n | Integra | Tidak | 1 hingga 4. Default 1. juga diterima sebagai num_images. |
size | String yang | Tidak | Antara aspek-aspek seperti "16:9", atau saiz OpenAI seperti "1792x1024", yang menjadi yang terdekat daripada 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 dan 4:5. "auto" Masukkan ke dalam generator. |
aspect_ratio | String yang | Tidak | Sama seperti sizedan menang jika kedua-duanya dihantar. |
quality | String yang | Tidak | Generator-spesifik seperti "low", "medium" atau "high". |
negative_prompt | String yang | Tidak | Apa yang boleh ditinggalkan. |
output_format | String yang | Tidak | "png", "jpeg" atau "webp". |
response_format | String yang | Tidak | "url" (Perkara yang telah ditetapkan) atau "b64_json". |
image_url | String yang | Tidak | Gambar untuk dimulakan dengan: a https:// link yang mempunyai maksimum 4,096 watak tanpa nama pengguna atau kata laluan di dalamnya, atau data:image/…;base64 URL (PNG, JPEG, WebP atau GIF; bukan SVG). edityang dikehendaki oleh mereka yang mempunyai requires_image_url. |
resolution tidak digunakan: setiap generator membuat saiznya sendiri. url, setiap imej dimuat naik ke tuan Blossom awam dan anda mendapat pautan (beberapa generator hanya menghantar balik pautan mereka sendiri, yang dihantar). sesiapa sahaja yang mempunyai pautan boleh membukanya dan ia tidak boleh diambil semula; lihat Apa yang boleh dilihat oleh apiDengan
b64_json imej dikembalikan dalam jawapan dan tidak pernah dimuat naik. data: url dalam image_url diperiksa dengan cara yang sama seperti
edit dan dimuat naik ke Blossom terlebih dahulu supaya generator boleh mengambilnya; ia dipadamkan lagi jika permintaan gagal dibebankan.
Jika sesetengah daripada n gambar gagal, anda mendapat yang bekerja, dikenakan bayaran hanya untuk mereka (plus apa-apa pembekal dikenakan bayaran walaupun gagal), dan nymbot.failed menunjukkan berapa ramai yang hilang.Jika semua gagal, permintaan dikembalikan 502.
Jawapan
{
"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 | bila |
|---|---|
400 | Tiada kecemasan n 1 daripada 4 (invalid_valuePerkara yang tidak baik (invalid_size) atau imej (invalid_image, invalid_image_url); model yang wujud tetapi bukan generator imej (invalid_model); imej untuk generator yang tidak boleh mengedit (edit_unsupported); tiada imej untuk seseorang yang memerlukan ia (image_required). |
402 | Keseimbangan tidak boleh meliputi setiap imej yang diminta. |
404 | Tiada model dengan nama itu (model_not_found). |
502 | Perkhidmatan yang tidak berjaya (upstream_errorTiada apa-apa yang dikenakan bayaran kecuali pembekal dikenakan bayaran untuk percubaan; kemudian kesilapan telah charged_sats. |
503 | Gambar tidak boleh dihoskan pada masa ini (media_hosting_unavailable). b64_json masih berfungsi |
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);
Mengedit imej
Mengubah imej yang anda muat naik, mengikut petunjuk.Ini ialah titik akhir edit OpenAI, jadi OpenAI SDK ' images.edit berfungsi seperti itu. hanya generator Pro dengan edit dalam senarai model diterima.
POST https://nymbot.ai/api/v1/images/edits memerlukan kunci API, atau Pembayaran Lightning mengikut permintaanBadan itu ialah multipart/form-datasehingga 32 MB.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
image | fail | ya | Imej untuk diedit: PNG, JPEG, WebP atau GIF, sehingga 20 MB. image[]yang pertama digunakan. |
prompt | String yang | ya | Apa yang boleh berubah. |
model | String yang | ya | Generator dengan edit. |
n | Integra | Tidak | 1 daripada 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | String yang | Tidak | kepada generasi yang lain. |
response_format | String yang | Tidak | "b64_json" (sesuai di sini) atau "url". |
Imej yang anda muat naik disemak untuk menjadi PNG, JPEG, WebP atau GIF yang dibentuk dengan baik, dihantar sebagai jenis sebenar, dan diletakkan pada host Blossom awam, kerana generator mengambil input mereka melalui pautan. Perlakukan ia sebagai awam. Sekiranya pengeditan gagal dan tiada apa-apa yang dikenakan, salinan yang dihoskan dipadamkan lagi. Respon mempunyai bentuk yang sama seperti untuk generator. Harga adalah harga generator, yang bagi beberapa generator termasuk bayaran untuk imej input.
Jawapan
{
"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 | bila |
|---|---|
400 | Tiada imej atau prompt, fail yang bukan imej (invalid_image) atau generator yang tidak boleh edit (edit_unsupported). |
413 | imej lebih daripada 20 MB (file_too_large), atau seluruh permintaan lebih daripada 32 MB. |
503 | Gambar ini tidak boleh dihoskan pada masa ini (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 yang
Video mengambil masa beberapa minit, jadi ia berjalan di latar belakang. anda menghantarnya, mendapatkan id segera, dan bertanya tentang id sehingga ia selesai.
POST https://nymbot.ai/api/v1/videos memerlukan kunci API, atau Pembayaran Lightning mengikut permintaanKembali 202.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
model | String yang | ya | pengeluar video id daripada GET /api/v1/models?type=videoSeperti yang veo. |
prompt | String yang | ya | Apa yang perlu berlaku. |
duration | Nombor atau string | Tidak | Panjang dalam saat, lebih daripada 0 dan sehingga 60. Digunakan hanya oleh generator yang membolehkan anda memilih panjang; yang lain membuat panjang biasa mereka, yang seconds dalam jawapan dan harga mengikut. |
aspect_ratio | String yang | Tidak | Seperti yang "16:9" atau "9:16"· Ukuran seperti "1280x720" menjadi perbandingan terdekat. |
resolutionquality | String yang | Tidak | Salah satu daripada generator resolutions Dalam senarai model, seperti "720p" atau "1080p"Ia menetapkan harga. apa-apa yang lain ditolak dengan unsupported_resolution. |
image_url | String yang | Tidak | Gambar untuk dimulakan dengan: a https:// link atau a data:image/… URL, yang dimuat naik ke host Blossom awam terlebih dahulu. Diperlukan oleh generator dengan requires_image_url. |
Harga adalah tetap apabila anda menyerahkan, daripada generator, resolusi dan panjang, jadi ia dikenakan dari baki Pro anda sebaik sahaja pembekal menerima kerja, dan ditunjukkan sebagai
cost, estimated_cost dan nymbotSekiranya pembekal menolak kerja, tiada apa-apa yang dikenakan bayaran.Jika rendering kemudian gagal, atau klip selesai tidak boleh disimpan dan pembekal tidak menghitungnya, bayaran dikembalikan sekali, secara automatik.Rendering yang masih berlaku selepas satu jam ditinggalkan, dan mengekalkan bayaran, kerana pembekal menghitung render apabila ia diterima.Restituti mengembalikan kredit tetapi tidak mengurangkan bilangan pengeluaran kunci.
Penyelesaian (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 bermula sebagai in_progressatau completed Video ini telah di data apabila generator mengembalikannya serta-merta.
Melihat dalam video
GET https://nymbot.ai/api/v1/videos/{id} - memerlukan kunci yang dimiliki oleh nym yang menghantarnya. sebuah kunci yang telah mencapai capnya masih boleh cek.
Beliau menjawab 202 Apabila video telah dibuat dan 200 apabila ia selesai atau telah gagal. Tanya setiap 5 hingga 10 saat. Setiap cek bertanya kepada pembekal sekali dan menjawab pada satu masa; ia tidak pernah menunggu untuk video. Pekerjaan disimpan selama 24 jam selepas ia dihantar.
GET /api/v1/videos senarai 50 kerja kunci terakhir sebagai
{"object": "list", "data": […]}.
Penyelesaian (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 ialah in_progress, completed atau failedKerja yang gagal membawa error ({"code": "generation_failed", "message": …}Jika ia telah dikembalikan, cost 0 dan nymbot Tambahan
refunded_credits dan refunded_satsVideo yang selesai berada pada host Blossom awam, seperti imej yang dihasilkan.
| Status | bila |
|---|---|
400 | Tiada prompt; tempoh di luar 0 hingga 60 (invalid_value); resolusi yang generator tidak menawarkan (unsupported_resolution); tiada imej untuk generator yang memerlukan satu (image_required); model yang bukan generator video (invalid_model). |
402 | Keseimbangan Pro tidak boleh menutupi video. |
404 | Tiada jentera seperti ini (model_not_found) atau tiada kerja oleh id itu untuk nym anda, atau ia lebih daripada 24 jam (video_not_found). |
429 | Pihak berkuasa telah mendaftarkan sebanyak 10 buah video (video_jobs_limitPeriksa pada mereka dan menghantar lebih apabila satu selesai. |
502 | Generator menolak kerja.Tiada apa-apa yang dikenakan bayaran kecuali pembekal dikenakan bayaran untuk itu. |
503 | Video tidak boleh dihantar atau disimpan pada masa ini (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);
Teks kepada ucapan
Membaca teks dengan keras dan mengembalikan fail audio itu sendiri, bukan pautan. audio.speech.create dalam OpenAI SDKs berfungsi.
POST https://nymbot.ai/api/v1/audio/speech memerlukan kunci API, atau Pembayaran Lightning mengikut permintaan.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
model | String yang | Tidak | Sebuah model ucapan daripada Senarai model audio• Default : suara standard @cf/myshell-ai/melotts. aura-2 Mempunyai Deepgram Aura 2. |
input | String yang | ya | Teks untuk dibaca: sehingga 800 karakter untuk suara standard, 2,000 untuk Aura 2. |
voice | String yang | Tidak | Suara ID daripada Senarai suara: sebuah speaker aura seperti luna ( atau aura-2-luna-enPerbezaan Bahasa Melayu (en, es, fr, zh) OpenAI nama suara seperti alloy disetujui dan memberikan suara lalai model. |
language | String yang | Tidak | kod bahasa seperti esTanpa suara, ia memilih satu untuk bahasa itu. Suara yang berbicara bahasa lain dikembalikan 422 voice_language_mismatchdan bahasa yang model tidak mempunyai suara untuk 422 unsupported_language. |
response_format | String yang | Tidak | Suara Standard Kembali mp3 Aura 2 Kembali mp3 (Dalam hal yang demikian, opus, aac, flac, wav atau pcm. |
speed | Nombor | Tidak | diterima dan diabaikan. |
Suara standard kos rata 3 kredit standard (30 sats) per permintaan, seperti dalam aplikasi. Aura 2 adalah Pro, dibayar oleh watak-watak yang anda hantar.
Content-Type· Kosnya ialah dalam X-Nymbot-Cost-Sats Jika model ucapan gagal, tiada apa-apa yang dikenakan.
Jawapan
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Status | bila |
|---|---|
400 | Tiada input; input melebihi batas model (input_too_long); format yang model tidak boleh menghasilkan (unsupported_response_format); suara yang tidak dikenali (invalid_voice); sebuah model yang bukan model ucapan (invalid_model). |
422 | Suara tidak berbicara bahasa yang diberikan, atau model tidak mempunyai suara untuk itu. |
502 | Model ucapan gagal.Tiada apa-apa yang dikenakan. |
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()));
Model Audio dan Suara
Dua senarai awam untuk memilih model ucapan dan suara, atau model transkrip.Terdapat 41 penutur Bahasa Inggeris Aura 2 dan empat bahasa MeloTTS.
GET https://nymbot.ai/api/v1/audio/models Tiada kunci yang diperlukan.
GET https://nymbot.ai/api/v1/audio/voices?language=en Tiada kunci yang diperlukan.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
language | Penyelesaian (Query) | Tidak | Hanya suara untuk bahasa ini. |
model | Penyelesaian (Query) | Tidak | Hanya suara untuk model ini. |
Jawapannya ialah (
{
"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 }
]
}
Model senarai jawapan {"object": "list", "data": {"tts": […], "stt": […]}}Setiap model ucapan memberi keseimbangan, harga, max_input_chars,
response_formats, languages dan default_voice· Model transkripsi memberikan aliasnya, max_file_bytes, max_seconds, format dan harga per 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);
Perkataan kepada teks
Mengubah rekod kepada teks dengan Whisper.Ini ialah titik akhir transkripsi OpenAI, jadi
audio.transcriptions.create kerja yang
POST https://nymbot.ai/api/v1/audio/transcriptions memerlukan kunci API, atau Pembayaran Lightning mengikut permintaanBadan itu ialah multipart/form-data.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
file | fail | ya | Rekod, dari 256 byte kepada 25 MB dan sehingga 30 minit: WAV, WebM, MP4 atau M4A, Ogg atau Opus, MP3 dan format lain Whisper membaca. |
model | String yang | Tidak | Kekurangan whisper, yang merupakan Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo dan @cf/openai/whisper-large-v3-turbo bermaksud sama |
language | String yang | Tidak | Bahasa Melayu, seperti enditemui jika ditinggalkan. |
prompt | String yang | Tidak | Kata-kata atau huruf yang boleh dijangka, seperti nama. hanya 1000 watak pertama yang digunakan. |
response_format | String yang | Tidak | json (Dalam hal yang demikian, text, srt, vtt atau verbose_json. |
Untuk fail WAV, WebM, MP4 dan Ogg, panjangnya dibaca daripada fail sebelum apa-apa berjalan, jadi rekod lebih daripada 30 minit ditolak ke hadapan (dengan 3 detik). Panjang fail WAV berasal daripada kadar sampel, saluran dan saiz sampel. Panjang format lain, seperti MP3, tidak boleh dibaca ke hadapan, jadi mereka terhad kepada saiz: pada kadar bit yang paling rendah Nymbot menganggap, 8 kbps, 30 minit ialah 1.8 MB, dan fail yang lebih besar dalam format sedemikian ditolak dengan 413
audio_too_long Hantar rekod yang lebih lama seperti WAV, WebM, MP4 atau Ogg. Jika Whisper kemudian melaporkan lebih daripada 30 minit bagaimanapun, permintaan ditolak dengan
413 audio_too_long, dan kerana Whisper telah dijalankan, 30 minit dikenakan.
Anda membayar untuk panjang audio, bulat sehingga yang kedua: panjang yang paling panjang dibaca daripada fail, panjang laporan Whisper, dan sekurang-kurangnya saiz fail membenarkan, pada harga per minit Whisper dengan yuran biasa dan margin, dan sekurang-kurangnya 0.05 kredit permintaan. 402 memberikan apa yang setiap keseimbangan akan perlukan. Dalam aplikasi, transkripsi mesej suara mungkin percuma; pada API ia sentiasa dimuat turun.
Jawapan
{
"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 Mengembalikan teks yang jelas, srt dan vtt Mengembalikan subtitle, dan
verbose_json menambahkan bahasa, tempoh dan segmen waktu. Untuk tiga yang bukan JSON, kos adalah dalam tajuk.
| Status | bila |
|---|---|
400 | Tiada fail, fail tanpa audio yang boleh digunakan (invalid_audio, format yang tidak diketahui, atau model yang bukan model transkripsi (invalid_model). |
402 | Tiada keseimbangan yang boleh menutupnya. |
413 | Fail yang lebih besar daripada 25 MB (file_too_large(Baca lebih lanjut: Perbezaan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilangan bilion)audio_too_long). |
502 | Suara tidak boleh memproses audio.Tiada apa-apa yang dikenakan. |
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);
Terjemahan ucapan kepada Bahasa Inggeris
POST https://nymbot.ai/api/v1/audio/translations memerlukan kunci API, atau Pembayaran Lightning mengikut permintaanBadan itu ialah multipart/form-data.
Sama seperti transkrip, dengan medan yang sama selain daripada language, had dan harga, tetapi teks kembali dalam bahasa Inggeris apa-apa bahasa yang digunakan. 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);
kemasukan
Menukar teks kepada vektor untuk carian, mengumpulkan dan deduplikasi. model berjalan pada Cloudflare dan menghabiskan baki standard.
POST https://nymbot.ai/api/v1/embeddings memerlukan kunci API, atau Pembayaran Lightning mengikut permintaan.
| Lapangan | Jenis | diperlukan | Penerangan |
|---|---|---|---|
model | String yang | ya | Sebuah model embedded daripada GET /api/v1/models?type=embedding. |
input | string atau array daripada string | ya | Pihak berkuasa tidak boleh membebankan peruntukan kepada pihak berkuasa yang tidak bertanggungjawab (token_input_unsupportedSetiap input mesti sesuai dengan model context_length, dihitung sebagai kira-kira empat byte satu token. |
encoding_format | String yang | Tidak | float (Perkara yang telah ditetapkan) atau base64 (Little-endian 32-bit floats yang digunakan) |
dimensions | Integra | Tidak | Ukuran model sendiri, atau untuk model dengan supported_dimensions satu daripada mereka; vektor itu kemudian dikurangkan dan normal. apa-apa yang lain ditolak. |
| Model | dimensi | konteks |
|---|---|---|
@cf/baai/bge-m3 | 1024 dalam pelbagai bahasa | 8192 buah |
@cf/qwen/qwen3-embedding-0.6b | 1024 dalam pelbagai bahasa | 8192 buah |
@cf/baai/bge-large-en-v1.5 | 1024 Bahasa Inggeris | 512 buah |
@cf/baai/bge-base-en-v1.5 | Inggeris kepada Melayu 768 | 512 buah |
@cf/baai/bge-small-en-v1.5 | Inggeris kepada Melayu 384 | 512 buah |
Senarai model adalah sumber kebenaran yang tersedia dan apa yang mereka kos; EmbeddingGemma Google, dengan vektor yang lebih pendek atas permintaan, muncul di sana juga apabila katalog mempunyai harga untuk itu.
Jawapan
{
"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 | bila |
|---|---|
400 | Tiada entri atau satu kosong; token array (token_input_unsupportedLebih daripada 100 buah (too_many_inputs); input yang lebih lama daripada model mengambil (input_too_long); saiz yang model tidak boleh memberikan (unsupported_dimensions). |
402 | Keseimbangan standard terlalu rendah. Embeddings tidak pernah menggunakan keseimbangan Pro. |
404 | Tiada model yang digabungkan dengan nama itu. |
502 | Model gagal. tiada apa-apa yang dikenakan. |
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);