Прескокнете до содржината
Враќање на Nymbot

База на знаење Развивачи

Слики, аудио и вградувања

Генераторите од апликацијата и градежните блокови за пребарување: слики, видео, говор, транскрипција и вградувања, секоја фактурирана по употреба од вашиот баланс.

Генерација на слики

Направува една до четири слики од повик и ги враќа кога ќе бидат завршени. ?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.
size
aspect_ratio
quality
negative_prompt
output_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 image=@photo.png \
  -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" станува најблискиот сооднос.
resolution
quality
СтрингнеЕден од генераторите 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).
502Whisper не може да го обработи аудиото. Ништо не е наплатено.

cURL

curl https://nymbot.ai/api/v1/audio/transcriptions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F file=@memo.m4a \
  -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 file=@nota.m4a \
  -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 (little-endian 32-bit floats).
dimensionsинтегритетнесопствена големина на моделот, или за модел со supported_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'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);