Пређи на садржај
Nazad na Nymbot

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

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

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

генерисање слика

Направља једну до четири слике из поруке и враћа их када су завршени. ?image U aplikaciji .

POST https://nymbot.ai/api/v1/images/generations — потребан је API кључ, или Lightning plaćanje po zahtevu.

Идс долазе из GET /api/v1/models?type=imageСтандардни генератор @cf/black-forest-labs/flux-1-schnell, кошта равно 5 стандардних кредита (50 стопа) по слици. Сваки други генератор троши Про кредите по својој цени, уз уобичајену накнаду и маргину, као у Апп. n Слике коштају n Поље које генератор не узима пада уместо одбијено; стандардни генератор користи само позив.

ПољеТипПотребнаОпис
modelStringДаГенератор ИД, као што је nano-banana.
promptStringДаШта да нацртате. само првих 2.000 карактера се користи.
nинтегритетНе1 до 4. Подразумевано 1. Такође прихваћено као num_images.
sizeStringНеОднос аспекта као што је "16:9"или отвореном величином као што је "1792x1024", који постаје најближи од 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 и 4:5. "auto" Оставите га на генератору.
aspect_ratioStringНеИсто као sizeИ побеђује ако су оба послата.
qualityStringНеГенератор-специфични, као што су "low", "medium" или "high".
negative_promptStringНеŠta ostaviti napolje.
output_formatStringНе"png", "jpeg" или "webp".
response_formatStringНе"url" (понекад је дефект) или "b64_json".
image_urlStringНеСлика да почне са: а https:// линк од највише 4.096 знакова без корисничког имена или лозинке у њему, или data:image/…;base64 URL (PNG, JPEG, WebP ili GIF; ne SVG). editЗахтеви за оне са requires_image_url.

resolution се не користи: сваки генератор прави своју величину. url, свака слика се учитава на јавни Блосом хост и добијате њен линк (неки генератори само враћају везу своју, која се преноси). Šta vatra može da vidiСа b64_json слика се враћа у одговору и никада се не учитава. data: URL у image_url Проверава се на исти начин као и Edit Прво се учитава у Блоссом тако да га генератор може преузети; поново се брише ако се захтев не наплати.

Ako neki od n слике не успеју, добијате оне који су радили, наплаћују се само за оне (плус било који провајдер рачунао упркос неуспеху), и nymbot.failed kaže koliko ih nedostaje. Ako svi ne uspeju, zahtev se vraća 502.

Odgovor

