PPT-Generierung und Export
Anbieter: Felo · Bezahlt mit Plattform-Guthaben
Erzeuge eine Präsentation asynchron und exportiere dann eine PPTX-Datei. Halte Generierung und Export getrennt: Eine erstellte Aufgabe ist noch keine fertige Datei.
Alle Beispiele verwenden FELO_API_KEY aus der Übersicht. Aufrufe verwenden Plattform-Guthaben, nicht Felo-Pro-Guthaben. Antwortbeispiele sind illustrativ; Live-Inhalte und optionale Felder variieren.
Workflow und Kennungen
- Erstelle eine Generierungsaufgabe; speichere
task_id,ppt_business_idundexpires_at. - Frage den Generierungsstatus anhand von
task_idab. - Lies die Generierungsergebnisse anhand von
task_id. - Starte den PPTX-Export anhand von
ppt_business_id. - Frage den Exportstatus ab und lade die fertige Datei herunter.
- Lösche die Präsentation optional frühzeitig.
In Routenplatzhaltern bedeutet {business_id} die zurückgegebene `ppt_business_id`, nicht task_id, resource_id oder livedoc_short_id. Verwende für den gesamten Workflow dasselbe API-Konto. IDs in den Beispielen sind Platzhalter.
1. Erstelle die Präsentation
POST /api/v1/data/ppts
| Feld | Typ | Erforderlich | Bedeutung |
|---|---|---|---|
query | string | Ja | Generierungsanweisungen, 1–25.000 Zeichen |
stream_protocol | string | Nein | Standard message_center_v1; normalerweise unverändert lassen |
ppt_config | object | Nein | Optionale Konfiguration; die aktuelle Implementierung liest ai_theme_id |
livedoc_short_id | string | Nein | Bestehende Kontext-ID, bis zu 100 Zeichen; muss die nativen API-Prüfungen für Besitz und Ablauf bestehen |
resource_ids | string array | Nein | Bis zu 100 UUID-Ressourcen-IDs; unterliegt denselben Kontextzugriffsprüfungen |
Für eine erste Integration lasse Kontext- und Konfigurationsfelder weg. Ein über /v2 erstellter Kontext ist hier nicht automatisch wiederverwendbar.
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 gibt Kennungen an der Root zurück:
{
"task_id":"example-task-id",
"ppt_business_id":"example-ppt-id",
"livedoc_short_id":"example-livedoc-id",
"expires_at":"2026-11-13T00:00:00Z"
}Zusätzliche Kennungen wie resource_id, stream_key und thread_short_id können vorhanden sein. Eine erfolgreiche Erstellungsantwort bedeutet, dass die Aufgabe angenommen wurde, nicht dass die Generierung abgeschlossen ist. Die angeforderte Folienanzahl ist eine Anweisung; die Abrechnung verwendet die tatsächlich generierte Seitenanzahl.
TASK_ID="example-task-id"
PPT_ID="example-ppt-id"Generierungsereignisse mit SSE lesen
Wenn die Erstellung einen stream_key zurückgibt, verbinde dich sofort mit einem API-Schlüssel desselben Kontos. Wenn kein Stream-Key zurückgegeben wird, verwende die Status- und Ergebnisabfragen unten.
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'| Query-Parameter | Bedeutung |
|---|---|
format | raw (Standard) erhält den content-String; structured dekodiert gültiges JSON in ein Objekt oder Array |
offset | Optionale Resume-Position des Upstreams für die Wiederverbindung; nicht aus deiner lokalen Ereignisanzahl ableiten |
Lies jedes vollständige SSE-Ereignis, dekodiere das äußere JSON und verarbeite dann content. Ein answer-Anwendungsereignis trägt Text in data.text; finished signalisiert den Abschluss der Generierung im Stream. Behandle außerdem Upstream-Signale done, [DONE] und error. Wenn die Verbindung ohne Abschluss-Signal endet, frage den Aufgabenstatus ab.
Verwende die Parsing-Regeln und das Client-Beispiel in SuperAgent SSE, jedoch mit der URL dieses Abschnitts /api/v1/data/conversations/stream/{stream_key}. Lies das Aufgabenergebnis nach dem Ende des Streams; der PPTX-Export bleibt ein separater Schritt. Dieser Endpunkt aktiviert nicht stream: true auf /api/v1/data/chat.
2. Generierungsstatus abfragen
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"Die Antwort hat einen status-String an der Root, zum Beispiel RUNNING oder COMPLETED. Frage in einem begrenzten Intervall ab (zum Beispiel 2–5 Sekunden) und mit einer Frist. Fahre nach Abschluss mit den Ergebnissen fort; behandle Fehler und unerwartete Status, ohne Erfolg anzunehmen. Eine Abfragefrist bricht die Aufgabe nicht ab.
{"status":"COMPLETED"}3. Generierungsergebnisse lesen
POST /api/v1/data/tasks/{task_id}/historical
Dies ist ein POST, ohne erforderlichen JSON-Body.
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
}Lies task_status, bevor du history_data verwendest. Die History-Payload kann je nach Aufgabe variieren und kann null sein. ai_page_html und thread_short_id sind optional. Diese Antwort ist keine garantierte PPTX-Download-URL; verwende als Nächstes den Export.
4. PPTX-Export starten
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}Die Generierung muss abgeschlossen sein, bevor du exportierst. Wenn du POST bei laufendem Export derselben Präsentation wiederholst, wird dieser wiederverwendet. Wenn du nach Abschluss einen weiteren Export startest, wird ein neuer Export erstellt und es kann erneut eine Gebühr anfallen. Verwende GET zum Abfragen und Aktualisieren des Download-Links.
5. Export abfragen und herunterladen
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 | Nächste Aktion |
|---|---|
NOT_STARTED | Sende den Export einmal ab |
PROCESSING | Warte und frage dann erneut per GET ab |
COMPLETED | Lies download_url und lade die Datei herunter |
FAILED | Prüfe den Fehler und den Aufgabenstatus, bevor du einen neuen Export absendest |
{
"status":"COMPLETED",
"download_url":"https://example.com/presentation.pptx?signature=example",
"expires_at":"2026-11-06T00:30:00Z"
}Die Beispiel-URL dient nur zur Veranschaulichung. Verwende die tatsächliche signierte URL aus der Antwort. Sie ist 30 Minuten gültig; der GET-Exportstatus kann einen frischen Link zurückgeben, solange die Präsentation verfügbar bleibt. Speichere die Datei innerhalb ihrer Lebensdauer. Sende deinen Felo API-Schlüssel nicht an den Datei-Download-Host.
6. Präsentation löschen
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"Erfolg gibt HTTP 204 ohne Body zurück. Parst das nicht als JSON. Eine Löschung während der Generierung läuft, gibt 409 zurück.
Lebensdauer, Besitz und Abrechnung
- Präsentationen laufen sieben Tage nach der Erstellung ab. Abfragen und Exporte verlängern diesen Zeitraum nicht. Die
expires_at-Angabe der Präsentation und dieexpires_at-Angabe der signierten Download-URL beschreiben unterschiedliche Lebensdauern. - Nur das erstellende API-Konto kann auf seine Aufgaben und Präsentationen zugreifen. Eine fehlende oder nicht zugängliche Ressource kann 404 zurückgeben; eine abgelaufene oder gelöschte Ressource kann 410 zurückgeben, oder nach der Bereinigung 404.
- Die Generierung wird pro generierter Seite (
ppt.generate) abgerechnet. Bei der Seitenpreis-Abrechnung reserviert die Erstellung den Preis von zehn Seiten, rechnet dann die tatsächlich erfolgreiche Ausgabe ab und gibt die ungenutzte Reservierung frei. Dein Konto benötigt genug verfügbares Guthaben für die Reservierung, auch wenn der Prompt weniger Seiten anfordert. - Der Export hat einen separaten Anfragepreis (
ppt.export). Statusabfragen, Ergebnisabfragen, Exportstatusabfragen und Löschung verursachen keine neue Gebühr. - Frage nach einem Timeout die gespeicherte Aufgabe ab, statt eine weitere Präsentation zu erstellen. Siehe Abrechnung und Fehler.