Skip to main content
Este guia explica como usar o SDK novita-gpus para chamar um Endpoint Serverless Assíncrono e como personalizar um handler de worker.

1. Instalar o SDK

Instale o SDK no seu ambiente de cliente ou no ambiente de runtime do worker:

2. Enviar Jobs com o SDK

A URL de solicitação padrão do SDK novita-gpus é https://async-public.serverless.novita.ai/v1. Para chamar um Endpoint, defina sua API Key e crie um cliente com o nome do Endpoint.

3. Exemplo de Job do ComfyUI

Para novitalabs/comfyui-worker:v0.0.1, a entrada do job deve incluir um workflow do ComfyUI. O exemplo mínimo a seguir corresponde ao caso testado:

4. Handler Personalizado

No lado do worker, chame novita_gpus.start({"handler": handler}) para iniciar o loop de tarefas. A plataforma passa os dados da tarefa para handler(job):
  • job["id"]: ID do job atual
  • job["input"]: conteúdo de entrada enviado pelo cliente
  • O valor de retorno do handler é usado como saída do job
  • Se o dict retornado contiver um campo error, o job será marcado como falho
Exemplo mínimo de handler:

5. Exemplos Completos de Worker

Para ver o código-fonte completo do worker, instruções de build da imagem Docker e scripts de envio de tarefas, consulte os exemplos Python de GPUs da Novita. O repositório inclui dois exemplos:
  • comfyui-worker: executa o ComfyUI a partir de handler.py e retorna imagens geradas.
  • sleep-worker: um handler.py mínimo que aguarda uma duração solicitada e retorna um resultado JSON.
Cada diretório de exemplo contém:
  • handler.py: define handler(job) e inicia o worker com novita_gpus.start({"handler": handler}).
  • Dockerfile: cria a imagem do worker.
  • requirements.txt: instala novita-gpus.
  • submit_task.py: envia uma tarefa com o SDK de cliente novita-gpus.
Faça o build e envie a imagem do seu worker para o seu próprio registry:
O envio de tarefas usa o formato de nome do Endpoint <endpoint-id>-<app-name>. Por exemplo, o Endpoint ID o8UJWkag5WTn e o nome do app async produzem:
Os exemplos submit_task.py aceitam o Endpoint ID e o nome do app separadamente e, em seguida, compõem o nome final do Endpoint:
Dentro do script, o cliente do SDK é criado com o nome do Endpoint composto:

6. Retornar Imagens ou Arquivos

A API status do Endpoint Serverless Assíncrono tem um limite de tamanho de saída. Para arquivos grandes, como imagens e vídeos, faça primeiro o upload deles para um armazenamento de objetos e retorne URLs na saída. Configure as variáveis de ambiente de armazenamento de objetos no Endpoint:
Faça upload de uma imagem no handler:
Você também pode fazer upload de arquivos comuns ou bytes:

7. FAQ

Preciso configurar uma API Key no worker?

Geralmente, não. API Keys são usadas principalmente por clientes para enviar, consultar e cancelar jobs.

Qual valor de retorno do handler marca um job como falho?

Se o handler retornar um dict que contenha um campo error, o job será marcado como falho:
Última modificação em 10 de agosto de 2026