Rivya AI dokumentáció

Files API

Tölts fel kép-, videó- vagy hangreferencia-fájlokat Rivya API generálási kérésekhez, MIME-ellenőrzésekkel, méretkorlátokkal és duration tokenekkel.

Utoljára ellenőrizve: 2026/05/11

Használd a POST /api/v1/files endpointot referencia média feltöltéséhez olyan modellekhez, amelyek kép-, videó- vagy hangbemenetet igényelnek.

A Files API kizárólag referencia bemenetekhez való. Önmagában nem hoz létre generálási feladatokat. Feltöltés után add át a visszakapott url értéket és metaadatokat a modell params mezőibe, általában a params.referenceMediaItems alatt.

Endpoint

POST https://rivya.ai/api/v1/files
GET https://rivya.ai/api/v1/files/{fileId}

Szükséges headerek:

Authorization: Bearer rvya_sk_...
Content-Type: multipart/form-data

Az API-kulcsnak tartalmaznia kell a files:create scope-ot feltöltéshez, és a files:read scope-ot metaadatok lekéréséhez. Az újonnan létrehozott Rivya API-kulcsok alapértelmezés szerint mindkét scope-ot tartalmazzák.

Multipart mezők

MezőTípusKötelezőMegjegyzések
filebinaryigenA feltöltendő kép-, videó- vagy hangfájl.
kindstringigenAz egyik: image, video vagy audio.
modelstringnemNyilvános modellazonosító. Ha meg van adva, a Rivya ellenőrzi, hogy a modell elfogadja-e ezt a fájltípust.
client_request_idstringnemSaját trace ID, legfeljebb 128 karakter.

Használd a model mezőt, amikor a fájlt egy konkrét modellhez szánod. Így modell-specifikus MIME- és méretellenőrzést kapsz, mielőtt a rendszer elfogadja a fájlt.

Feltöltési limitek

A Files API ugyanazt a feltöltési szabályzatot használja, mint a Rivya referenciafeltöltései.

Alapértelmezett limitek:

TípusAlapértelmezett maximális méretGyakori MIME-típusok
image10 MBimage/jpeg, image/png, image/webp
video50 MBvideo/mp4, video/quicktime, video/webm
audio10 MBaudio/mpeg, audio/mp4, audio/wav, audio/x-wav, audio/aac, audio/ogg

Egyes modellek eltérő limitekkel rendelkeznek. Például bizonyos referencia-képes modellek nagyobb képeket engednek, bizonyos videóreferencia-modellek pedig a termék edge-safe feltöltési plafonjáig engednek fájlokat. Mindig add át a model mezőt, ha ismered a célmodellt, és olvasd el a Modell API referenciát, mielőtt felhasználói feltöltéseket fogadnál.

A Rivya az észlelt fájlszignatúrát ellenőrzi, nem csak a fájlnév kiterjesztését.

curl példa

curl https://rivya.ai/api/v1/files \
  -H "Authorization: Bearer rvya_sk_..." \
  -F "file=@./reference.png" \
  -F "kind=image" \
  -F "model=nano-banana-2" \
  -F "client_request_id=asset-123"

JavaScript példa

import { readFile } from "node:fs/promises";

const form = new FormData();
const file = new Blob([await readFile("./reference.png")], {
  type: "image/png"
});

form.set("file", file, "reference.png");
form.set("kind", "image");
form.set("model", "nano-banana-2");
form.set("client_request_id", "asset-123");

const response = await fetch("https://rivya.ai/api/v1/files", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RIVYA_API_KEY}`
  },
  body: form
});

const uploadedFile = await response.json();
console.log(uploadedFile.id, uploadedFile.url);

Python példa

import os
import requests

with open("./reference.png", "rb") as file_handle:
    response = requests.post(
        "https://rivya.ai/api/v1/files",
        headers={
            "Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
        },
        files={"file": ("reference.png", file_handle, "image/png")},
        data={
            "kind": "image",
            "model": "nano-banana-2",
            "client_request_id": "asset-123",
        },
        timeout=60,
    )

uploaded_file = response.json()
print(uploaded_file["id"], uploaded_file["url"])

Válasz

{
  "id": "file_...",
  "object": "file",
  "kind": "image",
  "file_name": "reference.png",
  "mime_type": "image/png",
  "size_bytes": 482314,
  "url": "https://...",
  "duration_seconds": null,
  "duration_token": null,
  "created_at": "2026-05-11T00:00:00.000Z",
  "expires_at": null
}

Videó- és hangfeltöltéseknél a duration_seconds kitöltődhet. Ha egy modell duration ellenőrzést igényel, másold a duration_token értéket a kapcsolódó generálási paraméterbe durationToken néven.

Fájlmetaadatok lekérése

Használd a GET /api/v1/files/{fileId} endpointot ugyanahhoz a Rivya-fiókhoz tartozó fájl metaadatainak olvasásához:

curl https://rivya.ai/api/v1/files/file_... \
  -H "Authorization: Bearer rvya_sk_..."

A válasz ugyanazt a PublicApiFile formát használja, mint a feltöltés. Ha a fájl másik fiókhoz tartozik, vagy már nem érhető el, az API not_found választ ad.

A feltöltés használata generálási params mezőben

Ne küldj felső szintű files mezőt a POST /api/v1/generations kéréshez.

Új integrációknál a feltöltés eredményét a params.referenceMediaItems mezőn keresztül add át:

{
  "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"
      }
    ]
  },
  "client_request_id": "order-123-preview"
}

Videóhoz vagy hanghoz:

{
  "url": "https://...",
  "kind": "video",
  "name": "source.mov",
  "mimeType": "video/quicktime",
  "durationSeconds": 12.4,
  "durationToken": "duration_token_from_files_api"
}

Néhány régebbi modellparaméter továbbra is modell-specifikus URL mezőket használ. Ha a Modell API referencia konkrét paramétert dokumentál, kövesd azt a modelloldalt, ne találj ki új mezőt.

Hibák

A Files API ugyanazt a nyilvános hibaborítékot használja, mint a Rivya API többi része:

{
  "error": {
    "code": "validation_failed",
    "message": "The request is invalid.",
    "requestId": "req_..."
  }
}

Gyakori esetek:

HTTPKódOk
400validation_failedHiányzó file, nem támogatott kind, nem támogatott MIME-típus, túl nagy fájl, vagy a modell nem fogadja el a kiválasztott típust.
401api_key_missing / api_key_invalidHiányzó vagy érvénytelen Bearer API-kulcs.
403api_scope_deniedA kulcs nem tartalmazza a files:create vagy files:read scope-ot a kért művelethez.
429rate_limitedTúl sok fájlfeltöltés történt az aktuális percben.
503public_api_disabledA Public API le van tiltva az aktuális környezetben.

Biztonsági megjegyzések

Ne tárolj teljes API-kulcsokat böngészőkben, mobilkliensekben, logokban, analitikai eseményekben vagy képernyőképeken.

A feltöltött fájl URL-eket és duration_token értékeket ideiglenes integrációs anyagként kezeld. Csak a következő generálási kérés felépítéséhez használd őket, és ne tedd ki nyilvános oldalakra.

Kapcsolódó oldalak

Tartalomjegyzék