{
  "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 Još uvek radi.

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

Редактирање слика

Промењује слику коју отпремате, следећи позив. Ово је крајња тачка за уређивање ОпенАИ-а, тако да су ОпенАИ СДК-ови images.edit ради као што јесте. само Про генератори са edit У листи модела то прихватате.

POST https://nymbot.ai/api/v1/images/edits — потребан је API кључ, или Lightning plaćanje po zahtevuТело је multipart/form-dataдо 32 МБ.

ПољеТипПотребнаОпис
imageдатотекеДаСлика за уређивање: ПНГ, ЈПЕГ, ВебП или ГИФ, до 20 МБ. Такође прихваћен као image[]Први се користи.
promptStringДаŠta da promenim.
modelStringДаГенератор са edit.
nинтегритетНе1 до 4.
size
aspect_ratio
quality
negative_prompt
output_format
StringНеШто се тиче генерације.
response_formatStringНе"b64_json" (подразумева се овде) или "url".

Слика коју учитате се проверава да ли је добро формирана ПНГ, ЈПЕГ, ВебП или ГИФ, послата као његов прави тип, и стављена на јавни Блосом хост, јер генератори преузимају свој унос путем линка. Третирајте га као јавни. Ако уређивање не успе и ништа се не наплаћује, хостована копија се поново брише. Одговор има исти облик као и за генерацију. Цена је цена генератора, која за неке генераторе укључује накнаду за унос слике.

Odgovor

{
  "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Слика се тренутно не може хостовати (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 plaćanje po zahtevuПовратак 202.

ПољеТипПотребнаОпис
modelStringДаИД видео генератора од GET /api/v1/models?type=video, као што veo.
promptStringДаŠta bi trebalo da se desi.
durationБрој или стрингНеДужина у секунди, више од 0 и до 60. Користи се само од генератора који вам омогућавају да изаберете дужину; други чине своју уобичајену дужину, што је оно што seconds У одговору и цена следи.
aspect_ratioStringНекао што "16:9" или "9:16"величина као што је "1280x720" постаје најближи однос.
resolution
quality
StringНеЈедан од генератора resolutions У списку модела, као што је "720p" или "1080p"Поставља цену.Све друго је одбијено unsupported_resolution.
image_urlStringНеСлика да почне са: а 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 Video je već u data Генератор га је одмах вратио.

Проверите на видео

GET https://nymbot.ai/api/v1/videos/{id} — треба кључ који припада ниму који га је поднео. кључ који је достигао своју границу и даље може да провери.

Odgovoriće 202 Док је видео снимљен и 200 када је завршен или није успео. Питајте сваких 5 до 10 секунди. Свака провера пита провајдера једном и одмах одговара; никада не чека видео. GET /api/v1/videos lista poslednjih 50 radnih mesta ključa kao {"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 или failedNeuspešan posao nosi error ({"code": "generation_failed", "message": …}Ако је враћен, cost 0 и nymbot Додај refunded_credits и refunded_satsЗавршени видео је на јавном Блосом хосту, као што су генерисане слике.

статусКада
400Нема брзине; трајање ван 0 до 60 (invalid_value); резолуција која генератор не нуди (unsupported_resolution); нема слике за генератор који треба један (image_required); модел који није видео генератор (invalid_model).
402Pro balans ne može da pokrije video.
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);

Tekst za govor

Чита текст гласно и враћа саму аудио датотеку, а не линк. audio.speech.create u OpenAI SDKs funkcioniše.

POST https://nymbot.ai/api/v1/audio/speech — потребан је API кључ, или Lightning plaćanje po zahtevu.

ПољеТипПотребнаОпис
modelStringНеМодел говора из Листа аудио моделаПодразумевано: Стандардни глас @cf/myshell-ai/melotts. aura-2 Деепграм Аура 2
inputStringДаТекст за читање: до 800 знакова за стандардни глас, 2.000 за Аура 2.
voiceStringНеГласовни ИД од Листа гласова: Аура говорник као што је luna (или aura-2-luna-en), или мелоаттс језик (en, es, fr, zhOpenAI гласова имена као што су alloy су прихваћени и дају подразумевани глас модела.
languageStringНеЈезички код као што је esБез гласа, он бира један за тај језик. Глас који говори другим језиком враћа 422 voice_language_mismatch, и језик за који модел нема глас 422 unsupported_language.
response_formatStringНеСтандардни глас се враћа mp3 Аура 2 се враћа mp3 (Одлука о дефолту opus, aac, flac, wav или pcm.
speedБројНеПрихваћен и игнорисан.

Стандардни глас кошта једноставан 3 стандардних кредита (30 sats) по захтеву, као у апликацији. Аура 2 је Про, цењен по знацима које шаљете. Тело одговора је аудио, са одговарајућим Content-TypeЦена је у X-Nymbot-Cost-Sats Ако модел говора не успе, ништа се не наплаћује.

Odgovor

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 Аура 2 енглески говорници и четири МелоТТС језика.

GET https://nymbot.ai/api/v1/audio/models Nije potreban ključ.

GET https://nymbot.ai/api/v1/audio/voices?language=en Nije potreban ključ.

ПољеТипПотребнаОпис
languageString (потражња)НеСамо гласови за овај језик.
modelString (потражња)НеСамо гласови за овај модел.

Odgovori ( glasovi )

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

Реч у текст

Претвара запис у текст помоћу Виспер-а. Ово је крајња тачка транскрипције ОпенАИ-а, тако да audio.transcriptions.create radi se.

POST https://nymbot.ai/api/v1/audio/transcriptions — потребан је API кључ, или Lightning plaćanje po zahtevuТело је multipart/form-data.

ПољеТипПотребнаОпис
fileдатотекеДаСнимање, од 256 бајтова до 25 МБ и до 30 минута: ВАВ, ВебМ, МП4 или М4А, Огг или Опус, МП3 и остали формати Виспер чита.
modelStringНеНедостаци whisper, који је Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo и @cf/openai/whisper-large-v3-turbo znači isto.
languageStringНеГоворни језик, као што је enОткривено ако је напуштено.
promptStringНеРечи или правописа које можете очекивати, као што су имена. користи се само првих 1000 знакова.
response_formatStringНеjson (Одлука о дефолту text, srt, vtt или verbose_json.

For WAV, WebM, MP4 and Ogg files the length is read from the file before anything runs, so a recording over 30 minutes is refused up front (with 3 seconds' grace). A WAV file's length comes from its sample rate, channels and sample size. The length of other formats, such as MP3, cannot be read up front, so they are limited by size: at the lowest bitrate Nymbot assumes, 8 kbps, 30 minutes is 1.8 MB, and a larger file in such a format is refused with 413 audio_too_long Пошаљите дуже снимке као што су ВАВ, ВебМ, МП4 или Огг. Ако Виспер онда извештава више од 30 минута у сваком случају, захтев се одбија са 413 audio_too_long, а пошто је Шпијун био покренут, 30 минута се наплаћује.

Плаћате за дужину звука, заобљене до секунде: што је дуже дужина прочитана из датотеке, дужина извештаја Виспер-а, и што мање величина датотеке дозвољава, по цени по минути Виспер-а са уобичајеном накнадом и маргином, и најмање 0.05 кредита на захтев. 402 даје оно што би свака равнотежа требала.У апликацији, транскрипција гласовне поруке може бити бесплатна; на АПИ-у се увек наплаћује.

Odgovor

{
  "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 додаје језик, трајање и временске сегменте. За три која нису ЈСОН, трошкови су у насловима.

статусКада
400Ниједна датотека, датотека без употребљивог аудио (invalid_audio), непознат формат, или модел који није транскриптни модел (invalid_model).
402Ни равнотежа не може да га покрије.
413Датотека је већа од 25 МБ (file_too_large) или снимак преко 30 минута, или, у формату чија дужина се не може прочитати испред, преко 1,8 МБ (audio_too_long).
502Шпијун није могао да обради аудио. ништа се не наплаћује.

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 plaćanje po zahtevuТело је 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);

Embeddings

Претвара текст у векторе за претрагу, кластерисање и дедупликацију. Модели се покрећу на Цлоудфларе-у и троше стандардни баланс.

POST https://nymbot.ai/api/v1/embeddings — потребан је API кључ, или Lightning plaćanje po zahtevu.

ПољеТипПотребнаОпис
modelStringДаУграђени модел од GET /api/v1/models?type=embedding.
inputString или Array of Strings (Стринг или низ строгова)ДаПрепоручује се узимање у обзир не више од 100 таблета (token_input_unsupported) Сваки унос мора одговарати моделу context_length, рачуна као око четири бајта по токену.
encoding_formatStringНеfloat (понекад је дефект) или base64 (мали 32-битни флоатс у малом дијелу)
dimensionsинтегритетНевеличине самог модела, или за модел са supported_dimensions jedan od njih; vektor se zatim skraćuje i normalizuje.Sve ostalo je odbijeno.
МоделДимензијеконтекст
@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 комада

Листа модела је извор истине за које су доступне и шта коштају; Гоогле-ов ЕмбедингГемма, са краћим векторима на захтев, појављује се тамо и када каталог има цену за то.

Odgovor

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