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

ज्ञान के आधार डेवलपरस

छवि, ऑडियो आ एम्बेडिंगसभ

एपसँ जनरेटर, आ खोजक लेल निर्माण खंडः चित्र, वीडियो, भाषण, प्रतिलेखन आ एम्बेडिंग, प्रत्येक बिल प्रति उपयोग अहाँक शेष राशिसँ।

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

प्रॉम्प्टसँ एकसँ चारिटा चित्र बनबैत अछि आ जखन ओ पूरा भऽ जाइत अछि तखन ओकरा वापस कऽ दैत अछि। ई जनरेटरक समान सेट अछि। ?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 धरि।
size
aspect_ratio
quality
negative_prompt
output_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" ई निकटतम अनुपात बनि जाइत अछि।
resolution
quality
स्ट्रिंगनहि।जनरेटरमेसँ एक 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).
502Whisper ऑडियोक प्रक्रिया नै क' सकल। किछुओ चार्ज नै कएल गेल अछि।

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.5384, अंग्रेजी५१२ टोकन

मॉडलक सूची ई सत्यक स्रोत अछि जे कतए उपलब्ध अछि आ हुनका कतेक दाम अछि; 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);