కంటెంట్‌కి దాటవేయండి
తిరిగి Nymbot కి

నాలెడ్జ్ బేస్ డెవలపర్లు

చిత్రాలు, ఆడియో మరియు ఎంబెడ్డింగ్‌లు

అనువర్తనం నుండి జనరేటర్లు, మరియు శోధన కోసం బిల్డింగ్ బ్లాక్స్ః చిత్రాలు, వీడియో, ప్రసంగం, ట్రాన్స్క్రిప్షన్ మరియు ఎంబెడింగ్లు, మీ బ్యాలెన్స్ నుండి ప్రతి వినియోగానికి బిల్లు.

చిత్రాలను రూపొందించడం

ఒక ప్రాంప్ట్ నుండి ఒకటి నుండి నాలుగు చిత్రాలను తయారు చేసి, అవి పూర్తయినప్పుడు తిరిగి పంపుతుంది. ఇది కూడా అదే జనరేటర్ల సెట్ వంటిదే ?image యాప్‌లో.

POST https://nymbot.ai/api/v1/images/generations - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు.

ఐడీలు ఇక్కడ నుండి వస్తాయి. GET /api/v1/models?type=imageప్రామాణిక జనరేటర్, @cf/black-forest-labs/flux-1-schnell, ఒక చిత్రానికి ఫ్లాట్ 5 ప్రామాణిక క్రెడిట్లను (50 సాట్స్) ఖర్చు చేస్తుంది. ప్రతి ఇతర జనరేటర్ ప్రో క్రెడిట్లను దాని స్వంత ధరకు, సాధారణ రుసుము మరియు మార్జిన్తో ఖర్చు చేస్తుంది. యాప్. n చిత్రాల ధరలు n రెట్లు ఎక్కువ. జనరేటర్ తీసుకోని ఫీల్డ్ తిరస్కరించబడే బదులు వదిలివేయబడుతుంది; ప్రామాణిక జనరేటర్ ప్రాంప్ట్ను మాత్రమే ఉపయోగిస్తుంది.

ఫీల్డ్రకంఅవసరమైనదివివరణ
modelస్ట్రింగ్అవునువంటి జనరేటర్ ఐడి nano-banana.
promptస్ట్రింగ్అవునుఏమి గీయాలి. మొదటి 2,000 అక్షరాలు మాత్రమే ఉపయోగించబడతాయి.
nపూర్ణాంకంలేదు1 నుండి 4 వరకు. డిఫాల్ట్ 1. గా కూడా ఆమోదించబడింది num_images.
sizeస్ట్రింగ్లేదువంటి కారక నిష్పత్తి "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_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 యుఆర్ఎల్ (పిఎన్జి, జెపిఇజి, వెబ్పి లేదా జిఐఎఫ్; ఎస్. వి. జి కాదు). ఉన్న జనరేటర్లకు మాత్రమే editతో వారికి అవసరం requires_image_url.

resolution ఉపయోగించబడదుః ప్రతి జనరేటర్ దాని స్వంత పరిమాణాన్ని తయారు చేస్తుంది. url, ప్రతి చిత్రం పబ్లిక్ Blossom హోస్ట్‌కు అప్‌లోడ్ చేయబడుతుంది మరియు మీకు దాని లింక్ వస్తుంది (కొన్ని జనరేటర్లు మాత్రమే తమ స్వంత లింక్‌ను తిరిగి ఇస్తాయి, అది పంపబడుతుంది). లింక్ ఉన్న ఎవరైనా దానిని తెరవవచ్చు మరియు దానిని మళ్ళీ తొలగించలేరు; చూడండి API ఏమి చూడగలదుతో. b64_json చిత్రం ప్రతిస్పందనలో తిరిగి వస్తుంది మరియు ఎప్పుడూ అప్‌లోడ్ చేయబడదు. చిత్రము ఒక ________ గా పంపబడింది data: లో URL image_url అదే విధంగా తనిఖీ చేయబడుతుంది సవరించండి మరియు మొదట బ్లాసమ్కు అప్లోడ్ చేయబడుతుంది, తద్వారా జనరేటర్ దానిని పొందవచ్చు; అభ్యర్థన అన్బిల్ చేయడంలో విఫలమైతే అది మళ్లీ తొలగించబడుతుంది.

