Felo API PlatformFelo API Platform

Pembuatan dan Ekspor PPT

Penyedia: Felo · Dibayar dengan saldo platform

Hasilkan presentasi secara asinkron, lalu ekspor file PPTX. Pisahkan langkah pembuatan dan ekspor: tugas yang dibuat belum merupakan file yang selesai.

Semua contoh menggunakan FELO_API_KEY dari gambaran umum. Panggilan menggunakan saldo platform, bukan kredit Felo Pro. Contoh respons bersifat ilustratif; konten langsung dan bidang opsional bervariasi.

Alur kerja dan pengenal

  1. Buat tugas pembuatan; simpan task_id, ppt_business_id, dan expires_at.
  2. Poll status pembuatan menggunakan task_id.
  3. Baca hasil pembuatan menggunakan task_id.
  4. Mulai ekspor PPTX menggunakan ppt_business_id.
  5. Poll status ekspor dan unduh file yang selesai.
  6. Opsional, hapus presentasi lebih awal.

Dalam placeholder rute, {business_id} berarti `ppt_business_id` yang dikembalikan, bukan task_id, resource_id, atau livedoc_short_id. Gunakan akun API yang sama untuk seluruh alur kerja. ID pada contoh adalah placeholder.

1. Buat presentasi

POST /api/v1/data/ppts

BidangTipeWajibArti
querystringYaInstruksi pembuatan, 1–25.000 karakter
stream_protocolstringTidakDefault message_center_v1; biasanya biarkan tidak berubah
ppt_configobjectTidakKonfigurasi opsional; implementasi saat ini membaca ai_theme_id
livedoc_short_idstringTidakID konteks yang sudah ada, hingga 100 karakter; harus lolos pemeriksaan kepemilikan dan kedaluwarsa API native
resource_idsstring arrayTidakHingga 100 ID resource UUID; tunduk pada pemeriksaan akses konteks yang sama

Untuk integrasi pertama, hilangkan bidang konteks dan konfigurasi. Konteks yang dibuat melalui /v2 tidak otomatis memenuhi syarat untuk digunakan kembali di sini.

curl -sS --request POST "https://openapi.felo.ai/api/v1/data/ppts" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Create a 5-slide introduction to retrieval augmented generation for software developers."}'

HTTP 200 mengembalikan pengenal di root:

{
  "task_id":"example-task-id",
  "ppt_business_id":"example-ppt-id",
  "livedoc_short_id":"example-livedoc-id",
  "expires_at":"2026-11-13T00:00:00Z"
}

Pengenal tambahan seperti resource_id, stream_key, dan thread_short_id mungkin ada. Respons pembuatan yang sukses berarti tugas telah diterima, bukan bahwa pembuatan telah selesai. Jumlah slide yang diminta adalah instruksi; penagihan menggunakan jumlah halaman yang sebenarnya dihasilkan.

TASK_ID="example-task-id"
PPT_ID="example-ppt-id"

Baca peristiwa pembuatan dengan SSE

Jika pembuatan mengembalikan stream_key, segera sambungkan dengan API Key yang dimiliki akun yang sama. Jika tidak ada stream key yang dikembalikan, gunakan kueri status dan hasil di bawah.

curl -N 'https://openapi.felo.ai/api/v1/data/conversations/stream/YOUR_STREAM_KEY?format=structured' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: text/event-stream'
Parameter kueriArti
formatraw (default) mempertahankan string content; structured mendekode JSON valid menjadi objek atau array
offsetPosisi lanjut upstream opsional untuk penyambungan ulang; jangan menyimpulkannya dari jumlah peristiwa lokal Anda

Baca setiap event SSE yang lengkap, dekode JSON luarnya, lalu proses content. Event aplikasi answer membawa teks di data.text; finished menandakan selesainya pembuatan di stream. Tangani juga sinyal upstream done, [DONE], dan error. Jika koneksi ditutup tanpa sinyal selesai, kueri status tugas.

Gunakan aturan parsing dan contoh klien dalam SSE SuperAgent, dengan URL bagian ini /api/v1/data/conversations/stream/{stream_key}. Baca hasil tugas setelah stream berakhir; ekspor PPTX tetap merupakan langkah terpisah. Endpoint ini tidak mengaktifkan stream: true pada /api/v1/data/chat.

2. Poll status pembuatan

GET /api/v1/data/tasks/{task_id}/status

curl -sS --request GET "https://openapi.felo.ai/api/v1/data/tasks/$TASK_ID/status" \
  -H "Authorization: Bearer $FELO_API_KEY"

