Felo API PlatformFelo API Platform

Panduan

Tugas tak segerak

Hantar tugas yang berjalan lama, tinjau status, kendalikan status akhir dan dapatkan hasil.

Sesetengah operasi Felo mengembalikan task_id dengan segera dan selesai di latar belakang. Coraknya sama di mana-mana: hantar, tinjau, kemudian dapatkan semula hasil.

Dua keluarga tugasan

KeluargaHantarTinjau
Aliran kerja FeloPOST /v2/ppts, POST /v2/landing_page, POST /v2/mindmapGET /v2/tasks/{task_id}/status
Penjanaan modelPOST /api/v1/videos/generations, POST /api/v1/images/generationsGET /api/v1/videos/generations/{task_id}, GET /api/v1/images/generations/{task_id}

Eksport PPTX ialah operasi tak segerak berasingan: POST /v2/ppts/{ppt_business_id}/export, kemudian GET /v2/ppts/{ppt_business_id}/export.

SuperAgent bukan API tinjauan. Ia mengembalikan stream_key dan menggunakan SSE; lihat rujukan SuperAgent.

Kitaran hayat

  1. Hantar. Hantar parameter model atau aliran kerja. Penghantaran yang berjaya mengembalikan task_id dan status awal.
  2. Tinjau. Baca endpoint tugasan pada selang masa. Simpan selang dan masa tunggu maksimum dalam kod anda.
  3. Selesai. Jika berjaya, baca URL hasil atau medan output. Jika gagal, baca ralat dan tentukan sama ada untuk menghantar semula.

Nilai status

Tugasan aliran kerja Felo menggunakan nilai huruf besar:

StatusMaksud
RUNNINGMasih memproses
COMPLETEDSelesai dengan jayanya
FAILEDKegagalan terminal; baca error_message
PENDINGTerminal dalam respons sejarah; baca error_message
EXPIREDTerminal; tugasan tidak lagi tersedia
CANCELEDTerminal; tugasan telah dibatalkan

Tugasan penjanaan model menggunakan nilai huruf kecil: queued, running, succeeded, failed, dan interrupted. Tugasan yang gagal mungkin termasuk objek error dengan message dan type.

Nilai status yang tidak diketahui boleh muncul semasa bahagian belakang berkembang. Anggap nilai yang tidak diketahui sebagai bukan terminal melainkan dokumentasi menyatakan sebaliknya.

Tinjauan

  • Tugasan aliran kerja Felo: tinjau setiap 2–5 saat.
  • Penjanaan video: tinjau setiap 5–10 saat.
  • Penjanaan imej: mulakan dengan 2–5 saat dan berundur untuk tugasan yang berjalan lama.
  • Hentikan pada status terminal, pada tamat masa yang anda pilih, atau selepas bilangan percubaan maksimum.
  • Tambahkan jitter apabila banyak klien meninjau serentak.

Gelung Node.js yang ringkas:

async function pollStatus(taskId, { timeoutMs = 10 * 60 * 1000 } = {}) {
  const deadline = Date.now() + timeoutMs;
  while (Date.now() < deadline) {
    const response = await fetch(`https://openapi.felo.ai/v2/tasks/${taskId}/status`, {
      headers: { Authorization: `Bearer ${process.env.FELO_API_KEY}` },
    });
    if (!response.ok) throw new Error(`status ${response.status}`);
    const payload = await response.json();
    const status = payload.data?.status;
    if (status === "COMPLETED") return payload.data;
    if (["FAILED", "PENDING", "EXPIRED", "CANCELED"].includes(status)) {
      throw new Error(payload.data?.error_message || status);
    }
    await new Promise((resolve) => setTimeout(resolve, 3000));
  }
  throw new Error("task timed out");
}

Dapatkan semula hasil

TugasanHasil
PPTGET /v2/tasks/{task_id}/historical mengembalikan ppt_url, ppt_biz_id, dan live_doc_url apabila tersedia
Halaman pendaratanRespons sejarah mengembalikan output halaman dan live_doc_url apabila tersedia
Video / imejRespons tinjauan mengembalikan outputs; apabila berjaya, entri ialah URL media bertandatangan yang boleh dimuat turun secara tanpa nama. Lihat Penjanaan Imej untuk butiran tamat tempoh dan muat turun
Eksport PPTXRespons tinjauan mengembalikan download_url dan expires_at hanya apabila status ialah COMPLETED

URL muat turun bertandatangan PPTX tamat tempoh 30 minit selepas dikeluarkan. Panggil endpoint GET sekali lagi untuk URL baharu; ini tidak menjana semula fail.

Pengendalian kegagalan

  • Baca medan ralat tugasan sebelum mencuba semula. Sesetengah kegagalan disebabkan oleh permintaan dan akan berulang.
  • Jangan hantar semula secara membuta tuli pada setiap tamat masa; semak dahulu sama ada tugasan masih RUNNING.
  • 402 bermaksud kredit tidak mencukupi. 429 bermaksud had kadar. Cuba semula hanya selepas keadaan diselesaikan.
  • Medan callback pada penjanaan video dan imej diabaikan pada masa ini. Tinjau endpoint tugasan dan bukannya menunggu webhook.

Berkaitan