కొందరైతే 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);

చిత్రాలను సవరించడం

ప్రాంప్ట్ను అనుసరించి, మీరు అప్లోడ్ చేసిన చిత్రాన్ని మారుస్తుంది. ఇది ఓపెన్ఏఐ యొక్క ఎడిట్ ఎండ్ పాయింట్, కాబట్టి ఓపెన్ఏఐ ఎస్డికెలు ' images.edit ఉన్నట్లే పనిచేస్తుంది. ప్రో జనరేటర్లు మాత్రమే edit మోడల్ జాబితాలో దానిని అంగీకరించండి.

POST https://nymbot.ai/api/v1/images/edits - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు. శరీరం అంటే multipart/form-data32 ఎంబీ వరకు ఉంటుంది.

ఫీల్డ్రకంఅవసరమైనదివివరణ
imageఫైలుఅవునుసవరించాల్సిన చిత్రంః పిఎన్జి, జెపిఇజి, వెబ్పి లేదా జిఐఎఫ్, 20 ఎంబి వరకు. 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 ఎంబీ కంటే ఎక్కువ.
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 కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు. తిరుగుబాట్లు. 202.

ఫీల్డ్రకంఅవసరమైనదివివరణ
modelస్ట్రింగ్అవునువీడియో జనరేటర్ ఐడి నుండి GET /api/v1/models?type=video, ఉదాహరణకు veo.
promptస్ట్రింగ్అవునుఏం జరగాలి.
durationసంఖ్య లేదా స్ట్రింగ్లేదుసెకన్లలో పొడవు, 0 కంటే ఎక్కువ మరియు 60 వరకు. మీరు పొడవును ఎంచుకోవడానికి అనుమతించే జనరేటర్ల ద్వారా మాత్రమే ఉపయోగించబడుతుంది; ఇతరులు వారి సాధారణ పొడవును చేస్తారు, అంటే seconds ప్రతిస్పందనలో మరియు ధర అనుసరిస్తుంది.
aspect_ratioస్ట్రింగ్లేదువంటి "16:9" లేదా "9:16"వంటి పరిమాణం "1280x720" సమీప నిష్పత్తి అవుతుంది.
resolution
quality
స్ట్రింగ్లేదుజనరేటర్ ఒకటి resolutions మోడల్ జాబితాలో, ఉదాహరణకు "720p" లేదా "1080p"ఇది ధరను నిర్ణయిస్తుంది. మరేదైనా తిరస్కరించబడుతుంది unsupported_resolution.
image_urlస్ట్రింగ్లేదునుండి ప్రారంభించడానికి ఒక చిత్రంః ఒక https:// లింక్ లేదా a data:image/… యూఆర్ఎల్, మొదట పబ్లిక్ బ్లాసమ్ హోస్ట్కు అప్లోడ్ చేయబడుతుంది. జనరేటర్లకు అవసరం requires_image_url.

మీరు సబ్మిట్ చేసినప్పుడు, జనరేటర్, రిజల్యూషన్ మరియు పొడవు ఆధారంగా ధర నిర్ణయించబడుతుంది, కాబట్టి ప్రొవైడర్ పనిని అంగీకరించిన వెంటనే మీ Pro బ్యాలెన్స్ నుండి ఛార్జ్ చేయబడుతుంది, మరియు ఇది ఈ విధంగా చూపబడుతుంది cost, estimated_cost మరియు nymbot. ప్రొవైడర్ పనిని తిరస్కరించినట్లయితే, ఏమీ వసూలు చేయబడదు. రెండర్ తరువాత విఫలమైతే, లేదా పూర్తయిన క్లిప్ను నిల్వ చేయలేకపోతే మరియు ప్రొవైడర్ దాని కోసం బిల్లు చేయకపోతే, ఛార్జ్ ఒకసారి, స్వయంచాలకంగా తిరిగి చెల్లించబడుతుంది. ఒక గంట తర్వాత కూడా కొనసాగుతున్న రెండర్ వదులుకోబడుతుంది, మరియు దాని ఛార్జీని ఉంచుతుంది, ఎందుకంటే ప్రొవైడర్ దానిని అంగీకరించిన తర్వాత రెండర్కు బిల్లు ఇస్తుంది. తిరిగి చెల్లింపు క్రెడిట్లను తిరిగి ఇస్తుంది కానీ కీ యొక్క ఖర్చు గణనను తగ్గించదు.

