| | import json |
| | from transformers import pipeline |
| | import torch |
| |
|
| | class EndpointHandler: |
| | """ |
| | Handler customizado para o endpoint de inferência. |
| | """ |
| | def __init__(self, path=""): |
| | |
| | model_path = f"{path}/meu-modelo-ham10000-final" |
| | |
| | |
| | device = 0 if torch.cuda.is_available() else -1 |
| | |
| | self.pipeline = pipeline( |
| | "image-classification", |
| | model=model_path, |
| | 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. |
| | """ |
| | |
| | inputs = data.pop("inputs", data) |
| | parameters = data.pop("parameters", None) |
| |
|
| | print(f"Recebida requisição para analisar: {inputs}") |
| |
|
| | |
| | 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: |
| | |
| | error_message = f"Erro ao processar a requisição: {str(e)}" |
| | print(error_message) |
| | return [{"error": error_message}] |