Rivya AI दस्तावेज़

जनरेशन कार्य बनाएं

मॉडल, प्रॉम्प्ट, पैरामीटर, Idempotency-Key और सार्वजनिक प्रतिक्रिया फ़ील्ड के साथ असिंक्रोनस Rivya API जनरेशन कार्य भेजें।

अंतिम समीक्षा 2026/08/25 को

असिंक्रोनस इमेज, वीडियो या ऑडियो जनरेशन कार्य भेजने के लिए POST /api/v1/generations इस्तेमाल करें।

चैट मॉडल के लिए Chat API इस्तेमाल करें। POST /api/v1/generations चैट सत्र या सहायक संदेश नहीं बनाता।

एंडपॉइंट

POST https://rivya.ai/api/v1/generations

ज़रूरी हेडर:

Authorization: Bearer rvya_sk_...
Content-Type: application/json

सुझाया गया हेडर:

Idempotency-Key: your-unique-request-key

अनुरोध बॉडी

{
  "model": "z-image",
  "prompt": "A clean editorial product image on a soft studio background",
  "params": {
    "aspect_ratio": "1:1"
  },
  "client_request_id": "order-123-preview"
}

फ़ील्ड:

  • model: जरूरी सार्वजनिक मॉडल ID

  • prompt: prompt text, कई models में जरूरी

  • params: मॉडल के लिए विशिष्ट पैरामीटर ऑब्जेक्ट

  • client_request_id: आपके सिस्टम की वैकल्पिक ट्रेस ID

मॉडल-विशिष्ट params के लिए मॉडल API संदर्भ पढ़ें।

params में संदर्भ फ़ाइलें

जिन मॉडलों में अपलोड किया गया संदर्भ मीडिया स्वीकार होता है, उनके लिए पहले Files API कॉल करें। फिर अपलोड नतीजे को मॉडल के params से भेजें; जनरेशन अनुरोध में शीर्ष-स्तरीय files फ़ील्ड न जोड़ें।

नए एकीकरणों के लिए params.referenceMediaItems इस्तेमाल करें:

{
  "model": "nano-banana-2-lite",
  "prompt": "Restyle this product photo for a clean editorial catalog page",
  "params": {
    "referenceMediaItems": [
      {
        "url": "https://...",
        "kind": "image",
        "name": "reference.png",
        "mimeType": "image/png",
        "width": 1024,
        "height": 1024,
        "sizeBytes": 482314,
        "imageDimensionsToken": "image_dimensions_token_from_files_api"
      }
    ]
  }
}

जिन ऑडियो या वीडियो इनपुट में अवधि की पुष्टि जरूरी है, उनमें लौटाए गए duration_token को /api/v1/files से संबंधित durationToken के रूप में referenceMediaItems प्रविष्टि में शामिल करें।

हर Image5 संदर्भ चित्र में मूल मॉडल-बद्ध Files API जवाब के width, height, size_bytes और image_dimensions_token जरूरी हैं; उन्हें width, height, sizeBytes और imageDimensionsToken के रूप में भेजें। टोकन न हो, उसकी अवधि समाप्त हो, वह मेल न खाए या क्लाइंट ने उसे बनाया हो, तो कार्य बनने और क्रेडिट आरक्षित होने से पहले अनुरोध विफल हो जाता है। Layer Decomposition में दस्तावेज़ में दर्ज ज्यामितीय सीमाओं के भीतर ठीक एक इमेज भी जरूरी है।

Grok Imagine Image 2.0 में प्रमाणित चित्र मेटाडेटा की यही सीमा लागू होती है। टेक्स्ट-से-इमेज के लिए कोई संदर्भ वस्तु न भेजें; सामान्य इमेज संपादन के लिए 1–5 अलग प्रमाणित JPEG, PNG या WebP वस्तुएं भेजें। टेक्स्ट-से-इमेज में 1:1, 2:3, 3:2, 16:9 या 9:16 स्वीकार होते हैं; इमेज संपादन में auto भी स्वीकार होता है। Segment Map और Segment Edit सार्वजनिक API में उपयोग योग्य विधियां नहीं हैं।

हर Video8 संदर्भ वीडियो में मूल मॉडल-बद्ध जवाब के duration_seconds, duration_token, video_width, video_height, frames_per_second, video_bitrate_mbps, video_file_size_bytes और video_metadata_token जरूरी हैं। उन्हें durationSeconds, durationToken, width, height, framesPerSecond, videoBitrateMbps, sizeBytes और videoMetadataToken के रूप में भेजें। दोनों प्रमाणित टोकन की पुष्टि कार्य बनने और क्रेडिट आरक्षण से पहले होती है।

Wan 3.0 में seedance_scene के तीन परस्पर अलग मान हैं। text किसी अपलोड किए गए मीडिया को स्वीकार नहीं करता; frames में पहला चित्र जरूरी और आखिरी चित्र वैकल्पिक है; reference हस्ताक्षरित चित्रों, वीडियो और ऑडियो का समूह स्वीकार करता है, लेकिन केवल ऑडियो नहीं भेजा जा सकता। सभी संदर्भ URL मूल, मॉडल से बंधे Files API अपलोड से आने चाहिए। फ़ाइल-से-वीडियो और लिंक-से-वीडियो वाले छोटे रास्ते उपलब्ध नहीं हैं।

