Baza znanja razvijalci
Slike, avdio in vdelava
Generatorji iz aplikacije in gradniki za iskanje: slike, video, govor, transkripcija in vdelave, vsaka obračunana na uporabo iz vaše bilance.
Ta stran je zaradi priročnosti strojno prevedena. Velja angleški izvirnik.
Generiranje slik
Naredi od enega do štirih slik iz napotka in jih vrne, ko so končane. ?image v aplikaciji .
POST https://nymbot.ai/api/v1/images/generations — potrebuje ključ API ali Lightning plačilo na zahtevo.
ids prihajajo iz GET /api/v1/models?type=image• standardni generator,
@cf/black-forest-labs/flux-1-schnell, stane ravno 5 standardnih kreditov (50 sats) na sliko. Vsak drug generator porabi Pro kreditov po svoji ceni, z običajno pristojbino in maržo, kot v Aplikacija. n Fotografije stanejo
n Polje, ki ga generator ne sprejme, se spusti namesto zavrnitve; standardni generator uporablja samo poziv.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | ja | Generator ID, kot je nano-banana. |
prompt | String | ja | Uporablja se samo prvih 2000 znakov. |
n | integer | ne | 1 do 4. privzeto 1. tudi sprejeto kot num_images. |
size | String | ne | Razmerje, kot je "16:9", ali odprte velikosti, kot so "1792x1024", ki je najbližje razmerju 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 in 4:5. "auto" Postavite ga na generator. |
aspect_ratio | String | ne | Enako kot sizein zmaga, če sta oba poslana. |
quality | String | ne | Specifični generatorji, kot so "low", "medium" ali "high". |
negative_prompt | String | ne | Kaj naj zapustimo. |
output_format | String | ne | "png", "jpeg" ali "webp". |
response_format | String | ne | "url" (odvisno od dolžnosti) ali "b64_json". |
image_url | String | ne | Slika za začetek: A https:// povezavo, ki vsebuje največ 4 096 znakov brez uporabniškega imena ali gesla ali data:image/…;base64 URL (PNG, JPEG, WebP ali GIF; ne SVG). editki jih zahtevajo tisti, ki requires_image_url. |
resolution se ne uporablja: vsak generator naredi svojo velikost. url, vsaka slika se naloži na javni Blossom gostitelj in dobite njeno povezavo (nekateri generatorji vrnejo le svojo povezavo, ki se prenese). Kaj lahko ogenj vidi• z
b64_json slika se vrne v odgovoru in se nikoli ne naloži. slika, poslana kot data: URL v image_url Preverja se na enak način kot
Edit in najprej naložite v Blossom, tako da ga lahko generator prevzame; znova se izbriše, če zahteva ne uspe.
Če so nekatere od n slike ne uspejo, dobite tiste, ki delujejo, se zaračunajo samo za tiste (plus vse ponudnik zaračuna kljub neuspehu), in nymbot.failed pove, koliko jih manjka. če vsi ne uspejo, se zahteva vrne 502.
Odgovor
{
"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 }
}
| statusa | Kdaj |
|---|---|
400 | ni hitra; n izven 1 do 4 (invalid_value); slaba velikost (invalid_size) ali sliko (invalid_image, invalid_image_url); model, ki obstaja, vendar ni generator slike (invalid_model); slika za generator, ki ne more urejati (edit_unsupported); nobena slika za tistega, ki jo potrebuje (image_required). |
402 | Bilance ne more pokriti vsake slike, ki jo potrebujete. |
404 | Ne obstaja model s tem imenom (model_not_found). |
502 | Naprava ne deluje (upstream_errorNič se ne zaračuna, razen če je ponudnik zaračunal za poskus; potem je napaka charged_sats. |
503 | Fotografije trenutno ni mogoče gostiti (media_hosting_unavailable). b64_json Še vedno deluje. |
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);
Urejanje slik
Spreminja sliko, ki jo naložite, po spodnjem navodilu.To je končna točka za urejanje OpenAI, tako da so OpenAI SDK images.edit deluje kot je. samo Pro generatorji z edit na seznamu modelov ga sprejme.
POST https://nymbot.ai/api/v1/images/edits — potrebuje ključ API ali Lightning plačilo na zahtevoTelo je multipart/form-datado 32 MB.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
image | datoteke | ja | Slika za urejanje: PNG, JPEG, WebP ali GIF, do 20 MB. image[]Prva se uporablja. |
prompt | String | ja | Kaj pa spremeniti. |
model | String | ja | Generatorji z edit. |
n | integer | ne | 1 do 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | String | ne | Kar se tiče generacije. |
response_format | String | ne | "b64_json" (v nadaljevanju tukaj) ali "url". |
Slika, ki jo naložite, je preverjena, da je dobro oblikovana PNG, JPEG, WebP ali GIF, poslana kot njena resnična vrsta in postavljena na javni Blossom gostitelj, ker generatorji pobirajo svoj vnos po povezavi. Obravnavajte ga kot javno. Če urejanje ne uspe in se nič ne zaračuna, se gostovana kopija znova izbriše. Odgovor ima enako obliko kot za generacijo. Cena je cena generatorja, ki za nekatere generatorje vključuje pristojbino za vhodno sliko.
Odgovor
{
"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 }
}
| statusa | Kdaj |
|---|---|
400 | Brez slike ali prompt, datoteka, ki ni slika (invalid_image), ali generator, ki ne more urejati (edit_unsupported). |
413 | Slika je večja od 20 MB (file_too_large), ali celotno zahtevo več kot 32 MB. |
503 | Slike trenutno ni mogoče gostiti (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 posnetki
Videoposnetek traja nekaj minut, zato se izvaja v ozadju. ga pošljete, takoj dobite id in vprašajte za id, dokler ni končan.
POST https://nymbot.ai/api/v1/videos — potrebuje ključ API ali Lightning plačilo na zahtevoVrnitev 202.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | ja | Video generator ID iz GET /api/v1/models?type=video, kot so veo. |
prompt | String | ja | Kaj naj se zgodi. |
duration | Številka ali string | ne | Dolžina v sekundah, več kot 0 in do 60. Uporabljajo jih samo generatorji, ki vam omogočajo, da izberete dolžino; drugi naredijo svojo običajno dolžino, kar je tisto, kar seconds v odgovor in cena sledi. |
aspect_ratio | String | ne | Tako kot "16:9" ali "9:16"Velikost, kot je "1280x720" To je najbližji razmerje. |
resolutionquality | String | ne | Eden od generatorjev resolutions Na seznamu modelov, kot so "720p" ali "1080p"To določa ceno. Vse ostalo je zavrnjeno z unsupported_resolution. |
image_url | String | ne | Slika za začetek: A https:// povezava ali a data:image/… URL, ki se najprej naloži v javni Blossom gostitelj. requires_image_url. |
Cena je fiksna, ko pošljete, iz generatorja, resolucije in dolžine, zato se zaračuna iz vašega Pro bilance takoj, ko ponudnik sprejme delo, in je prikazana kot
cost, estimated_cost in nymbotČe ponudnik zavrne delo, se nič ne zaračuna.Če predvajanje pozneje ne uspe ali če končnega posnetka ni mogoče shraniti in ponudnik ni zaračunal za to, se zaračun vrača enkrat, samodejno.Predvajanje, ki še vedno poteka po eni uri, se opusti in ohranja svoje zaračunavanje, ker ponudnik zaračuna predvajanje, ko ga sprejme.Predvajanje vrača kredite, vendar ne znižuje števila porabe ključa.
Odgovor na vprašanje (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 Začne se kot in_progressali completed Videoposnetek že v data generator ga je takoj vrnil.
Preverjanje na video
GET https://nymbot.ai/api/v1/videos/{id} — potrebuje ključ, ki pripada nim, ki ga je predložil. Ključ, ki je dosegel svoj prag, lahko še vedno preveri.
Odgovarja se 202 Medtem ko je videoposnetek narejen in 200 ko je končano ali je neuspešno. Vprašajte vsakih 5 do 10 sekund. Vsak pregled vpraša ponudnika enkrat in odgovori naenkrat; nikoli ne čaka na videoposnetek.
GET /api/v1/videos seznam zadnjih 50 delovnih mest ključa kot
{"object": "list", "data": […]}.
Odgovori na vprašanja (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 je in_progress, completed ali failedNeuspešno delo prinaša error ({"code": "generation_failed", "message": …}če je bil vrnjen, cost je 0 in nymbot Dodajanje
refunded_credits in refunded_satsKončni videoposnetek je na javnem gostitelju Blossom, kot so ustvarjene slike.
| statusa | Kdaj |
|---|---|
400 | Ni hitrega; trajanje zunaj 0 do 60 (invalid_value); resolucija, ki jo generator ne ponuja (unsupported_resolution); ni slike za generator, ki potrebuje eno (image_required); model, ki ni video generator (invalid_model). |
402 | Pro ravnovesje ne more pokriti videa. |
404 | Ni takšnega generatorja (model_not_found), ali brez dela s tem id za vaš nimm, ali je starejši od 24 ur (video_not_found). |
429 | Vaš nimm že ima 10 videoposnetkov (video_jobs_limitPreverite jih in pošljite več, ko ena konča. |
502 | Generator je zavrnil delo. Nič se ne zaračuna, razen če je ponudnik zaračunal za to. |
503 | Videoposnetkov trenutno ni mogoče dostaviti ali shraniti (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);
Besedilo za govor
Glasno bere besedilo in vrne avdio datoteko, ne povezavo. audio.speech.create v OpenAI SDKs deluje.
POST https://nymbot.ai/api/v1/audio/speech — potrebuje ključ API ali Lightning plačilo na zahtevo.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | ne | Vzorec govora iz Seznam avdio modelovPrivzeto: standardni glas, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2. |
input | String | ja | Besedilo za branje: do 800 znakov za standardni glas, 2.000 za Aura 2. |
voice | String | ne | Glasovni ID iz Seznam glasovAura zvočnik, kot je luna (ali pa aura-2-luna-en), ali pa jezik MeloTTS (en, es, fr, zh.OpenAI glasovna imena, kot so alloy so sprejete in dajejo privzeti glas modela. |
language | String | ne | jezikovne kode, kot so esBrez glasu izbere enega za ta jezik. glas, ki govori v drugem jeziku, vrne 422 voice_language_mismatchin jezik, za katerega model nima glasu 422 unsupported_language. |
response_format | String | ne | Standardni glas se vrača mp3 Aura 2 se vrača mp3 (v primeru nepravilnosti) opus, aac, flac, wav ali pcm. |
speed | število | ne | Sprejeto in prezrto. |
Standardni glas stane 3 standardne kredite (30 sats) na zahtevo, kot v aplikaciji. Aura 2 je Pro, cenjeno po znakih, ki jih pošljete.
Content-TypeStroški so v X-Nymbot-Cost-Sats Če govorni model ne uspe, se nič ne zaračuna.
Odgovor
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| statusa | Kdaj |
|---|---|
400 | Brez vnosa; vnos nad mejo modela (input_too_long); format, ki ga model ne more ustvariti (unsupported_response_format); neznani glas (invalid_voice); model, ki ni model govora (invalid_model). |
422 | Glas ne govori danega jezika, ali pa model nima glasu za to. |
502 | Model govora je neuspešen. Nič ni naloženo. |
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()));
Zvočni modeli in glasovi
Dva javna seznama za izbiro modela govora in glasu ali modela transkripcije.Obstaja 41 Aura 2 angleških govorcev in štiri jezike MeloTTS.
GET https://nymbot.ai/api/v1/audio/models Ključ ni potreben.
GET https://nymbot.ai/api/v1/audio/voices?language=en Ključ ni potreben.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
language | String (poizvedba) | ne | Samo glasovi za ta jezik. |
model | String (poizvedba) | ne | Samo glasovi za ta model. |
Odgovori na vprašanja (glas)
{
"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 }
]
}
Seznam modelov odgovori {"object": "list", "data": {"tts": […], "stt": […]}}Vsak model govora daje svojo ravnovesje, ceno, max_input_chars,
response_formats, languages in default_voice- model transkripcije daje svoje vzdevke, max_file_bytes, max_seconds, oblike in cena na minuto.
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);
Besedilo v besedilu
Spreminja zapis v besedilo z Whisper.To je končna točka transkripcije OpenAI, tako da
audio.transcriptions.create Deluje pa
POST https://nymbot.ai/api/v1/audio/transcriptions — potrebuje ključ API ali Lightning plačilo na zahtevoTelo je multipart/form-data.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
file | datoteke | ja | Snemanje, od 256 bajtov do 25 MB in do 30 minut: WAV, WebM, MP4 ali M4A, Ogg ali Opus, MP3 in drugi formati Whisper bere. |
model | String | ne | pomanjkanja whisper, ki je Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo in @cf/openai/whisper-large-v3-turbo pomeni enako |
language | String | ne | govorjenega jezika, kot je enOdkriti, če je bil zapuščen |
prompt | String | ne | Besede ali črkovanja, ki jih lahko pričakujete, kot so imena. Uporablja se le prvih 1000 znakov. |
response_format | String | ne | json (v primeru nepravilnosti) text, srt, vtt ali verbose_json. |
Za datoteke WAV, WebM, MP4 in Ogg se dolžina prebere iz datoteke, preden se nekaj izvaja, zato je snemanje več kot 30 minut zavrnjeno naprej (z 3 sekundami). Dolžina datoteke WAV je odvisna od njene vzorčne hitrosti, kanalov in velikosti vzorca. Dolžina drugih formatov, kot je MP3, se ne more prebrati naprej, zato so omejeni z velikostjo: pri najnižji bitni hitrosti Nymbot predvideva, da je 8 kbps, 30 minut je 1,8 MB, in večja datoteka v takšni obliki je zavrnjena z 413
audio_too_long pošljite daljše posnetke kot WAV, WebM, MP4 ali Ogg. Če Whisper nato poroča več kot 30 minut, se zahteva zavrne z
413 audio_too_long, in ker je Whisper teče, 30 minut se zaračuna.
Plačate za dolžino zvoka, zaokroženo do sekunde: najdaljša dolžina branja iz datoteke, dolžina Whisper poročila, in najmanj velikost datoteke omogoča, na Whisper je cena na minuto z običajno pristojbino in maržo, in vsaj 0,05 kredit zahtevo. 402 V aplikaciji je lahko transkripcija glasovnega sporočila brezplačna; na API-ju se vedno zaračuna.
Odgovor
{
"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 vrne jasno besedilo, srt in vtt vrnitev podnapisov in
verbose_json dodaja jezik, trajanje in časovne segmente. Za tri, ki niso JSON, so stroški v naslovih.
| statusa | Kdaj |
|---|---|
400 | Ni datoteke, datoteka brez uporabnega avdio (invalid_audio, neznana oblika ali model, ki ni transkripcijski model (invalid_model). |
402 | Tudi ravnotežje ga ne more pokriti. |
413 | datoteka je večja od 25 MB (file_too_large(v primeru, da je vsebina v obliki zapisa, ki ni daljša od 1 MB, ne sme biti daljša od 1 MB)audio_too_long). |
502 | Šepetanje ni moglo obdelati zvoka. Nič ni naloženo. |
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);
Prevajanje govora v angleščino
POST https://nymbot.ai/api/v1/audio/translations — potrebuje ključ API ali Lightning plačilo na zahtevoTelo je multipart/form-data.
Enako kot transkripcija, z istimi polji poleg language, omejitve in cena, vendar se besedilo vrne v angleščini, ne glede na jezik. 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);
Embeddings
Pretvori besedilo v vektorje za iskanje, združevanje in deduplikiranje. Modeli se izvajajo v storitvi Cloudflare in porabijo standardno stanje.
POST https://nymbot.ai/api/v1/embeddings — potrebuje ključ API ali Lightning plačilo na zahtevo.
| polje | Vrsta | Potrebno | Opis |
|---|---|---|---|
model | String | ja | Vgrajeni model iz GET /api/v1/models?type=embedding. |
input | String ali niz stringov | ja | Izdelek je bil izdelan v obliki ploščic, ki niso bile vgrajene, ampak so bile vgrajene (token_input_unsupportedVsak vnos mora ustrezati modelu context_length, šteje kot približno štiri bajte na žeton. |
encoding_format | String | ne | float (odvisno od dolžnosti) ali base64 (Little-endian 32-bitni plavajoči ploščadi) |
dimensions | integer | ne | lastno velikost modela ali za model z supported_dimensions Vektor je nato skrajšan in normaliziran.Vse ostalo je zavrnjeno. |
| modela | dimenzijah | Kontekst |
|---|---|---|
@cf/baai/bge-m3 | 1024 v številnih jezikih | 8,192 žetonov |
@cf/qwen/qwen3-embedding-0.6b | 1024 v številnih jezikih | 8,192 žetonov |
@cf/baai/bge-large-en-v1.5 | 1024 angleščina | 512 žetonov |
@cf/baai/bge-base-en-v1.5 | 768, Angleščina | 512 žetonov |
@cf/baai/bge-small-en-v1.5 | 384 angleščina | 512 žetonov |
Seznam modelov je vir resnice, za katere so na voljo in kaj stanejo; Googlov EmbeddingGemma, s krajšimi vektorji na zahtevo, se pojavi tudi, ko ima katalog ceno za to.
Odgovor
{
"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 }
}
| statusa | Kdaj |
|---|---|
400 | Ni vnosa ali prazno eno; žetoni (token_input_unsupported); več kot 100 vhodov (too_many_inputs); vnos je daljši od modela (input_too_long); velikost, ki je model ne more dati (unsupported_dimensions). |
402 | Standardno ravnotežje je prenizko. Vdelave nikoli ne uporabljajo Pro ravnotežje. |
404 | Nobenega modela s tem imenom. |
502 | Model je neuspešen. Nič ni naloženo. |
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);