Skip menyang isi
Kembali menyang Nymbot

Basis kawruh Pembangunan

Gambar, audio lan embeddings

Generator saka aplikasi, lan blok bangunan kanggo pencarian: gambar, video, pidato, transkripsi lan embeddings, saben dihitung saben nggunakake saka saldo.

Generasi gambar

Nggunakake salah siji nganti empat gambar saka prompt lan ngirimake nalika iku selesai. ?image Ing app iku.

POST https://nymbot.ai/api/v1/images/generations — perlu kunci API, utawa Pembayaran Lightning kanggo permintaan.

Tiyang iku saka GET /api/v1/models?type=imageIng generator standar, @cf/black-forest-labs/flux-1-schnell, biaya flat 5 kredit standar (50 sats) siji gambar. saben generator liyane nggunakake kredit Pro ing harga dhewe, karo biaya biasa lan margin, minangka ing Ing app. n Harga gambar n A field a generator ora njaluk ditumpuk lan ora ditolak; generator standar nggunakake prompt mung.

Field ikuTiyangDiperlukanDeskripsi
modelIng stringya wisA generator id, kayata nano-banana.
promptIng stringya wisApa kanggo njaluk. mung 2000 karakter pisanan digunakake.
nIngkangIng1 kanggo 4. Default 1. uga dianggep minangka num_images.
sizeIng stringIngAspek-aspek sing disimpen minangka "16:9"Dheweke duwe ukuran lan ukuran sing kaya "1792x1024"Dheweke bakal dadi paling dekat saka 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 lan 4:5. "auto" Dheweke bakal nggunakake generator.
aspect_ratioIng stringIngIng padha minangka sizeDheweke bakal menang nalika kedhaftar ndadekake.
qualityIng stringIngGenerator khusus, kayata "low", "medium" lan "high".
negative_promptIng stringIngApa kang bakal nggawé.
output_formatIng stringIng"png", "jpeg" lan "webp".
response_formatIng stringIng"url" (Sampunipun dhumateng) utawa "b64_json".
image_urlIng stringIngA gambar kanggo dimulai saka: a https:// link luwih saka 4,096 karakter tanpa nama pangguna utawa password ing, utawa data:image/…;base64 URL (PNG, JPEG, WebP utawa GIF; ora SVG). editTiyang-tiyang ingkang dipungutaken kanthi requires_image_url.

resolution ora digunakake: saben generator nggawe ukuran dhewe. url, saben gambar diunggah menyang host Blossom umum lan sampeyan njaluk tautan (beberapa generator mung ngirim tautan dhewe, sing ditransmisikake). Apa sing api bisa ndelengDheweke b64_json ing respon lan ora diunggah. gambar dikirim minangka data: URL ing image_url Dheweke diprodhuksi kanthi cara sing padha Tiyang lan ngunggah menyang Blossom pisanan supaya generator bisa njaluk; iku dihapus lagi yen perminta gagal dibukak.

