सामग्रीवर जा
Nymbot वर परत

ज्ञानाचा आधार विकासक

चित्र, ऑडिओ आणि embeddings

अॅपच्या जनरेटर आणि शोधण्यासाठी बिल्डिंग ब्लॉक: चित्रे, व्हिडिओ, भाषण, ट्रान्सक्रिप्शन आणि इनबेडमेंट्स, प्रत्येकाने आपल्या खात्यातून वापर दरम्यान चाचणी केली आहे.

चित्र निर्माण

प्रॉम्प्टवरून एक ते चार छायाचित्रे बनवते आणि ते पूर्ण झाल्यावर ती परत करते. जनित्रांचा तो समान संच असतो ?image एपमध्ये.

POST https://nymbot.ai/api/v1/images/generations - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणे.

आयडी येतात 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.असेच मानले जाते. 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:// ४,०९६ वर्ण असणाऱ्या लिंकमध्ये वापरकर्ताचे नाव किंवा पासवर्ड नाही किंवा data:image/…;base64 यू. आर. एल. (पी. एन. जी., जे. पी. ई. जी., वेब. पी. किंवा जी. आय. एफ.; एस. व्ही. जी. नाही). फक्त जनरेटरसाठी editत्यांची मागणी करणाऱ्यांना requires_image_url.

resolution प्रत्येक जण स्वतःचा वापर करतो; प्रत्येक जण स्वतःचा वापर करतो. urlप्रत्येक चित्र सार्वजनिक ब्लॉसम होस्टवर अपलोड केले जाते आणि तुम्हाला त्याची लिंक मिळते (काही जनरेटर केवळ त्यांची स्वतःची लिंक परत देतात, जी पुढे पाठवली जाते). लिंक असलेली कोणीही ती उघडू शकते आणि ती पुन्हा खाली काढली जाऊ शकत नाही; पहा अग्निशमन देखील काय करतातसाथ 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);

प्रतिमांचे संपादन

प्रॉम्प्टच्या पाठोपाठ तुम्ही अपलोड केलेले चित्र बदलते. हा ओपनएआयचा संपादन अंतिम बिंदू आहे, त्यामुळे ओपनएआय एसडीके ' images.edit जसे आहे तसे काम करते. फक्त प्रो जनरेटरसह edit मॉडेल लिस्टमध्ये ते स्वीकारले जातात.

POST https://nymbot.ai/api/v1/images/edits - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणेशरीर म्हणजे multipart/form-data32 MB पर्यंत.

मैदान.प्रकारआवश्यकवर्णन.
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 एमबी (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 - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणेपरत 202.

मैदान.प्रकारआवश्यकवर्णन.
modelस्ट्रिंगहोयव्हिडिओ जनरेटर ID 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स्ट्रिंगनाहीप्रारंभ करण्यासाठी एक फोटो : एक https:// लिंक किंवा A data:image/… यू. आर. एल., जी प्रथम सार्वजनिक ब्लॉसम यजमानावर अपलोड केली जाते. जनरेटरद्वारे आवश्यक 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अ ॅडमॅट (अ ॅडमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटमॅटinvalid_value); जनरेटर देऊ करत नसलेले रिझोल्यूशन (unsupported_resolution); कोणत्याही जनरेटरसाठी चित्र नाही जे एक आवश्यक आहे (image_required); एक मॉडेल जो व्हिडिओ जनरेटर नाही (invalid_model).
402प्रो बॅलन्स व्हिडिओला कव्हर करू शकत नाही.
404(आणि काहीही नसेल तर)model_not_found), किंवा तुमच्या एन. आय. एम. साठी त्या ओळखपत्राद्वारे नोकरी नाही, किंवा ती 24 तासांपेक्षा जुनी आहे (video_not_found).
42910 टक्के व्हॉट्सअॅप (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 - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणे.

मैदान.प्रकारआवश्यकवर्णन.
modelस्ट्रिंगनाहीभाषणातील एक उदाहरण ऑडिओ मॉडेल्सची यादीडिफॉल्ट : मानक आवाज @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2 च्या माध्यमातून.
inputस्ट्रिंगहोयपाठ वाचण्यासाठी: मानक आवाजसाठी 800 वर्ण, Aura 2साठी 2000 वर्ण.
voiceस्ट्रिंगनाहीवॉयस आईडी मतदारांची सूची: एक ऑरा स्पीकर जसे की luna या aura-2-luna-en) या भाषेचा वापर करताना (en, es, fr, zh). ओपनएआय आवाजाची नावे जसे की 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 - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणेशरीर म्हणजे multipart/form-data.

मैदान.प्रकारआवश्यकवर्णन.
fileफाइलहोयरिकॉर्डिंग, 256 बैट्स ते 25 MB आणि 30 मिनिटेपर्यंत: WAV, WebM, MP4 किंवा M4A, Ogg किंवा Opus, MP3 आणि इतर स्वरूपात Whisper वाचते.
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 मिनिटांपेक्षा जास्त रिकॉर्डिंग अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्याप अद्या 413 audio_too_long काहीही चालू होण्यापूर्वी. दीर्घ ध्वनिमुद्रणे डब्ल्यू. ए. व्ही., वेब. एम., एम. पी. 4 किंवा ओ. जी. जी. म्हणून पाठवा. जर व्हिस्पर 30 मिनिटांपेक्षा जास्त वेळ अहवाल देत असेल, तर विनंती नाकारली जाते. 413 audio_too_long, आणि व्हिस्पर धावत असल्याने, 30 मिनिटे शुल्क आकारले जाते.

तुम्ही ध्वनिफितीच्या लांबीसाठी पैसे देता, जी दुसऱ्यापर्यंत पूर्ण केली जातेः फाईलमधून वाचलेल्या लांबीच्या सर्वात लांब लांबीसाठी, व्हिस्पर अहवालांची लांबी आणि किमान फाईलचा आकार, व्हिस्परच्या प्रति मिनिट किंमतीवर नेहमीच्या शुल्कासह आणि मार्जिनसह आणि किमान 0.05 क्रेडिट विनंतीसाठी. जेव्हा ती धरून ठेवू शकते तेव्हा ती प्रमाणित शिल्लक रकमेतून दिली जाते आणि अन्यथा प्रो कडून; अ 402 प्रत्येक संतुलन आवश्यक काय देतो. अॅपमध्ये, आवाज संदेश ट्रान्सक्रिप्शन मुक्त होऊ शकते; एपीआयवर तो नेहमी चार्ज केला जातो.

प्रतिक्रिया

{
  "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दोन्हीपैकी कोणताही समतोल त्याला आवर घालू शकत नाही.
41325 मेगांपेक्षा जास्त कागदपत्रे (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 - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणेशरीर म्हणजे 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 - ए. पी. आय. किल्लीची गरज आहे, किंवा प्रत्येक विनंतीसाठी वीज भरणे.

मैदान.प्रकारआवश्यकवर्णन.
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.5इंग्रजी ३८४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मानक शिल्लक खूप कमी आहे. एम्बेडिंग कधीही प्रो शिल्लक वापरत नाही.
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);