Felo APIs
PPT Task API
Zadávejte úlohy generování PPT, procházejte motivy a dotazujte se na sdílené endpointy úloh.
/v2/pptsOvěřování
Bearer API key
Typ obsahu
application/json
Poznámky k limitům
Mohou platit limity pro jednotlivé endpointy.
PPT Task API poskytuje možnosti asynchronního generování PPT. Můžete vytvořit úlohu a potom dotazovat stav úlohy podle task_id. Můžete také procházet dostupná témata PPT a použít je při vytváření úloh.
Toto je asynchronní API. Společný vzor odeslání, dotazování a načtení najdete v části Asynchronní úlohy.
Ověřování
Všechny požadavky vyžadují API klíč v hlavičce Authorization:
Authorization: Bearer YOUR_API_KEYPoužití s AI agenty
Chcete-li vytvářet snímky z agenta, nainstalujte kompletní balíček felo-ai, nikoli pevnou podmnožinu Skills. Jeho instalátor dynamicky objevuje každý adresář balíčku obsahující SKILL.md, včetně Skillu PPT a budoucích přírůstků. Nainstalujte všechny objevené Skills do nativního adresáře pro svého agenta: Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills nebo Hermes Agent ~/.hermes/skills. Konfiguraci API klíče specifickou pro platformu a ověření najdete v příručce k ručnímu nastavení AI agenta.
1. Seznam témat PPT
Dotazujte dostupná témata PPT se stránkováním, vyhledáváním podle klíčových slov a filtrováním podle jazyka a typu.
Endpoint
GET https://openapi.felo.ai/v2/ppt-themesParametry dotazu
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
lang | string | Ne | Kód jazyka pro lokalizovaný obsah (např. en, zh-Hans). Výchozí: en |
type | string | Ne | Filtrovat podle typu tématu (např. default, custom) |
keyword | string | Ne | Klíčové slovo pro vyhledávání, odpovídá názvům témat |
page | integer | Ne | Číslo stránky, počínaje 1. Výchozí: 1 |
size | integer | Ne | Velikost stránky, max. 100. Výchozí: 20 |
Příklad
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'Úspěšná odpověď (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"
}
]
}
}Pole odpovědi s tématy
| Pole | Typ | Popis |
|---|---|---|
total | integer | Celkový počet témat odpovídajících filtru |
page | integer | Aktuální číslo stránky |
size | integer | Velikost stránky |
items | array | Seznam objektů témat |
items[].id | string | ID tématu, použijte ho jako ai_theme_id při vytváření PPT |
items[].title | string | Název tématu (lokalizovaný) |
items[].subtitle | string | Podtitul tématu (lokalizovaný) |
items[].description | string | Popis tématu (lokalizovaný) |
2. Vytvoření úlohy PPT
Endpoint
POST https://openapi.felo.ai/v2/pptsHlavičky požadavku
| Hlavička | Povinné | Popis |
|---|---|---|
Authorization | Ano | Váš API klíč ve formátu Bearer YOUR_API_KEY |
Content-Type | Ano | application/json nebo multipart/form-data |
Tělo požadavku
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
query | string | Ano | Prompt pro generování PPT |
livedoc_short_id | string | Ne | Krátké ID existujícího LiveDocu, které se má přidružit k relaci PPT. Pokud je vynecháno, automaticky se vytvoří nový LiveDoc. |
resource_ids | pole řetězců | Ne | Seznam ID zdrojů LiveDocu, která se mají použít jako kontext pro generování PPT |
ppt_config | object | Ne | Možnosti konfigurace PPT |
ppt_config.ai_theme_id | string | Ne | ID tématu z endpointu Seznam témat PPT |
Příklad
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"
}
}'Vytvoření z nahraného souboru
Pomocí multipart/form-data nahrajte jeden soubor a vytvořte úlohu PPT v jednom požadavku. Platforma nejprve nahraje soubor jako zdroj LiveDocu a potom předá jeho ID zdroje úloze PPT.
| Část | Typ | Povinné | Popis |
|---|---|---|---|
query | string | Ano | Prompt pro generování PPT |
file | file | Ano | Zdrojový soubor použitý jako kontext pro PPT |
stream_protocol | string | Ne | Protokol streamování; výchozí je message_center_v1 |
livedoc_short_id | string | Ne | Existující LiveDoc, do kterého se má soubor uložit. Pokud je vynechán, vytvoří se nový LiveDoc. |
ppt_config | JSON | Ne | Konfigurace PPT se stejnou strukturou jako tělo požadavku JSON. Tuto část odešlete jako 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]'Odpověď používá stejné schéma jako požadavek JSON. Vrácené livedoc_short_id identifikuje LiveDoc obsahující nahraný zdroj.
Úspěšná odpověď (200)
{
"status": "ok",
"message": null,
"data": {
"livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
"ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
"task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
}
}3. Dotaz na stav úlohy
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/statusPříklad
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'Úspěšná odpověď (200)
{
"status": "ok",
"message": null,
"data": {
"status": "RUNNING"
}
}4. Dotaz na historické informace o úloze
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/historicalPříklad
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'Odpověď 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"
}
}Odpověď 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"
}
}Odpověď 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"
}
}Odpověď 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"
}
}Pole historické odpovědi
| Pole | Typ | Popis |
|---|---|---|
task_id | string | ID úlohy |
task_status | string | Aktuální stav úlohy |
ppt_biz_id | string | Obchodní ID PPT (mapované z backendového thread_short_id) |
ppt_url | string | URL PPT, formát: https://felo.ai/slides/{ppt_biz_id} |
error_message | string | Uvedeno u FAILED / PENDING / EXPIRED / CANCELED; prázdný řetězec "", pokud navazující služba neposkytne podrobnosti o chybě |
ai_page_html | string | Uvedeno, když úloha běží v režimu AI_PAGE a navazující historická odpověď vrací URL výsledku HTML |
live_doc_short_id | string | Krátké ID LiveDocu. U COMPLETED pochází z navazujícího live_doc_short_id; u koncových stavů selhání se vrací, pokud je k dispozici |
live_doc_url | string | URL LiveDocu odpovídající live_doc_short_id |
Export PPTX
Poté, co úloha generování PPT dosáhne stavu COMPLETED, odešlete asynchronní export pomocí ppt_business_id z odpovědi na vytvoření (nebo ppt_biz_id z historické odpovědi):
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 '{}'Dotazujte GET https://openapi.felo.ai/v2/ppts/{ppt_business_id}/export se stejným API klíčem Bearer každé 2–5 sekundy. Vlastník API klíče musí vlastnit PPT. Oba endpointy vracejí data.status: NOT_STARTED, PROCESSING, COMPLETED nebo FAILED. Pouze COMPLETED obsahuje download_url a expires_at.
Podepsaná URL pro stažení vyprší 30 minut po vydání. Chcete-li získat čerstvou URL, zavolejte znovu endpoint GET; tím se PPTX znovu nevygeneruje. POST používá application/json a přijímá {}. Opakování POST během zpracování exportu nespustí další úlohu; volání po dokončení znovu vygeneruje PPTX a účtuje stávající poplatek za export PPT v kreditech. Nedostatek kreditů vrací HTTP 402. Mohou platit limity rychlosti specifické pro endpoint; při HTTP 429 to zkuste později. Neúspěšný export lze odeslat znovu.
{
"status": "ok",
"message": null,
"data": {
"status": "COMPLETED",
"download_url": "https://example.com/presentation.pptx?signature=...",
"expires_at": "2026-09-29T10:30:00Z"
}
}Doporučení pro dotazování
Použijte task_id z odpovědi na vytvoření a dotazujte stav každé 2-5 sekundy, dokud se stav nestane koncovým.
Běžné příklady stavů:
RUNNING: úloha se stále zpracováváCOMPLETED: úloha byla úspěšně dokončenaFAILED/PENDING/EXPIRED/CANCELED: úloha dosáhla koncového stavu serror_message;live_doc_urlse také vrací, pokud je k dispozici
S vývojem backendu se mohou objevit neznámé hodnoty stavů; považujte je za nekoncové, pokud není uvedeno jinak.
Kódy chyb
| Kód | Stav HTTP | Popis |
|---|---|---|
UNAUTHORIZED | 401 | API klíč je neplatný nebo zrušený |
PPT_TASK_CREATE_FAILED | 502 | Volání navazující služby pro vytvoření úlohy selhalo |
PPT_TASK_QUERY_FAILED | 502 | Volání navazující služby pro dotaz na stav úlohy selhalo |