As APIs (Application Programming Interfaces) são pontes que conectam os modelos de Machine Learning com outrs aplicativos ou serviços que os utilizam. Aqui, tentarei explorar um pouco dos fundamentos, incluindo o que são APIs, por que são importantes em projetos de Machine Learning e falarei um pouco sobre uma ferramenta bastante conhecida para esse tipo de aplicação, o FastAPI.
Em termos simples, uma API é a conexão que permite que diferentes softwares se comuniquem entre si. Elas definem como as solicitações e respostas devem ser estruturadas, permitindo que aplicativos interajam uns coms os outros.
As APIs podem ser encontradas em todos os lugares no mundo da tecnologia. Quando usamos um aplicativo de previsão do tempo para verificar o clima, ele está fazendo uma solicitação para uma API que fornece os dados meteorológicos em tempo real. Quando postamos uma foto no instagram por meio de um aplicativo de terceiros, esse aplicativo está se comunicando com a API do instagram para enviar a foto com a legenda e por ai vai.
Pensando no mundo real, imagine que você é um excelente chef de cozinha, mas em um restaurante desconhecido, onde você não tem conhecimento dos ingredientes necessários para uma receita especial. A única maneira de saborear esse prato é indo até o restaurante. Lá, você faz o seu pedido ao garçom, que por sua vez, repassa o pedido ao chef. O pedido é preparado e, finalmente, o garçom serve a refeição. Nessa interação, o garçom desempenhou o papel de uma API. Você fez a solicitação a ele, ele transmitiu o seu pedido ao chef, que preparou a refeição e, em seguida, o garçom trouxe o prato até você. Assim como no mundo da tecnologia, você não tem conhecimento sobre como o prato foi preparado (assim como os clientes geralmente não conhecem os códigos e dados usados para gerar as respostas das solicitações). Você apenas fez o pedido e recebeu o prato, pagando por ele. Da mesma forma, as empresas não revelam seus segredos comerciais, apenas atendem às necessidades do cliente, entregando os dados processados.
Em projetos de Machine Learning, as APIs muitas vezes desempenham papéis críticos em várias etapas do ciclo de vida do modelo. Dependendo do modelo e da empresa, elas podem ser inseridas em diversos contextos:
FastAPI é um framework Python moderno e de alto desempenho para construir APIs de maneira rápida e eficiente. Alguns dos seus principais recursos são:
Suponha que você já possui um modelo de Machine Learning treinado em formato pkl. Todas as etapas anteriores, desde a ingestão dos dados de treinamento até o treinamento do modelo, foram concluídas. Este modelo tem o objetivo de prever os preços das casas com base em suas características, seguindo um modelo básico do Kaggle.
from fastapi import FastAPI
from pydantic import BaseModel
import pickle
import numpy as np
# Instanciando o fastapi
app = FastAPI()
# Carregando o modelo treinado e salvo em formato pkl
with open("modelo_previsao.pkl", "rb") as model_file:
modelo = pickle.load(model_file)
class HouseFeatures(BaseModel):
square_feet: float
num_bedrooms: int
num_bathrooms: int
@app.post("/prever_precos/")
async def prever_precos(features: HouseFeatures):
recursos = np.array([[features.square_feet, features.num_bedrooms, features.num_bathrooms]])
resultado = modelo.predict(recursos)
return {"previsao": resultado.tolist()}
Com este código em execução localmente, por meio de um cliente HTTP, você pode acessá-lo a partir da sua própria máquina através do endereço http://localhost:8000/prever_precos. Além disso, é possível explorar a documentação interativa da API diretamente em seu navegador, por meio do endereço http://localhost:8000/docs.
Alguns pontos desse exemplo:
As APIs são peças fundamentas em projetos de Machine Learning, permitindo a integração e implantação eficaz de modelos. O FastAPI é uma ferramente poderosa que simplifica a criação de APIs robustas e bem documentadas. Ao combinar o FastAPI com as melhores práticas de MLOps, é possível criar sistemas de Machine Learning altamente eficientes e escaláveis.