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 SDKnovita-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
Paranovitalabs/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, chamenovita_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 atualjob["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
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.pye retorna imagens geradas. - sleep-worker: um
handler.pymínimo que aguarda uma duração solicitada e retorna um resultado JSON.
handler.py: definehandler(job)e inicia o worker comnovita_gpus.start({"handler": handler}).Dockerfile: cria a imagem do worker.requirements.txt: instalanovita-gpus.submit_task.py: envia uma tarefa com o SDK de clientenovita-gpus.
<endpoint-id>-<app-name>.
Por exemplo, o Endpoint ID o8UJWkag5WTn e o nome do app async produzem:
submit_task.py aceitam o Endpoint ID e o nome do app separadamente e, em seguida, compõem o nome final do Endpoint:
6. Retornar Imagens ou Arquivos
A APIstatus 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:
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 campoerror, o job será marcado como falho: