DEV Community

Cover image for App em Flask com IA/ML - desenvolvimento e deploy 100% free (PARTE 2)
msc2020
msc2020

Posted on • Updated on

App em Flask com IA/ML - desenvolvimento e deploy 100% free (PARTE 2)

Neste post, finalizamos o tutorial em que desenvolvemos um pequeno e simples aplicativo web utilizando somente ferramentas gratuitas. Na PARTE 1 vimos como usar Python (Flask) e recursos de aprendizagem de máquina (machine learning - ML) para realizar análises de suspeitas de plágio. As análises foram feitas utilizando a API da Hugging Face para o modelo de ML escolhido, responsável por realizar a tarefa de forma automática. Agora iremos passar nosso app do ambiente local para um ambiente de produção gratuito (100% free). Nesse ambiente o app desenvolvido ficará disponível na Internet e não somente em nosso computador.



Vamos lá? ☕


Recapitulando: O que vc acha do mini app abaixo?

gif do app

https://checaplagio-1-a4780033.deta.app/

Nota: A numeração das seções neste post inicia com 5 porque na PARTE 1 do tutorial apresentamos as partes de 1 a 4.


5. Deploy no Deta Space

Fazer o deploy em produção significa enviar o que foi desenvolvido localmente para um ambiente de produção. Este ambiente irá hospedar, disponibilizar recursos e gerenciar o que for necessário para que o app rode assim como rodou localmente (no computador pessoal). Se a passagem de ambientes for entre outros, como por ex., de uma cloud pública para uma privada, os passos vistos neste tutorial continuam sendo semelhantes. Para mais detalhes sobre deploy leia o seguinte texto. Neste post o deploy será feito com o Deta Space.

5.1 Configurar o Deta Space localmente

Para realizar o deploy do app desenvolvido na PARTE 1 basta ler a documentação do Deta Space e seguir o que eles recomendam. A princípio se escolher outro ambiente, teremos outra sequência de passos semelhantes aos que seguiremos a seguir.

Passo 0 - Criar uma conta no Deta Space: Para usarmos os recursos do Deta Space, precisamos criar uma conta gratuita lá. Para isso acessamos https://deta.space e seguimos os passos usuais de criação de uma conta em algum site. No próprio Deta Space, na aba Settings, haverá um token de acesso que usaremos para realizar o login via CLI.

token - space

Passo 1 - Instalar a CLI do Deta Space: Para enviar os códigos do app desenvolvido para o ambiente de produção, é necessário instalar a CLI (Command Line Interface) do Deta Space.

Nota: Seguiremos os passos recomendados na documentação deles: https://deta.space/docs/en/build/new-apps.

Para quem usa Linux, resumidamente, basta digitar o seguinte comando no terminal:

curl -fsSL https://deta.space/assets/space-cli.sh | sh
Enter fullscreen mode Exit fullscreen mode

Passo 2 - Configurações preliminares:
Agora que já instalamos a CLI, podemos realizar todos os procedimentos para deploy no Deta Space com apenas alguns comandos.

Quick start: Caso queira saber das recomendações dessas etapas pelo próprio Deta Space, basta acessar https://deta.space/docs/en/build/quick-starts/python.

Prosseguindo, no diretório raiz do app (i.e, na pasta nome-do-app) devemos criar um arquivo Spacefile que será usado para o build dos arquivos e códigos que enviaremos para o Deta Space.

# Spacefile
v: 0
icon: ./app_logo.png
app_name: "Nome-do-app"
micros:
  - name: checa-plagio
    src: .
    engine: python3.9
    primary: true
    public_routes:
      - "/*"
    presets:
      env:
        - name: SECRET_KEY_FLASK
          description: Secret key do Flask.
          default: "!@$%&<mudar-para-uma-secret-key>"
        - name: API_URL
          description: URL da API.
          default: "https://api-inference.huggingface.co/models/sentence-transformers/all-MiniLM-L6-v2"
        - name: API_TOKEN
          description: Token pessoal da API.
          default: "123456789!@$%&<mudar-para-seu-token>"
Enter fullscreen mode Exit fullscreen mode

Note que os valores presentes no arquivo .env (veja na PARTE 1) estão presentes no Spacefile. A imagem que escolhemos como logo do app (icon: ./app_logo.png) é a seguinte:

Logo - app

Exercício: Fique à vontade para escolher outra imagem de seu interesse. Ressaltamos que, o Deta Space exige que essa imagem seja 512x512 no formato PNG ou WebP.

Após incluir o Spacefile e o logo app_logo.png, a estrutura de arquivos do projeto terá a seguinte forma:

nome-do-app/
│
├── .env
│
├── static
│   ├── favicon.ico
│   ├── how_to.gif
│   ├── no.ico
│   └── yes.ico
│
├── templates/
│   ├── base.html
│   ├── index.html
│   └── how_to.html
│
├── utils/
│   └── constants.py
│
├── venv_app/
│
├── requirements.txt
├── app.py
├── app_logo.png
├── main.py
└── Spacefile
Enter fullscreen mode Exit fullscreen mode

Passo 3 - Criar o projeto via CLI: Depois de criarmos o Spacefile, devemos criar um projeto Deta Space utilizando a CLI. Para isso, na pasta raiz do projeto executamos o seguinte comando:

space login
Enter fullscreen mode Exit fullscreen mode

Em seguida entramos com o token exigido:

Space - login

Após realizarmos o login, o próximo passo é criar um novo projeto pela CLI. Para isso, no terminal digite:

space new
Enter fullscreen mode Exit fullscreen mode

Em seguida entre com o nome do seu projeto/app. Manteremos o nome fictício que vínhamos usando até agora de nome-do-app.

Space - new

Agora que tudo está feito, podemos validar se não cometemos nenhum erro no passo a passo para deploy com:

space validate
Enter fullscreen mode Exit fullscreen mode

space validate

Por fim, digitamos o comando a baixo para realizar o build e deploy automático do nosso app:

space push
Enter fullscreen mode Exit fullscreen mode

Essa etapa final pode demorar um pouco mais do que as outras anteriores. Após processar essa etapa, será gerado um link de acesso com o qual poderemos navegar em no app a partir de qualquer computador conectado a Internet.

Space - push

A imagem acima mostra que após o processo de build e push o Deta Space fornece um link de acesso para o app.

Pronto! Agora é só navegar online!

Top comments (0)