ప్రతిస్పందన (202)

{
  "id": "vid_3e9a51c07b2f4d86e0a1c4f2",
  "object": "video",
  "model": "veo",
  "status": "in_progress",
  "created": 1790726400,
  "seconds": 8,
  "resolution": "1080p",
  "estimated_cost": 3.18,
  "expires_at": 1790812800,
  "cost": 3.18,
  "nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180, "balance_credits": 378.808, "balance_sats": 37880.8 }
}

status ఇలా ప్రారంభమవుతుంది 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పూర్తయిన వీడియో రూపొందించిన చిత్రాల మాదిరిగా పబ్లిక్ బ్లాసమ్ హోస్ట్లో ఉంది.

స్థితిఎప్పుడు?
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 ఓపెన్ఏఐ ఎస్డికెలలో పనిచేస్తుంది.

POST https://nymbot.ai/api/v1/audio/speech - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు.

ఫీల్డ్రకంఅవసరమైనదివివరణ
modelస్ట్రింగ్లేదునుండి ఒక ప్రసంగ నమూనా ఆడియో నమూనాల జాబితాడిఫాల్ట్ః ప్రామాణిక వాయిస్, @cf/myshell-ai/melotts. aura-2 దీప్గ్రామ్ ఆరా 2.
inputస్ట్రింగ్అవునుచదవవలసిన వచనంః ప్రామాణిక స్వరానికి 800 అక్షరాల వరకు, ఆరా 2కి 2,000 వరకు.
voiceస్ట్రింగ్లేదునుండి వాయిస్ ఐడి స్వరాల జాబితా: ఒక Aura స్పీకర్ వంటి luna (లేదా aura-2-luna-en), లేదా మెలోటిటిఎస్ భాష (en, es, fr, zh). OpenAI వాయిస్ పేర్లు వంటి alloy అవి ఆమోదించబడతాయి మరియు మోడల్ యొక్క డిఫాల్ట్ వాయిస్ని ఇస్తాయి.
languageస్ట్రింగ్లేదువంటి భాషా కోడ్ es. స్వరం లేకుండా, అది ఆ భాషకు ఒకదాన్ని ఎంచుకుంటుంది. మరొక భాష మాట్లాడే స్వరం తిరిగి వస్తుంది. 422 voice_language_mismatch, మరియు మోడల్‌కు గొంతు లేని ఒక భాష 422 unsupported_language.
response_formatస్ట్రింగ్లేదుప్రామాణిక వాయిస్ తిరిగి వస్తుంది mp3 మాత్రమే. ఆరా 2 తిరిగి వస్తుంది mp3 (డిఫాల్ట్), opus, aac, flac, wav లేదా pcm.
speedసంఖ్యలేదుఅంగీకరించి, నిర్లక్ష్యం చేశారు.

అనువర్తనంలో ఉన్నట్లుగా, ప్రామాణిక వాయిస్ ఒక అభ్యర్థనకు ఫ్లాట్ 3 ప్రామాణిక క్రెడిట్లను (30 సాట్స్) ఖర్చు చేస్తుంది. ఆరా 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 ఆరా 2 ఇంగ్లీష్ మాట్లాడేవారు మరియు నాలుగు మెలోటిటిఎస్ భాషలు ఉన్నాయి.

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

