İçeriğe atla
Nymbot’a Dönüş

Bilgi tabanı Geliştirici

Görüntüler, Audio ve Embeddings

Uygulamanın jeneratörleri ve arama için inşaat blokları: resimler, video, konuşma, transkripsiyon ve eklentiler, her biri bilançonuzdan kullanım başına faturalandırılır.

Görüntüleri oluşturmak

Dört dört resim yapar ve tamamlandıklarında geri verir. ?image App içinde

POST https://nymbot.ai/api/v1/images/generations - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödeme.

ids geliyor GET /api/v1/models?type=imageStandart bir jeneratör, @cf/black-forest-labs/flux-1-schnell, maliyeti bir düz 5 standart krediler (50 sats) bir resim. Her diğer jeneratör kendi fiyatında Pro kredileri harcıyor, normal ücret ve marj, gibi Uygulama. n Fotoğraf maliyeti n Bir jeneratör tarafından alınmayan bir alan, reddedilen yerine düşer; standart jeneratör sadece prompt kullanır.

alanıtürüİhtiyaçAçıklama
modelString içinEvetÖrneğin, bir jeneratör ID, nano-banana.
promptString içinEvetSadece ilk 2000 karakter kullanılır.
nİnterneteHayır1 - 4 Default 1. Aynı zamanda kabul edilir num_images.
sizeString içinHayırÖrneğin, böyle bir oran "16:9"ya da böyle bir açılım gibi "1792x1024", en yakın olanı ise 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 ve 4:5. "auto" Bunu jeneratora bırakın.
aspect_ratioString içinHayırAynı şekilde sizeİkisi de gönderilirse kazanır.
qualityString içinHayırÖrneğin özel jeneratörler, "low", "medium" veya "high".
negative_promptString içinHayırNeyi terk etmek lazım.
output_formatString içinHayır"png", "jpeg" veya "webp".
response_formatString içinHayır"url" (Devamını Oku) veya "b64_json".
image_urlString içinHayırBaşlamak için bir resim: A https:// Kullanıcı adı veya şifre olmadan en fazla 4.096 karakter içeren bir bağlantı veya data:image/…;base64 URL (PNG, JPEG, WebP veya GIF; SVG değil). editİhtiyaç olanlar için; requires_image_url.

resolution kullanılmaz: her jeneratör kendi boyutunu yapar. url, her resim kamuya açık bir Blossom sunucusuna yüklenir ve bağlantıyı alırsınız (birkaç jeneratör sadece kendi bağlantısını geri verir, bu bağlantıyı iletir). Ateş ne görebilirile b64_json Resim cevap olarak geri gelir ve hiçbir zaman yüklenmez. data: URL içeriği image_url Aynı şekilde kontrol ediliyor Edit için İlk önce Blossom'a yüklenir, böylece jeneratör onu alabilir; isteğin faturalandırılmadığı takdirde tekrar silinir.

Eğer bir kısmı n görüntüler başarısız olur, işe yarayanları alırsınız, sadece onlar için ücretlendirilir (destek sağlayıcısı başarısız olmasına rağmen faturalandı), ve nymbot.failed kaç tane eksik olduğunu gösterir. eğer hepsi başarısız olursa, isteği geri 502.

Cevap

