Langkau ke kandungan
Kembali ke Nymbot

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.

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.

LapanganJenisdiperlukanPenerangan
modelString yangyaSebuah pengeluar id, seperti nano-banana.
promptString yangyaApa yang perlu dicatatkan? hanya 2,000 watak pertama yang digunakan.
nIntegraTidak1 hingga 4. Default 1. juga diterima sebagai num_images.
sizeString yangTidakAntara 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_ratioString yangTidakSama seperti sizedan menang jika kedua-duanya dihantar.
qualityString yangTidakGenerator-spesifik seperti "low", "medium" atau "high".
negative_promptString yangTidakApa yang boleh ditinggalkan.
output_formatString yangTidak"png", "jpeg" atau "webp".
response_formatString yangTidak"url" (Perkara yang telah ditetapkan) atau "b64_json".
image_urlString yangTidakGambar 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 }
}
Statusbila
400Tiada 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).
402Keseimbangan tidak boleh meliputi setiap imej yang diminta.
404Tiada model dengan nama itu (model_not_found).
502Perkhidmatan yang tidak berjaya (upstream_errorTiada apa-apa yang dikenakan bayaran kecuali pembekal dikenakan bayaran untuk percubaan; kemudian kesilapan telah charged_sats.
503Gambar 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.

LapanganJenisdiperlukanPenerangan
imagefailyaImej untuk diedit: PNG, JPEG, WebP atau GIF, sehingga 20 MB. image[]yang pertama digunakan.
promptString yangyaApa yang boleh berubah.
modelString yangyaGenerator dengan edit.
nIntegraTidak1 daripada 4.
size
aspect_ratio
quality
negative_prompt
output_format
String yangTidakkepada generasi yang lain.
response_formatString yangTidak"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 }
}
Statusbila
400Tiada imej atau prompt, fail yang bukan imej (invalid_image) atau generator yang tidak boleh edit (edit_unsupported).
413imej lebih daripada 20 MB (file_too_large), atau seluruh permintaan lebih daripada 32 MB.
503Gambar 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.

LapanganJenisdiperlukanPenerangan
modelString yangyapengeluar video id daripada GET /api/v1/models?type=videoSeperti yang veo.
promptString yangyaApa yang perlu berlaku.
durationNombor atau stringTidakPanjang 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_ratioString yangTidakSeperti yang "16:9" atau "9:16"· Ukuran seperti "1280x720" menjadi perbandingan terdekat.
resolution
quality
String yangTidakSalah satu daripada generator resolutions Dalam senarai model, seperti "720p" atau "1080p"Ia menetapkan harga. apa-apa yang lain ditolak dengan unsupported_resolution.
image_urlString yangTidakGambar 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.

Statusbila
400Tiada 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).
402Keseimbangan Pro tidak boleh menutupi video.
404Tiada jentera seperti ini (model_not_found) atau tiada kerja oleh id itu untuk nym anda, atau ia lebih daripada 24 jam (video_not_found).
429Pihak berkuasa telah mendaftarkan sebanyak 10 buah video (video_jobs_limitPeriksa pada mereka dan menghantar lebih apabila satu selesai.
502Generator menolak kerja.Tiada apa-apa yang dikenakan bayaran kecuali pembekal dikenakan bayaran untuk itu.
503Video 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.

LapanganJenisdiperlukanPenerangan
modelString yangTidakSebuah model ucapan daripada Senarai model audio• Default : suara standard @cf/myshell-ai/melotts. aura-2 Mempunyai Deepgram Aura 2.
inputString yangyaTeks untuk dibaca: sehingga 800 karakter untuk suara standard, 2,000 untuk Aura 2.
voiceString yangTidakSuara 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.
languageString yangTidakkod 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_formatString yangTidakSuara Standard Kembali mp3 Aura 2 Kembali mp3 (Dalam hal yang demikian, opus, aac, flac, wav atau pcm.
speedNomborTidakditerima 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)
Statusbila
400Tiada 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).
422Suara tidak berbicara bahasa yang diberikan, atau model tidak mempunyai suara untuk itu.
502Model 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.

LapanganJenisdiperlukanPenerangan
languagePenyelesaian (Query)TidakHanya suara untuk bahasa ini.
modelPenyelesaian (Query)TidakHanya 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.

LapanganJenisdiperlukanPenerangan
filefailyaRekod, dari 256 byte kepada 25 MB dan sehingga 30 minit: WAV, WebM, MP4 atau M4A, Ogg atau Opus, MP3 dan format lain Whisper membaca.
modelString yangTidakKekurangan whisper, yang merupakan Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo dan @cf/openai/whisper-large-v3-turbo bermaksud sama
languageString yangTidakBahasa Melayu, seperti enditemui jika ditinggalkan.
promptString yangTidakKata-kata atau huruf yang boleh dijangka, seperti nama. hanya 1000 watak pertama yang digunakan.
response_formatString yangTidakjson (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.

Statusbila
400Tiada fail, fail tanpa audio yang boleh digunakan (invalid_audio, format yang tidak diketahui, atau model yang bukan model transkripsi (invalid_model).
402Tiada keseimbangan yang boleh menutupnya.
413Fail 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).
502Suara 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.

LapanganJenisdiperlukanPenerangan
modelString yangyaSebuah model embedded daripada GET /api/v1/models?type=embedding.
inputstring atau array daripada stringyaPihak 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_formatString yangTidakfloat (Perkara yang telah ditetapkan) atau base64 (Little-endian 32-bit floats yang digunakan)
dimensionsIntegraTidakUkuran model sendiri, atau untuk model dengan supported_dimensions satu daripada mereka; vektor itu kemudian dikurangkan dan normal. apa-apa yang lain ditolak.
Modeldimensikonteks
@cf/baai/bge-m31024 dalam pelbagai bahasa8192 buah
@cf/qwen/qwen3-embedding-0.6b1024 dalam pelbagai bahasa8192 buah
@cf/baai/bge-large-en-v1.51024 Bahasa Inggeris512 buah
@cf/baai/bge-base-en-v1.5Inggeris kepada Melayu 768512 buah
@cf/baai/bge-small-en-v1.5Inggeris kepada Melayu 384512 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 }
}
Statusbila
400Tiada 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).
402Keseimbangan standard terlalu rendah. Embeddings tidak pernah menggunakan keseimbangan Pro.
404Tiada model yang digabungkan dengan nama itu.
502Model 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);