Disponibilizando o meu modelo de Recomendação de filmes — 7 Days of Code — dia 05

--

Photo by Thomas Jensen on Unsplash

Para mim o quinto dia do desafio 7 Days of Code foi o mais difícil. No e-mail escrito pelo Paulo Vasconcellos, a tarefa seria “criar uma API que irá consumir seu modelo de Machine Learning e receber requisições”. Mas mesmo relendo eu não sabia exatamente o que era para ser feito. E pra dificultar ainda mais, nos parágrafos seguintes o comunicado dizia que precisaria ter, pelo menos, um endpoint (seja lá o que isso for).

Eu precisei ver muitos vídeos, assistir diversas aulas, ler textos e documentações para entender o meu objetivo. Nas minhas palavras, precisava criar um site que usa o modelo de machine learning que eu havia desenvolvido. O endpoint é a rota, como se fosse uma aba do site. E com um objetivo já tinha um caminho a seguir.

O primeiro passo seria a importação do meu modelo de machine learning. Eu havia exportado o modelo treinado no quarto dia do desafio usando a biblioteca pickle e, pela mesma biblioteca, consegui subir o arquivo para o novo Jupyter Notebook.

O Flask também foi essencial. Ele faz a conexão entre o meu computador e a internet. Mas como eu não tenho nenhum site hospedado, acabei rodando localmente no meu próprio PC. Resumidamente, a biblioteca funciona assim:

Para abrir e começar uma conexão:

app = Flask(__name__)

Endpoint da home para mostrar que o site está funcionando:

@app.route('/')
def mensagem():
return "FUNCIONANDO"

Endpoint usando o machine learning. Assim, usando o domínio do site e escrevendo no final /indica (ex: site_do_alan.com.br/indica), ele executaria a função cadastrada. E o que foi cadastrado é o segundo modelo de machine learning (pode ser visto com mais detalhes no meu perfil do GitHub).

@app.route('/indica')     def indica()          return dicas_de_filme

E para que o site funcione é necessário também terminar com o código abaixo:

if __name__ == "__main__":     app.run()

O site está funcionando e indicando os filmes. Acho importante também informar que os dados usados na aba /indica estão armazenados no Firebase, plataforma de nuvem do Google. E que para subir os arquivos lá, exportei o dataset usado no quarto dia em formato json, como pode ser conferido no GitHub.

--

--