Zināšanu bāze Izstrādātāji
Attēli, audio un iebūvējumi
Ģeneratori no lietojumprogrammas un meklēšanas celtniecības bloki: attēli, video, runa, transkripcija un iebūvējumi, katrs iekasēts par lietošanu no jūsu bilances.
Ērtības labad šī lapa ir mašīntulkota. Piemērotā versija ir oriģināls angļu valodā.
Attēlu ģenerēšana
Izveido vienu līdz četras bildes no ielūguma un atgriež tās, kad tās ir pabeigtas. ?image Tajā pašā app.
POST https://nymbot.ai/api/v1/images/generations — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.
Iedvesma nāk no GET /api/v1/models?type=imageStandarta ģenerators
@cf/black-forest-labs/flux-1-schnell, izmaksas 5 standarta kredītus (50 sats) attēlu. katrs cits ģenerators tērē Pro kredītus par savu cenu, ar parasto maksu un maržu, kā Apiņa. n Attēlu izmaksas
n Lauks, ko ģenerators neņem, tiek izlaists, nevis noraidīts; standarta ģenerators izmanto tikai uzrunu.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
model | Stringa | Jā | Generators ID, piemēram, nano-banana. |
prompt | Stringa | Jā | Tikai pirmās 2000 rakstzīmes tiek izmantotas. |
n | Integrācija | Nē | 1 līdz 4. noklusējums 1. arī pieņemts kā num_images. |
size | Stringa | Nē | Attiecībā uz tādiem aspektiem kā "16:9", vai tādu atvērto izmēru kā "1792x1024", kas kļūst par tuvāko no 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 un 4:5. "auto" Atstājiet to ģeneratorā. |
aspect_ratio | Stringa | Nē | Tāpat kā size, un uzvar, ja abi tiek nosūtīti. |
quality | Stringa | Nē | Specifiski ģeneratori, piemēram "low", "medium" vai "high". |
negative_prompt | Stringa | Nē | Ko atstāt ārā. |
output_format | Stringa | Nē | "png", "jpeg" vai "webp". |
response_format | Stringa | Nē | "url" (par nepilnībām) vai "b64_json". |
image_url | Stringa | Nē | Attēls, kas sākas ar: a https:// saite ar ne vairāk kā 4 096 rakstzīmēm bez lietotājvārda vai paroles tajā, vai data:image/…;base64 URL (PNG, JPEG, WebP vai GIF; ne SVG).Tikai ģeneratoriem ar editTādēļ tiem, kam nepieciešama requires_image_url. |
resolution nav izmantots: katrs ģenerators rada savu izmēru. url, katrs attēls tiek augšupielādēts publiskam Blossom saimniekam, un jūs saņemsiet saiti (daži ģeneratori atdod tikai savu saiti, kas tiek nodota tālāk). Ko var redzēt ugunsgrēksar
b64_json attēls atgriežas atbildē un nekad netiek augšupielādēts. data: URL uz image_url Tas tiek pārbaudīts tāpat kā
Edit un vispirms augšupielādē Blossom, lai ģenerators to varētu saņemt; tas tiek dzēsts vēlreiz, ja pieprasījums neizdodas atskaitīt.
Ja daži no n attēli neizdodas, jūs saņemsiet tos, kas strādāja, tiek iekasēti tikai par tiem (plus jebkurš pakalpojumu sniedzējs iekasēja, neskatoties uz neveiksmi), un nymbot.failed norāda, cik daudz trūkst.Ja visi neizdodas, pieprasījums atgriežas 502.
Atbilde
{
"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 }
}
| Statuss | Kad |
|---|---|
400 | nav ātra; n no 1 līdz 4 (invalid_value• slikta garastāvokļa (invalid_size) vai attēlu (invalid_image, invalid_image_url); modelis, kas pastāv, bet nav attēla ģenerators (invalid_model); attēlu ģeneratoram, kas nevar rediģēt (edit_unsupportedNeviens no tiem, kam tas ir vajadzīgs (image_required). |
402 | Balanss nevar segt katru pieprasīto attēlu. |
404 | Nav modeļa ar šo nosaukumu (model_not_found). |
502 | Šķidrums ir bojāts (upstream_errorNekas netiek iekasēts, ja vien piegādātājs nav iekasējis par mēģinājumu; tad kļūda ir charged_sats. |
503 | Fotogrāfijas pašlaik nevar uzglabāt (media_hosting_unavailable). b64_json Joprojām darbojas |
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);
Attēlu rediģēšana
Mainās attēls, kuru augšupielādējat, sekojot norādījumam.Tas ir OpenAI rediģēšanas gala punkts, tāpēc OpenAI SDK images.edit darbojas tā, kā tas ir. tikai Pro ģeneratori ar edit Modelu sarakstā tas ir pieņemts.
POST https://nymbot.ai/api/v1/images/edits — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-dataLīdz pat 32 MB.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
image | failu | Jā | Attēls rediģēšanai: PNG, JPEG, WebP vai GIF, līdz 20 MB. image[]Pirmais no tiem tiek izmantots. |
prompt | Stringa | Jā | Ko mainīt |
model | Stringa | Jā | Ģenerators ar edit. |
n | Integrācija | Nē | 1 līdz 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | Stringa | Nē | Attiecībā uz paaudzi. |
response_format | Stringa | Nē | "b64_json" (parastais attēls šeit) vai "url". |
Attēls, ko augšupielādējat, tiek pārbaudīts, vai tas ir labi izveidots PNG, JPEG, WebP vai GIF, nosūtīts kā tā reālais veids, un ievietots publiskā Blossom hostā, jo ģeneratori saņem savu ievadi ar saiti. Rūpējieties par to kā publisku. Ja rediģēšana neizdodas un nekas netiek iekasēts, hostētā kopija tiek izdzēsta vēlreiz. Atbilde ir tādas pašas formas kā ģenerācijai. Cena ir ģeneratora cena, kas dažiem ģeneratoriem ietver ievades attēla maksu.
Atbilde
{
"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 }
}
| Statuss | Kad |
|---|---|
400 | Nav attēla vai ielūguma, fails, kas nav attēls (invalid_image), vai ģenerators, kas nevar rediģēt (edit_unsupported). |
413 | Attēls ir lielāks par 20 MB (file_too_large), vai visu pieprasījumu, kas pārsniedz 32 MB. |
503 | Fotogrāfiju pašlaik nevar uzglabāt (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
Video aizņem minūtes, tāpēc tas darbojas fonā. Jūs to iesniedzat, saņemsiet ID tūlīt un jautājat par ID, līdz tas ir pabeigts.
POST https://nymbot.ai/api/v1/videos — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaAtgriešanās 202.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
model | Stringa | Jā | Video ģeneratora ID no GET /api/v1/models?type=videoTāpat kā veo. |
prompt | Stringa | Jā | Kas būtu jādara. |
duration | Numurs vai string | Nē | Garums sekundēs, vairāk nekā 0 un līdz 60. Izmanto tikai ģeneratori, kas ļauj izvēlēties garumu; pārējie padara savu parasto garumu, kas ir tas, ko seconds Atbilde un cena seko. |
aspect_ratio | Stringa | Nē | Tāpat kā "16:9" vai "9:16"Tāds izmērs kā "1280x720" Tas kļūst par tuvāko attiecību. |
resolutionquality | Stringa | Nē | Viens no ģeneratoriem resolutions sarakstā, piemēram, tāda veida "720p" vai "1080p"Tas nosaka cenu.Viss pārējais tiek noraidīts ar unsupported_resolution. |
image_url | Stringa | Nē | Attēls, kas sākas ar: a https:// Saite vai a data:image/… URL, kas vispirms tiek augšupielādēts publiskajam Blossom saimniekam. requires_image_url. |
Cena ir fiksēta, kad jūs iesniedzat, no ģeneratora, izšķirtspējas un garuma, tāpēc tas tiek iekasēts no jūsu Pro bilances, tiklīdz pakalpojumu sniedzējs pieņem darbu, un tiek parādīts kā
cost, estimated_cost un nymbotJa piegādātājs atsakās no darba, nekas netiek iekasēts.Ja atskaņošana vēlāk neizdodas, vai pabeigtais klips nevar tikt saglabāts un piegādātājs par to nav rēķinājies, maksa tiek atmaksāta vienu reizi, automātiski. Atskaņošana, kas joprojām notiek pēc stundas, tiek atņemta un saglabā savu maksu, jo piegādātājs rēķina atskaņošanu, kad tas to pieņem. Atmaksāšana atgriež kredītus, bet nesamazina atslēgas izdevumu skaitu.
Atbilde uz jautājumu (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 Sākas kā in_progressvai completed Video jau ir iekļauts data Kad ģenerators to nekavējoties atdeva.
Pārbaudiet video
GET https://nymbot.ai/api/v1/videos/{id} — nepieciešama atslēga, kas pieder tam nimam, kas to iesniedza. atslēga, kas ir sasniegusi savu maksimumu, joprojām var pārbaudīt.
Tā atbild 202 Kamēr videoklips tiek uzņemts un 200 kad tas ir pabeigts vai nav izdevies. Jautājiet ik pēc 5 līdz 10 sekundēm. Katra pārbaude jautā piegādātājam vienu reizi un atbild uzreiz; tas nekad negaida video. Darbs tiek turēts 24 stundas pēc tam, kad tas tika iesniegts.
GET /api/v1/videos Saraksta pēdējos 50 darbavietas kā
{"object": "list", "data": […]}.
Atbilde uz jautājumu (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 ir in_progress, completed vai failedNeveiksmīgs darbs pārvadā error ({"code": "generation_failed", "message": …}Ja tas ir atmaksāts, cost ir 0 un nymbot Papildināt
refunded_credits un refunded_satsGatavā video ir publiskā Blossom hostā, tāpat kā ģenerētie attēli.
| Statuss | Kad |
|---|---|
400 | Nav ātruma; ilgums ārpus 0 līdz 60 (invalid_value); izšķirtspēja, ko ģenerators nesniedz (unsupported_resolution); nav attēla ģeneratoram, kas prasa vienu (image_required(Pāradresēts no VID, kas nav VID vadītājs)invalid_model). |
402 | Pro līdzsvars nevar aptvert video. |
404 | Nav šāda ģeneratora (model_not_found), vai nav darba ar šo ID jūsu nym, vai tas ir vairāk nekā 24 stundas vecs (video_not_found). |
429 | Jūsu nym jau ir 10 video rādīšana (video_jobs_limitPārbaudiet tos un iesniedziet vairāk, kad viens beidzas. |
502 | Ģenerators atteicās no darba. Nekas netiek iekasēts, ja vien pakalpojumu sniedzējs par to nav samaksājis. |
503 | Video pašlaik nevar piegādāt vai saglabāt (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);
Teksts uz runu
Lasīt tekstu skaļi un atgriež pašu audio failu, nevis saiti. audio.speech.create OpenAI SDK darbojas.
POST https://nymbot.ai/api/v1/audio/speech — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
model | Stringa | Nē | Runas modelis no Audio modeļu sarakstsStandarta balss: standarta balss @cf/myshell-ai/melotts. aura-2 Tā ir Deepgram Aura 2. |
input | Stringa | Jā | Teksts, kas jāizlasa: līdz 800 rakstzīmēm standarta balss, 2000 Aura 2. |
voice | Stringa | Nē | Balss ID no Balss sarakstsAura skaļruņi, piemēram, luna (vai aura-2-luna-enVārds, uzvārds un uzvārds MeloTTS (en, es, fr, zhOpenAI balss nosaukumi, piemēram, alloy tiek pieņemti un dod modeļa noklusējuma balsi. |
language | Stringa | Nē | Valodas kods, kas esBez balss, tā izvēlas vienu valodu. balss, kas runā citā valodā atgriežas 422 voice_language_mismatchun valoda, kurai modelim nav balss 422 unsupported_language. |
response_format | Stringa | Nē | Standarta balss atgriežas mp3 Aura 2 atgriežas mp3 (Tā ir deficīta situācija) opus, aac, flac, wav vai pcm. |
speed | Numurs | Nē | Pieņemts un ignorēts. |
Standarta balss maksā 3 standarta kredītus (30 sats) par pieprasījumu, kā lietojumprogrammā. Aura 2 ir Pro, cenu nosaka pēc rakstzīmēm, ko nosūtāt. Atbildes ķermenis ir audio, ar atbilstīgu
Content-Type• izmaksas ir iekļautas X-Nymbot-Cost-Sats Ja runas modelis neizdodas, nekas netiek iekasēts.
Atbilde
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Statuss | Kad |
|---|---|
400 | Nav ievades; ievade pārsniedz modeļa robežu (input_too_long); formāts, ko modelis nevar ražot (unsupported_response_format1) nezināmā balss (invalid_voice(Tas ir tikai viens no veidiem, kā atrisināt problēmu, kas nav uzskatāma par problēmu)invalid_model). |
422 | Balss nerunā norādīto valodu, vai modelim nav balss par to. |
502 | Runas modelis neizdevās. nekas nav iekasēts. |
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 modeļi un balsis
Divi publiski saraksti, lai izvēlētos runas modeli un balsi vai transkripcijas modeli.Ir 41 Aura 2 angļu valodas un četras MeloTTS valodas.
GET https://nymbot.ai/api/v1/audio/models Nav nepieciešama atslēga.
GET https://nymbot.ai/api/v1/audio/voices?language=en Nav nepieciešama atslēga.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
language | String (prasības vārdi) | Nē | Tikai balsis šai valodai. |
model | String (prasības vārdi) | Nē | Tikai balsis šim modelim. |
Atbildes uz jautājumiem (balss)
{
"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 }
]
}
Modelu saraksts Atbildes {"object": "list", "data": {"tts": […], "stt": […]}}Katrs runas modelis sniedz savu līdzsvaru, cenu, max_input_chars,
response_formats, languages un default_voice; transkripcijas modelis sniedz savas alianses, max_file_bytes, max_seconds, formāti un cena par minūti.
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);
Vārds uz tekstu
Pārvērš ierakstu tekstā ar Whisper.Tas ir OpenAI transkripcijas gala punkts, tāpēc
audio.transcriptions.create Darbojas kā.
POST https://nymbot.ai/api/v1/audio/transcriptions — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-data.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
file | failu | Jā | Uzņemšana, no 256 baitiem līdz 25 MB un līdz 30 minūtēm: WAV, WebM, MP4 vai M4A, Ogg vai Opus, MP3 un citi formāti Whisper lasa. |
model | Stringa | Nē | defekts whisper, kas ir Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo un @cf/openai/whisper-large-v3-turbo Tas nozīmē to pašu. |
language | Stringa | Nē | Runājošās valodas, piemēram, enApstiprināts, ja ir atstāts ārā |
prompt | Stringa | Nē | Vārdi vai pareizrakstības, piemēram, vārdi. tiek izmantoti tikai pirmie 1000 rakstzīmes. |
response_format | Stringa | Nē | json (Tā ir deficīta situācija) text, srt, vtt vai verbose_json. |
WAV, WebM, MP4 un Ogg failu garums tiek izlasīts no faila, pirms kaut kas darbojas, tāpēc ieraksts, kas pārsniedz 30 minūtes, tiek noraidīts uz priekšu (ar 3 sekundēm). WAV faila garums nāk no tā parauga ātruma, kanāliem un parauga izmēra. Citu formātu, piemēram, MP3, garumu nevar izlasīt uz priekšu, tāpēc tie ir ierobežoti pēc izmēra: zemākajā bitrate Nymbot pieņem, 8 kbps, 30 minūtes ir 1,8 MB, un lielāks fails šādā formātā tiek noraidīts ar 413
audio_too_long Sūtiet garākus ierakstus, piemēram, WAV, WebM, MP4 vai Ogg. Ja Whisper ziņo vairāk nekā 30 minūtes, pieprasījums tiek noraidīts ar
413 audio_too_long, un, tā kā Whisper notika, 30 minūtes tiek iekasētas.
Jūs maksājat par garumu audio, noapaļots līdz otram: garākais garums lasīts no faila, garums Whisper ziņojumus, un vismazākais faila izmērs ļauj, par Whisper minūtes cenu ar parastā maksa un maržu, un vismaz 0.05 kredītu pieprasījumu. tas tiek maksāts no standarta bilances, kad tas var segt turēt, un no Pro citādi; 402 sniedz to, kas katram līdzsvaram būtu nepieciešams. lietotnē balss ziņojuma transkripcija var būt bezmaksas; API tas vienmēr tiek uzlādēts.
Atbilde
{
"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 Atgriež skaidru tekstu, srt un vtt atgriezties subtitrus, un
verbose_json pievieno valodu, ilgumu un laika segmentus. Trīs, kas nav JSON, izmaksas ir virsrakstos.
| Statuss | Kad |
|---|---|
400 | Nav failu, failu ar neizmantojamu audio (invalid_audio, nezināms formāts vai modelis, kas nav transkripcijas modelis (invalid_model). |
402 | Arī līdzsvars to nesedz. |
413 | Filma ir lielāka par 25 MB (file_too_large2) ieraksts ilgāks par 30 minūtēm, vai formātā, kura garums nav lasāms uz priekšu, vairāk nekā 1,8 MB (audio_too_long). |
502 | Šūpuļkrēsls nespēja apstrādāt 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);
Runas tulkošana angļu valodā
POST https://nymbot.ai/api/v1/audio/translations — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījumaĶermenis ir multipart/form-data.
Tas pats kā transkripcija, ar tādiem pašiem laukiem, izņemot language, ierobežojumi un cena, bet teksts atgriežas angļu valodā neatkarīgi no valodas. 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);
Iebūvējumi
Teksts tiek pārvērsts par vektoru meklēšanai, grupēšanai un deduplikācijai. modeļi darbojas Cloudflare un tērē standarta bilanci.
POST https://nymbot.ai/api/v1/embeddings — nepieciešama API atslēga, vai Lightning maksājums pēc pieprasījuma.
| Lauku | Veids | Nepieciešams | Apraksts |
|---|---|---|---|
model | Stringa | Jā | Iebūvēts modelis no GET /api/v1/models?type=embedding. |
input | Strings vai string array | Jā | Saskaņā ar likuma "Par valsts un pašvaldību institūcijām" 10.panta ceturto daļu, valsts un pašvaldību institūcijām ir jānodrošina, lai valsts un pašvaldību institūcijas (token_input_unsupportedKatram ievadam jāatbilst modeļa context_length, aprēķināts kā aptuveni četri bajti par tokenu. |
encoding_format | Stringa | Nē | float (par nepilnībām) vai base64 (Little-endian 32 bitu floats) |
dimensions | Integrācija | Nē | paša modeļa izmērs vai modelim ar supported_dimensions Vektors tiek saīsināts un normalizēts.Viss pārējais tiek noraidīts. |
| Modelis | Dimensijas | Konteksts |
|---|---|---|
@cf/baai/bge-m3 | 1024 daudzās valodās | 8,192 zīmes |
@cf/qwen/qwen3-embedding-0.6b | 1024 daudzās valodās | 8,192 zīmes |
@cf/baai/bge-large-en-v1.5 | 1024 Angļu valoda | 512 tējkarotes |
@cf/baai/bge-base-en-v1.5 | 768, angļu valoda | 512 tējkarotes |
@cf/baai/bge-small-en-v1.5 | 384 Angļu valoda | 512 tējkarotes |
Modeļu saraksts ir patiesības avots, par kuriem tie ir pieejami un ko tie maksā; Google EmbeddingGemma, ar īsākiem vektoriem pēc pieprasījuma, parādās arī tad, kad katalogā ir cena.
Atbilde
{
"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 }
}
| Statuss | Kad |
|---|---|
400 | Nav iekļūšanas vai tukša viena; token arheoloģija (token_input_unsupported(vairāk nekā 100 ieejas)too_many_inputs); ievades ilgums ir lielāks nekā modelis aizņem (input_too_long3) izmērs, ko modelis nevar dot (unsupported_dimensions). |
402 | Standarta līdzsvars ir pārāk zems. Iebūvējumi nekad neizmanto Pro līdzsvaru. |
404 | Nav iebūvēts modelis ar šo nosaukumu. |
502 | Modelis ir neveiksmīgs. nekas nav iekasēts. |
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);