PPT-generatie en export
Provider: Felo · Betaald met platformsaldo
Genereer asynchroon een presentatie en exporteer daarna een PPTX-bestand. Houd de generatie- en exportstappen gescheiden: een aangemaakte taak is nog geen voltooid bestand.
Alle voorbeelden gebruiken FELO_API_KEY uit het overzicht. Aanroepen gebruiken platformsaldo, niet Felo Pro-credits. Reactievoorbeelden zijn illustratief; live inhoud en optionele velden kunnen variëren.
Workflow en identificatiegegevens
- Maak een generatietaak aan; sla
task_id,ppt_business_idenexpires_atop. - Peil de generatiestatus met
task_id. - Lees de generatieresultaten met
task_id. - Start PPTX-export met
ppt_business_id. - Peil de exportstatus en download het voltooide bestand.
- Verwijder de presentatie optioneel eerder.
In routeplaatsaanduidingen betekent {business_id} het teruggegeven `ppt_business_id`, niet de task_id, resource_id of livedoc_short_id. Gebruik voor de hele workflow hetzelfde API-account. ID's in de voorbeelden zijn tijdelijke aanduidingen.
1. Maak de presentatie aan
POST /api/v1/data/ppts
| Veld | Type | Vereist | Betekenis |
|---|---|---|---|
query | string | Ja | Generatie-instructies, 1–25.000 tekens |
stream_protocol | string | Nee | Standaard message_center_v1; normaal ongemoeid laten |
ppt_config | object | Nee | Optionele configuratie; de huidige implementatie leest ai_theme_id |
livedoc_short_id | string | Nee | Bestaande context-ID, tot 100 tekens; moet door native API-eigendom- en vervalcontroles komen |
resource_ids | string array | Nee | Tot 100 UUID-resource-ID's; onderworpen aan dezelfde contexttoegangcontroles |
Laat voor een eerste integratie de context- en configuratievelden weg. Een context die via /v2 is aangemaakt, komt hier niet automatisch in aanmerking voor hergebruik.
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 retourneert identificatiegegevens op de 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"
}Aanvullende identificatiegegevens zoals resource_id, stream_key en thread_short_id kunnen aanwezig zijn. Een succesvolle aanmaakreactie betekent dat de taak is geaccepteerd, niet dat de generatie is voltooid. Het gevraagde aantal dia's is een instructie; facturering gebruikt het daadwerkelijk gegenereerde aantal pagina's.
TASK_ID="example-task-id"
PPT_ID="example-ppt-id"Generatiegebeurtenissen lezen met SSE
Als de aanmaak een stream_key retourneert, maak dan onmiddellijk verbinding met een API-sleutel die bij hetzelfde account hoort. Als er geen stream key wordt geretourneerd, gebruik dan de status- en resultaatquery's hieronder.
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'| Queryparameter | Betekenis |
|---|---|
format | raw (standaard) behoudt de content-string; structured decodeert geldige JSON naar een object of array |
offset | Optionele upstream-hervatpositie voor herverbinding; leid deze niet af uit je lokale evenementenaantal |
Lees elk volledig SSE-gebeurtenis, decodeer de externe JSON en verwerk dan content. Een answer-toepassingsgebeurtenis draagt tekst in data.text; finished signaleert voltooiing van de generatie in de stream. Verwerk ook upstream done, [DONE] en error-signalen. Als de verbinding wordt verbroken zonder voltooiingssignaal, query dan de taakstatus.
Gebruik de parseringsregels en het clientvoorbeeld in SuperAgent SSE, met deze sectie zijn /api/v1/data/conversations/stream/{stream_key}-URL. Lees het taakresultaat nadat de stream eindigt; PPTX-export blijft een aparte stap. Dit eindpunt schakelt stream: true op /api/v1/data/chat niet in.
2. Peil de generatiestatus
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"De reactie heeft een status-string op de root, bijvoorbeeld RUNNING of COMPLETED. Peil met een begrensd interval (bijvoorbeeld 2–5 seconden) en een deadline. Ga na voltooiing verder naar de resultaten; handel fouten en onverwachte statussen af zonder succes aan te nemen. Een peildeadline annuleert de taak niet.
{"status":"COMPLETED"}3. Lees generatieresultaten
POST /api/v1/data/tasks/{task_id}/historical
Dit is een POST, waarvoor geen JSON-body nodig is.
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
}Lees task_status voordat je history_data gebruikt. De geschiedenis-payload kan per taak verschillen en kan null zijn. ai_page_html en thread_short_id zijn optioneel. Deze reactie is geen gegarandeerde PPTX-download-URL; gebruik daarna export.
4. Start PPTX-export
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}De generatie moet voltooid zijn voordat je exporteert. Het herhalen van POST terwijl dezelfde export actief is, hergebruikt die export. Het starten van een andere export na voltooiing maakt een nieuwe export aan en kan nog een keer kosten met zich meebrengen. Gebruik GET voor peilen en het vernieuwen van de downloadlink.
5. Peil export en download
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"| Status | Volgende actie |
|---|---|
NOT_STARTED | Dien de export één keer in |
PROCESSING | Wacht en peil daarna opnieuw met GET |
COMPLETED | Lees download_url en download het bestand |
FAILED | Inspecteer de fout en taakstatus voordat je een nieuwe export indient |
{
"status":"COMPLETED",
"download_url":"https://example.com/presentation.pptx?signature=example",
"expires_at":"2026-11-06T00:30:00Z"
}De voorbeeld-URL is illustratief. Gebruik de daadwerkelijke ondertekende URL uit de reactie. Deze is 30 minuten geldig; exportstatus-GET kan een nieuwe link retourneren terwijl de presentatie beschikbaar blijft. Sla het bestand op binnen zijn geldigheidsduur. Stuur je Felo API-sleutel niet naar de host voor bestandsdownloads.
6. Verwijder de presentatie
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"Succes retourneert HTTP 204 zonder body. Analyseer dit niet als JSON. Verwijderen terwijl de generatie actief is, retourneert 409.
Levensduur, eigendom en facturering
- Presentaties verlopen zeven dagen na aanmaak. Query's en exports verlengen deze periode niet. De
expires_atvan de presentatie en de ondertekende download-URLexpires_atbeschrijven verschillende levensduren. - Alleen het aanmakende API-account kan zijn taken en presentaties benaderen. Een ontbrekende of ontoegankelijke resource kan 404 retourneren; een verlopen of verwijderde resource kan 410 retourneren, of 404 na opschoning.
- Generatie wordt gefactureerd per gegenereerde pagina (
ppt.generate). Onder paginaprijs reserveert aanmaak de prijs van tien pagina's, rekent daarna af op basis van de daadwerkelijk succesvolle uitvoer en geeft de ongebruikte reservering vrij. Je account heeft voldoende beschikbaar saldo nodig voor de reservering, zelfs als de prompt minder pagina's vraagt. - Export heeft een aparte verzoekprijs (
ppt.export). Statusquery's, resultaatquery's, exportstatusquery's en verwijderen brengen geen nieuwe kosten met zich mee. - Na een time-out query je de opgeslagen taak in plaats van nog een presentatie aan te maken. Zie Facturering en fouten.