Felo API PlatformFelo API Platform

Felo APIs

PPT Task API

Cipta tugas penjanaan PPT, senaraikan tema dan pertanyaan endpoint tugas kongsi.

POST/v2/ppts

Pengesahan

Bearer API key

Jenis kandungan

application/json

Nota had kadar

Had khusus endpoint mungkin terpakai.

PPT Task API menyediakan keupayaan penjanaan PPT tak segerak. Anda boleh mencipta tugasan dan kemudian meninjau status tugasan melalui task_id. Anda juga boleh menyemak imbas tema PPT yang tersedia dan mengaplikasikannya semasa mencipta tugasan.

Ini ialah API tak segerak. Untuk corak hantar, tinjau, dan ambil yang dikongsi, lihat Tugasan Tak Segerak.

Pengesahan

Semua permintaan memerlukan Kunci API dalam pengepala Authorization:

Authorization: Bearer YOUR_API_KEY

Guna dengan Ejen AI

Untuk mencipta slaid daripada Ejen, pasang pakej lengkap felo-ai dan bukannya subset Skill yang tetap. Pemasangnya menemui secara dinamik setiap direktori pakej yang mengandungi SKILL.md, termasuk Skill PPT dan penambahan pada masa hadapan. Pasang semua Skill yang ditemui dalam direktori asli untuk Ejen anda: ~/.codex/skills Codex, ~/.claude/skills Claude Code, ~/.agents/skills OpenClaw, atau ~/.hermes/skills Hermes Agent. Ikuti panduan persediaan Ejen AI manual untuk konfigurasi dan pengesahan kunci API khusus platform.

1. Senaraikan Tema PPT

Tanyakan tema PPT yang tersedia dengan penomboran halaman, carian kata kunci, serta penapisan bahasa dan jenis.

Endpoint

GET https://openapi.felo.ai/v2/ppt-themes

Parameter Pertanyaan

ParameterJenisWajibPenerangan
langstringTidakKod bahasa untuk kandungan setempat (contohnya en, zh-Hans). Lalai: en
typestringTidakTapis mengikut jenis tema (contohnya default, custom)
keywordstringTidakKata kunci carian, sepadan dengan tajuk tema
pageintegerTidakNombor halaman, bermula dari 1. Lalai: 1
sizeintegerTidakSaiz halaman, maksimum 100. Lalai: 20

Contoh

curl -X GET 'https://openapi.felo.ai/v2/ppt-themes?lang=en&page=1&size=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Respons Berjaya (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 8,
    "page": 1,
    "size": 10,
    "items": [
      {
        "id": "43122897-0d3c-4c9e-ae19-20527ad36c04",
        "title": "Inspiration Themes",
        "subtitle": "AI-tailored visual solutions",
        "description": "Style and layout, both crafted by AI from your content in real time"
      }
    ]
  }
}

Medan Respons Tema

MedanJenisPenerangan
totalintegerJumlah bilangan tema yang sepadan dengan penapis
pageintegerNombor halaman semasa
sizeintegerSaiz halaman
itemsarraySenarai objek tema
items[].idstringID tema, gunakan sebagai ai_theme_id semasa mencipta PPT
items[].titlestringTajuk tema (setempat)
items[].subtitlestringSari kata tema (setempat)
items[].descriptionstringPenerangan tema (setempat)

2. Cipta Tugasan PPT

Endpoint

POST https://openapi.felo.ai/v2/ppts

Pengepala Permintaan

PengepalaWajibPenerangan
AuthorizationYaKunci API anda dalam format Bearer YOUR_API_KEY
Content-TypeYaapplication/json atau multipart/form-data

Isi Badan Permintaan

ParameterJenisWajibPenerangan
querystringYaGesaan permintaan penjanaan PPT
livedoc_short_idstringTidakID pendek LiveDoc sedia ada untuk dikaitkan dengan sesi PPT. Jika ditinggalkan, LiveDoc baharu dicipta secara automatik.
resource_idsarray of stringsTidakSenarai ID sumber LiveDoc untuk digunakan sebagai konteks penjanaan PPT
ppt_configobjectTidakPilihan konfigurasi PPT
ppt_config.ai_theme_idstringTidakID tema daripada endpoint Senaraikan Tema PPT

Contoh

curl -X POST 'https://openapi.felo.ai/v2/ppts' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Felo, 2 pages",
    "ppt_config": {
      "ai_theme_id": "02968979-a69f-42c4-b136-de02c40ab2d7"
    }
  }'

Cipta daripada Fail yang Dimuat Naik

Gunakan multipart/form-data untuk memuat naik satu fail dan mencipta tugasan PPT dalam satu permintaan. Platform memuat naik fail sebagai sumber LiveDoc terlebih dahulu, kemudian menghantar ID sumbernya kepada tugasan PPT.

BahagianJenisWajibPenerangan
querystringYaGesaan permintaan penjanaan PPT
filefileYaFail sumber yang digunakan sebagai konteks PPT
stream_protocolstringTidakProtokol penstriman; lalai kepada message_center_v1
livedoc_short_idstringTidakLiveDoc sedia ada untuk menerima fail. LiveDoc baharu dicipta apabila ditinggalkan.
ppt_configJSONTidakKonfigurasi PPT dengan struktur yang sama seperti isi badan permintaan JSON. Hantar bahagian ini sebagai application/json.
curl -X POST 'https://openapi.felo.ai/v2/ppts' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F 'query=Create a 10-page presentation based on this report' \
  -F 'ppt_config={"ai_theme_id":"02968979-a69f-42c4-b136-de02c40ab2d7"};type=application/json' \
  -F '[email protected]'

