Անցեք բովանդակությանը
Հեռնել Nymbot

Գիտելիքների բազա Արտադրողներ

Image, Audio եւ Embeddings

Ապրանքի գեներատորները, եւ search- ի բաղադրիչները: լուսանկարներ, տեսանյութեր, խոսքը, transcription եւ embeddings, ամենը բեռնել է օգտագործման համար ձեր բաղադրիչից:

Նկարներ արտադրում

Հիմն է, թե ինչ է անում այն, թե ինչ է անում այն, թե ինչ է անում այն, թե ինչ է անում այն, թե ինչ է անում այն, թե ինչ է անում ?image Այս app- ում

POST https://nymbot.ai/api/v1/images/generations — պետք է API սեղմություն, կամ Lightning վճարում.

IUD-ն կունենա GET /api/v1/models?type=imageՀիմնական Generator, @cf/black-forest-labs/flux-1-schnell, ծախսում է փաթեթավոր 5 ստանդարտ ստանդարտ (50 sats) մի նկար. Ամեն այլ generator spends Pro credits at its own price, with the usual fee and margin, as in Ապրիլ. n Գնացքներ n Մեկ գեներատոր չի վերցնում, այլեւ չի վերցնում: Standard գեներատոր օգտագործում է միայն prompt- ը:

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
modelStringի մասինԱյո՛A Generator ID, ինչպիսիք են nano-banana.
promptStringի մասինԱյո՛Ո՞վ է օգտագործվում, միայն առաջին 2000 հատկանիշները օգտագործվում են:
nԱնգլերենՈչ1 - 4 Պահպանություն 1. Այնպես էլ ընդունվում է որպես num_images.
sizeStringի մասինՈչԱպրիլը, ինչպիսիք են "16:9", կամ OpenAI չափը, ինչպիսիք են "1792x1024", որը կունենա մոտագույնը 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 եւ 4:5. "auto" Ապրիլը վերցնում է Generator-ը
aspect_ratioStringի մասինՈչՆրանք նույնպես sizeՀիմնականը, որ դուք կարող եք հաղթել, եթե երկու են ուղարկվել.
qualityStringի մասինՈչGenerator-specific, ինչպիսիք են "low", "medium" կամ "high".
negative_promptStringի մասինՈչՈ՞վ պետք է թողնել.
output_formatStringի մասինՈչ"png", "jpeg" կամ "webp".
response_formatStringի մասինՈչ"url" (Տեսանյութ՝ The Default) "b64_json".
image_urlStringի մասինՈչԱպրիշը սկսվում է: A https:// 4 096 բարդ բարդը, առանց օգտագործող անունը կամ բարդը, կամ մի բարդը data:image/…;base64 URL (PNG, JPEG, WebP կամ GIF, ոչ SVG) editՄարդիկ, ովքեր պահանջում են requires_image_url.

resolution Չնայած այն, թե ինչն է օգտագործվում, յուրաքանչյուր գեներատոր ստեղծում է իր սեփական չափը: url, յուրաքանչյուր նկարը բեռնել է Public Blossom սերտիֆիկայի եւ դուք ստանում եք իր կապը (կամ մի քանի գեներատորներ միայն վերցնում են իրենց սեփական կապը, որը անցնում է): Ոչ ոք կարող է բացել այն, եւ այն չի կարող վերցնել, տեսնել Ինչ կարող է տեսնել Fire• հետ b64_json Նկարագրությունը վերցնում է պատասխանը եւ երբեք չի uploaded. A picture sent as a response data: URL-ն է image_url Տեղադրվում է այնպես, որ մի Edit- ը եւ բեռնել է Blossom առաջին, այնպես որ generator կարող է վերցնել այն, այն կլուծվում է, եթե պահանջը չգիտվում է բեռնել.

Եթե մի քանի n սխալ է, դուք ստանում եք այն, որ աշխատել են, կախված են միայն նրանց համար (լուսանկարներ, որոնք մատակարարը վճարել է սխալից հետո), եւ nymbot.failed Տեսանյութը ասում է, թե ինչ է սխալ, եթե բոլորը սխալ են, հարցը վերադառնալ է: 502.

