Skip to main content
Esta guía explica cómo usar el SDK novita-gpus para llamar a un Async Serverless Endpoint y cómo personalizar un handler de worker.

1. Instalar el SDK

Instala el SDK en tu entorno de cliente o en el entorno de ejecución del worker:

2. Enviar trabajos con el SDK

La URL de solicitud predeterminada del SDK novita-gpus es https://async-public.serverless.novita.ai/v1. Para llamar a un Endpoint, configura tu clave de API y crea un cliente con el nombre del Endpoint.

3. Ejemplo de trabajo de ComfyUI

Para novitalabs/comfyui-worker:v0.0.1, la entrada del trabajo debe incluir un flujo de trabajo de ComfyUI. El siguiente ejemplo mínimo coincide con el caso probado:

4. Handler personalizado

En el lado del worker, llama a novita_gpus.start({"handler": handler}) para iniciar el bucle de tareas. La plataforma pasa los datos de la tarea a handler(job):
  • job["id"]: id del trabajo actual
  • job["input"]: contenido de entrada enviado por el cliente
  • El valor de retorno del handler se usa como salida del trabajo
  • Si el dict devuelto contiene un campo error, el trabajo se marca como fallido
Ejemplo mínimo de handler:

5. Ejemplos completos de workers

Para ver el código fuente completo de workers, instrucciones para compilar imágenes Docker y scripts de envío de tareas, consulta Novita GPUs Python examples. El repositorio incluye dos ejemplos:
  • comfyui-worker: ejecuta ComfyUI desde handler.py y devuelve las imágenes generadas.
  • sleep-worker: un handler.py mínimo que espera durante la duración solicitada y devuelve un resultado JSON.
Cada directorio de ejemplo contiene:
  • handler.py: define handler(job) e inicia el worker con novita_gpus.start({"handler": handler}).
  • Dockerfile: compila la imagen del worker.
  • requirements.txt: instala novita-gpus.
  • submit_task.py: envía una tarea con el SDK de cliente novita-gpus.
Compila y sube tu imagen de worker a tu propio registro:
El envío de tareas usa el formato de nombre de Endpoint <endpoint-id>-<app-name>. Por ejemplo, el ID de Endpoint o8UJWkag5WTn y el nombre de app async producen:
Los ejemplos de submit_task.py aceptan el ID de Endpoint y el nombre de app por separado, y luego componen el nombre final del Endpoint:
Dentro del script, el cliente del SDK se crea con el nombre de Endpoint compuesto:

6. Devolver imágenes o archivos

La API status de Async Serverless Endpoint tiene un límite de tamaño de salida. Para archivos grandes, como imágenes y videos, súbelos primero a un almacenamiento de objetos y devuelve URL en la salida. Configura las variables de entorno del almacenamiento de objetos en el Endpoint:
Sube una imagen en el handler:
También puedes subir archivos normales o bytes:

7. FAQ

¿Necesito configurar una clave de API en el worker?

Normalmente no. Las claves de API se usan principalmente por los clientes para enviar, consultar y cancelar trabajos.

¿Qué valor de retorno del handler marca un trabajo como fallido?

Si el handler devuelve un dict que contiene un campo error, el trabajo se marca como fallido:
Última modificación el 10 de agosto de 2026