Lewati ke konten
Kembali ke Nymbot

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.

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.

BidangJenisDiperlukandeskripsi
modelStringnyaYaGenerator ID, seperti nano-banana.
promptStringnyaYaHanya 2000 karakter pertama yang digunakan.
nIntegrasiTidak1 sampai 4.Default 1. juga diterima sebagai num_images.
sizeStringnyaTidakPerbandingan 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_ratioStringnyaTidakSama seperti sizeDan menang jika keduanya dikirim.
qualityStringnyaTidakGenerator khusus, seperti "low", "medium" atau "high".
negative_promptStringnyaTidakApa yang harus ditinggalkan.
output_formatStringnyaTidak"png", "jpeg" atau "webp".
response_formatStringnyaTidak"url" (dalam hal yang demikian) atau "b64_json".
image_urlStringnyaTidakSebuah 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 }
}
StatusnyaKapan
400Tidak 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).
402Keseimbangan tidak dapat mencakup setiap gambar yang diminta.
404Tidak ada model dengan nama itu (model_not_found).
502Generator yang tidak berfungsi (upstream_errorTidak ada yang dikenakan biaya kecuali pemasok menghitung untuk percobaan; maka kesalahan telah charged_sats.
503Gambar 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.

BidangJenisDiperlukandeskripsi
imageFile yangYaGambar untuk diedit: PNG, JPEG, WebP atau GIF, hingga 20 MB. image[]Yang pertama digunakan.
promptStringnyaYaApa yang harus diubah.
modelStringnyaYaGenerator dengan edit.
nIntegrasiTidak1 dari 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringnyaTidakSedangkan untuk generasi.
response_formatStringnyaTidak"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 }
}
StatusnyaKapan
400Tidak ada gambar atau prompt, file yang bukan gambar (invalid_image) atau generator yang tidak dapat diedit (edit_unsupported).
413Gambar lebih dari 20 MB (file_too_large), atau seluruh permintaan lebih dari 32 MB.
503Gambar 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.

BidangJenisDiperlukandeskripsi
modelStringnyaYaMenggunakan Generator Video ID GET /api/v1/models?type=videoSeperti yang veo.
promptStringnyaYaApa yang harus terjadi.
durationNomor atau stringTidakPanjang 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_ratioStringnyaTidakSeperti yang "16:9" atau "9:16"Dengan ukuran seperti "1280x720" menjadi ratio terdekat.
resolution
quality
StringnyaTidakSalah satu generator resolutions Dalam daftar tersebut, seperti "720p" atau "1080p"Ia menetapkan harga. apa pun yang lain ditolak dengan unsupported_resolution.
image_urlStringnyaTidakSebuah 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.

StatusnyaKapan
400Tidak 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).
402Pro balance tidak dapat mencakup video.
404Tidak 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).
429Anda sudah memiliki 10 video rendering (video_jobs_limitPeriksa mereka dan kirimkan lebih banyak setelah satu selesai.
502Generator menolak pekerjaan. tidak ada yang dikenakan biaya kecuali pemasok menghitungnya.
503Video 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.

BidangJenisDiperlukandeskripsi
modelStringnyaTidakSebuah model pembicaraan dari Daftar Model AudioDefault : suara standar @cf/myshell-ai/melotts. aura-2 Salah satunya adalah Deepgram Aura 2.
inputStringnyaYaTeks untuk dibaca: hingga 800 karakter untuk suara standar, 2.000 untuk Aura 2.
voiceStringnyaTidakIdentifikasi 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.
languageStringnyaTidakSebuah 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_formatStringnyaTidakStandar suara kembali mp3 Aura 2 kembali mp3 (Dalam hal yang demikian, opus, aac, flac, wav atau pcm.
speedJumlahTidakditerima 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)
StatusnyaKapan
400Tidak 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).
422Suara tidak berbicara bahasa yang diberikan, atau model tidak memiliki suara untuk itu.
502Model 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.

BidangJenisDiperlukandeskripsi
languageMenggunakan string (query)TidakHanya suara-suara untuk bahasa ini.
modelMenggunakan string (query)TidakHanya 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.

BidangJenisDiperlukandeskripsi
fileFile yangYaRekaman, dari 256 byte hingga 25 MB dan hingga 30 menit: WAV, WebM, MP4 atau M4A, Ogg atau Opus, MP3 dan format lainnya Whisper membaca.
modelStringnyaTidakKekurangan whisperSalah satunya adalah Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo Dan @cf/openai/whisper-large-v3-turbo Artinya sama saja.
languageStringnyaTidakBahasa yang digunakan, seperti enTerdeteksi jika ditinggalkan.
promptStringnyaTidakKata atau huruf yang diharapkan, seperti nama. hanya 1000 karakter pertama yang digunakan.
response_formatStringnyaTidakjson (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.

StatusnyaKapan
400Tidak ada file, file tanpa audio yang dapat digunakan (invalid_audio, format yang tidak diketahui, atau model yang tidak merupakan model transkripsi (invalid_model).
402Tidak ada keseimbangan yang bisa menutupi itu.
413File 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).
502Suara 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.

BidangJenisDiperlukandeskripsi
modelStringnyaYaSebuah model embedded dari GET /api/v1/models?type=embedding.
inputstring atau array dari stringYa(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_formatStringnyaTidakfloat (dalam hal yang demikian) atau base64 (Little-endian 32-bit floats yang berukuran kecil)
dimensionsIntegrasiTidakukuran modelnya sendiri, atau untuk model dengan supported_dimensions Salah satu dari mereka; vektor itu kemudian dipersingkat dan normal.
ModelnyaDimensikonteksnya
@cf/baai/bge-m31024 dalam berbagai bahasa8.192 Token
@cf/qwen/qwen3-embedding-0.6b1024 dalam berbagai bahasa8.192 Token
@cf/baai/bge-large-en-v1.51024 Bahasa Inggris512 Token
@cf/baai/bge-base-en-v1.5768 Bahasa Inggris512 Token
@cf/baai/bge-small-en-v1.5384 Bahasa Inggris512 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 }
}
StatusnyaKapan
400Tidak 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).
402Keseimbangan standar terlalu rendah. embeddings tidak pernah menggunakan keseimbangan Pro.
404Tidak ada model dengan nama tersebut.
502Model 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);