{
  "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 }
}
statüsüNe zaman
400Hızlı değil; n 1 ile 4 arasında (invalid_valueKötü bir boyut (invalid_size) veya resim (invalid_image, invalid_image_url); var olan bir model ama bir görüntü jeneratörü değil (invalid_model); düzenleme yapamayan bir jeneratör için bir resim (edit_unsupportedİhtiyacı olan kimse için bir resim yok (image_required).
402İhtiyaç duyulan her fotoğrafı karşılayamaz.
404Hiçbir model bu isimle (model_not_found).
502(Generatörün işe yaramadığı)upstream_errorHiçbir şey ücretli değildir, ancak sağlayıcı deneme için faturalandırılmıştır; o zaman hata charged_sats.
503Fotoğraflar şu anda barındırılamaz (media_hosting_unavailable). b64_json Hala çalışıyor

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

Görüntüleri Edit

Bu, OpenAI'nin düzenleme son noktasıdır, bu nedenle OpenAI SDK'ları images.edit çalışıyor. sadece Pro jeneratörler ile edit Model listesinde bunu kabul edin.

POST https://nymbot.ai/api/v1/images/edits - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödemeVücut ise multipart/form-data32 MB’a kadar

alanıtürüİhtiyaçAçıklama
imageDosyaEvetDüzenlenecek resim: PNG, JPEG, WebP veya GIF, 20 MB'a kadar. image[]Birincisi de kullanılıyor.
promptString içinEvetNeyi değiştirmek lazım.
modelString içinEvetBir jeneratör ile edit.
nİnterneteHayır1 ile 4
size
aspect_ratio
quality
negative_prompt
output_format
String içinHayırBir nesil için.
response_formatString içinHayır"b64_json" (Devamını buradan okuyabilirsiniz) veya "url".

Gönderdiğiniz resim, iyi biçimlendirilmiş bir PNG, JPEG, WebP veya GIF olup olmadığını kontrol eder, gerçek türü olarak gönderilir ve toplu bir Blossom sunucusuna yerleştirilir, çünkü jeneratörler girişlerini bağlantı yoluyla alırlar. düzenleme başarısız olursa ve hiçbir şey yüklenmezse, barındırılan kopya tekrar silinir. Yanıt, jeneratörün fiyatıdır, bazı jeneratörler için giriş resim ücreti dahildir.

Cevap

{
  "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 }
}
statüsüNe zaman
400Hiçbir resim veya prompt, resim olmayan bir dosya (invalid_image) veya edit edilemeyen bir jeneratör (edit_unsupported).
413Resim 20 MB’den fazla (file_too_large) veya 32 MB'den fazla tüm isteği.
503Fotoğraf şu anda barındırılamaz (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"));

Videoları

Bir video dakika alır, bu yüzden arka planda çalışır. onu gönderir, hemen bir id alır ve bitene kadar id hakkında sorar. Her video jeneratörü Pro dengesini harcıyor.

POST https://nymbot.ai/api/v1/videos - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödemeGeri Dönüş 202.

alanıtürüİhtiyaçAçıklama
modelString içinEvetBir video jeneratörü id GET /api/v1/models?type=videoTıpkı veo.
promptString içinEvetNe olmalı ki.
durationNumara veya StringHayırSaniyelerde uzunluk, 0'dan fazla ve 60'a kadar. sadece uzunluk seçmenize izin veren jeneratörler tarafından kullanılır; diğerleri normal uzunluğunu yapar, bu ne seconds Cevaplar ve fiyatlar aşağıda.
aspect_ratioString içinHayırgibi "16:9" veya "9:16"Tıpkı bir büyüklükte "1280x720" en yakın ilişki haline gelmiştir.
resolution
quality
String içinHayırBir de jeneratörün resolutions Örneğin, model listesinde, "720p" veya "1080p"Fiyatı belirler.Diğer her şey reddedilir unsupported_resolution.
image_urlString içinHayırBaşlamak için bir resim: A https:// Link veya A data:image/… URL, ilk olarak halka açık bir Blossom barındırıcısına yüklenir. requires_image_url.

Fiyat, gönderdiğinizde, jeneratörden, çözünürlükten ve uzunluğundan sabittir, bu nedenle tedarikçi işi kabul ettikten sonra Pro bilançosundan ücretlendirilir ve gösterilir. cost, estimated_cost Ve nymbotTedarikçi işten vazgeçerse, hiçbir şey ücretlendirilmez. Daha sonra renderin başarısız olması veya bitmiş klibi saklanamıyorsa ve tedarikçi bunun için fatura vermediği takdirde, ücret otomatik olarak bir kez iade edilir. Bir saat sonra hala devam eden bir render iptal edilir ve ücretini tutar, çünkü tedarikçi kabul edildikten sonra bir render iade eder. Bir iade kredileri iade eder ancak anahtarın harcamaları sayısını düşürmez.

Yanıtla (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 Başlangıç As in_progressya da completed Bu videoda zaten içeride data Generatör hemen geri getirdi.

Bir videoda kontrol etmek

GET https://nymbot.ai/api/v1/videos/{id} Bir anahtar, anahtarın kapısına ulaşmış olan anahtarı kontrol edebilir. — needs a key belonging to the nym that submitted it.

cevap veriyor 202 Videonun hazırlanması ve 200 Tamamlandıktan sonra veya başarısız oldu. Her 5 ila 10 saniyede bir sor. Her kontrol sağlayıcısına bir kez sorar ve hemen cevap verir; videoyu beklemez. Bir iş gönderildikten sonra 24 saat boyunca tutulur. GET /api/v1/videos Anahtarın son 50 işini listeleyin {"object": "list", "data": […]}.

Çözümler (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 bence in_progress, completed veya failedBaşarısız Bir İş Yapar error ({"code": "generation_failed", "message": …}Eğer geri ödenmişse, cost 0 ve nymbot ekleme refunded_credits Ve refunded_satsTamamlanan video, oluşturulan resimler gibi kamuya açık bir Blossom sunucusudur.

statüsüNe zaman
4000 0 0 0 0 0 0 0 0 0 0 0 (invalid_value); jeneratörün sunmadığı bir çözünürlük (unsupported_resolution); ihtiyacı olan bir jeneratör için bir resim yok (image_required); bir video jeneratörü olmayan bir model (invalid_model).
402Pro dengesi videoyu kapamaz.
404Böyle bir sistem yok (model_not_foundbu ilanı beğen Tem 24 (or no job by that id for your nym, or it is more than 24 hours old) (video_not_found).
4290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0video_jobs_limitOnları kontrol edin ve bir bittikten sonra daha fazla gönderin.
502Jeneratör işi reddetti.Satış sağlayıcısı bunun için fatura etmediği sürece hiçbir şey ücretli değildir.
503Videolar şu anda teslim edilemez veya saklanamaz (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);

Konuşma için yazı

Yazıyı yüksek sesle okuyor ve bir bağlantı değil, ses dosyasını kendisi geri verir. audio.speech.create OpenAI SDK’lar çalışıyor.

POST https://nymbot.ai/api/v1/audio/speech - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödeme.

alanıtürüİhtiyaçAçıklama
modelString içinHayırBir konuşma modelinden Audio Modelleri ListesiStandart ses: Standart ses, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 Hakkında
inputString içinEvetOkunacak metin: Standart ses için 800 karakter, Aura 2 için 2000 karakter.
voiceString içinHayırBir Ses Kimliği Sesler listesi: Aura konuşmacı gibi luna (veya aura-2-luna-enMeloTTS dilini kullanarak (en, es, fr, zhOpenAI ses isimleri gibi alloy kabul edilir ve modelin varsayılan sesini verir.
languageString içinHayırgibi bir dil kodu esBir ses yoksa, o dili seçer. başka bir dil konuşan bir ses geri döner. 422 voice_language_mismatchve modelin konuşmadığı bir dil 422 unsupported_language.
response_formatString içinHayırStandart Ses Geri Dönüyor mp3 Aura 2 Geri Dönüyor mp3 (Düzenleme için tıklayın) opus, aac, flac, wav veya pcm.
speedNumarasıHayırKabul edilmiş ve göz ardı edilmiştir.

Standart ses, uygulamada olduğu gibi bir talep için 3 standart kredi (30 sats) tutarına mal olur. Aura 2 Pro, gönderdiğiniz karakterlere göre fiyatlandırılır. Cevap vücudu, eşleşen bir Content-TypeFiyatı ise içinde X-Nymbot-Cost-Sats Konuşma modeli başarısız olursa, hiçbir şey yüklenmez.

Cevap

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

(audio bytes)
statüsüNe zaman
400Çevresel Çevresel Çevresel Çevre (input_too_long); modelin üretemeyeceği bir format (unsupported_response_formatBilinmeyen bir ses (invalid_voice); bir konuşma modeli olmayan bir model (invalid_model).
422Ses verilen dili konuşmaz, ya da modelin onun için bir sesi yoktur.
502Konuşma modeli başarısız oldu.Hiçbir şey yüklenmedi.

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

Ses Modelleri ve Sesler

Bir konuşma modeli ve ses seçmek için iki kamu listesi, ya da bir transkripsiyon modeli. 41 Aura 2 İngilizce konuşanlar ve dört MeloTTS diller vardır.

GET https://nymbot.ai/api/v1/audio/models Hiçbir anahtar gerekmez.

GET https://nymbot.ai/api/v1/audio/voices?language=en Hiçbir anahtar gerekmez.

alanıtürüİhtiyaçAçıklama
languageString Hakkında (Query)HayırBu dil için sadece sesler.
modelString Hakkında (Query)HayırBu model için sadece sesler.

Cevaplar ( Sesler )

{
  "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 Listesi Cevapları {"object": "list", "data": {"tts": […], "stt": […]}}Her konuşma modeli dengesini, fiyatını, max_input_chars, response_formats, languages Ve default_voiceÇevirilerde ise şifreleme şekli, max_file_bytes, max_secondsFiyatlar ve dakikalık fiyatlar.

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

Konuşma Teksti

Bir kaydı Whisper ile metne dönüştürür. bu OpenAI'nin transkripsiyon son noktasıdır, bu yüzden audio.transcriptions.create iş yapıyor

POST https://nymbot.ai/api/v1/audio/transcriptions - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödemeVücut ise multipart/form-data.

alanıtürüİhtiyaçAçıklama
fileDosyaEvetKayıt, 256 byte'den 25 MB'a kadar ve 30 dakika'a kadar: WAV, WebM, MP4 veya M4A, Ogg veya Opus, MP3 ve diğer formatlar Whisper okur.
modelString içinHayıreksiklik whisperBu da Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo Ve @cf/openai/whisper-large-v3-turbo Aynı anlama geliyor.
languageString içinHayırKonuşulan dil, yani enDışarı çıktığında tespit edilmiştir.
promptString içinHayırİsimler gibi beklenebilecek kelimeler veya yazımlar. Sadece ilk 1000 karakter kullanılır.
response_formatString içinHayırjson (Düzenleme için tıklayın) text, srt, vtt veya verbose_json.

WAV, WebM, MP4 ve Ogg dosyaları için uzunluk, herhangi bir şey çalışmadan önce dosyadan okunur, bu nedenle 30 dakikadan fazla bir kaydetme önde reddedilir (3 saniye yardımıyla). Bir WAV dosyasının uzunluğu örnek oranı, kanalları ve örnek boyutuna göre gelir. MP3 gibi diğer formatların uzunluğu önde okunamaz, bu yüzden boyutla sınırlıdır: en düşük bit oranı Nymbot 8 kbps, 30 dakika 1.8 MB ve böyle bir biçimde daha büyük bir dosya ile reddedilir. 413 audio_too_long herhangi bir şey çalışmadan önce. daha uzun kayıtları WAV, WebM, MP4 veya Ogg olarak gönderin. Eğer Whisper daha sonra 30 dakikadan fazla rapor verirse, isteği reddedilir 413 audio_too_long, ve Şişman çalıştıktan sonra, 30 dakika şarj edilir.

Sesin uzunluğuna, saniyeye kadar yuvarlandıktan sonra ödersiniz: dosyadan okunan uzunluğun en uzunluğu, uzunluk Whisper raporları ve en az dosya boyutu izin verir, normal ücret ve marj ile Whisper'ın dakikalık fiyatına ve en az 0.05 kredi talep ile. 402 Uygulamada, bir ses mesajının transkripsiyonu ücretsiz olabilir; API'de her zaman yüklenir. Şişman başarısız olursa hiçbir şey yüklenmez.

Cevap

{
  "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 Açık metni geri verir, srt Ve vtt Geri dönüşümler ve verbose_json Dili, süresi ve zamanlandırılmış segmentleri ekler. JSON olmayan üç segment için maliyet başlıklarda bulunur.

statüsüNe zaman
400Hiçbir dosya, kullanışlı olmayan bir ses dosyası (invalid_audioBilinmeyen bir format, veya bir transcription model olmayan bir model (invalid_model).
402Hatta bu dengeleri de karşılayamaz.
41325 MB’den fazla dosya (file_too_large(Daha fazla bilgi için tıklayınız: 1 GB veya daha uzun bir sürümde)audio_too_long).
502Şişman ses işlemeyi başaramadı. hiçbir şey yüklenmedi.

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

İngilizce Konuşma Çeviri

POST https://nymbot.ai/api/v1/audio/translations - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödemeVücut ise multipart/form-data.

Aynı transcription, aynı alanlar hariç language, limitler ve fiyatlar, ancak metin konuşulan dili ne olursa olsun İngilizce'de geri geliyor. 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);

Embeddedler

Arama, gruplandırma ve deduplikasyon için metni vektörlere dönüştürür.Modeller Cloudflare'da çalıştırılır ve standart dengeyi harcıyor.

POST https://nymbot.ai/api/v1/embeddings - bir API anahtarı gerektirir, veya Talep üzerine Lightning ödeme.

alanıtürüİhtiyaçAçıklama
modelString içinEvetİçerdiği bir modelden GET /api/v1/models?type=embedding.
inputString veya ArrayEvetSıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfırdan Sıfır (token_input_unsupportedHer giriş modeline uygun olmalıdır. context_lengthÜzerine yaklaşık dört dörtlük yapılmıştır.
encoding_formatString içinHayırfloat (Devamını Oku) veya base64 (Little-endian 32 bit uçuşları)
dimensionsİnterneteHayırmodelin kendi boyutu, ya da bir model için supported_dimensions Bunlardan biri; vektor daha sonra kısaltılır ve normalleştirilir.
ModeliboyutlarıKonteyner
@cf/baai/bge-m31024 - Birçok dil8192 Çanakkale
@cf/qwen/qwen3-embedding-0.6b1024 - Birçok dil8192 Çanakkale
@cf/baai/bge-large-en-v1.51024 İngilizce512 Yorumlar
@cf/baai/bge-base-en-v1.5768, İngilizce512 Yorumlar
@cf/baai/bge-small-en-v1.5384 İngilizce512 Yorumlar

Model listesi, ne için mevcut oldukları ve maliyetlerinin gerçeğinin kaynağıdır; Google'ın EmbeddingGemma, talep üzerine daha kısa vektörlerle, katalogta bunun için bir fiyat olduğu zaman da orada görünür.

Cevap

{
  "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 }
}
statüsüNe zaman
400Çevre ve Sosyal İlişkiler (Devamla)token_input_unsupported); 100'den fazla giriş (too_many_inputs); modelin almasından daha uzun bir giriş (input_too_long); modelin veremeyeceği bir boyut (unsupported_dimensions).
402Standart dengesi çok düşüktür.Girişler asla Pro dengesini kullanmaz.
404Bu ismi taşıyan bir model yok.
502Fatura ödenmiyor, ücret ödenmiyor

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