Skip to main content
Dieser Leitfaden erklärt, wie Sie das novita-gpus SDK verwenden, um einen Async Serverless Endpoint aufzurufen, und wie Sie einen Worker-Handler anpassen.

1. SDK installieren

Installieren Sie das SDK in Ihrer Client-Umgebung oder Worker-Laufzeitumgebung:

2. Jobs mit dem SDK übermitteln

Die Standard-Anfrage-URL des novita-gpus SDK ist https://async-public.serverless.novita.ai/v1. Um einen Endpoint aufzurufen, legen Sie Ihren API-Schlüssel fest und erstellen Sie einen Client mit dem Endpoint-Namen.

3. ComfyUI-Jobbeispiel

Für novitalabs/comfyui-worker:v0.0.1 muss die Job-Eingabe einen ComfyUI-Workflow enthalten. Das folgende minimale Beispiel entspricht dem getesteten Fall:

4. Benutzerdefinierter Handler

Rufen Sie auf der Worker-Seite novita_gpus.start({"handler": handler}) auf, um die Task-Schleife zu starten. Die Plattform übergibt Task-Daten an handler(job):
  • job["id"]: aktuelle Job-ID
  • job["input"]: vom Client übermittelter Eingabeinhalt
  • Der Rückgabewert des Handlers wird als Job-Ausgabe verwendet
  • Wenn das zurückgegebene dict ein error-Feld enthält, wird der Job als fehlgeschlagen markiert
Minimales Handler-Beispiel:

5. Vollständige Worker-Beispiele

Vollständigen Worker-Quellcode, Anweisungen zum Erstellen von Docker-Images und Skripte zur Task-Übermittlung finden Sie in den Novita GPUs Python-Beispielen. Das Repository enthält zwei Beispiele:
  • comfyui-worker: führt ComfyUI aus handler.py aus und gibt generierte Bilder zurück.
  • sleep-worker: ein minimales handler.py, das für eine angeforderte Dauer wartet und ein JSON-Ergebnis zurückgibt.
Jedes Beispielverzeichnis enthält:
  • handler.py: definiert handler(job) und startet den Worker mit novita_gpus.start({"handler": handler}).
  • Dockerfile: erstellt das Worker-Image.
  • requirements.txt: installiert novita-gpus.
  • submit_task.py: übermittelt eine Task mit dem novita-gpus Client-SDK.
Erstellen Sie Ihr Worker-Image und pushen Sie es in Ihre eigene Registry:
Die Task-Übermittlung verwendet das Endpoint-Namensformat <endpoint-id>-<app-name>. Beispielsweise ergeben Endpoint-ID o8UJWkag5WTn und App-Name async Folgendes:
Die submit_task.py-Beispiele akzeptieren die Endpoint-ID und den App-Namen separat und setzen dann den endgültigen Endpoint-Namen zusammen:
Im Skript wird der SDK-Client mit dem zusammengesetzten Endpoint-Namen erstellt:

6. Bilder oder Dateien zurückgeben

Die Async Serverless Endpoint status API hat eine Größenbeschränkung für Ausgaben. Laden Sie große Dateien wie Bilder und Videos zuerst in einen Objektspeicher hoch und geben Sie URLs in der Ausgabe zurück. Konfigurieren Sie Umgebungsvariablen für den Objektspeicher im Endpoint:
Laden Sie ein Bild im Handler hoch:
Sie können auch reguläre Dateien oder Bytes hochladen:

7. FAQ

Muss ich im Worker einen API-Schlüssel konfigurieren?

Normalerweise nicht. API-Schlüssel werden hauptsächlich von Clients verwendet, um Jobs zu übermitteln, abzufragen und abzubrechen.

Welcher Handler-Rückgabewert markiert einen Job als fehlgeschlagen?

Wenn der Handler ein dict zurückgibt, das ein error-Feld enthält, wird der Job als fehlgeschlagen markiert:
Zuletzt geändert am 10. August 2026