Desenvolveu um aplicativo de aprendizado de máquina ou deep learning usando Streamlit e você não sabe como implementá-lo no Heroku? Não se preocupe, Eu cubro suas costas. Neste artigo, Vou discutir como implementar seu aplicativo de ML / DL Streamlit en Heroku. Então vamos começar!
Observação: Este artigo considera que o leitor já desenvolveu um aplicativo otimizado e usaremos um aplicativo de demonstração neste artigo.
Tabela de conteúdo
- Crie um aplicativo de demonstração
- Softwares requeridos
- Implementação em Heroku
- Notas finais
Crie um aplicativo de demonstração
Vamos construir um aplicativo de demonstração. Usaremos um simples e famoso Previsão do preço da casa Aplicativo. Você pode baixar os conjuntos de dados de aqui. Abaixo está o código.
importar pandas como pd importar numpy como np importar streamlit como st tempo de importação de sklearn.preprocessing import StandardScaler de sklearn.linear_model import LinearRegression de sklearn.model_selection import train_test_split def main(): df = load_data() df = preprocess_data(df) st.title('Previsão do preço da casa para o Vale do Silício da Índia - Bangalore ') st.markdown('Basta inserir os seguintes detalhes e preveremos o preço da sua ** Dream House **') st.sidebar.title('Contato do desenvolvedor') st.sidebar.markdown('[![Harsh-Dhamecha]' '(https://img.shields.io/badge/Author-Harsh Dhamecha-brightgreen)]' '(https://www.linkedin.com/in/harsh-dhamecha/)') st.warning('Insira apenas valores numéricos nos seguintes campos') bhk = st.text_input("BHK total") area = st.text_input("Área em pés quadrados") banhos = st.text_input("Banheiros totais") varanda = st.selectbox("Varanda Total", ['0', '1', '2', '3']) submit = st.button('Prever Preço') se submeter: se bhk e área e banheiros e varanda: com st.spinner('Predizendo ...'): hora de dormir(2) bhk, área, banhos, varanda = int(bhk), int(área), int(banhos), int(sacada) x_test = np.array([[bhk, área, banhos, sacada]]) predição = predição(df, x_test) st.info(f"O preço da sua ** Dream House ** é {predição} lacs") outro: st.error('Por favor, insira todos os detalhes') @ st.cache def train_model(df): escalador global X, y = df.iloc[:, :-1].valores, df.iloc[:, -1].valores scaler = StandardScaler().ajuste(X) X = scaler.transform(X) X_train, X_test, y_train, y_test = train_test_split(X, e, test_size = 0.2, random_state = 23) model = LinearRegression().ajuste(X_train, y_train) modelo de retorno, scaler def prever(df, x_test): modelo, scaler = train_model(df) X_test = scaler.transform(x_test) y_pred = model.predict(X_test) volta(y_pred[0], 2) def load_data(): return pd.read_csv('Datasets / house-price-prediction.csv') def preprocess_data(df): df = df.loc[:, ['Tamanho', 'total_sqft', 'banho de banheira', 'sacada', 'preço']] df.dropna(inplace = True) df = df[df['Tamanho'].str.contains('BHK', na = False)] df['Tamanho'] = df['Tamanho'].str.replace(r'D ', '').astype(int) df['total_sqft'] = df['total_sqft'].str.extract(r '(d +)', expandir = Falso) df['banho de banheira'] = df['banho de banheira'].astype(int) df['sacada'] = df['sacada'].astype(int) df['total_sqft'] = df['total_sqft'].astype(int) return df if __name__ == '__main__': a Principal()
Você pode executar seu aplicativo streamlit localmente usando o seguinte comando.
streamlit run app.py
Observação: app.py é o arquivo que queremos executar.
Nosso aplicativo se parece com o seguinte.
Antes de inserir os detalhes:
Depois de inserir os detalhes:
Softwares requeridos
Para implementar nosso aplicativo otimizado, precisamos do seguinte software:
- Git Baixe aqui
- Heroku CLI Baixe aqui
- Conta Heroku grátis Crea aqui
e siga as instruções na tela.
Implementação em Heroku
Agora que temos nosso aplicativo de demonstração e o software necessário em nossas mãos, vamos implementar nosso aplicativo no Heroku.
Arquivos necessários
Primeiro, precisamos adicionar alguns arquivos que permitam ao Heroku instalar todas as bibliotecas necessárias e executar nosso aplicativo.
requisito.txt
Este arquivo contém todas as bibliotecas necessárias que serão instaladas para o projeto funcionar. Este arquivo pode ser criado manualmente revisando o projeto e listando todas as bibliotecas que foram usadas no projeto. Mas estaremos usando os pipreqs módulo para fazer isso, que cria automaticamente um arquivo requirements.txt. Instale-o com o seguinte comando se ainda não o fez.
pip instalar pipreqs
Agora, navegue até o diretório do seu projeto e digite o seguinte comando.
pipreqs ./
Nosso arquivo requirements.txt está pronto!! Deve ser parecido com o seguinte.
Procfile e setup.sh
Usando esses dois arquivos, dizemos ao Heroku os comandos necessários para iniciar nosso aplicativo.
No arquivo setup.sh, criaremos uma pasta streamlit com credentials.toml e um arquivo config.toml. Abaixo está o comando que será colado no arquivo setup.sh.
mkdir -p ~ / .streamlit / eco " [em geral]n email = "[e-mail protegido]"n " > ~ / .streamlit / credentials.toml eco " [servidor]n sem cabeça = truen enableCORS = falsen porta = $ PORTn " > ~ / .streamlit / config.toml
O Procfile é usado para primeiro executar setup.sh e depois chamar corrida iluminada para executar o aplicativo. Seu Procfile deve ser parecido com o seguinte.
rede: sh setup.sh && streamlit run app.py
Observação: app.py é o arquivo que queremos executar primeiro (contém a função principal). Se você definiu sua função principal em algum outro arquivo, passe-o em vez de app.py.
Crie um repositório Git
Heroku oferece diferentes formas de implementação, mas vamos usar o git, pois é simples.
Digite o seguinte comando para inicializar um repositório git vazio. Certifique-se de estar no diretório raiz do seu projeto.
git init
Faça login no Heroku
A seguir, devemos entrar no Heroku. Podemos fazer isso com o seguinte comando.
login do heroku
Você será solicitado a pressionar um botão e, uma vez que eu fiz isso, você será redirecionado para uma tela de login no seu navegador padrão.
Depois de inserir suas credenciais, você deve ver algo como o seguinte.
Implante o aplicativo
Finalmente, podemos implementar nosso aplicativo no Heroku. Vamos primeiro criar uma instância de nosso aplicativo. Podemos fazer isso com o seguinte comando.
heroku criar preditor de preços de casas
preditor de preço residencial é um nome que escolhi para a minha aplicação. Você não pode usar o mesmo nome que eu já usei. Portanto, escolha o nome do seu aplicativo de acordo.
Por último, envie o código para essa instância com os seguintes comandos.
git add . git commit -m "alguma mensagem" git push heroku mestre
Ao executar git push Heroku master, Você deve notar que ele deve detectar automaticamente que você tem um aplicativo Python e deve instalar todos os pacotes em requirements.txt. Depois que o comando for concluído, você deve ver algo como o seguinte.
Observação: Como escolhi o nome preditor de preço residencial, Eu tenho este url. Você obteria um url de acordo com o nome do seu aplicativo.
Clique no URL para ver seu aplicativo implantado ao vivo.
Parabéns! Tenho Implantei com sucesso nosso primeiro aplicativo.
Dicas de bônus
Se você quiser mudar / editar arquivos após a implantação, você pode fazer isso em seus arquivos e executar os seguintes comandos para que essas mudanças sejam refletidas em seu aplicativo implementado ao vivo.
git add . git commit -m "alguma mensagem" git push heroku mestre
Você obteria novamente o mesmo url mostrado na imagem acima, clique nisso e voila!
Notas finais
Isso conclui a discussão de hoje.
Obrigado por ler isso!
Espero que você tenha gostado do artigo e implementado com sucesso seu primeiro aplicativo Streamlit no Heroku!!
Clique aqui para ver nosso primeiro aplicativo iluminado ao vivo. Sinta-se à vontade para colocar seu primeiro link de aplicativo ativo na seção de comentários abaixo.
Perdi algo importante ou quero compartilhar seus pensamentos? Comente abaixo e eu te responderei.
Sobre o autor
Eu sou Harsh Dhamecha, um aspirante a cientista de dados. Sou estudante do último ano do curso de Ciência da Computação com especialização em Inteligência Artificial. Um aluno motivado que está ansioso para ajudar a comunidade de ciência de dados o máximo que puder.
Se você tiver alguma dúvida, pode diretamente O email eu ou conecte-se comigo no LinkedIn o Twitter.
Se você gosta do jeito que eu escrevo, você também pode pesquisar os outros artigos que escrevi.
Continuar lendo! Um agradecimento especial a você 🙌
A mídia mostrada neste artigo que explica como implementar o aplicativo Streamlit no Heroku não é propriedade da DataPeaker e é usada a critério do autor.