variant को standard या prime, resolution को 480P, 720P या 1080P, और aspect_ratio को adaptive, 16:9, 4:3, 1:1, 3:4 या 9:16 पर रखें। duration में 2 से 30 तक की पूर्ण संख्या या बुद्धिमान अवधि के लिए -1 स्वीकार होता है; audio मॉडल से बनी ध्वनि को नियंत्रित करता है और seed में 0 से 2147483647 तक का मान स्वीकार होता है। आगे-पीछे के खाली स्थान हटाने के बाद प्रॉम्प्ट में 1–20,000 अक्षर होने चाहिए।

Wan 3.0 के Standard विकल्प में 480P, 720P या 1080P के माँगे गए नतीजे के हर सेकंड के लिए क्रमशः 8, 16 या 32 क्रेडिट आरक्षित होते हैं। Prime विकल्प हर सेकंड के लिए 12.2, 25.2 या 50.4 क्रेडिट आरक्षित करता है। Rivya कुल आरक्षण को केवल एक बार अगली पूर्ण संख्या तक बढ़ाता है; बुद्धिमान अवधि 30 सेकंड के क्रेडिट आरक्षित करती है। वास्तविक उपयोग मान्य और आरक्षण के बराबर या उससे कम हो, तो हिसाब पूरा होता है और अंतर वापस मिलता है। वास्तविक उपयोग न मिले, अमान्य हो या अधिक हो, तो आरक्षण बना रहता है और बिना किसी छिपी अतिरिक्त कटौती के मिलान के लिए भेजा जाता है।

Wan 3.0 की संदर्भ विधि में अधिकतम 10 चित्र, 5 वीडियो और 5 ध्वनि क्लिप भेजें। हर वीडियो और ध्वनि क्लिप 1 से 15 सेकंड तक की हो सकती है और हर प्रकार के लिए कुल 15 सेकंड की अलग सीमा है। संदर्भ वीडियो के साथ duration=-1 इस्तेमाल नहीं किया जा सकता; वीडियो इनपुट होने पर सत्यापित इनपुट-वीडियो अवधि और मांगी गई नतीजे की अवधि का योग 30 सेकंड से अधिक नहीं होना चाहिए।

वीडियो और ध्वनि वाले होंठ-समन्वय कार्य के लिए Video8 अनुरोध का उदाहरण:

{
  "model": "volcengine-video-lip-sync",
  "prompt": "",
  "params": {
    "mode": "lite",
    "separate_vocal": "false",
    "open_scenedet": "false",
    "referenceMediaItems": [
      {
        "url": "https://.../source.mov",
        "kind": "video",
        "name": "source.mov",
        "mimeType": "video/quicktime",
        "durationSeconds": 12.4,
        "durationToken": "duration_token_from_files_api",
        "width": 1920,
        "height": 1080,
        "framesPerSecond": 30,
        "videoBitrateMbps": 8.5,
        "sizeBytes": 26214400,
        "videoMetadataToken": "video_metadata_token_from_files_api"
      },
      {
        "url": "https://.../dialogue.wav",
        "kind": "audio",
        "name": "dialogue.wav",
        "mimeType": "audio/wav",
        "durationSeconds": 12.4,
        "durationToken": "audio_duration_token_from_files_api"
      }
    ]
  }
}

curl उदाहरण

curl https://rivya.ai/api/v1/generations \
  -H "Authorization: Bearer rvya_sk_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: product-preview-001" \
  -d '{
    "model": "z-image",
    "prompt": "A clean editorial product image on a soft studio background",
    "params": {
      "aspect_ratio": "1:1"
    }
  }'

JavaScript उदाहरण

const response = await fetch("https://rivya.ai/api/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RIVYA_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "product-preview-001"
  },
  body: JSON.stringify({
    model: "z-image",
    prompt: "A clean editorial product image on a soft studio background",
    params: { aspect_ratio: "1:1" }
  })
});

const generation = await response.json();
console.log(generation.id, generation.status);

Python उदाहरण

import os
import requests

response = requests.post(
    "https://rivya.ai/api/v1/generations",
    headers={
        "Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": "product-preview-001",
    },
    json={
        "model": "z-image",
        "prompt": "A clean editorial product image on a soft studio background",
        "params": {"aspect_ratio": "1:1"},
    },
    timeout=30,
)

generation = response.json()
print(generation["id"], generation["status"])

जवाब

{
  "id": "task_public_id",
  "status": "queued",
  "model": "z-image",
  "reserved_credits": 1,
  "final_credits": 0,
  "created_at": "2026-05-10T00:00:00.000Z",
  "updated_at": "2026-05-10T00:00:00.000Z",
  "result": null,
  "error": null
}

id सहेजें और जनरेशन की स्थिति समय-समय पर जांचें। अगर आप API वेबहुक विन्यस्त करते हैं, तो कार्य अंतिम स्थिति तक पहुंचने पर Rivya हस्ताक्षरित generation.succeeded या generation.failed घटना भी भेज सकता है।

एक ही अनुरोध की सुरक्षा

अनुरोध दोबारा भेजने के लिए Idempotency-Key इस्तेमाल करें। अगर वही कुंजी और वही अनुरोध सामग्री दोबारा भेजी जाती है, तो Rivya दूसरा कार्य बनाने के बजाय सहेजा हुआ सार्वजनिक जवाब लौटा सकता है।

अगर वही कुंजी अलग इनपुट के साथ दोबारा इस्तेमाल होती है, तो API idempotency_conflict लौटाता है।

संबंधित पेज