Warteschlangen-Endpunkte
Sie können auf alle Warteschlangenfunktionen über die folgenden Endpunkte zugreifen:| Endpunkt | Methode | Beschreibung |
|---|---|---|
| api.sunra.ai/v1/queue/{modell-id} | POST | Fügt eine Anfrage zur Warteschlange hinzu |
| api.sunra.ai/v1/queue/requests/{request_id}/status | GET | Ruft den Status einer Anfrage ab |
| api.sunra.ai/v1/queue/requests/{request_id}/status/stream | GET | Streamt den Status bis zur Fertigstellung |
| api.sunra.ai/v1/queue/requests/{request_id} | GET | Ruft die Antwort einer Anfrage ab |
| api.sunra.ai/v1/queue/requests/{request_id}/cancel | PUT | Bricht eine Anfrage ab |
request_id:
request_id und bietet URLs zum Überprüfen des Status, zum Abbrechen oder zum Abrufen der Antwort, was Ihren Arbeitsablauf ohne zusätzliche Endpunktentwicklung optimiert.
Anforderungsstatus
Um den Fortschritt Ihrer Anfrage zu überwachen, verwenden Sie den bereitgestellten Endpunkt mit Ihrer eindeutigen Anfrage-ID. Dies ermöglicht es Ihnen, den Status, die Position in der Warteschlange zu verfolgen oder die Antwort abzurufen, sobald sie fertig ist.Endpunktnutzung
Beispielantwort
Wenn sich Ihre Anfrage in der Warteschlange befindet, erhalten Sie eine Antwort wie diese:Mögliche Status
Ihre Anfrage kann sich in einem von drei Zuständen befinden:-
IN_QUEUE: Zeigt an, dass die Anfrage auf die Verarbeitung wartet.
queue_position: Zeigt Ihren Platz in der Warteschlange an.response_url: URL zum Abrufen der Antwort nach Abschluss der Verarbeitung.
-
IN_PROGRESS: Die Anfrage wird gerade verarbeitet.
logs: Detaillierte Protokolle (falls aktiviert), die die Verarbeitungsschritte zeigen.response_url: Wo die endgültige Antwort verfügbar sein wird.
-
COMPLETED: Die Verarbeitung ist abgeschlossen.
logs: Protokolle, die den gesamten Prozess detailliert beschreiben.response_url: Direkter Link zu Ihrer abgeschlossenen Antwort.
Protokolle aktivieren
Protokolle bieten Einblicke in die Anfrageverarbeitung. Sie sind standardmäßig deaktiviert, können aber mit einem Abfrageparameter aktiviert werden:message: Beschreibung des Ereignisses.level: Schweregrad (z. B. INFO, ERROR).source: Ursprung des Protokolls.timestamp: Zeitpunkt der Protokollgenerierung.
Echtzeitüberwachung
Für kontinuierliche Updates verwenden Sie den Streaming-Endpunkt:text/event-stream-Format, bis die Anfrage abgeschlossen ist.
Webhooks
Wenn Sie lieber benachrichtigt werden möchten, anstatt zu pollen, übergeben Sie beim Senden einer Anfrage einenwebhook-Query-Parameter. Sunra sendet das Endergebnis per POST an diese URL, sobald die Anfrage einen Endzustand erreicht — Sie müssen also keine Verbindung offen halten oder Polling planen.
Webhooks aktivieren
Hängen Sie einen URL-codiertenwebhook-Query-Parameter an den Submit-Endpunkt an:
https%3A%2F%2F...) und stellen Sie sicher, dass Sunra sie erreichen kann; HTTPS wird dringend empfohlen. Die Submit-Antwort bleibt unverändert — Sie erhalten weiterhin eine request_id sowie die gleichen Status-/Cancel-/Response-URLs.
Wann der Webhook ausgelöst wird
Sunra ruft Ihren Webhook nur bei Endereignissen auf:succeeded— Die Anfrage ist abgeschlossen und die Ausgabe ist im Payload enthalten.failed— Die Anfrage ist fehlgeschlagen und Fehlerdetails sind im Payload enthalten.
IN_QUEUE, IN_PROGRESS) lösen keinen Webhook aus. Wenn Sie auch Fortschrittsaktualisierungen benötigen, kombinieren Sie den Webhook mit den oben beschriebenen Streaming- oder Polling-Endpunkten.
Anfrageformat
Sunra sendet einePOST-Anfrage an Ihre Webhook-URL mit:
| Header | Value |
|---|---|
Content-Type | application/json |
User-Agent | Sunra-AI-Webhook/1.0 |
2xx-Statuscode antworten. Bestätigen Sie schnell und lagern Sie aufwändige Arbeit in einen Hintergrund-Job aus — langsame Antworten werden als Fehler gewertet und lösen Wiederholungen aus.
Payload
Ein Erfolgsereignis:output durch error. Der genaue Inhalt von error hängt vom Fehlertyp ab — das folgende Beispiel zeigt eine gängige Form:
| Feld | Beschreibung |
|---|---|
id | Die beim Submit zurückgegebene request_id. Verwenden Sie sie zur Deduplizierung von Wiederholungen. |
object | Immer "prediction". |
model | Modellbesitzer und -name (z. B. black-forest-labs/flux-1.1-pro). |
model_endpoint | Endpunkt-Slug (z. B. text-to-image). |
status | "succeeded" oder "failed". |
input | Der ursprüngliche Anfragekörper, den Sie gesendet haben. |
output | Bei succeeded vorhanden. Derselbe Antwortkörper, den der Result-Endpunkt zurückgibt. |
error | Bei failed vorhanden. Ein Objekt, das den Fehler beschreibt; die Struktur hängt vom Fehlertyp ab. |
created_at | ISO 8601-Zeitstempel der Anfrageerstellung. |
completed_at | ISO 8601-Zeitstempel, wann die Anfrage den Endzustand erreichte. |
Wiederholungsverhalten
Die Webhook-Zustellung erfolgt mindestens-einmal. Wenn Ihr Endpunkt das Timeout (5 s) überschreitet oder einen Status zurückgibt, der nicht2xx ist, versucht Sunra es mit exponentiellem Backoff erneut — bis zu 3 Wiederholungen mit Verzögerungen ab 10 Sekunden, gedeckelt bei 30 Sekunden. Nach der letzten Wiederholung wird der Fehler protokolliert und es werden keine weiteren Versuche unternommen.
Da Wiederholungen dasselbe Ereignis mehr als einmal zustellen können, sollte Ihr Handler idempotent sein — verwenden Sie das id-Feld als Deduplizierungsschlüssel.
Best Practices
- Verwenden Sie HTTPS und stellen Sie sicher, dass der Datenverkehr den erwarteten Endpunkt erreicht.
- Antworten Sie sofort mit
2xxund verarbeiten Sie das Payload asynchron. - Behandeln Sie die Zustellung als mindestens-einmal und deduplizieren Sie nach
id. - Kombinieren Sie Webhooks mit Polling- oder Streaming-Endpunkten, wenn Sie vor dem Endereignis Fortschrittsaktualisierungen benötigen.
Anfragen abbrechen
Wenn sich Ihre Anfrage noch in der Warteschlange befindet, können Sie sie mit folgendem Befehl abbrechen:Antworten abrufen
Sobald Ihre AnfrageCOMPLETED ist, rufen Sie die Antwort mit folgendem Befehl ab:
Vereinfachte Integration mit dem Sunra Client
Der Sunra-Client automatisiert die Statusverfolgung und vereinfacht die App-Entwicklung mit Sunra-Funktionen.Ratenbegrenzungen
Um eine faire Nutzung und Systemstabilität zu gewährleisten, unterliegen unsere API-Endpunkte den folgenden Ratenbegrenzungen:| Endpunkttyp | Ratenbegrenzung | Burst-Limit |
|---|---|---|
| Zur Warteschlange hinzufügen | 10 Anfragen/Sekunde | 100 Anfragen/Minute |
| Alle anderen Endpunkte | 100 Anfragen/Sekunde | 1.800 Anfragen/Minute |
403 Forbidden-Antwort. Wir empfehlen die Implementierung eines Wiederholungsmechanismus mit exponentiellem Backoff, um diese Fälle zu behandeln.