Respons memiliki string status di root, misalnya RUNNING atau COMPLETED. Lakukan polling dengan interval terbatas (misalnya, 2–5 detik) dan tenggat waktu. Lanjutkan ke hasil setelah selesai; tangani kegagalan dan status tak terduga tanpa mengasumsikan sukses. Tenggat polling tidak membatalkan tugas.

{"status":"COMPLETED"}

3. Baca hasil pembuatan

POST /api/v1/data/tasks/{task_id}/historical

Ini adalah POST, tanpa body JSON yang diperlukan.

curl -sS --request POST "https://openapi.felo.ai/api/v1/data/tasks/$TASK_ID/historical" \
  -H "Authorization: Bearer $FELO_API_KEY"
{
  "task_id":"example-task-id",
  "task_status":"COMPLETED",
  "history_data":{},
  "error_message":null
}

Baca task_status sebelum menggunakan history_data. Payload histori dapat bervariasi menurut tugas dan mungkin bernilai null. ai_page_html dan thread_short_id bersifat opsional. Respons ini bukan URL unduhan PPTX yang dijamin; gunakan ekspor berikutnya.

4. Mulai ekspor PPTX

POST /api/v1/data/ppts/{business_id}/export

curl -sS --request POST "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID/export" \
  -H "Authorization: Bearer $FELO_API_KEY"
{"status":"PROCESSING","download_url":null,"expires_at":null}

Pembuatan harus sudah selesai sebelum Anda mengekspor. Mengulangi POST saat ekspor yang sama sedang berjalan akan menggunakan ulang ekspor itu. Memulai ekspor lain setelah selesai akan membuat ekspor baru dan dapat menimbulkan biaya baru. Gunakan GET untuk polling dan menyegarkan tautan unduhan.

5. Poll ekspor dan unduh

GET /api/v1/data/ppts/{business_id}/export

curl -sS --request GET "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID/export" \
  -H "Authorization: Bearer $FELO_API_KEY"
StatusTindakan berikutnya
NOT_STARTEDKirim ekspor sekali
PROCESSINGTunggu, lalu polling GET lagi
COMPLETEDBaca download_url dan unduh file
FAILEDPeriksa kesalahan dan status tugas sebelum mengirim ekspor baru
{
  "status":"COMPLETED",
  "download_url":"https://example.com/presentation.pptx?signature=example",
  "expires_at":"2026-11-06T00:30:00Z"
}

Contoh URL bersifat ilustratif. Gunakan URL bertanda tangan yang sebenarnya dari respons. URL ini berlaku selama 30 menit; status ekspor GET dapat mengembalikan tautan baru selama presentasi masih tersedia. Simpan file dalam masa berlakunya. Jangan kirim kunci API Felo Anda ke host pengunduhan file.

6. Hapus presentasi

DELETE /api/v1/data/ppts/{business_id}

curl -sS --request DELETE "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID" \
  -H "Authorization: Bearer $FELO_API_KEY"

Keberhasilan mengembalikan HTTP 204 tanpa body. Jangan memprosesnya sebagai JSON. Penghapusan saat pembuatan sedang berjalan mengembalikan 409.

Masa hidup, kepemilikan, dan penagihan

  • Presentasi kedaluwarsa tujuh hari setelah dibuat. Kueri dan ekspor tidak memperpanjang periode ini. expires_at presentasi dan expires_at URL unduhan bertanda tangan menjelaskan masa hidup yang berbeda.
  • Hanya akun API yang membuat yang dapat mengakses tugas dan presentasinya. Resource yang hilang atau tidak dapat diakses dapat mengembalikan 404; resource yang kedaluwarsa atau dihapus dapat mengembalikan 410, atau 404 setelah pembersihan.
  • Pembuatan ditagihkan per halaman yang dihasilkan (ppt.generate). Di bawah harga per halaman, pembuatan mencadangkan harga sepuluh halaman, lalu menyelesaikan output sukses aktual dan melepaskan cadangan yang tidak terpakai. Akun Anda membutuhkan saldo tersedia yang cukup untuk cadangan tersebut meskipun prompt meminta lebih sedikit halaman.
  • Ekspor memiliki harga permintaan terpisah (ppt.export). Kueri status, kueri hasil, kueri status ekspor, dan penghapusan tidak menimbulkan biaya baru.
  • Setelah waktu habis, kueri tugas yang disimpan, bukan membuat presentasi lain. Lihat Penagihan dan Kesalahan.

Butuh bantuan?