وثائق Rivya AI

إنشاء توليد

أرسل مهام توليد Rivya API غير المتزامنة باستخدام model وprompt وparams وIdempotency-Key وحقول الاستجابة العامة.

آخر مراجعة في 2026/05/10

استخدم POST /api/v1/generations لإرسال مهمة توليد غير متزامنة للصورة أو الفيديو أو الصوت.

بالنسبة إلى نماذج الدردشة، استخدم Chat API. لا ينشئ POST /api/v1/generations جلسات دردشة أو رسائل مساعد.

Endpoint

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

Headers مطلوبة:

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

Header موصى به:

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: معرف نموذج عام مطلوب
  • prompt: نص الموجه، وهو مطلوب في كثير من النماذج
  • params: كائن معاملات خاص بالنموذج
  • client_request_id: معرف تتبع اختياري من نظامك

اقرأ مرجع Model API من أجل params الخاصة بكل نموذج.

الملفات المرجعية داخل Params

بالنسبة إلى النماذج التي تقبل وسائط مرجعية مرفوعة، استدع أولا Files API. ثم مرر نتيجة الرفع عبر params الخاصة بالنموذج؛ لا تضف حقل files على المستوى الأعلى إلى طلب التوليد.

استخدم params.referenceMediaItems للتكاملات الجديدة:

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

بالنسبة إلى مدخلات الصوت أو الفيديو التي تتطلب التحقق من المدة، أدرج duration_token العائد من /api/v1/files باسم durationToken في عنصر referenceMediaItems المرتبط.

مثال 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 Webhooks، يمكن لـ Rivya أيضا إرسال حدث generation.succeeded أو generation.failed موقع عندما تصل المهمة إلى حالة نهائية.

Idempotency

استخدم Idempotency-Key لإعادة المحاولة. إذا أعيد تشغيل المفتاح نفسه وجسم الطلب نفسه، يمكن لـ Rivya إعادة الاستجابة العامة المخزنة بدلا من إنشاء مهمة مكررة.

إذا أعيد استخدام المفتاح نفسه مع إدخال مختلف، يعيد API الخطأ idempotency_conflict.

صفحات ذات صلة

جدول المحتويات