వచనంతో ప్రసంగం

రికార్డింగ్ను విస్పర్తో టెక్స్ట్గా మారుస్తుంది. ఇది ఓపెన్ఏఐ యొక్క ట్రాన్స్క్రిప్షన్ ఎండ్ పాయింట్, కాబట్టి audio.transcriptions.create పనిచేస్తుంది.

POST https://nymbot.ai/api/v1/audio/transcriptions - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు. శరీరం అంటే multipart/form-data.

ఫీల్డ్రకంఅవసరమైనదివివరణ
fileఫైలుఅవునురికార్డింగ్, 256 బైట్ల నుండి 25 ఎంబీ వరకు మరియు 30 నిమిషాల వరకుః డబ్ల్యూఏవీ, వెబ్ఎం, ఎమ్పి4 లేదా ఎం4ఏ, ఓగ్ లేదా ఓపస్, ఎమ్పి3 మరియు ఇతర ఫార్మాట్లలో విస్పర్ రీడ్స్. ఎమ్పి3 మరియు ఇతర ఫార్మాట్లలో పొడవు ముందు చదవలేనివి 1.8 ఎంబీకి పరిమితం చేయబడ్డాయి.
modelస్ట్రింగ్లేదుడిఫాల్ట్ whisper, ఇది విస్పర్ లార్జ్ వి3 టర్బో. 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 వంటి ఇతర ఫార్మాట్‌ల పొడవును ముందుగానే చదవలేము, కాబట్టి అవి పరిమాణం ద్వారా పరిమితం చేయబడతాయి: అత్యల్ప బిట్‌రేట్ 8 kbps అని Nymbot అనుకుంటే, 30 నిమిషాలు 1.8 MB అవుతుంది, మరియు అటువంటి ఫార్మాట్‌లో అంతకంటే పెద్ద ఫైల్‌ను నిరాకరించబడుతుంది 413 audio_too_long ఏదైనా రన్ అయ్యే ముందు. ఎక్కువ నిడివి గల రికార్డింగ్లను డబ్ల్యూఏవీ, వెబ్ఎం, ఎమ్పి4 లేదా ఓజీగా పంపండి. విస్పర్ 30 నిమిషాల కంటే ఎక్కువ సమయం అయినా రిపోర్ట్ చేస్తే, అభ్యర్థన తో తిరస్కరించబడుతుంది. 413 audio_too_long, మరియు విస్పర్ పరుగెత్తినందున, 30 నిమిషాలు ఛార్జ్ చేయబడతాయి.

మీరు ఆడియో నిడివికి చెల్లిస్తారు, ఇది సెకనుకు రౌండ్ అప్ చేయబడుతుంది: ఫైల్ నుండి చదివిన గరిష్ట నిడివి, Whisper నివేదించే నిడివి మరియు ఫైల్ పరిమాణం అనుమతించే కనిష్ట నిడివి, Whisper యొక్క ప్రతి నిమిషం ధరతో సాధారణ రుసుము మరియు మార్జిన్‌తో, మరియు ప్రతి అభ్యర్థనకు కనీసం 0.05 క్రెడిట్. అది ఆ Hold మొత్తాన్ని కవర్ చేయగలిగినప్పుడు స్టాండర్డ్ బ్యాలెన్స్ నుండి, లేని పక్షంలో Pro నుండి చెల్లించబడుతుంది; a 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) లేదా 30 నిమిషాలకు పైగా రికార్డింగ్, లేదా, దీని పొడవును ముందు చదవలేని ఫార్మాట్లో, 1.8 MB కంటే ఎక్కువ (audio_too_long).
502విస్పర్ ఆడియోను ప్రాసెస్ చేయలేకపోయింది. ఏమీ ఛార్జ్ చేయబడలేదు.

cURL

curl https://nymbot.ai/api/v1/audio/transcriptions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F [email protected] \
  -F model=whisper \
  -F response_format=json

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("memo.m4a", "rb") as f:
    transcript = client.audio.transcriptions.create(model="whisper", file=f)
