Felo API PlatformFelo API Platform

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

  1. Maak een generatietaak aan; sla task_id, ppt_business_id en expires_at op.
  2. Peil de generatiestatus met task_id.
  3. Lees de generatieresultaten met task_id.
  4. Start PPTX-export met ppt_business_id.
  5. Peil de exportstatus en download het voltooide bestand.
  6. 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

VeldTypeVereistBetekenis
querystringJaGeneratie-instructies, 1–25.000 tekens
stream_protocolstringNeeStandaard message_center_v1; normaal ongemoeid laten
ppt_configobjectNeeOptionele configuratie; de huidige implementatie leest ai_theme_id
livedoc_short_idstringNeeBestaande context-ID, tot 100 tekens; moet door native API-eigendom- en vervalcontroles komen
resource_idsstring arrayNeeTot 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'
QueryparameterBetekenis
formatraw (standaard) behoudt de content-string; structured decodeert geldige JSON naar een object of array
offsetOptionele 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"
StatusVolgende actie
NOT_STARTEDDien de export één keer in
PROCESSINGWacht en peil daarna opnieuw met GET
COMPLETEDLees download_url en download het bestand
FAILEDInspecteer 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_at van de presentatie en de ondertekende download-URL expires_at beschrijven 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.

Hulp nodig?