ज्ञान के आधार डेवलपरस
छवि, ऑडियो आ एम्बेडिंगसभ
एपसँ जनरेटर, आ खोजक लेल निर्माण खंडः चित्र, वीडियो, भाषण, प्रतिलेखन आ एम्बेडिंग, प्रत्येक बिल प्रति उपयोग अहाँक शेष राशिसँ।
सुविधा के लेल ई पृष्ठ मशीन सं अनुवादित अछि. अंग्रेजी मूल संस्करण अछि जे लागू होइत अछि।
चित्र निर्माण करब
प्रॉम्प्टसँ एकसँ चारिटा चित्र बनबैत अछि आ जखन ओ पूरा भऽ जाइत अछि तखन ओकरा वापस कऽ दैत अछि। ई जनरेटरक समान सेट अछि। ?image एप मे।
POST https://nymbot.ai/api/v1/images/generations - कोनो एपीआई कुंजीक आवश्यकता अछि, अथवा प्रति अनुरोध बिजली भुगतान.
आइ. डी. एतऽसँ अबैत अछि। 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 URL (PNG, JPEG, WebP वा GIF; SVG नहि)। कखनो ओहि जनरेटरक लेल जकर लगेल... edit; जे सभ आवश्यक छथि हुनका लेल। requires_image_url. |
resolution उपयोग नहि कयल जाइत अछिः प्रत्येक जनरेटर अपन आकार बनबैत अछि। url, प्रत्येक चित्रकेँ सार्वजनिक ब्लॉसम होस्ट पर अपलोड कयल जाइत अछि आ अहाँकेँ एकर लिंक भेटैत अछि (किछु जनरेटर मात्र अपन एकटा लिंक वापस दैत अछि, जकरा पार कैल जाइत अछि)। लिंक वला कोनो व्यक्ति एकरा खोल सकैत अछि आ एकरा फेरसँ नहि लेल जा सकैत अछि; देखू API की देखि सकैत अछिसंग।
b64_json प्रतिक्रियामे चित्र वापस आबि जाइत अछि आ कखनहु अपलोड नहि कयल जाइत अछि। एकटा चित्रक रूपमे पठाओल गेल अछि data: यूआरएल भीतर अछि। 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 - कोनो एपीआई कुंजीक आवश्यकता अछि, अथवा प्रति अनुरोध बिजली भुगतानशरीर अछि। multipart/form-data32 एमबी तक।
| मैदान | प्रकार | आवश्यक अछि। | वर्णन |
|---|---|---|---|
image | फाइल | हँ | संपादन लेल चित्र: PNG, JPEG, WebP वा GIF, २० MB धरि। एहिना स्वीकार कएल जाइत अछि image[]पहिलक उपयोग कयल जाइत अछि। |
prompt | स्ट्रिंग | हँ | की बदला जाए। |
model | स्ट्रिंग | हँ | एकटा जनरेटरक संग edit. |
n | पूर्णांक | नहि। | 1 सँ 4 धरि। |
sizeaspect_ratioqualitynegative_promptoutput_format | स्ट्रिंग | नहि। | पीढ़ीक लेल। |
response_format | स्ट्रिंग | नहि। | "b64_json" (एतऽ पूर्वनिर्धारित) या "url". |
अहाँ जे चित्र अपलोड करैत छी ओकरा नीक रूपसँ तैयार पीएनजी, जेपीईजी, वेबपी या जीआईएफक रूपमे जाँचल जाइत अछि, जकरा ओकर वास्तविक प्रकारक रूपमे पठाओल जाइत अछि, आ सार्वजनिक ब्लॉसम होस्ट पर राखल जाइत अछि, किएक तँ जनरेटर लिंक द्वारा अपन इनपुट प्राप्त करैत अछि। एकरा सार्वजनिक मानि लिअ। यदि संपादन विफल भऽ जाइत अछि आ किछु नहि लेल जाइत अछि, तँ होस्ट कयल प्रतिलिपि फेरसँ हटा देल जाइत अछि। प्रतिक्रियाक आकार पीढ़ीक समान होइत अछि। मूल्य निर्धारण जनरेटरक मूल्य अछि, जाहिमे किछु जनरेटर लेल इनपुट चित्रक लेल शुल्क सम्मिलित अछि।
प्रतिक्रिया
{
"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 - कोनो एपीआई कुंजीक आवश्यकता अछि, अथवा प्रति अनुरोध बिजली भुगतानवापसी। 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/… यूआरएल, जे पहिने सार्वजनिक ब्लॉसम होस्ट पर अपलोड कयल जाइत अछि। जनरेटर द्वारा आवश्यक अछि requires_image_url. |
जखन अहाँ जनरेटरसँ जमा करैत छी तखन दाम तय भऽ जाइत अछि, रिज़ॉल्यूशन आ लंबाई, एहि लेल जे प्रदाता काज स्वीकार करैत अछि तँ ई अहाँक प्रो बैलेंससँ लेल जाइत अछि, आ एकरा एहि रूपमे देखायल जाइत अछि
cost, estimated_cost आओर nymbotयदि प्रदाता काम अस्वीकार क' देत छथि, तँ कोनो शुल्क नै लियो जाइत अछि। यदि बाद में रेंडर फेल भ' जाइत अछि, या पूरा भेल क्लिप स्टोर नै कएल जा सकैत अछि आ प्रदाता ओकर बिल नै भेजल अछि, तँ शुल्क एक बेर स्वचालित रूप सँ वापस क' देल जाइत अछि। एक घंटा कें बाद सेहो चलैत रहल रेंडर केँ छोड़ि द' देल जाइत अछि, आ ओकर शुल्क लेल कएल रहत अछि, कियाकेंकी प्रदाता रेंडर स्वीकार क' लेलें ओकर बिल भेली देइत छथि। रिफंड सँ क्रेडिट वापस आ जाइत अछि मुदा की (key) केर खर्चक संख्या कम नै होइत अछि।
प्रतिक्रिया (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": […]}.
प्रतिक्रिया (२००)
{
"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 | कोनो प्रॉम्ट नै; ० सँ ६० सँ बाहरक एकटा अवधि (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 - कोनो एपीआई कुंजीक आवश्यकता अछि, अथवा प्रति अनुरोध बिजली भुगतान.
| मैदान | प्रकार | आवश्यक अछि। | वर्णन |
|---|---|---|---|
model | स्ट्रिंग | नहि। | एकटा भाषण मॉडल ऑडियो मॉडलक सूचीपूर्वनिर्धारित रूप सँः मानक आवाज, @cf/myshell-ai/melotts. aura-2 की Deepgram Aura 2 अछि? |
input | स्ट्रिंग | हँ | पढ़बाक लेल पाठः मानक आवाज लेल 800 वर्ण तक, ऑरा 2 लेल 2,000। |
voice | स्ट्रिंग | नहि। | एकटा आवाज आइ. डी. आवाजक सूची: एकटा Aura स्पीकर जकां अछि तखन luna (वा aura-2-luna-en), वा MeloTTS भाषा (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()));
ऑडियो मॉडल आर आवाजकें
भाषणक मॉडल आ आवाज, वा लिखिक मॉडल चुनबाक लेल दूटा सार्वजनिक सूची अछि। एहिमे ४१ Aura 2 English वक्ता आ चार भाषाक MeloTTS अछि।
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 एमबी तक आ 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 | स्ट्रिंग | नहि। | अपेक्षित शब्द वा वर्तनी, जेना नाम। मात्र पहिल 1000 वर्णक उपयोग कयल जाइत अछि। |
response_format | स्ट्रिंग | नहि। | json (पूर्वनिर्धारित), text, srt, vtt अथवा verbose_json. |
डब्ल्यू. ए. वी., वेब. एम., एम. पी. 4 आ ओ. जी. जी. फाइलक लेल किछु चलबासँ पहिने फाइलसँ लंबाई पढ़ल जाइत छैक, तेँ 30 मिनटसँ बेसी रेकॉर्डिंगकेँ सामनेसँ मना कऽ देल जाइत छैक (3 सेकण्डक ग्रेसक संग)। एकटा डब्ल्यू. ए. वी. फाइलक लंबाई ओकर नमूना दर, चैनल आ नमूना आकारसँ अबैत छैक। अन्य प्रारूपक लंबाई, जेना कि एम. पी. 3, केँ सामनेसँ पढ़ल नहि जा सकैत छैक, तेँ ओ आकारक हिसाबसँ सीमित रहैत छैकः न्यूनतम बिटरेट पर निम्बॉट मानैत छैक, 8 के. बी. पी. एस., 30 मिनट 1.8 एमबी छैक, आ एहन प्रारूपमे एकटा पैघ फाइलसँ मना कऽ देल जाइत छैक। 413
audio_too_long कोनो चीज चले सँ पहिने। लम्बा रेकॉर्डिंग WAV, WebM, MP4 या Ogg के रूप में भेजू।
जँ Whisper ३० मिनट सँ बेसी रिपोर्ट करैत अछि, तऽ अनुरोध अस्वीकार कऽ देल जाइत अछि
413 audio_too_long, आ Whisper चलल छल, तँ ३० मिनटक शुल्क लागल अछि।
अहाँ ऑडियोक लंबाईक लेल भुगतान करैत छी, दोसर तक गोल करैतः फाइलसँ पढ़ल गेल लंबाईक सबसँ लम्बा, व्हिस्पर रिपोर्टक लंबाई, आ कम सँ कम फाइलक आकार अनुमति दैत अछि, व्हिस्परक प्रति मिनट मूल्य पर सामान्य शुल्क आ मार्जिनक संग, आ कम सँ कम 0.05 क्रेडिट एकटा अनुरोध। एकर भुगतान मानक शेष राशिसँ कयल जाइत अछि जखन ओ होल्डकेँ पूरा कऽ सकैत अछि, आ अन्यथा प्रो सँ; a 402 प्रत्येक बैलेंसक लेल की आवश्यक अछि, ओ बताबैत अछि। ऐप में, वॉइस मैसेज के लिखपाल कए अछि त' मुफ़्त भ' सकैत अछि; API पर एकर शुल्क हमेशा लगैत अछि। जँ Whisper विफल भ' जाइत अछि, त' किछुओ शुल्क नै लगैत अछि।
प्रतिक्रिया
{
"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 | Whisper ऑडियोक प्रक्रिया नै क' सकल। किछुओ चार्ज नै कएल गेल अछि। |
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, सीमा आ मूल्य, मुदा पाठ अंग्रेजीमे वापस आबि जाइत अछि जे कोनो भाषा बाजि रहल छल। ओपनएआई एसडीके एकरा कs कहैत अछि 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);
एम्बेडिंग्स
खेड़बूट (search), क्लस्टरिंग आ डुप्लिकेसन (deduplication) लेल टेक्स्ट के वेक्टर में बदलैत अछि। मॉडल Cloudflare पर चलैत अछि आ मानक बैलेंस खर्च करैत अछि।
POST https://nymbot.ai/api/v1/embeddings - कोनो एपीआई कुंजीक आवश्यकता अछि, अथवा प्रति अनुरोध बिजली भुगतान.
| मैदान | प्रकार | आवश्यक अछि। | वर्णन |
|---|---|---|---|
model | स्ट्रिंग | हँ | कहुँ सँ एकटा एम्बेडिंग मॉडल GET /api/v1/models?type=embedding. |
input | स्ट्रिङ्क वा स्ट्रिङ्कक ऐरे | हँ | एहि टेक्स्ट के एम्बेड करबाक लेल, १०० तक खाली नहि भेल स्ट्रिंग। टोकन एरे खदेकबाक अछि (token_input_unsupported)। प्रत्येक इनपुट मॉडलक अनुरूप होअय पड़त। context_length, लगभग चार बाइट प्रति टोकन मानल जाइत अछि। |
encoding_format | स्ट्रिंग | नहि। | float (पूर्वनिर्धारित) या base64 (लिडल-एंडियन ३२-बिट फ्लोट्स)। |
dimensions | पूर्णांक | नहि। | मॉडलक अपन आकार, वा एकटा मॉडलक लेल जकर supported_dimensions ओहि में सँ एकटा; तें वेक्टर केँ फेर सँ छोट कऽ सामान्य कएल जाइत अछि। बाकी सब अस्वीकार कएल जाइत अछि। |
| मॉडल | आयाम | सन्दर्भ |
|---|---|---|
@cf/baai/bge-m3 | १०२४, कतेको भाषा | ८,१९२ टोकन |
@cf/qwen/qwen3-embedding-0.6b | १०२४, कतेको भाषा | ८,१९२ टोकन |
@cf/baai/bge-large-en-v1.5 | १०२४, अंग्रेजी | ५१२ टोकन |
@cf/baai/bge-base-en-v1.5 | ७६८, मैथिली | ५१२ टोकन |
@cf/baai/bge-small-en-v1.5 | 384, अंग्रेजी | ५१२ टोकन |
मॉडलक सूची ई सत्यक स्रोत अछि जे कतए उपलब्ध अछि आ हुनका कतेक दाम अछि; Googleक EmbeddingGemma, जे अनुरोध पर छोट वेक्टर सँ उपलब्ध अछि, सेहो ओहि स्थान पर देखाइत अछि जखन सूची में हुनकाक दाम लिखल रहय। Embeddings क गणना प्रत्येक इनपुट टोकन क आधार पर कयल जाइत अछि, आ प्रत्येक अनुरोधक लेल 0.05-क्रेडिटक न्यूनतम सीमा लागू होइत अछि, न कि प्रत्येक इनपुटक लेल, तए बहुत सारा टेक्स्ट केँ एकै अनुरोध में भेजब, एक-एक कें अलग-अलग भेसबा सँ बहुत सस्ता अछि।
प्रतिक्रिया
{
"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); १०० सं अधिक इनपुट (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);