novita-gpus pour appeler un Endpoint serverless asynchrone et comment personnaliser un handler de worker.
1. Installer le SDK
Installez le SDK dans votre environnement client ou dans l’environnement d’exécution du worker :2. Soumettre des jobs avec le SDK
L’URL de requête par défaut du SDKnovita-gpus est https://async-public.serverless.novita.ai/v1. Pour appeler un Endpoint, définissez votre API Key et créez un client avec le nom de l’Endpoint.
3. Exemple de job ComfyUI
Pournovitalabs/comfyui-worker:v0.0.1, l’entrée du job doit inclure un workflow ComfyUI. L’exemple minimal suivant correspond au cas testé :
4. Handler personnalisé
Côté worker, appeleznovita_gpus.start({"handler": handler}) pour démarrer la boucle de tâches. La plateforme transmet les données de tâche à handler(job) :
job["id"]: id du job actueljob["input"]: contenu d’entrée soumis par le client- La valeur de retour du handler est utilisée comme sortie du job
- Si le dict retourné contient un champ
error, le job est marqué comme échoué
5. Exemples complets de workers
Pour le code source complet des workers, les instructions de build d’image Docker et les scripts de soumission de tâches, consultez les exemples Python Novita GPUs. Le dépôt inclut deux exemples :- comfyui-worker : exécute ComfyUI depuis
handler.pyet retourne les images générées. - sleep-worker : un
handler.pyminimal qui attend pendant une durée demandée et retourne un résultat JSON.
handler.py: définithandler(job)et démarre le worker avecnovita_gpus.start({"handler": handler}).Dockerfile: construit l’image du worker.requirements.txt: installenovita-gpus.submit_task.py: soumet une tâche avec le SDK clientnovita-gpus.
<endpoint-id>-<app-name>.
Par exemple, l’Endpoint ID o8UJWkag5WTn et le nom d’application async produisent :
submit_task.py acceptent l’Endpoint ID et le nom d’application séparément, puis composent le nom d’Endpoint final :
6. Retourner des images ou des fichiers
L’APIstatus de l’Endpoint serverless asynchrone a une limite de taille de sortie. Pour les fichiers volumineux tels que les images et les vidéos, téléversez-les d’abord vers un stockage d’objets et retournez les URL dans la sortie.
Configurez les variables d’environnement du stockage d’objets dans l’Endpoint :
7. FAQ
Dois-je configurer une API Key dans le worker ?
Généralement non. Les API Keys sont principalement utilisées par les clients pour soumettre, interroger et annuler des jobs.Quelle valeur de retour du handler marque un job comme échoué ?
Si le handler retourne un dict qui contient un champerror, le job est marqué comme échoué :