պատասխանը

{
  "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 }
}
ՏեսակներԵրբ
400Ոչ արագ n 1 մինչեւ 4 (invalid_valueԱրդյոք այնքան լավ է (տեսանյութ)invalid_size) կամ տեսանյութը (invalid_image, invalid_image_url); մի մոդել, որը ապրում է, բայց ոչ մի գեներատոր է (invalid_model); մի գեներատոր համար գեներատոր, որը չի կարող փոխել (edit_unsupported); ոչ մի նկար է, որ պետք է այն (image_required).
402Տեղադրությունը չի կարող ներգրավել ցանկացած նկարը, որը պահանջվում է.
404Ոչ մի մոդել այս անունով (model_not_found).
502Արդյոք սերտիֆիկը սխալ է (upstream_errorՆրանք ոչինչ չեն բեռնում, եթե մատակարարը չի բեռնում փորձի համար, ապա սխալը charged_sats.
503Տեսակները հիմա չի կարող տեղադրվել (media_hosting_unavailable). b64_json Այժմ աշխատում է.

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

Նկարագրություն

Արդյոք, դուք կարող եք փոխել մի նկարը, որը դուք բեռնել, հետեւելով ուղեցույցը: Սա OpenAI- ի edit endpoint- ը, այնպես որ OpenAI SDK-ները images.edit Ավելի լավ է, քանի որ այն աշխատում է միայն Pro generators հետ edit Արդյոք մոդելային ցուցանիշը ընդունում է այն.

POST https://nymbot.ai/api/v1/images/edits — պետք է API սեղմություն, կամ Lightning վճարումՔանի որ մարմնի է multipart/form-dataՄինչեւ 32 MB.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
imageՖիլմԱյո՛Image to be edited: PNG, JPEG, WebP կամ GIF, մինչեւ 20 MB. image[]Առաջինը օգտագործվում է.
promptStringի մասինԱյո՛Ինչ է փոխել.
modelStringի մասինԱյո՛Generator- ի հետ edit.
nԱնգլերենՈչ1 ՝ 4
size
aspect_ratio
quality
negative_prompt
output_format
Stringի մասինՈչՔանի որ Generation.
response_formatStringի մասինՈչ"b64_json" (Տեսանյութը ներառում է այստեղ) կամ "url".

Տեսակը, որը դուք բեռնել է, ստուգվում է, որ այն լավ ձեւավորվել է PNG, JPEG, WebP կամ GIF, ուղարկվել է որպես իր իրական տեսակը, եւ տեղադրվել է Public Blossom Host- ում, քանի որ գեներատորները վերցնում են իրենց տպագրությունը բեռների միջոցով: Տեսեք այն որպես Public. Եթե թարմացումը չգիտվի եւ ոչինչ չի բեռնում, տպագրված տպագրությունը վերահսկվում է: Տեսակը նույն ձեւով է, ինչպես տպագրության համար: Գինը է գեներատորի գինը, որը որոշ գեներատորների համար ներառում է տպագրության տպագրության վճարը:

պատասխանը

{
  "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 }
}
ՏեսակներԵրբ
400Ոչ տեսանյութ, ոչ տեսանյութ, ոչ տեսանյութ (invalid_image), կամ մի generator, որը չի կարող edit (edit_unsupported).
413Նկարագրությունը ավելի քան 20 MB (file_too_large), կամ ամբողջ պահանջը ավելի քան 32 MB:
503Ապրիշը այժմ չի կարող տեղադրվել (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"));

տեսանյութ

Վիդեո պետք է տեւել րոպե, քանի որ այն աշխատում է վահանակում. Դուք ուղարկեք այն, ստանում եք ID- ն անմիջապես, եւ հարցրեք ID- ի մասին, մինչեւ այն ավարտվում է: Բոլոր տեսանյութերի գեներատորները ծախսում են Pro- ի վահանակը:

POST https://nymbot.ai/api/v1/videos — պետք է API սեղմություն, կամ Lightning վճարումՏեսակներ 202.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
modelStringի մասինԱյո՛Video Generator ID- ը GET /api/v1/models?type=video, ինչպիսին veo.
promptStringի մասինԱյո՛Ինչ պետք է լինի.
durationՆկարագրություն կամ stringՈչԵրկրի երկարությունը, ավելի քան 0 եւ մինչեւ 60: Օգտագործվում է միայն generators, որոնք թույլ են տալիս ձեզ ընտրել երկարությունը, այլն, որ իրենց սովորական երկարությունը, որը այն է, ինչ seconds Հաջորդ հարցը եւ գինը.
aspect_ratioStringի մասինՈչԻնչպես "16:9" կամ "9:16"Երկու չափը, ինչպիսիք են "1280x720" Դա ամենամեծ հարմարավետություն է.
resolution
quality
Stringի մասինՈչՄինչեւ generator- ի մեկը resolutions Տեսանյութում, ինչպիսին "720p" կամ "1080p"Արդյոք գինը կտա, թե ինչ-որ բանից հետո կտա: unsupported_resolution.
image_urlStringի մասինՈչԱպրիշը սկսվում է: A https:// Link կամ A data:image/… URL-ն, որը առաջին անգամ բեռնել է Blossom- ում, որը պահանջվում է generators- ի հետ requires_image_url.

Գինը կտանված է, երբ դուք ուղարկեք, արտադրողից, լուծման եւ երկարությամբ, այնպես որ այն կտանված է ձեր Pro ցավը, երբ մատակարարը ընդունում է աշխատանքը, եւ ցույց է տալիս, որ cost, estimated_cost և nymbotԵթե մատակարարը փոխանցում է աշխատանքը, ոչինչ չի փոխանցվում: Եթե մատակարարը մատակարարում չի փոխանցում, կամ մատակարարը չի կարող մատակարարել մատակարարը, եւ մատակարարը չի փոխանցում այն համար, մատակարարը փոխանցում է մեկ անգամ, ավտոմատորեն: Մատակարարը, որը դեռ անցնում է մեկ ժամից հետո, մատակարարում է իր վճարը, քանի որ մատակարարը մատակարարում է մատակարարը, երբ այն ընդունում է: Մատակարարը փոխանցում է մատակարարը, բայց չի փոխանցում մատակարարի ծախսերը:

Տեսակներ (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 Հիմնական as in_progressԱրդյոք completed Հիմնական տեսանյութը, որը արդեն data Երբ գեներատորը վերադարձել է այն.

Տեսեք մի տեսանյութում

GET https://nymbot.ai/api/v1/videos/{id} — պետք է սեղմեք մի սեղմիչ, որը կունենա այն սեղմիչին, որը սեղմել է այն: Մեկ սեղմիչը, որը հասել է իր կետը, դեռ կարող է ստուգել:

Դա պատասխանում է 202 Երբ տեսանյութը կատարվում է եւ 200 Երբ այն ավարտվում է կամ սխալ է: Խնդրում ենք ամեն 5 մինչեւ 10 րոպե: Ամեն խելացի հարցնում է մատակարարին մեկ անգամ եւ պատասխանում է: Այն երբեք չի սպասում տեսանյութը: Որ աշխատանքը պահվում է 24 ժամվա ընթացքում, երբ այն ուղարկվել է: GET /api/v1/videos Տեղադրեք վերջին 50 աշխատանքները, ինչպիսիք են {"object": "list", "data": […]}.

Հիմնական հարցեր (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 Դա in_progress, completed կամ failedՀիմնական հոդված՝ A Failed Job Carries error ({"code": "generation_failed", "message": …}Եթե դա վերադարձվել է, cost 0 եւ nymbot Ավելացնել refunded_credits և refunded_satsԱրդյոք, այս տեսանյութը գտնվում է Blossom- ում, ինչպիսիք են արտադրված տեսանյութեր:

ՏեսակներԵրբ
4000 0 0 0 0 0 0 0 0 0 0 0 0 0 0invalid_value); մի լուծում, որը generator չի առաջարկում (unsupported_resolution); ոչ մի նկարը generator- ի համար, որը պետք է (image_required); մի մոդել, որը ոչ մի վիդեո generator (invalid_model).
402Pro Balance-ը չի կարող ներառում տեսանյութը:
404Չինաստանում այս բաղադրիչը (model_not_found), կամ ոչ մի աշխատանք է, որ ID- ի համար ձեր նամակ, կամ այն ավելի քան 24 ժամ է (video_not_found).
429Ձեր նամակը այժմ ունի 10 վիդեո rendering (video_jobs_limitԱրդյոք, դուք պետք է ստուգեք նրանց եւ ուղարկեք ավելի շատ, երբ մեկը ավարտում է:
502Գեներատորը ստացել է աշխատանքը, ոչինչ չի բեռնում, եթե արտադրողը չի բեռնում այն համար:
503Տեսակներ չի կարող առաքել կամ պահել այժմ (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);

Text to խոսքը

Գիտում է տեքստը եւ վերցնում է աուդիո ֆայլը, ոչ մի հղումը: Դա OpenAI- ի խոսքի վերջը, այնպես audio.speech.create OpenAI SDKs- ը աշխատում է

POST https://nymbot.ai/api/v1/audio/speech — պետք է API սեղմություն, կամ Lightning վճարում.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
modelStringի մասինՈչԱրդյոք խոսքի մոդելը Audio մոդելներՀիմնական: Հիմնական ճշմարտությունը @cf/myshell-ai/melotts. aura-2 Deepgram-ի Aura 2 սերտիֆիկներ
inputStringի մասինԱյո՛Կարդալու տեքստը: մինչեւ 800 հատկանիշներ ստանդարտ ձայնի համար, 2,000 Aura 2- ի համար:
voiceStringի մասինՈչA Voice ID- ը Նկարների ցուցակըAura speaker, ինչպիսիք են luna (Տեսանյութ aura-2-luna-en) կամ MeloTTS լեզուը (en, es, fr, zhOpenAI voice անուններ, ինչպիսիք են alloy Նրանք ընդունվում են եւ տալիս են մոդելի ստանդարտ ճշմարտությունը:
languageStringի մասինՈչՀիմնական լեզուը, ինչպիսիք են esԵրբ չի խոսում, այն ընտրում է այս լեզուի համար: Երբ խոսում է այլ լեզուը, այն վերադարձվում է: 422 voice_language_mismatch, եւ մի լեզու, որի համար մոդելը չի կարող խոսել 422 unsupported_language.
response_formatStringի մասինՈչStandard Voice-ը վերադարձվում է mp3 Aura 2 վերադառնալը mp3 (Անհարկե սխալը) opus, aac, flac, wav կամ pcm.
speedՄեկըՈչՊահպանվել եւ չգիտվել է.

Standard Voice-ը գնում է 3 Standard Credits (30 sats) մի պահանջը, ինչպես է app- ում. Aura 2 է Pro, գնում է ձեր ուղեցույցների համար: The response body is the audio, with a matching Content-TypeԱրդյոք ծախսերը ներքեւ են X-Nymbot-Cost-Sats Արդյոք, եթե խոսքի մոդել սխալ է, ոչինչ չի բեռնում.

պատասխանը

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

(audio bytes)
ՏեսակներԵրբ
400Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված (input_too_long); մի մոդել, որը չի կարող արտադրել (unsupported_response_format(Անհարկե, թե ինչ է անսահմանափակ սխալը)invalid_voice); մի մոդել, որը ոչ մի խոսքի մոդել է (invalid_model).
422Նրանք ոչ թե խոսում են այս լեզուը, կամ մոդելը ոչ թե խոսում է այն համար:
502Արդյոք սխալ է, ոչինչ չի բեռնում.

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 մոդելներ եւ ռեժիմներ

Երկու անգլերեն գրասենյակներ, որոնք ընտրում են խոսքի մոդել եւ խոսքը, կամ transcription մոդել: 41 Aura 2 անգլերեն գրասենյակներ եւ 4 MeloTTS լեզուներ:

GET https://nymbot.ai/api/v1/audio/models Չնայած այն, որ անհրաժեշտ է սեղմել.

GET https://nymbot.ai/api/v1/audio/voices?language=en Չնայած այն, որ անհրաժեշտ է սեղմել.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
languageՀիմնական հարցեր (Query)ՈչՀիմա միայն այս լեզուի համար.
modelՀիմնական հարցեր (Query)ՈչԱյս մոդելի համար միայն սխալներ.

Հեղինակային հարցեր (Voices)

{
  "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 }
  ]
}

Մոդելների ցուցանիշները պատասխանել են {"object": "list", "data": {"tts": […], "stt": […]}}Ամեն խոսքի մոդելը ապահովում է իր հարմարավետությունը, գինը, max_input_chars, response_formats, languages և default_voice· transcription model- ը առաջարկում է իր ալիքները, max_file_bytes, max_seconds, ձեւավորումներ եւ գինը րոպեում.

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

Տեղադրություն text

Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված՝ Հիմնական հոդված audio.transcriptions.create Աշխատում է

POST https://nymbot.ai/api/v1/audio/transcriptions — պետք է API սեղմություն, կամ Lightning վճարումՔանի որ մարմնի է multipart/form-data.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
fileՖիլմԱյո՛Նկարագրությունը, մինչեւ 25 MB եւ մինչեւ 30 րոպե: WAV, WebM, MP4 կամ M4A, Ogg կամ Opus, MP3 եւ այլ ձեւաչափերը Whisper կարդում է. MP3 եւ այլ ձեւաչափերը, որոնց երկարությունը չի կարող կարդալ առաջ, սահմանվում են 1.8 MB:
modelStringի մասինՈչՎախվածություն whisper, որը է Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo և @cf/openai/whisper-large-v3-turbo Նրանք նշանակում են նույնպես.
languageStringի մասինՈչՀիմնական լեզուները, ինչպիսիք են enՏեղադրվել է, եթե նստել է.
promptStringի մասինՈչՏեսակներ, ինչպիսիք են անուններ, օգտագործվում են միայն առաջին 1000 բարդներ:
response_formatStringի մասինՈչjson (Անհարկե սխալը) text, srt, vtt կամ verbose_json.

WAV, WebM, MP4 եւ Ogg ֆայլերի համար երկարությունը կարդալ է ֆայլից, երբ ինչ-որ բան կատարվում է, այնպես որ 30 րոպեից ավելի տպագրություն չգիտվում է առաջ (մաս 3 րոպեով)։ WAV ֆայլի երկարությունը տպագրության արագությամբ, մանրամասների եւ մանրամասների չափով է: Մաս այլ ֆայլերի, ինչպիսիք են MP3, չգիտվում է առաջ, այնպես որ նրանք չգիտվում են չափով: Երբ ցածրագույն տպագրության արագությամբ Nymbot հավատում է, որ 8 kbps, 30 րոպե է 1.8 MB, եւ ավելի մեծ ֆայլը այս ձեւով չգիտվում է: 413 audio_too_long WAV, WebM, MP4 կամ Ogg- ը: Եթե Whisper- ը այնպես էլ 30 րոպեից ավելի ժամանակ է հաղորդում, հարցը կախված է: 413 audio_too_long, եւ քանի որ Shisper կատարվել է, 30 րոպե են բեռնել.

You pay for the length of the audio, rounded up to the second: the longest of the length read from the file, the length Whisper reports, and the least the file's size allows, at Whisper's per-minute price with the usual fee and margin, and at least 0.05 credit a request. It is paid from the standard balance when that can cover the hold, and from Pro otherwise; 402 Ահա թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք, թե ինչ է պետք:

պատասխանը

{
  "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 Տեղադրեք հեշտ text, srt և vtt Ապրիլը վերադառնալով եւ verbose_json Տեսանյութը ներառում է լեզուը, երկարությունը եւ ժամանակագրված մասերը: Երեքի համար, որոնք չեն JSON- ը, ծախսերը տպագրված են.

ՏեսակներԵրբ
400Ոչ մի ֆայլ, մի ֆայլ, որը չի կարող օգտագործել աուդիո (invalid_audioԳլխավոր էջ / Գլխավոր էջ / Նկարագրություն / Նկարագրություն / Նկարագրություն (invalid_model).
402Ոչ ոք չի կարող ծածկել այն.
413Ֆայլը ավելի քան 25 MB (file_too_large) կամ բաղադրիչը ավելի քան 30 րոպե, կամ, այն ձեւով, որ երկարությունը չգիտվում է, ավելի քան 1.8 MB (audio_too_long).
502Տեսանյութը չի կարող վերահսկել, ոչինչ չի բեռնում.

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

Արդյոք անգլերենի խոսքը

POST https://nymbot.ai/api/v1/audio/translations — պետք է API սեղմություն, կամ Lightning վճարումՔանի որ մարմնի է multipart/form-data.

Նշվում է, որ նույն բաղադրիչները, այլեւ նույն բաղադրիչները languageԱհա թե ինչ է անգլերեն, թե ինչ է անգլերեն, թե ինչ է անգլերեն, թե ինչ է անգլերեն: 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);

Բաղադրիչներ

Տեսանյութը փոխվում է vektor- ի համար, որոնք օգտագործվում են search, clustering եւ deduplication- ի համար: Մոդելները աշխատում են Cloudflare- ում եւ օգտագործում են ստանդարտ բաղադրիչը:

POST https://nymbot.ai/api/v1/embeddings — պետք է API սեղմություն, կամ Lightning վճարում.

ՖիլմՔաղաքականԽնդրում ենքՆկարագրություն
modelStringի մասինԱյո՛Հիմնական մոդել է GET /api/v1/models?type=embedding.
inputString- ը կամ String Array- ըԱյո՛Հիմնական տեղեկատվություն, որը պետք է ներառում, մինչեւ 100 չորս գծեր: Token նամակները կախված են (token_input_unsupported(Մենք պետք է հավելենք, որ յուրաքանչյուր մոդել պետք է հարմարվի context_lengthԱվելի քան 4 տոմս է մի տոմս.
encoding_formatStringի մասինՈչfloat (Տեսանյութ՝ The Default) base64 32-րդ բաղադրիչի բաղադրիչը
dimensionsԱնգլերենՈչՄոդելի սեփական չափը, կամ մոդելի հետ supported_dimensions Հիմնական հոդվածը, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են, ինչպիսիք են
ՄոդելDimensions ՀիմնականՏեսանյութ
@cf/baai/bge-m31024 մի քանի լեզուներ8,192 տոմս
@cf/qwen/qwen3-embedding-0.6b1024 մի քանի լեզուներ8,192 տոմս
@cf/baai/bge-large-en-v1.51024 - անգլերեն512 տոմս
@cf/baai/bge-base-en-v1.5768, անգլերեն512 տոմս
@cf/baai/bge-small-en-v1.5384 անգլերեն512 տոմս

Մոդելների ցուցակն է ճշգրիտությունը, թե ինչու են հասանելի եւ թե ինչ են գնում: Google- ի EmbeddingGemma- ը, որը տեւում է ավելի արագ vektor- ից, այնպես էլ հայտնվում է այն ժամանակ, երբ կատեգորիան ունի գինը այն համար: Embedings- ը մետաղվում են մետաղադրամների համար, եւ 0.05-կրտոմսային մետաղադրամը կիրառվում է յուրաքանչյուր պահանջի համար, ոչ մեկ մետաղադրամի համար: Այսպիսով, մի քանի տեքստեր մի պահանջի մեջ տեւելը շատ ավելի գեղեցիկ է, քան մի անգամ ուղարկել նրանց:

պատասխանը

{
  "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 }
}
ՏեսակներԵրբ
400Ոչ ոք, ոչ ոք, ոչ ոք, ոչ ոք, ոչ ոք, ոչ ոք (token_input_unsupported); ավելի քան 100 ինտերնետներ (too_many_inputs); ներսում ավելի երկար է, քան մոդել պետք է (input_too_long); մի չափը, որը մոդել չի կարող տալիս (unsupported_dimensions).
402Հիմնական բաղադրիչները երբեք չեն օգտագործում Pro բաղադրիչները:
404Ոչ մի մոդել այս անունով.
502Արդյոք սխալ է, ոչինչ չի բեռնում.

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