База на знаење Развивачи
Слики, аудио и вградувања
Генераторите од апликацијата и градежните блокови за пребарување: слики, видео, говор, транскрипција и вградувања, секоја фактурирана по употреба од вашиот баланс.
Оваа страница е машински преведена за погодност. Англискиот оригинал е верзијата што се применува.
Генерација на слики
Направува една до четири слики од повик и ги враќа кога ќе бидат завршени. ?image Во апликацијата
POST https://nymbot.ai/api/v1/images/generations потребен е API клуч, или Lightning плаќање по барање.
ИД доаѓаат од GET /api/v1/models?type=imageСтандардниот генератор
@cf/black-forest-labs/flux-1-schnell, чини рамна 5 стандардни кредити (50 sats) една слика. Секој друг генератор троши Про кредити по своја цена, со вообичаената такса и маржа, како во Апликацијата. n Цената на сликите
n Поле кое генераторот не го зема е фрлено наместо одбиено; стандардниот генератор го користи само повикот.
| Полето | Тип | Потребни | Опис на |
|---|---|---|---|
model | Стринг | Да | Идентификатор за генератор, како nano-banana. |
prompt | Стринг | Да | Што да се нацрта. Само првите 2000 карактери се користат. |
n | интегритет | не | 1 до 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 | Стринг | не | Фотографија за да започнете од: A https:// линк од најмногу 4.096 знаци без корисничко име или лозинка во него, или data:image/…;base64 URL (PNG, JPEG, WebP или GIF; не SVG). Само за генератори со editПотребни се оние со requires_image_url. |
resolution не се користи: секој генератор прави своја големина. url, секоја слика се качува на јавен Blossom домаќин и ќе го добиете нејзиниот линк (некои генератори само враќаат линк од свој, кој се пренесува). Што може да види огнотСо
b64_json сликата се враќа во одговорот и никогаш не се поставува. data: URL во image_url се проверува на ист начин како и
Еди и да се испрати на Blossom прво, така што генераторот може да го преземе; тоа повторно се брише ако барањето не успее да се наплати.
Ако некои од 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, па OpenAI SDKs' images.edit работи како што е. Само Pro генератори со edit во списокот на модели го прифаќаат.
POST https://nymbot.ai/api/v1/images/edits потребен е API клуч, или Lightning плаќање по барањеТелото е multipart/form-dataДо 32 МБ
| Полето | Тип | Потребни | Опис на |
|---|---|---|---|
image | фајлот | Да | Сликата за уредување: PNG, JPEG, WebP или GIF, до 20 MB. image[]Првиот се користи. |
prompt | Стринг | Да | Што да се промени. |
model | Стринг | Да | Генератор со edit. |
n | интегритет | не | 1 на 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | Стринг | не | Што се однесува до генерацијата. |
response_format | Стринг | не | "b64_json" (дефолтот е тука) или "url". |
Сликата што ја испраќате е проверена за да биде добро формирана PNG, JPEG, WebP или GIF, испратена како вистински тип и поставена на јавен Blossom хост, бидејќи генераторите го земаат својот влез по линк. Третирајте го како јавен. Ако уредувањето не успее и ништо не се наплаќа, хостираната копија повторно се брише. Одговорот има иста форма како и за генерација. Цената е цената на генераторот, која за некои генератори вклучува надомест за влезната слика.
Одговор
{
"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 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"));
Видеото
Видеото трае неколку минути, па работи во позадина. Го поднесувате, добивате идентификатор веднаш и прашувате за идентификаторот додека не се заврши.
POST https://nymbot.ai/api/v1/videos потребен е API клуч, или Lightning плаќање по барањеВраќање 202.
| Полето | Тип | Потребни | Опис на |
|---|---|---|---|
model | Стринг | Да | Идентификатор за видео генератор од GET /api/v1/models?type=videoКако што veo. |
prompt | Стринг | Да | Што треба да се случи. |
duration | Број или string | не | Должина во секунди, повеќе од 0 и до 60. Користени само од генератори кои ви овозможуваат да изберете должина; другите ги прават своите вообичаени должина, што е она што seconds во одговорот и цената следи. |
aspect_ratio | Стринг | не | Како "16:9" или "9:16"големина како што е "1280x720" станува најблискиот сооднос. |
resolutionquality | Стринг | не | Еден од генераторите resolutions во списокот на модели, како "720p" или "1080p"Тоа ја поставува цената.Сè друго е одбиено со unsupported_resolution. |
image_url | Стринг | не | Фотографија за да започнете од: A https:// Линк или А data:image/… URL, кој прво се испраќа на јавен Blossom хост. requires_image_url. |
Цената е фиксна кога ќе ја поднесете, од генераторот, резолуцијата и должината, па затоа се наплаќа од вашиот Про баланс веднаш штом провајдерот ја прифати работата и се прикажува како
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 Започнете како 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Неуспешна работа носи error ({"code": "generation_failed", "message": …}Ако е вратен, cost е 0 и nymbot Додатоци
refunded_credits и refunded_satsЗавршеното видео е на јавен Blossom домаќин, како генерирани слики.
| Статус | Кога |
|---|---|
400 | Нема брза; времетраењето надвор од 0 до 60 (invalid_value); резолуција која генераторот не нуди (unsupported_resolution); нема слика за генератор кој треба една (image_required); модел кој не е видео генератор (invalid_model). |
402 | Про балансот не може да го покрие видеото. |
404 | Нема такви генератори (model_not_found), или нема работа од тој идентитет за вашиот ним, или е постар од 24 часа (video_not_found). |
429 | Вашиот ним веќе има 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);
Текст на говорот
Чита текст гласно и ја враќа самата аудио датотека, а не линк. audio.speech.create во OpenAI SDKs работи.
POST https://nymbot.ai/api/v1/audio/speech потребен е API клуч, или Lightning плаќање по барање.
| Полето | Тип | Потребни | Опис на |
|---|---|---|---|
model | Стринг | не | Моделот на говорот од Листа на аудио моделиПодрачливост: Стандардниот глас @cf/myshell-ai/melotts. aura-2 Тоа е Deepgram Aura 2. |
input | Стринг | Да | Текстот што треба да се прочита: до 800 знаци за стандардниот глас, 2.000 за Aura 2. |
voice | Стринг | не | Идентификатор за глас од Листа на гласови: аура говорник како luna (или на aura-2-luna-enНа пример, ако јазикот е мелатонин (en, es, fr, zhOpenAI гласовни имиња како alloy се прифатени и даваат стандарден глас на моделот. |
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 е Про, ценети според ликовите што ги испраќате.
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()));
Аудио модели и гласови
Две јавни списоци за избор на модел на говор и глас, или модел на транскрипција.Постојат 41 Aura 2 англиски говорници и четири MeloTTS јазици.
GET https://nymbot.ai/api/v1/audio/models Нема потреба од клуч.
GET https://nymbot.ai/api/v1/audio/voices?language=en Нема потреба од клуч.
| Полето | Тип | Потребни | Опис на |
|---|---|---|---|
language | Структура на прашање (query) | не | Само гласови за овој јазик. |
model | Структура на прашање (query) | не | Само гласови за овој модел. |
Одговори на гласови (гласови)
{
"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 MB и до 30 минути: WAV, WebM, MP4 или M4A, Ogg или Opus, MP3 и другите формати Whisper чита. |
model | Стринг | не | дефект whisper, која е Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo и @cf/openai/whisper-large-v3-turbo Значи истото. |
language | Стринг | не | Говорниот јазик, како што е enОткриено ако е напуштено. |
prompt | Стринг | не | Зборови или правопис да се очекува, како што се имиња. само првите 1.000 знаци се користат. |
response_format | Стринг | не | 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, и бидејќи шепотите се изврши, 30 минути се наплаќаат.
Вие плаќате за должината на аудио, заоблени до вториот: најдолгата должина прочитана од датотеката, должината Whisper извештаи, и најмалку големината на датотеката дозволува, по цена на минута Whisper со вообичаената такса и маржа, и најмалку 0.05 кредит барање. 402 Во апликацијата, транскрипцијата на гласовата порака може да биде бесплатна; на API секогаш се наплаќа.
Одговор
{
"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, цената е во насловите.
| Статус | Кога |
|---|---|
400 | Нема датотека, датотека без корисен аудио (invalid_audio, непознат формат, или модел кој не е транскриптен модел (invalid_model). |
402 | Ни рамнотежата не може да го покрие тоа. |
413 | Приказната е со големина од 25 MB (file_too_large(во форма која не може да се прочита во должина од предната страна, повеќе од 1,8 MB)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, ограничувања и цена, но текстот се враќа на англиски, без оглед на јазикот на кој се зборува. 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 | Структура или низа на струци | Да | Постојат повеќе начини да се избегне појава на рак на белите дробови. (token_input_unsupportedСекој влез мора да одговара на моделот context_length, се брои како околу четири бајтови на токен. |
encoding_format | Стринг | не | float (недостапни услови) или base64 (малиот 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's EmbeddingGemma, со пократки вектори на барање, се појавува таму, исто така, кога каталогот има цена за тоа.
Одговор
{
"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 | Стандардната рамнотежа е премногу ниска. Вградувањата никогаш не го користат Про рамнотежата. |
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);