Nalika sawetara saka n gambar gagal, sampeyan njaluk wong sing kerja, dibayarkan mung kanggo wong-wong (plus apa-apa penyedia dibayarkan malah gagal), lan nymbot.failed Ngandika sawetara sing mung. Yen kabeh gagal, permintaan ndadekake 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 }
}
StatusipunNalika
400Ngudhunaké lan ngudhunaké. n Ing ngisor 1 iki 4 (invalid_valueIng ngisor iki: (invalid_size) utawa gambar (invalid_image, invalid_image_url); model sing ana nanging ora minangka generator gambar (invalid_model); gambar kanggo generator sing ora bisa edit (edit_unsupported); ora gambar kanggo siji sing kudu iku (image_required).
402Balance ora bisa mbukak kabeh gambar sing dibutuhake.
404Ing ngisor iki iku (model_not_found).
502Ing ngisor iki (upstream_errorIng ngisor iki, iku dadi salah siji saka unsur-unsur sing diwenehake. charged_sats.
503Foto-foto ora bisa diwenehi (media_hosting_unavailable). b64_json Dheweke masih kerja.

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

Ngirim gambar

Ngganti gambar sing sampeyan ngunggah, sawise prompt. iki iku titik endpoint edit OpenAI, supaya OpenAI SDK's images.edit kerja minangka iku. Hanya Pro generator karo edit Ing model daftar njaluk iku.

POST https://nymbot.ai/api/v1/images/edits — perlu kunci API, utawa Pembayaran Lightning kanggo permintaanTubuh iku multipart/form-dataSampeyan bisa nganti 32 MB.

Field ikuTiyangDiperlukanDeskripsi
imagefile ikuya wisGambar kanggo ngedit: PNG, JPEG, WebP utawa GIF, nganti 20 MB. image[]Tiyang pertama iku digunakake.
promptIng stringya wisApa kang ngganti.
modelIng stringya wisGenerator lan edit.
nIngkangIng1 lan 4.
size
aspect_ratio
quality
negative_prompt
output_format
Ing stringIngNanging ing generasi.
response_formatIng stringIng"b64_json" (Ing ngisor iki) utawa "url".

Ing gambar sing ngunggah, njaluk minangka PNG, JPEG, WebP utawa GIF sing dibentuk kanthi apik, dikirim ing minangka tipe nyata, lan diwenehi host Blossom umum, amarga generator njaluk input kanthi link. Nglakoni minangka publik. Yen edit gagal lan ora ngeculake apa-apa, salinan host sing dihapus lagi. Jawaban duwe bentuk sing padha karo generator. Harga iku harga generator, sing kanggo sawetara generator kalebu biaya kanggo 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 }
}
StatusipunNalika
400Ora gambar utawa prompt, file sing ora gambar (invalid_image), utawa generator sing ora bisa edit (edit_unsupported).
413Foto luwih saka 20 MB (file_too_large), utawa kabeh permintaan luwih saka 32 MB.
503Foto iki ora bisa diwenehi (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 lan

Video njaluk menit, supaya njaluk ing latar belakang. Sampeyan ngirimake, njaluk id langsung, lan njaluk id nganti selesai. saben generator video nggunakake saldo Pro.

POST https://nymbot.ai/api/v1/videos — perlu kunci API, utawa Pembayaran Lightning kanggo permintaanKembali 202.

Field ikuTiyangDiperlukanDeskripsi
modelIng stringya wisA video generator id saka GET /api/v1/models?type=videoTiyang minangka veo.
promptIng stringya wisApa kang kudu.
durationNomer utawa stringIngPanjang ing detik, luwih saka 0 lan nganti 60. Digunakake mung dening generator sing ngidini sampeyan milih panjang; wong liyane nggawe panjang sing biasa, kang iku apa seconds ing respon lan harga iku iku.
aspect_ratioIng stringIngLan minangka "16:9" lan "9:16"Dheweke duwe ukuran kaya "1280x720" Dhèwèké dadi ratio paling dekat.
resolution
quality
Ing stringIngSalah siji saka generator resolutions Ing bab model, minangka "720p" lan "1080p"Iki nyetel harga. apa-apa liyane ditolak karo unsupported_resolution.
image_urlIng stringIngA gambar kanggo dimulai saka: a https:// Link lan a data:image/… URL, sing diunggah menyang host umum Blossom. Diperlukan dening generator karo requires_image_url.

Harga ditempatake nalika sampeyan ngirim, saka generator, resolusi lan panjang, supaya iku dibayarkan saka saldo Pro sawetara provider njaluk pekerjaan, lan ditampilake minangka cost, estimated_cost lan nymbotIf the provider refuses the job, nothing is charged. If the rendering later fails, or the finished clip cannot be stored and the provider did not bill for it, the charge is refunded once, automatically. A rendering which is still going after an hour is given up, and keeps its charge, because the provider bills a render once it accepts it. A refund returns the credits but does not lower the key's spending count.

Tembung (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 Mulane minangka in_progressDheweke completed Ing video iki ana ing data Dheweke bakal nggunakake generator langsung.

Teka ing video

GET https://nymbot.ai/api/v1/videos/{id} - butuh kunci sing dadi milik nym sing ngirimake.

Jawaban iku 202 Nalika video iki digawe lan 200 sawisé iku selesai utawa wis gagal. Tanya saben 5 kanggo 10 detik. saben cek nglakoni penyedia siji lan ngjawab ing wektu; iku ora nglakoni kanggo video. Pekerjaan diwenehi kanggo 24 jam sawise iku dikirim. GET /api/v1/videos Nulisake 50 karya-karya pungkasan saka kunci minangka {"object": "list", "data": […]}.

Ing taun 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 Dheweke in_progress, completed lan failedPekerjaan sing gagal nglakoni error ({"code": "generation_failed", "message": …}Dheweke bakal diwenehi reward. cost Iki 0 lan nymbot Tambah refunded_credits lan refunded_satsVideo selesai ana ing host Blossom umum, kaya gambar sing diprodhuksi.

StatusipunNalika
400Ing ngisor iki iku 0-60 (invalid_value); resolusi sing generator ora nuduhake (unsupported_resolution); ora gambar kanggo generator sing kudu siji (image_required); model sing ora minangka generator video (invalid_model).
402Pro saldo ora bisa mbukak video.
404Ing ngisor iki (model_not_found), utawa ora kerja dening id iki kanggo nym, utawa iku luwih saka 24 jam (video_not_found).
429Ing ngisor iki ana 10 video rendering (video_jobs_limitCheck ing loro lan ngirim liyane nalika siji finishes.
502Generator ditolak kerja. Apa-apa ora dibayarkan kecuali penyedia tagihan kanggo iku.
503Video ora bisa dikirim utawa disimpen (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 kanggo pidato

Maca teks dhuwur lan ngirim file audio dhewe, ora link. audio.speech.create ing OpenAI SDKs nggunakake.

POST https://nymbot.ai/api/v1/audio/speech — perlu kunci API, utawa Pembayaran Lightning kanggo permintaan.

Field ikuTiyangDiperlukanDeskripsi
modelIng stringIngA model pidato saka Daftar model audioDefault: suara standar, @cf/myshell-ai/melotts. aura-2 Ing ngisor iki iku Deepgram Aura 2.
inputIng stringya wisTeks kanggo dibaca: nganti 800 karakter kanggo suara standar, 2000 kanggo Aura 2.
voiceIng stringIngA Voice ID saka Daftar suara: Aura speaker kayata luna (Ing aura-2-luna-enIng ngisor iki ana ing basa Arab (en, es, fr, zh). OpenAI nama suara kayata alloy iku disampa lan nyedhiyakake suara default model.
languageIng stringIngKode bahasa minangka esTanpa suara, iku njaluk siji kanggo basa iki. Suara sing ngandika basa liyane mbukak 422 voice_language_mismatch, lan basa sing model ora duwe suara kanggo 422 unsupported_language.
response_formatIng stringIngStandar suara mbukak mp3 Aura 2 iku kembar. mp3 Dheweke bakal nindakake kekosongan. opus, aac, flac, wav lan pcm.
speedNomerIngTembung lan diabaikan.

Standar suara biaya rata 3 kredit standar (30 sats) siji permintaan, minangka ing app. Aura 2 iku Pro, harga dening karakter sing ngirim. Tubuh respon iku audio, karo matching Content-TypeBiaya iku ing X-Nymbot-Cost-Sats Yen model pidato gagal, ora ana apa-apa.

Jawaban

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

(audio bytes)
StatusipunNalika
400Ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki (input_too_long); format model sing ora bisa ngasilake (unsupported_response_format); suara sing ora dikenal (invalid_voice); model sing ora minangka model bicara (invalid_model).
422Suara ora ngandika basa sing diwenehi, utawa model ora duwe suara kanggo iku.
502Tiyang-Tiyang nggawé nggawé. nggawé nggawé nggawé.

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 model lan suara

Dua daftar umum kanggo milih model bicara lan suara, utawa model transkripsi. Ana 41 Aura 2 basa Inggris lan empat basa MeloTTS.

GET https://nymbot.ai/api/v1/audio/models Ngandhakake kunci sing dibutuhake.

GET https://nymbot.ai/api/v1/audio/voices?language=en Ngandhakake kunci sing dibutuhake.

Field ikuTiyangDiperlukanDeskripsi
languageTiyang (Tiyang)IngTiyang ora bisa kanggo basa iki.
modelTiyang (Tiyang)IngSadaya suara kanggo model iki.

Jawaban (panggonan)

{
  "object": "list",
  "data": [
    { "id": "luna", "name": "Luna", "provider": "deepgram", "model_id": "aura-2", "models": ["aura-2"], "language": "en", "description": "Aura 2 English voice", "gender": "female", "preview_url": null },
    { "id": "en", "name": "MeloTTS English", "provider": "myshell", "model_id": "@cf/myshell-ai/melotts", "models": ["@cf/myshell-ai/melotts", "melotts"], "language": "en", "description": "English (MeloTTS)", "gender": null, "preview_url": null }
  ]
}

Modèla daftar jawaban {"object": "list", "data": {"tts": […], "stt": […]}}Masing-masing model bicara ngandika keseimbangan, harga, max_input_chars, response_formats, languages lan default_voiceDhèwèké nindakake al-Qur’an lan hadits. max_file_bytes, max_seconds, format lan 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);

Panggonan ing teks

Ngubah rekaman menyang teks karo Whisper. iki iku titik akhir transkripsi OpenAI, supaya audio.transcriptions.create lan kerja.

POST https://nymbot.ai/api/v1/audio/transcriptions — perlu kunci API, utawa Pembayaran Lightning kanggo permintaanTubuh iku multipart/form-data.

Field ikuTiyangDiperlukanDeskripsi
filefile ikuya wisIng rekaman, saka 256 byte kanggo 25 MB lan nganti 30 menit: WAV, WebM, MP4 utawa M4A, Ogg utawa Opus, MP3 lan format liyane Whisper njupuk.
modelIng stringIngTiyang whisperIng ngisor iki iku Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo lan @cf/openai/whisper-large-v3-turbo Piyambakipun makna padha.
languageIng stringIngIng basa sing digunakake, kaya enDheweke ditemokake lan ditinggalake.
promptIng stringIngKata-kata utawa spaghetti kanggo ngarepake, kayata jeneng. Sadaya 1000 karakter pisanan digunakake.
response_formatIng stringIngjson Dheweke bakal nindakake kekosongan. text, srt, vtt lan verbose_json.

Kanggo file WAV, WebM, MP4 lan Ogg, panjang iki dibaca saka file sadurunge apa-apa mbukak, supaya rekaman luwih saka 30 menit ditolak ing ndhuwur (dengan 3 detik). Panjang file WAV ana saka tingkat sampel, saluran, lan ukuran sampel. Panjang format liyane, kayata MP3, ora bisa dibaca ing ndhuwur, supaya padha dibatasi dening ukuran: ing bitrate paling rendah Nymbot njupuk, 8 kbps, 30 menit iku 1.8 MB, lan file luwih gedhe ing format iki ditolak karo 413 audio_too_long Ngirim rekaman sing luwih gedhe minangka WAV, WebM, MP4 utawa Ogg. Yen Whisper banjur melaporkan luwih saka 30 menit, permintaan ditolak karo 413 audio_too_long, lan wiwit Whisper digawe, 30 menit dibayar.

Sampeyan mbayar kanggo panjang audio, diwenehi nganti detik: paling panjang panjang dibaca saka file, panjang laporan Whisper, lan paling cilik ukuran file ngidini, ing harga per menit Whisper karo biaya biasa lan margin, lan minimal 0.05 kredit permintaan. 402 Ing aplikasi, transkripsi pesan suara bisa gratis; ing API iku uga dibayarkan.

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 Nggunakake teks sing jelas, srt lan vtt Kembali ing subtitles, lan verbose_json Ngandhut basa, durasi, lan segmen timed. Kanggo tiga segmen sing ora JSON, biaya ing header.

StatusipunNalika
400Ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki (invalid_audio), format unknown, utawa model sing ora minangka model transkripsi (invalid_model).
402Dheweke ora bisa mbukak balanse.
413File iki luwih saka 25 MB (file_too_large) utawa rekaman luwih saka 30 menit, utawa, ing format sing panjang ora bisa dibaca, luwih saka 1,8 MB (audio_too_long).
502Piyambakipun ora bisa nglakoni audio.

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

Translate ing basa ing basa ing basa ing Inggris

POST https://nymbot.ai/api/v1/audio/translations — perlu kunci API, utawa Pembayaran Lightning kanggo permintaanTubuh iku multipart/form-data.

Sama minangka transkripsi, karo kutha padha bagean saka language, limits lan harga, nanging teks mbukak ing basa ing basa Inggeris apa wae basa digunakake. 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);

Ingkang

Ngubah teks dadi vektor kanggo pencarian, clustering, lan deduplikasi. Model mbukak ing Cloudflare lan nggunakake keseimbangan standar.

POST https://nymbot.ai/api/v1/embeddings — perlu kunci API, utawa Pembayaran Lightning kanggo permintaan.

Field ikuTiyangDiperlukanDeskripsi
modelIng stringya wisModel ing basa ing GET /api/v1/models?type=embedding.
inputstring utawa array saka stringya wisIng ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki (token_input_unsupported) Masing input kudu cocok karo model context_lengthDheweke bakal nindakake ing 4 bajet.
encoding_formatIng stringIngfloat (Sampunipun dhumateng) utawa base64 (Little-endian 32-bit floats ing basa Inggris)
dimensionsIngkangIngUkuran model dhewe, utawa kanggo model karo supported_dimensions Salah siji saka iku; vektor iku dikurangi lan normal. apa-apa liyane ditolak.
ModelipunDimensikonteksipun
@cf/baai/bge-m31024, akeh basa8.192 Token
@cf/qwen/qwen3-embedding-0.6b1024, akeh basa8.192 Token
@cf/baai/bge-large-en-v1.51024 Inggeris512 taun
@cf/baai/bge-base-en-v1.5768 Inggeris512 taun
@cf/baai/bge-small-en-v1.5384 Inggeris512 taun

Daftar model iku sumber saka kebenaran kanggo apa sing kasedhiya lan apa biaya; Google's EmbeddingGemma, karo vektor sing luwih pendek ing permintaan, muncul ana uga nalika katalog duwe harga kanggo iku. Embeddings diukur per token input, lan minimum 0.05-kredit digunakake kanggo saben permintaan, ora kanggo saben input, supaya batch teks akeh ing siji permintaan iku luwih murah saka ngirimake siji ing wektu.

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 }
}
StatusipunNalika
400Ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki, ing ngisor iki (token_input_unsupported); luwih saka 100 input (too_many_inputs); input luwih saka model njupuk (input_too_long); ukuran sing model ora bisa nyedhiyakake (unsupported_dimensions).
402Saldo standar terlalu rendah. Embeddings ora nggunakake saldo Pro.
404Nanging ora nggunakake model karo jeneng iki.
502Model iki gagal. ora dibayar apa-apa.

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