print(transcript.text)

JavaScript

import fs from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const transcript = await client.audio.transcriptions.create({
  model: "whisper",
  file: fs.createReadStream("memo.m4a"),
});
console.log(transcript.text);

ప్రసంగాన్ని ఆంగ్లంలోకి అనువదిస్తున్నారు

POST https://nymbot.ai/api/v1/audio/translations - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు. శరీరం అంటే 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);

ఎంబెడెడ్లు

శోధన, క్లస్టరింగ్ మరియు డిడుప్లికేషన్ కోసం వచనాన్ని వాహకాలుగా మారుస్తుంది. నమూనాలు క్లౌడ్ఫ్లేర్లో నడుస్తాయి మరియు ప్రామాణిక బ్యాలెన్స్ను ఖర్చు చేస్తాయి.

POST https://nymbot.ai/api/v1/embeddings - ఒక API కీ అవసరం, లేదా అభ్యర్థనకు మెరుపు చెల్లింపు.

ఫీల్డ్రకంఅవసరమైనదివివరణ
modelస్ట్రింగ్అవునునుండి ఒక ఎంబెడింగ్ మోడల్ GET /api/v1/models?type=embedding.
inputస్ట్రింగ్ లేదా స్ట్రింగ్‌ల శ్రేణిఅవునుఎంబెడ్ చేయవలసిన వచనం, గరిష్టంగా 100 ఖాళీ లేని స్ట్రింగ్‌లు. టోకెన్ అర్రేలను తిరస్కరించడమైనది (token_input_unsupported). ప్రతి ఇన్పుట్ నమూనాకు సరిపోయేలా ఉండాలి. context_length, టోకెన్కు సుమారు నాలుగు బైట్లుగా లెక్కించబడుతుంది.
encoding_formatస్ట్రింగ్లేదుfloat (డిఫాల్ట్) లేదా base64 (లిటిల్-ఎండియన్ 32-బిట్ ఫ్లోట్స్).
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 టోకెన్లు

నమూనాల జాబితా అనేది అందుబాటులో ఉన్న నిజం యొక్క మూలం మరియు వాటి ధర ఎంత; గూగుల్ యొక్క ఎంబెడింగ్ జెమ్మా, అభ్యర్థనపై తక్కువ వెక్టర్లతో, కేటలాగ్కు ధర ఉన్నప్పుడు అక్కడ కూడా కనిపిస్తుంది. ఎంబెడింగ్లు ప్రతి ఇన్పుట్ టోకెన్కు మీటర్ చేయబడతాయి మరియు 0.05-credit కనీస ప్రతి అభ్యర్థనకు వర్తిస్తుంది, ప్రతి ఇన్పుట్కు కాదు, కాబట్టి ఒకే అభ్యర్థనలో అనేక పాఠాలను బ్యాచ్ చేయడం అనేది వాటిని ఒకేసారి పంపడం కంటే చాలా చౌకగా ఉంటుంది.

ప్రతిస్పందన

{
  "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ప్రామాణిక బ్యాలెన్స్ చాలా తక్కువగా ఉంది. Embeddings ఎప్పుడూ Pro బ్యాలెన్స్‌ను ఉపయోగించవు.
404ఆ పేరుతో ఎంబెడింగ్ మోడల్ లేదు.
502నమూనా విఫలమైంది. ఏమీ ఛార్జ్ చేయబడలేదు.

cURL

curl https://nymbot.ai/api/v1/embeddings \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "@cf/baai/bge-m3", "input": ["Lightning invoices expire.", "Invoices on Lightning have a time limit."]}'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

result = client.embeddings.create(
    model="@cf/baai/bge-m3",
    input=["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
)
print(len(result.data), len(result.data[0].embedding))

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const result = await client.embeddings.create({
  model: "@cf/baai/bge-m3",
  input: ["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
});
console.log(result.data.length, result.data[0].embedding.length);