dermanalisys-model / handler.py
victormattosli's picture
update handler.py
6423eee verified
import json
from transformers import pipeline
import torch
class EndpointHandler:
"""
Handler customizado para o endpoint de inferência.
"""
def __init__(self, path=""):
# O 'path' é o diretório raiz. Construímos o caminho completo para a pasta do modelo final.
model_path = f"{path}/meu-modelo-ham10000-final"
# Determina se usará GPU ou CPU
device = 0 if torch.cuda.is_available() else -1
self.pipeline = pipeline(
"image-classification",
model=model_path, # <--- AGORA APONTAMOS PARA A PASTA EXATA!
device=device
)
print(f"Pipeline de classificação de imagem carregada com sucesso a partir de: {model_path}")
def __call__(self, data: dict) -> list:
"""
Esta função é chamada a cada requisição para a API.
'data' é o payload da requisição.
"""
# Extrai os inputs do payload da requisição
inputs = data.pop("inputs", data)
parameters = data.pop("parameters", None)
print(f"Recebida requisição para analisar: {inputs}")
# Roda a inferência
try:
if parameters:
result = self.pipeline(inputs, **parameters)
else:
result = self.pipeline(inputs)
print(f"Resultado da análise: {result}")
return result
except Exception as e:
# Retorna um erro formatado se algo der errado durante a análise
error_message = f"Erro ao processar a requisição: {str(e)}"
print(error_message)
return [{"error": error_message}]