Respons menggunakan skema yang sama seperti permintaan JSON. livedoc_short_id yang dikembalikan mengenal pasti LiveDoc yang mengandungi sumber yang dimuat naik.

Respons Berjaya (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
    "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
    "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
  }
}

3. Tinjau Status Tugasan

Endpoint

GET https://openapi.felo.ai/v2/tasks/{task_id}/status

Contoh

curl -X GET 'https://openapi.felo.ai/v2/tasks/019cad6d-e874-55ef-d577-686344b5a7e9/status' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Respons Berjaya (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "status": "RUNNING"
  }
}

4. Tanyakan Maklumat Sejarah Tugasan

Endpoint

GET https://openapi.felo.ai/v2/tasks/{task_id}/historical

Contoh

curl -X GET 'https://openapi.felo.ai/v2/tasks/019cb17e-9e23-3d40-4447-48a651249460/historical' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Respons RUNNING

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "RUNNING",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Respons COMPLETED

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "COMPLETED",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_short_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Respons COMPLETED (AI_PAGE)

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019d7a4d-6ab5-a96d-0f98-43ca434ab621",
    "task_status": "COMPLETED",
    "ppt_biz_id": "9qiLTmT77fA3aVurrMHvRJ",
    "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ",
    "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ"
  }
}

Respons FAILED / PENDING / EXPIRED / CANCELED

{
  "status": "ok",
  "message": null,
  "data": {
    "task_id": "019cb17e-9e23-3d40-4447-48a651249460",
    "task_status": "FAILED",
    "ppt_biz_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
    "error_message": "PPT generation failed",
    "live_doc_short_id": "oM8A9iJHg8dT4ZKgHThQTx",
    "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
  }
}

Medan Respons Sejarah

MedanJenisPenerangan
task_idstringID tugasan
task_statusstringStatus tugasan semasa
ppt_biz_idstringID perniagaan PPT (dipetakan daripada thread_short_id backend)
ppt_urlstringURL PPT, format: https://felo.ai/slides/{ppt_biz_id}
error_messagestringHadir untuk FAILED / PENDING / EXPIRED / CANCELED; rentetan kosong "" apabila hiliran tidak memberikan butiran ralat
ai_page_htmlstringHadir apabila tugasan berjalan dalam mod AI_PAGE dan sejarah hiliran mengembalikan URL hasil HTML
live_doc_short_idstringID pendek LiveDoc. Untuk COMPLETED ia datang daripada live_doc_short_id hiliran; untuk status kegagalan terminal ia dikembalikan apabila tersedia
live_doc_urlstringURL LiveDoc yang sepadan dengan live_doc_short_id

Eksport PPTX

Selepas tugasan penjanaan PPT mencapai COMPLETED, hantar eksport tak segerak menggunakan ppt_business_id daripada respons cipta (atau ppt_biz_id daripada respons sejarah):

curl -X POST 'https://openapi.felo.ai/v2/ppts/YOUR_PPT_BUSINESS_ID/export' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'

Tinjau GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export dengan Kunci API Bearer yang sama setiap 2–5 saat. PPT tersebut mesti dimiliki oleh pemilik Kunci API. Kedua-dua endpoint mengembalikan data.status: NOT_STARTED, PROCESSING, COMPLETED, atau FAILED. Hanya COMPLETED menyertakan download_url dan expires_at.

URL muat turun bertandatangan tamat tempoh 30 minit selepas dikeluarkan. Panggil endpoint GET sekali lagi untuk URL baharu; ini tidak menjana semula PPTX. POST menggunakan application/json dan menerima {}. Mengulang POST semasa eksport sedang diproses tidak memulakan kerja lain; memanggilnya selepas selesai menjana semula PPTX dan dikenakan caj kredit eksport PPT sedia ada. Kredit tidak mencukupi mengembalikan HTTP 402. Had kadar khusus endpoint mungkin dikenakan; cuba semula kemudian pada HTTP 429. Eksport yang gagal boleh dihantar semula.

{
  "status": "ok",
  "message": null,
  "data": {
    "status": "COMPLETED",
    "download_url": "https://example.com/presentation.pptx?signature=...",
    "expires_at": "2026-09-29T10:30:00Z"
  }
}

Syor Tinjauan

Gunakan task_id daripada respons cipta dan tinjau status setiap 2-5 saat sehingga status menjadi keadaan terminal.

Contoh status biasa:

  • RUNNING: tugasan masih diproses
  • COMPLETED: tugasan selesai dengan jayanya
  • FAILED / PENDING / EXPIRED / CANCELED: tugasan mencapai status terminal dengan error_message; live_doc_url juga dikembalikan apabila tersedia

Nilai status tidak diketahui mungkin muncul apabila backend berkembang; anggap ia bukan terminal melainkan didokumentasikan sebaliknya.

Kod Ralat

KodStatus HTTPPenerangan
UNAUTHORIZED401Kunci API tidak sah atau telah dibatalkan
PPT_TASK_CREATE_FAILED502Panggilan hiliran cipta tugasan gagal
PPT_TASK_QUERY_FAILED502Panggilan hiliran tanya status tugasan gagal