Белем базасы Разработчиклар
Суратлар, аудио һәм эмбеддингләр
Приложениедәге генераторлар һәм эзләү өчен төзелеш блоклары: рәсемнәр, видео, аңлату, транскрипция һәм эмбеддингләр, һәрберсе өчен төлләмә сезнең балансыздан куллану буенча алына.
Бу бит уңайлык өчен машинага тәрҗемә ителгән. Инглизчә оригиналь - кулланыла торган версия.
Төсләвләр я outbursts ясау
Промпт буенча бердән төрттән рәсем ясый һәм алар тәмамланганда кайтара. Бу шул ук генераторлар җыены: ?image мәслемәдә.
POST https://nymbot.ai/api/v1/images/generations — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүе.
IDлар ниндитән килә GET /api/v1/models?type=image. Стандарт генератор,
@cf/black-forest-labs/flux-1-schnell, һәр рәсем өчен 5 стандарт кредит (50 sats) фикс цена. Башка һәр генератор Pro кредитларны үз цене белән, гадәттәге комиссия һәм маржа белән, шул кебек за application. n суратлар баهاсы
n ан kadar වැඩි. Генератор алышмаганmaydan полең өшендә каlarak, түкерә түгел; стандарт генератор промпты гына куллана.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
model | сызык | Әйе | Генератор ID, мәсәлән nano-banana. |
prompt | сызык | Әйе | Нәрсәләрне рисовать кирәк. Тизә генә беренче 2,000 символ гына кулланыла. |
n | бүтсел | Юк | 1 easily 4. Тәкърибен 1. Шулай ук кабул ителә num_images. |
size | сызык | Юк | Шул подобные формат соотноштары, мигалы өчен "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" генераторга калдыра. |
aspect_ratio | сызык | Юк | Шулай ук size, һәм икесе дә җибәрелсә җиңә |
quality | сызык | Юк | Генераторгә характерлек, мәсәлән "low", "medium" яки "high". |
negative_prompt | сызык | Юк | Нәрсә калдырырга кирәк. |
output_format | сызык | Юк | "png", "jpeg" яки "webp". |
response_format | сызык | Юк | "url" (тәгабер) яки "b64_json". |
image_url | сызык | Юк | Башлау өчен сүрәт: бер https:// исем яки пароль булмаган, максимум 4,096 символдан торган сылтау яки а... data:image/…;base64 URL (PNG, JPEG, WebP яки GIF; SVG түгел). Генераторлар өчен генә edit; ... булганнар тарафыннан таләп ителә requires_image_url. |
resolution кулланылмый: һәр генератор үз өлчәве ясый. Менә url,
һәр бер рәсем Blossom хостына җаһанлама итеп чыгарыла һәм сез аның сылтамасын аласыз (보기la берничә генератор үз сылтамасын бирә, ул бителә). Сылтамасы булган һәркем аны ача ала һәм аны кайтадан алырга кирәк түгел; карагыз API нәрсә күрә ала. белән
b64_json Сүрәт җавап белән кайта була һәм һиччак юкланмый. ... качестве җибәрелгән сүрәт data: URL керү image_url һәм дә шул тәсьәл белән тикшилелә
тәҗриба белән үткәрү һәм генератор аны алырга өчен беренче Blossom-га юклана; әгәр таләп төлämmәсез утырмаса, ул кайтадан үтерә.
Әгәрle берничә... 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 | Prompt юк; n 1 easily 4 тыш сырт *@*invalid_value); яман күләм (invalid_size) яки рәсем (invalid_image, invalid_image_url); бар булган, әмма рәсем генератор булмаган модель (invalid_model); төзәтә алмыйган генератор өчен рәсем (edit_unsupported); сурат кирәк булганнар өчен сурат юк (image_required). |
402 | Баланс сораулы һәрбер рәсемнеCover итә алмый. |
404 | Бу исемле модель юк (model_not_found). |
502 | Генератор эшләмәгән (upstream_error). Төп авыруларны эшләргә тырышу өчен провайдер счёт чыгармаса, бернәрсе тэмәлләнми; шунда хатаның charged_sats. |
503 | Суратларны timescales икеләрдә дә урнаштырып булмый (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ның үзгәртер конекты, шулай итеп OpenAI SDKларның images.edit хәзерге хәльдә эшли. Ткаль генерраторларның берәрсе генә... edit модельләр исембендә
авырлагыз.
POST https://nymbot.ai/api/v1/images/edits — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүеТулы булыш — multipart/form-data, 32 МБ гыча.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
image | файл | Әйе | Төзәтү өчен рәсем: PNG, JPEG, WebP яки GIF, 20 МБга кадәр. Шул ук кабул ителәчәк рәсем төрләре: image[]; беренчесе кулланыла. |
prompt | сызык | Әйе | Нәрсә үзгәрергә тиеш. |
model | сызык | Әйе | Генератор ... белән edit. |
n | бүтсел | Юк | 1 easily 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | сызык | Юк | Генерация турында. |
response_format | сызык | Юк | "b64_json" (бу ердәге төп) яки "url". |
Сез юкладырган рәсем PNG, JPEG, WebP яки GIF форматының дөрес булышы тикшерелә, үзенең төп форматы белән җибәрелә һәм җәмгыяшлеккә ачык Blossom хостына урнаштырыла, чөнки генераторлар үзләренең керү данәләрен шибәрлек аша алырга кирәк. Аны ачык рәсем буларак карагыз. Әгәр редактирләү уңышсыз үтсә һәм берни акча алынмаса, урнаштырылган копия яңаEllт таяш. Җавап генерация ясаудагы кебек бәйләшле булачак. Балы ясау — генераторның балы, ул кайсыбу генераторлар өчен керү рәсеме өчен бүләк акчаны да үз эченә ала.
Җавап
{
"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), яки үзгәртергә булмый торган генератор (edit_unsupported). |
413 | Сурет 20 МБ-тан артык (file_too_large), яки бүтлек сураныш 32 МБ дан ашык. |
503 | Суретне timescales ике җитәрлекле урнаштырырга мөмкин түгел (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"));
Видео
Видео минутлар алый, шуңаEller фонот режимында эшли. Сез аны җибәрәсез, һәм берничә секундтан id аласыз, аннан соң видео тәмамланманы until id турында сорап торасыз.Һәр видео генератор Pro балансын төбәгән була.
POST https://nymbot.ai/api/v1/videos — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүе. Ҡайтара 202.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
model | сызык | Әйе | Видео генератор ...-дан GET /api/v1/models?type=videoмисал өчен, шулар кебек veo. |
prompt | сызык | Әйе | Нәрсә булырга тиеш. |
duration | саnúр яки strung | Юк | Секунда исләпme оzaклык, 0-тән күбрәк һәм 60-ка кадәр. Уны оzaклыкны сайлау мөмкин булган генераторлар гына куллана; калганнары үзләренең оzaклыкларын ясарга туктаналар, ул нинди? seconds җавапта һәм баенда элли. |
aspect_ratio | сызык | Юк | Мәсәлән "16:9" яки "9:16"; шундый зурлыктагы "1280x720" иң якын ни пропорциягә әйләнә. |
resolutionquality | сызык | Юк | Генераторның берсе resolutions модель исемлегендә, мәсәлән "720p" яки "1080p"Ул бааны тәэмин итә. Башка нәрсә дә китмәс. unsupported_resolution. |
image_url | сызык | Юк | Башлау өчен сүрәт: бер https:// сылке яки а data:image/… Тәүдерle Blossom хостингега алладан билгеләнгән URL. Генераторлар өчен кирәк. requires_image_url. |
Сез җөмәлне генертордан, разрешение һәм озынлыктан күреп җибәргәндә, баها фикс ителгән булып тора, шулай итеп ул провайдер эшне кабул иткәннән соң timescales сизের Pro балансынан алына һәм шулар итеп күрсәтелә
cost, estimated_cost һәм nymbotӘгәрде провайдер эшне кабул итмәс булса, берни şey түләнми. Әгәр рендеринг соңыннан файль чыга алмаса яки әร็จкәл клип саклана алмый, ә провайдер аңа акча алмаган булса, түләү бер тапкыр автоматтык ярдәм белән кайтарыла. Бер сәгатьтән соң да дәвам итеп торган рендеринг туктатыла һәм аның түләве кала, чөнки провайдер рендерингне кабул иткәннән соң акча алган була. Кайтарылган акча кредитләрне кайтара, ләкин ключның чайнау күрсәткеченә 영향 итми.
Җавап (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 башлана качестведә in_progress, яки completed видео белән
уже кертелгән data генератор аны берничә секундтан соң тизмекләгәннәндә.
Видеоны тикшерү
GET https://nymbot.ai/api/v1/videos/{id} — ул үзне җибәргән nymның ачкычын/-нең ачкычын/-нең кирәк. Лимитын калдырган ачкыч тагын да тикшереп торырга мөмкин.
Җавап бирә 202 видео ясау процессында һәм 200 төпләнгән дәвамы булганда яки сыймыктаганда. Һәр 5-тән 10 секундка яңа ından сора. һәр тикшерү провайдергә бер тапкыр сорау җибәрә һәм җавапны берничә тапкыр түшәмә; ул видеоны һәрчак көтми. Рәсьмә (job) җибәрелгәннән соң 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. А
уйдандырылган эш алып тора error ({"code": "generation_failed", "message": …});
тыф бар если, cost 0 һәм nymbot өстә
refunded_credits һәм refunded_satsТәмамланган видео Blossom хостингында, генерацияланган рәсемнәр кебек, җәмгыя timescale контекстында урнаштырылган.
| Статус | Качан |
|---|---|
400 | Промпт юк; 0-тән 60 аралыгын читләп дәвамлылык (invalid_value); генератор тәкъдим итмәгән разрешение (unsupported_resolution); сурат кирәкле генератор өчен сурат юк (image_required); видео генератор булмаган модель (invalid_model). |
402 | Pro балансы видеоны cover илә алмый. |
404 | Мындый генератор юк (model_not_found), яки сезнең nym өчен бу id буенча эш юк, яки ул 24 сәгатьтән артык вакыт узган (video_not_found). |
429 | Сезнең nym буенча 10 видео рәсемләнеш (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);
Текст фантастик сөйләү
Текстны өстәп укый һәм сылтама түгел, аудио файлның үзе иселәп кайтара. Бу OpenAIның һәсләв endpoint-ы, шулай итеп audio.speech.create OpenAI SDK-ларында эшли.
POST https://nymbot.ai/api/v1/audio/speech — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүе.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
model | сызык | Юк | Сөйләшү моделе ...-дан аудио модельләре исемлеге. Тәкъдим ителгән: стандарт тавыш, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 ми? |
input | сызык | Әйе | Укырга теләгән текст: стандартча дизeyн өчен 800 символға кадәр, Aura 2 өчен 2000 символ. |
voice | сызык | Юк | ... җыеннан$_{voice\ id}$ тавышлар исемлеге: Aura спикерের кебек luna (яки aura-2-luna-en), яки MeloTTS телендә (en, es, fr, zh). OpenAISes өйләрның исемнәре шулар кебек: alloy кабул ителә һәм модельның стандарт көchen бирә. |
language | сызык | Юк | Тил коды, мәсәлән esҖыенсыз, ул бу тел өчен үзенчәлек сайлый. Башка телдә сөйләгән җыен керә 422 voice_language_mismatch, һәм модельнең үзенчәлексез сөйләвешкә иҗат итмәгән тел 422 unsupported_language. |
response_format | сызык | Юк | Стандартча конаш кайта югы mp3 чак гына. Aura 2 кайта. mp3 (төп), opus, aac, flac, wav яки pcm. |
speed | сан | Юк | Кабул ителде һәм игнөлмәде. |
Стандартчан яшь тавы һәр бер суравы өчен приложениедагы кебек 3 стандарт кредит (30 sats) бүлеп бирелә. Aura 2 — Pro, ул җибәреләгеч символлар буенча баهاлана. Жавап корпусы — аудио, аның үзенлекле...
Content-Type; алның баасы ...да X-Nymbot-Cost-Sats headers. Әгәр
һәсәпләү моделе эшləмәсә, берничә нәрсә дә алынмый.
Җавап
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6
(audio bytes)
| Статус | Качан |
|---|---|
400 | Бикләү юк; керү модель限се sınды (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()));
Аудио модельләре һәм sesләре
Сөйләшү моделе һәм үзе (голос) яки транскрипция моделе сайлау өчен ике ачык список бар. 41 Aura 2 инглиз телендәге сөйләүче һәм дүрт MeloTTS телләре бар.
GET https://nymbot.ai/api/v1/audio/models — ачкыч кирәк түгел.
GET https://nymbot.ai/api/v1/audio/voices?language=en — ачкыч кирәк түгел.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
language | строка (запрос) | Юк | Бу тел өчен тик ү𝗲зләр генә. |
model | строка (запрос) | Юк | Бу модель өчен тик авазлар генә. |
Җавап (голосләр)
{
"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; транскрипция моделе аның лакап исемнәрен бирә, 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);
Сөйләшмәләрне тексткә күчәрү
Whisper белән җязманы тексткә әйләндерә. Бу OpenAI транскрипция конекты, шулай өчен
audio.transcriptions.create яработа[ы]
POST https://nymbot.ai/api/v1/audio/transcriptions — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүеТулы булыш — multipart/form-data.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
file | файл | Әйе | Язу: 256 байттан 25 МБ гылынгыча һәм 30 минутка кадәр: WAV, WebM, MP4 яки M4A, Ogg яки Opus, MP3 һәм Whisper укый ала турган башка форматлар. MP3 һәм озынлыгын алдыннан укыргаʤ булмаган башка форматлар 1.8 МБ белән чикләнгән. |
model | сызык | Юк | Тәгаш whisper, ул Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo һәм @cf/openai/whisper-large-v3-turbo һәмма буыннар бер теләкне үтәләр. |
language | сызык | Юк | Сөйләшү теле, мәсәлән enКалдырылса, аны аңлый алачак. |
prompt | сызык | Юк | Исемләр кебек күтәрәчү сүзләр яки имләштерүләр. Текстың беренче 1000 символы гына кулланыла. |
response_format | сызык | Юк | json (төп), text, srt, vtt яки verbose_json. |
WAV, WebM, MP4 һәм Ogg файллары өчен озынлык берәр нәрсә дә эшләгәнче файлдан укыла, шуңа күрә 30 минуттан артык запись алまえ рәвештә баш таныла (3 секундлык рәхәтлек белән). WAV файлының озынлыгы аның sample rate, каналлары һәм sample size параметрларыннан алына. MP3 кебек башка форматларның озынлыгы алдыннан укыла алмый, шуңа күрә алар күләм буенча чикләнгән: иң төбә bitrate рівняндә Nymbot 8 kbps дип күтәреп, 30 минут 1.8 MB була, шулай ул форматтагы зуррак файл түбәндәге рәвештә рәвешкә китерә: 413
audio_too_long һеч нәрсә дә эшләгәнче. Унчаклауны WAV, WebM, MP4 яки Ogg форматында озынрак җибәрегез.
Әгәр Whisper 30 минуттан артык вакыт турында хәбәр итсә, сорау түбәндәгеләр белән кабул ителми:
413 audio_too_long, һәм Whisper эшләгән сөендә, 30 минут счётлана.
Сез аудио оралысы өчен түләү ясыйсыз, ул секундларга кадәр җыелган: файлдан укынган иң озын оралы, Whisper хәбәр иткән оралы һәм файл күләме мөмкин булган иң кечэйрек оралы, Whisperның бер минутлы bargeы буенча, гади төләм һәм маржа белән, һәм һәр сорау өчен чикless 0.05 кредит. Ул стандарт баланс буенча түләнә, әгәр ул блокны cover итә алса, әрнәк Pro балансы буенча; а 402 һәр баланс нәрсә кирәк икәнен күрсәтә. Приложениедә ኣብәллек хәбәрен язырга җыену төрле булырга мөмкин; APIдә ул һәрвакыт түләү алына. Әгәр Whisper эшләмәсә, түләү алынмый.
Җавап
{
"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 текстны читләнгән төҙいләр рәвешендә кайтара, srt һәм vtt субтитрларны кайтарыгыз, һәм
verbose_json тел, дәметлек һәм вакыт буенча бүленгән сегментларны өстәргә ярдәм итә. JSON булмаган өчен нарх header-ларда.
| Статус | Качан |
|---|---|
400 | Файл юк, файлда файдалы аудио юк (invalid_audio), билгесез формат, яки транскрипция моделе булмаган модель (invalid_model). |
402 | Икешне дә баланс аны каплая алмый. |
413 | Файл 25 МБ-дан ашык (file_too_large) яки 30 минуттан артык запись, яки, озынлыгы алдыннан укына алмый турган форматта, 1.8 МБтан артык (audio_too_long). |
502 | Whisper аудионы эшчәнлеккә кертә алмады. Нинди түләү үткәнелмәгән. |
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, чикләүләр һәм баеди, ләкин кайсы телдә сөйләшсә дә, текст инглиз телендә кайта. OpenAI SDKләре аны белән чакыра 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);
Эмбеддингләр
Текстны тикшерү, кластерләү һәм дубликатларны бетерү өчен векторларга чаклады. Модельләр Cloudflare өстендә эшли һәм стандарт балансты югалта.
POST https://nymbot.ai/api/v1/embeddings — API ачкычы кирәк, яки һәр сорау буенча Lightning түләүе.
| Тәнәсе | Төп | Зарыл | Тасвирлама |
|---|---|---|---|
model | сызык | Әйе | ... авыручы эмбеддинг моделе GET /api/v1/models?type=embedding. |
input | строка якиStringлар массивы | Әйе | Вәрлек итәргә кирәкле текст, 100 тәкъын булмаган сюжетка кадәр. Токен массивлары кабул ителми (token_input_unsupported).Һәрбер керү модельне тулыруы кирәк context_length, токенының һәрберсе тикметтә карар буенча якшыча түрт байт дип санала. |
encoding_format | сызык | Юк | float (тәгабер) яки base64 (күбәк-endian 32 битлы флотлар). |
dimensions | бүтсел | Юк | Модельнең үз үлчәме, яки модель өчен supported_dimensions шуларның берсе; аннан соң вектор кыскартыла һәм нормальләштерелә. Башка нәрсә дә кабул ителми. |
| Модель | Үлчәмнәр | Контекст |
|---|---|---|
@cf/baai/bge-m3 | 1024, күп телләр | 8,192 токен |
@cf/qwen/qwen3-embedding-0.6b | 1024, күп телләр | 8,192 токен |
@cf/baai/bge-large-en-v1.5 | 1024, инглиз | 512 токен |
@cf/baai/bge-base-en-v1.5 | 768, инглизчә | 512 токен |
@cf/baai/bge-small-en-v1.5 | 384, инглизчә | 512 токен |
Модельләр исемлеге кайсылары барлыгы һәм аларның баәсе турында төгәл мәгълүмат чыгарыш булып тора; Google'ның EmbeddingGemma моделе, сорау буенча кыскарак векторлар белән, каталогда аның баәсе булганда шул уятта күрсәтелә. Embeddings керү токеннары буенча исәпләнә, һәм һәр ярдәмче сорау өчен 0.05-кредитminimum баәсе керә, һәр керү өчен түгел, шуңа значит күп текстны бер сорауга берләштереп җибәрү аларны һәрберын төрле бер тапкыр җибәрүгә караганда бик арзанрак.
Җавап
{
"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 | Бу исемле embedding моделлы юк. |
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);