ज्ञानधार डेवलपर्स
छवियां, ऑडियो और embeddings
ऐप से जनरेटर, और खोज के लिए निर्माण खंडः चित्र, वीडियो, भाषण, प्रतिलेखन और एम्बेडिंग, प्रत्येक आपके शेष राशि से प्रति उपयोग बिल।
सुविधा के लिए यह पृष्ठ मशीन-अनुवादित है। अंग्रेजी मूल संस्करण वह संस्करण है जो लागू होता है।
छवियों का निर्माण
एक प्रिंट से एक से चार चित्र बनाता है और जब वे पूरा हो जाते हैं तो उन्हें वापस देता है। ?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 सैट्स) खर्च करता है। प्रत्येक अन्य जनरेटर अपने स्वयं के मूल्य पर प्रो क्रेडिट खर्च करता है, सामान्य शुल्क और मार्जिन के साथ, जैसा कि नीचे दिया गया है। ऐप. 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 होस्ट पर अपलोड किया जाता है और आपको इसकी लिंक मिलती है (कुछ जनरेटर केवल अपने स्वयं के लिंक को वापस देते हैं, जो जारी किया जाता है). लिंक के साथ कोई भी इसे खोल सकता है और इसे फिर से डाउनलोड नहीं किया जा सकता; देखें आग क्या देखती हैके साथ।
b64_json चित्र प्रतिक्रिया में वापस आता है और कभी अपलोड नहीं किया जाता है। data: यू. आर. एल. 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 जैसा है वैसा ही काम करता है। केवल प्रो जनरेटर के साथ edit मॉडल सूची में इसे स्वीकार करें।
POST https://nymbot.ai/api/v1/images/edits - एक API कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान. शरीर है multipart/form-data32 एमबी तक।
| मैदान | प्रकार | जरूरी है। | वर्णन |
|---|---|---|---|
image | फाइल | हाँ | संपादित करने के लिए छवि: PNG, JPEG, WebP या GIF, 20 MB तक। image[]; पहला उपयोग किया जाता है। |
prompt | स्ट्रिंग | हाँ | क्या बदलना है। |
model | स्ट्रिंग | हाँ | एक जनरेटर के साथ edit. |
n | पूर्णांक | नहीं। | 1 से 4 तक। |
sizeaspect_ratioqualitynegative_promptoutput_format | स्ट्रिंग | नहीं। | जहां तक पीढ़ी की बात है। |
response_format | स्ट्रिंग | नहीं। | "b64_json" (यहां पर डिफ़ॉल्ट) या "url". |
आपके द्वारा अपलोड की गई छवि को अच्छी तरह से प्रारूपित PNG, JPEG, WebP या GIF के रूप में चेक किया जाता है, इसे अपने वास्तविक प्रकार के रूप में भेजा जाता है, और एक सार्वजनिक Blossom होस्ट पर रखा जाता है, क्योंकि जनरेटर अपने इनपुट को लिंक के माध्यम से लेते हैं. इसे सार्वजनिक के रूप में व्यवहार करें. यदि संपादन विफल हो जाता है और कुछ भी चार्ज नहीं किया जाता है, तो होस्ट किए गए कॉपी को फिर से हटा दिया जाता है. प्रतिक्रिया का निर्माण के लिए समान रूप है. कीमत जनरेटर की कीमत है, जो कुछ जनरेटरों के लिए इनपुट छवि के लिए शुल्क शामिल है.
प्रतिक्रिया
{
"created": 1790726460,
"model": "nano-banana",
"cost": 0.2126,
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }],
"nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 408.791, "balance_sats": 40879.1 }
}
| स्थिति | जब |
|---|---|
400 | कोई छवि या प्रिंट नहीं है, एक फाइल जो एक छवि नहीं है (invalid_image), या एक जनरेटर जो संपादित नहीं कर सकता (edit_unsupported). |
413 | चित्र 20 एमबी से अधिक है (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 कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान. वापसी। 202.
| मैदान | प्रकार | जरूरी है। | वर्णन |
|---|---|---|---|
model | स्ट्रिंग | हाँ | से एक वीडियो जनरेटर आईडी GET /api/v1/models?type=video, जैसे कि veo. |
prompt | स्ट्रिंग | हाँ | क्या होना चाहिए। |
duration | संख्या या स्ट्रिंग | नहीं। | सेकंड में लंबाई, 0 से अधिक और 60 तक। केवल जनरेटरों द्वारा उपयोग किया जाता है जो आपको लंबाई चुनने की अनुमति देता है; अन्य अपने सामान्य लंबाई बनाते हैं, जो seconds प्रतिक्रिया में और मूल्य का पालन करें। |
aspect_ratio | स्ट्रिंग | नहीं। | जैसे कि "16:9" या "9:16"एक आकार जैसे कि "1280x720" निकटतम अनुपात बन जाता है। |
resolutionquality | स्ट्रिंग | नहीं। | जनरेटर में से एक resolutions मॉडल सूची में, जैसे कि "720p" या "1080p"यह कीमत निर्धारित करता है. अन्य कुछ भी अस्वीकार किया जाता है unsupported_resolution. |
image_url | स्ट्रिंग | नहीं। | शुरू करने के लिए एक चित्रः एक 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तैयार वीडियो एक सार्वजनिक ब्लॉसम होस्ट पर है, जैसे उत्पन्न चित्र।
| स्थिति | जब |
|---|---|
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 कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान.
| मैदान | प्रकार | जरूरी है। | वर्णन |
|---|---|---|---|
model | स्ट्रिंग | नहीं। | से एक भाषण मॉडल ऑडियो मॉडल सूचीपूर्वनिर्धारित रूप सेः मानक आवाज, @cf/myshell-ai/melotts. aura-2 दीपग्राम औरा 2 है। |
input | स्ट्रिंग | हाँ | पढ़ने के लिए पाठ्यः मानक आवाज के लिए 800 वर्ण तक, ऑरा 2 के लिए 2,000। |
voice | स्ट्रिंग | नहीं। | एक Voice ID से वोटों की सूची: एक ऑरा स्पीकर जैसे luna (और aura-2-luna-en, या एक MeloTTS भाषा (en, es, fr, zh) OpenAI आवाज नाम जैसे 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) एक अनुरोध की लागत है, जैसे कि ऐप में।
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) | नहीं। | केवल इस मॉडल के लिए आवाजें। |
प्रतिक्रियाएं (Voices)
{
"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);
पाठ पर भाषण
श्वास के साथ एक रिकॉर्डिंग को पाठ में बदलता है. यह OpenAI का ट्रांसक्रिप्शन एंडपॉइंट है, इसलिए
audio.transcriptions.create काम करता है।
POST https://nymbot.ai/api/v1/audio/transcriptions - एक API कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान. शरीर है multipart/form-data.
| मैदान | प्रकार | जरूरी है। | वर्णन |
|---|---|---|---|
file | फाइल | हाँ | रिकॉर्डिंग, 256 बैट्स से 25 एमबी तक और 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. |
डब्ल्यू. ए. वी., वेब. एम., एम. पी. 4 और ओ. जी. जी. फाइलों के लिए कुछ भी चलने से पहले फाइल से लंबाई पढ़ी जाती है, इसलिए 30 मिनट से अधिक की रिकॉर्डिंग को सामने से अस्वीकार कर दिया जाता है (3 सेकंड के अनुग्रह के साथ)। एक डब्ल्यू. ए. वी. फाइल की लंबाई इसकी नमूना दर, चैनलों और नमूना आकार से आती है। अन्य प्रारूपों की लंबाई, जैसे कि एम. पी. 3, को सामने से नहीं पढ़ा जा सकता है, इसलिए वे आकार द्वारा सीमित हैंः सबसे कम बिट दर पर निम्बॉट मानता है, 8 के. बी. पी. एस., 30 मिनट 1.8 एमबी है, और इस तरह के प्रारूप में एक बड़ी फाइल को इसके साथ अस्वीकार कर दिया जाता है। 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 | न तो संतुलन इसे कवर कर सकता है। |
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 [email protected] \
-F model=whisper \
-F response_format=json
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("memo.m4a", "rb") as f:
transcript = client.audio.transcriptions.create(model="whisper", file=f)
print(transcript.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const transcript = await client.audio.transcriptions.create({
model: "whisper",
file: fs.createReadStream("memo.m4a"),
});
console.log(transcript.text);
भाषण का अंग्रेज़ी में अनुवाद करना
POST https://nymbot.ai/api/v1/audio/translations - एक API कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान. शरीर है multipart/form-data.
अनुवाद के समान, एक ही क्षेत्रों के अलावा language, सीमा और कीमत, लेकिन पाठ अंग्रेजी में वापस आता है जो भी भाषा बोली गई थी। audio.translations.create.
cURL
curl https://nymbot.ai/api/v1/audio/translations \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-F [email protected] \
-F model=whisper
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("nota.m4a", "rb") as f:
translation = client.audio.translations.create(model="whisper", file=f)
print(translation.text)
JavaScript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const translation = await client.audio.translations.create({
model: "whisper",
file: fs.createReadStream("nota.m4a"),
});
console.log(translation.text);
एम्बेड्स
खोज, क्लस्टरिंग और कटौती के लिए पाठ को वैक्टर में बदल देता है। मॉडल क्लाउडफ्लेयर पर चलते हैं और मानक शेष राशि खर्च करते हैं।
POST https://nymbot.ai/api/v1/embeddings - एक API कुंजी की आवश्यकता होती है, या अनुरोध पर एक Lightning भुगतान.
| मैदान | प्रकार | जरूरी है। | वर्णन |
|---|---|---|---|
model | स्ट्रिंग | हाँ | से एक एम्बेडिंग मॉडल GET /api/v1/models?type=embedding. |
input | स्ट्रिंग या स्ट्रिंग की सरणी | हाँ | अनुच्छेद के अनुच्छेद के अनुच्छेद के अनुच्छेद के अनुच्छेद के अनुच्छेद के अनुच्छेद के अनुच्छेद (token_input_unsupported). प्रत्येक इनपुट मॉडल के अनुरूप होना चाहिए। context_length, एक टोकन में लगभग चार बाइट्स के रूप में गिना जाता है। |
encoding_format | स्ट्रिंग | नहीं। | float (डिफ़ॉल्ट) या base64 (लिटिल-एंडियन 32-बिट फ्लोट्स)। |
dimensions | पूर्णांक | नहीं। | मॉडल का अपना आकार, या एक मॉडल के लिए supported_dimensions उनमें से एक; वेक्टर को फिर छोटा किया जाता है और सामान्य किया जाता है। और कुछ भी अस्वीकार कर दिया जाता है। |
| मॉडल | आयाम | संदर्भ |
|---|---|---|
@cf/baai/bge-m3 | 1024, कई भाषाएँ | 8, 192 टोकन |
@cf/qwen/qwen3-embedding-0.6b | 1024, कई भाषाएँ | 8, 192 टोकन |
@cf/baai/bge-large-en-v1.5 | 1024 - अंग्रेजी | 512 टोकन |
@cf/baai/bge-base-en-v1.5 | 768, अंग्रेजी | 512 टोकन |
@cf/baai/bge-small-en-v1.5 | 384, अंग्रेजी | 512 टोकन |
मॉडल सूची सच्चाई का स्रोत है जिसके लिए उपलब्ध हैं और उनकी कीमत क्या है; गूगल का एम्बेडिंगगेमा, अनुरोध पर छोटे वैक्टर के साथ, वहाँ भी दिखाई देता है जब कैटलॉग में इसकी कीमत होती है। एम्बेडिंग्स को प्रति इनपुट टोकन पर मीटर किया जाता है, और 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);