Basis pengetahuan pengembang
Gambar, Audio dan Embeddings
Generator dari aplikasi, dan blok bangunan untuk pencarian: gambar, video, pidato, transkripsi dan embeddings, masing-masing dihitung per penggunaan dari saldo Anda.
Halaman ini diterjemahkan dengan mesin untuk kenyamanan. Versi asli bahasa Inggris adalah versi yang berlaku.
Generasi gambar
Membuat satu hingga empat gambar dari prompt dan mengembalikannya ketika selesai. ?image dalam aplikasi tersebut.
POST https://nymbot.ai/api/v1/images/generations membutuhkan kunci API, atau Pembayaran Lightning atas permintaan.
IUD berasal dari GET /api/v1/models?type=imageDengan menggunakan generator standar,
@cf/black-forest-labs/flux-1-schnell, biaya rata-rata 5 kredit standar (50 sats) satu gambar. Setiap generator lainnya menghabiskan kredit Pro dengan harga sendiri, dengan biaya dan margin yang biasa, seperti di dengan app. n Biaya gambar
n Sebuah bidang yang tidak diambil oleh generator ditinggalkan bukan ditolak; generator standar hanya menggunakan prompt.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
model | Stringnya | Ya | Generator ID, seperti nano-banana. |
prompt | Stringnya | Ya | Hanya 2000 karakter pertama yang digunakan. |
n | Integrasi | Tidak | 1 sampai 4.Default 1. juga diterima sebagai num_images. |
size | Stringnya | Tidak | Perbandingan aspek-aspek seperti "16:9", atau ukuran OpenAI seperti "1792x1024", yang menjadi yang terdekat dari 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 dan 4:5. "auto" Lalu simpan ke generator. |
aspect_ratio | Stringnya | Tidak | Sama seperti sizeDan menang jika keduanya dikirim. |
quality | Stringnya | Tidak | Generator khusus, seperti "low", "medium" atau "high". |
negative_prompt | Stringnya | Tidak | Apa yang harus ditinggalkan. |
output_format | Stringnya | Tidak | "png", "jpeg" atau "webp". |
response_format | Stringnya | Tidak | "url" (dalam hal yang demikian) atau "b64_json". |
image_url | Stringnya | Tidak | Sebuah gambar untuk dimulai dari: a https:// link paling banyak 4,096 karakter tanpa nama pengguna atau kata sandi di dalamnya, atau data:image/…;base64 URL (PNG, JPEG, WebP atau GIF; tidak SVG). edityang diminta oleh mereka yang requires_image_url. |
resolution tidak digunakan: setiap generator membuat ukuran sendiri. url, setiap gambar diunggah ke host publik Blossom dan Anda mendapatkan tautannya (beberapa generator hanya mengirimkan tautan mereka sendiri, yang ditransmisikan). siapa pun dengan tautan dapat membukanya dan tidak dapat diambil kembali; lihat Apa yang dapat dilihat oleh apiDengan
b64_json gambar kembali dalam tanggapan dan tidak pernah di-upload. data: url dalam image_url diperiksa dengan cara yang sama seperti
Edit yang dan diunggah ke Blossom pertama sehingga generator dapat mengambilnya; itu dihapus lagi jika permintaan gagal dibebankan.
Jika beberapa dari n gambar gagal, Anda mendapatkan yang bekerja, hanya dikenakan biaya untuk mereka (plus apa pun yang dihitung oleh penyedia meskipun gagal), dan nymbot.failed menunjukkan berapa banyak yang hilang. jika semua gagal, permintaan 502.
Jawaban
{
"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 }
}
| Statusnya | Kapan |
|---|---|
400 | Tidak cepat; n dari 1 sampai 4 (invalid_value(dengan ukuran yang sangat kecil)invalid_size) atau gambar (invalid_image, invalid_image_url); model yang ada tetapi tidak merupakan generator gambar (invalid_model); gambar untuk generator yang tidak dapat mengedit (edit_unsupported); tidak ada gambar untuk yang membutuhkannya (image_required). |
402 | Keseimbangan tidak dapat mencakup setiap gambar yang diminta. |
404 | Tidak ada model dengan nama itu (model_not_found). |
502 | Generator yang tidak berfungsi (upstream_errorTidak ada yang dikenakan biaya kecuali pemasok menghitung untuk percobaan; maka kesalahan telah charged_sats. |
503 | Gambar tidak dapat di-host saat ini (media_hosting_unavailable). b64_json masih bekerja |
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);
editing gambar
Mengubah gambar yang Anda upload, mengikuti petunjuk.Ini adalah titik akhir pengeditan OpenAI, jadi OpenAI SDK images.edit bekerja seperti itu. hanya Pro generator dengan edit dalam daftar model menerima itu.
POST https://nymbot.ai/api/v1/images/edits membutuhkan kunci API, atau Pembayaran Lightning atas permintaanTubuh itu adalah multipart/form-datahingga 32 MB.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
image | File yang | Ya | Gambar untuk diedit: PNG, JPEG, WebP atau GIF, hingga 20 MB. image[]Yang pertama digunakan. |
prompt | Stringnya | Ya | Apa yang harus diubah. |
model | Stringnya | Ya | Generator dengan edit. |
n | Integrasi | Tidak | 1 dari 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | Stringnya | Tidak | Sedangkan untuk generasi. |
response_format | Stringnya | Tidak | "b64_json" (dalam hal ini di bawah ini) atau "url". |
Gambar yang Anda unggah diperiksa untuk menjadi PNG, JPEG, WebP atau GIF yang dibentuk dengan baik, dikirim sebagai tipe sebenarnya, dan ditempatkan pada host publik Blossom, karena generator mengambil input mereka melalui tautan. Perlakukan sebagai publik. Jika edit gagal dan tidak ada yang diisi, salinan host dihapus lagi. Jawaban memiliki bentuk yang sama seperti untuk generasi. Harga adalah harga generator, yang untuk beberapa generator termasuk biaya untuk gambar input.
Jawaban
{
"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 }
}
| Statusnya | Kapan |
|---|---|
400 | Tidak ada gambar atau prompt, file yang bukan gambar (invalid_image) atau generator yang tidak dapat diedit (edit_unsupported). |
413 | Gambar lebih dari 20 MB (file_too_large), atau seluruh permintaan lebih dari 32 MB. |
503 | Gambar tidak dapat di-host saat 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
Sebuah video membutuhkan waktu beberapa menit, jadi berjalan di latar belakang. Anda mengirimkannya, mendapatkan id segera, dan bertanya tentang id sampai selesai.
POST https://nymbot.ai/api/v1/videos membutuhkan kunci API, atau Pembayaran Lightning atas permintaanKembalinya 202.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
model | Stringnya | Ya | Menggunakan Generator Video ID GET /api/v1/models?type=videoSeperti yang veo. |
prompt | Stringnya | Ya | Apa yang harus terjadi. |
duration | Nomor atau string | Tidak | Panjang dalam detik, lebih dari 0 dan hingga 60. Digunakan hanya oleh generator yang memungkinkan Anda untuk memilih panjang; yang lain membuat panjang mereka yang biasa, yang seconds dalam respon dan harga mengikuti. |
aspect_ratio | Stringnya | Tidak | Seperti yang "16:9" atau "9:16"Dengan ukuran seperti "1280x720" menjadi ratio terdekat. |
resolutionquality | Stringnya | Tidak | Salah satu generator resolutions Dalam daftar tersebut, seperti "720p" atau "1080p"Ia menetapkan harga. apa pun yang lain ditolak dengan unsupported_resolution. |
image_url | Stringnya | Tidak | Sebuah gambar untuk dimulai dari: a https:// Link atau a data:image/… URL, yang diunggah ke host Blossom publik terlebih dahulu. Diperlukan oleh generator dengan requires_image_url. |
Harga tetap ketika Anda mengirimkan, dari generator, resolusi dan panjang, sehingga dikenakan biaya dari saldo Pro Anda segera setelah penyedia menerima pekerjaan, dan ditampilkan sebagai
cost, estimated_cost Dan nymbotJika penyedia menolak pekerjaan, tidak ada yang dikenakan biaya. Jika rendering kemudian gagal, atau klip selesai tidak dapat disimpan dan penyedia tidak menghitungnya, biaya dikembalikan sekali, secara otomatis. rendering yang masih berjalan setelah satu jam ditinggalkan, dan mempertahankan biaya, karena penyedia menghitung rendering setelah diterima. pengembalian kembali mengembalikan kredit tetapi tidak menurunkan jumlah pengeluaran kunci.
Jawabannya (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 dimulai sebagai in_progressatau completed Video yang sudah ada di data Setelah itu, generator langsung mengembalikannya.
memeriksa pada video
GET https://nymbot.ai/api/v1/videos/{id} - membutuhkan kunci milik nym yang mengirimkannya. sebuah kunci yang telah mencapai capnya masih dapat memeriksa.
Ia menjawab 202 Saat video sedang dibuat dan 200 Setelah selesai atau telah gagal. Tanyakan setiap 5 sampai 10 detik. Setiap cek bertanya kepada penyedia sekali dan menjawab sekaligus; itu tidak pernah menunggu untuk video.
GET /api/v1/videos daftar 50 pekerjaan kunci terakhir sebagai
{"object": "list", "data": […]}.
Jawabannya (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 adalah in_progress, completed atau failedPekerjaan yang gagal membawa error ({"code": "generation_failed", "message": …}Jika sudah dikembalikan, cost 0 dan nymbot Tambahkan
refunded_credits Dan refunded_satsVideo yang selesai berada di host publik Blossom, seperti gambar yang dihasilkan.
| Statusnya | Kapan |
|---|---|
400 | Tidak ada prompt; durasi di luar 0 hingga 60 (invalid_value); resolusi yang tidak ditawarkan generator (unsupported_resolution); tidak ada gambar untuk generator yang membutuhkan satu (image_required); model yang tidak merupakan generator video (invalid_model). |
402 | Pro balance tidak dapat mencakup video. |
404 | Tidak ada generator seperti itu (model_not_found, atau tidak ada pekerjaan oleh id itu untuk nym Anda, atau itu lebih dari 24 jam (video_not_found). |
429 | Anda sudah memiliki 10 video rendering (video_jobs_limitPeriksa mereka dan kirimkan lebih banyak setelah satu selesai. |
502 | Generator menolak pekerjaan. tidak ada yang dikenakan biaya kecuali pemasok menghitungnya. |
503 | Video tidak dapat dikirim atau disimpan saat 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 untuk pidato
Membaca teks dengan keras dan mengembalikan file audio itu sendiri, bukan tautan. audio.speech.create Di dalam OpenAI SDKs bekerja.
POST https://nymbot.ai/api/v1/audio/speech membutuhkan kunci API, atau Pembayaran Lightning atas permintaan.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
model | Stringnya | Tidak | Sebuah model pembicaraan dari Daftar Model AudioDefault : suara standar @cf/myshell-ai/melotts. aura-2 Salah satunya adalah Deepgram Aura 2. |
input | Stringnya | Ya | Teks untuk dibaca: hingga 800 karakter untuk suara standar, 2.000 untuk Aura 2. |
voice | Stringnya | Tidak | Identifikasi suara dari Daftar suara: Aura speaker seperti luna ( atau aura-2-luna-en(Baca juga: Pengertian Bahasa Indonesia)en, es, fr, zhOpenAI nama suara seperti alloy disetujui dan memberikan suara default model. |
language | Stringnya | Tidak | Sebuah kode bahasa seperti esTanpa suara, ia memilih satu untuk bahasa itu. suara yang berbicara bahasa lain dikembalikan 422 voice_language_mismatch, dan bahasa yang model tidak memiliki suara untuk 422 unsupported_language. |
response_format | Stringnya | Tidak | Standar suara kembali mp3 Aura 2 kembali mp3 (Dalam hal yang demikian, opus, aac, flac, wav atau pcm. |
speed | Jumlah | Tidak | diterima dan diabaikan. |
Suara standar biaya rata-rata 3 kredit standar (30 sats) per permintaan, seperti dalam aplikasi. Aura 2 adalah Pro, dibayar berdasarkan karakter yang Anda kirim.
Content-TypeBiaya tersebut berada di dalam X-Nymbot-Cost-Sats Jika model bicara gagal, tidak ada yang dikenakan biaya.
Jawaban
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Statusnya | Kapan |
|---|---|
400 | Tidak ada input; input melebihi batas model (input_too_long); format yang tidak dapat diproduksi model (unsupported_response_format); suara yang tidak diketahui (invalid_voice(dengan kata lain, tidak ada istilah yang dapat digunakan untukinvalid_model). |
422 | Suara tidak berbicara bahasa yang diberikan, atau model tidak memiliki suara untuk itu. |
502 | Model bicara gagal. tidak ada beban. |
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 daftar publik untuk memilih model bicara dan suara, atau model transkripsi. ada 41 penutur bahasa Inggris Aura 2 dan empat bahasa MeloTTS.
GET https://nymbot.ai/api/v1/audio/models Tidak diperlukan kunci.
GET https://nymbot.ai/api/v1/audio/voices?language=en Tidak diperlukan kunci.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
language | Menggunakan string (query) | Tidak | Hanya suara-suara untuk bahasa ini. |
model | Menggunakan string (query) | Tidak | Hanya suara untuk model ini. |
Jawabannya adalah ( suara )
{
"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 Daftar Jawaban {"object": "list", "data": {"tts": […], "stt": […]}}Setiap model bicara memberikan keseimbangan, harga, max_input_chars,
response_formats, languages Dan default_voice· Transcription model memberikan aliasnya, max_file_bytes, max_seconds, format dan harga per menit.
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);
Percakapan dengan teks
Mengubah rekaman menjadi teks dengan Whisper. Ini adalah titik akhir transkripsi OpenAI, jadi
audio.transcriptions.create bekerja dengan
POST https://nymbot.ai/api/v1/audio/transcriptions membutuhkan kunci API, atau Pembayaran Lightning atas permintaanTubuh itu adalah multipart/form-data.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
file | File yang | Ya | Rekaman, dari 256 byte hingga 25 MB dan hingga 30 menit: WAV, WebM, MP4 atau M4A, Ogg atau Opus, MP3 dan format lainnya Whisper membaca. |
model | Stringnya | Tidak | Kekurangan whisperSalah satunya adalah Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo Dan @cf/openai/whisper-large-v3-turbo Artinya sama saja. |
language | Stringnya | Tidak | Bahasa yang digunakan, seperti enTerdeteksi jika ditinggalkan. |
prompt | Stringnya | Tidak | Kata atau huruf yang diharapkan, seperti nama. hanya 1000 karakter pertama yang digunakan. |
response_format | Stringnya | Tidak | json (Dalam hal yang demikian, text, srt, vtt atau verbose_json. |
Untuk file WAV, WebM, MP4 dan Ogg, panjangnya dibaca dari file sebelum apa pun berjalan, jadi rekaman lebih dari 30 menit ditolak ke depan (dengan 3 detik). panjang file WAV berasal dari tingkat sampelnya, saluran dan ukuran sampelnya. panjang format lain, seperti MP3, tidak dapat dibaca ke depan, jadi mereka dibatasi oleh ukuran: pada bitrate terendah Nymbot mengasumsikan, 8 kbps, 30 menit adalah 1,8 MB, dan file yang lebih besar dalam format tersebut ditolak dengan 413
audio_too_long mengirimkan rekaman yang lebih lama seperti WAV, WebM, MP4 atau Ogg. Jika Whisper kemudian melaporkan lebih dari 30 menit, permintaan ditolak dengan
413 audio_too_long, dan karena Whisper berjalan, 30 menit diisi.
Anda membayar untuk panjang audio, dikurangi hingga kedua: panjang yang paling panjang dibaca dari file, panjang Whisper laporan, dan ukuran file yang paling sedikit memungkinkan, pada harga per menit Whisper dengan biaya dan margin biasa, dan setidaknya 0.05 kredit permintaan. 402 Dalam aplikasi, transkripsi pesan suara mungkin gratis; pada API itu selalu diisi.
Jawaban
{
"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, durasi dan segmen waktu. Untuk tiga yang bukan JSON, biaya berada di header.
| Statusnya | Kapan |
|---|---|
400 | Tidak ada file, file tanpa audio yang dapat digunakan (invalid_audio, format yang tidak diketahui, atau model yang tidak merupakan model transkripsi (invalid_model). |
402 | Tidak ada keseimbangan yang bisa menutupi itu. |
413 | File yang berukuran lebih dari 25 MB (file_too_large(Baca juga: Cara Menghilangkan Jerawat Dengan Cepat, Cara Menghilangkan Jerawat Dengan Cepat, Cara Menghilangkan Jerawat Dengan Cepat)audio_too_long). |
502 | Suara tidak dapat memproses audio. tidak ada yang dikenakan biaya. |
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 pidato ke bahasa inggris
POST https://nymbot.ai/api/v1/audio/translations membutuhkan kunci API, atau Pembayaran Lightning atas permintaanTubuh itu adalah multipart/form-data.
Sama seperti transkripsi, dengan bidang yang sama selain language, batasan dan harga, tetapi teks kembali dalam bahasa Inggris terlepas dari 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);
Embedded
Mengubah teks menjadi vektor untuk pencarian, clustering, dan deduplikasi. model berjalan pada Cloudflare dan menghabiskan saldo standar.
POST https://nymbot.ai/api/v1/embeddings membutuhkan kunci API, atau Pembayaran Lightning atas permintaan.
| Bidang | Jenis | Diperlukan | deskripsi |
|---|---|---|---|
model | Stringnya | Ya | Sebuah model embedded dari GET /api/v1/models?type=embedding. |
input | string atau array dari string | Ya | (Baca juga: Cara Menghilangkan Gejala Gejala Gejala Gejala Gejala Gejala (token_input_unsupportedSetiap input harus sesuai dengan model context_length, dihitung sebagai sekitar empat byte per token. |
encoding_format | Stringnya | Tidak | float (dalam hal yang demikian) atau base64 (Little-endian 32-bit floats yang berukuran kecil) |
dimensions | Integrasi | Tidak | ukuran modelnya sendiri, atau untuk model dengan supported_dimensions Salah satu dari mereka; vektor itu kemudian dipersingkat dan normal. |
| Modelnya | Dimensi | konteksnya |
|---|---|---|
@cf/baai/bge-m3 | 1024 dalam berbagai bahasa | 8.192 Token |
@cf/qwen/qwen3-embedding-0.6b | 1024 dalam berbagai bahasa | 8.192 Token |
@cf/baai/bge-large-en-v1.5 | 1024 Bahasa Inggris | 512 Token |
@cf/baai/bge-base-en-v1.5 | 768 Bahasa Inggris | 512 Token |
@cf/baai/bge-small-en-v1.5 | 384 Bahasa Inggris | 512 Token |
Daftar model adalah sumber kebenaran untuk apa yang tersedia dan berapa biaya mereka; EmbeddingGemma Google, dengan vektor yang lebih pendek pada permintaan, muncul di sana juga ketika katalog memiliki harga untuk itu. embeddings diukur per token input, dan minimum 0.05 kredit berlaku untuk setiap permintaan, bukan untuk setiap input, sehingga batching banyak teks ke dalam satu permintaan jauh lebih murah daripada mengirimkannya satu per satu.
Jawaban
{
"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 }
}
| Statusnya | Kapan |
|---|---|
400 | Tidak ada input atau satu kosong; token array (token_input_unsupported(lebih dari 100 orang)too_many_inputs); input yang lebih lama dari model mengambil (input_too_long); ukuran yang model tidak dapat memberikan (unsupported_dimensions). |
402 | Keseimbangan standar terlalu rendah. embeddings tidak pernah menggunakan keseimbangan Pro. |
404 | Tidak ada model dengan nama tersebut. |
502 | Model gagal. tidak ada yang dikenakan biaya. |
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);