Skip to content
Tutoriais
Streamlit
How to Run Streamlit Apps and Properly Optimize It

Como Executar Aplicações Streamlit e Otimizá-las Adequadamente

O Streamlit revolucionou a forma como construímos e implantamos aplicações web baseadas em dados. Mas como você executa o Streamlit? Como otimizar suas aplicações Streamlit para obter o máximo desempenho? Neste guia abrangente, responderemos a essas perguntas e muito mais, fornecendo o conhecimento e as ferramentas necessárias para dominar o Streamlit.

Compreendendo o Streamlit

O que é o Streamlit? O Streamlit é uma biblioteca de código aberto em Python que permite aos desenvolvedores criar aplicações web interativas baseadas em dados com facilidade. Ele foi projetado para ajudar cientistas de dados e engenheiros a otimizarem seu trabalho, transformando scripts em aplicativos web compartilháveis em apenas algumas linhas de código.

A integração do Streamlit com o Python, uma das linguagens de programação mais populares do mundo, torna-o uma ferramenta poderosa para análise e visualização de dados. Mas o Streamlit não é apenas uma biblioteca em Python - também é uma ferramenta de palavras-chave de busca. Isso significa que ele pode ajudá-lo a identificar e otimizar palavras-chave que estão próximas de se classificar na primeira página dos resultados dos mecanismos de busca, aumentando a visibilidade e o tráfego do seu site.

Primeiros Passos com o Streamlit

Executar o Streamlit é simples, independentemente do seu sistema operacional. Se você estiver usando Windows, Linux ou macOS, poderá executar seu aplicativo Streamlit em pouco tempo.

Executando o Streamlit no Windows

Para executar o Streamlit no Windows, você precisará instalá-lo primeiro. Abra o prompt de comando e digite o seguinte comando:

pip install streamlit

Depois que o Streamlit estiver instalado, você pode executá-lo digitando o seguinte comando:

streamlit run seu_script.py

Substitua seu_script.py pelo nome do seu script em Python. O Streamlit será então lançado em seu navegador da web padrão, exibindo seu aplicativo para você interagir.

Executando o Streamlit em um Servidor

Executar o Streamlit em um servidor segue um processo semelhante. Após instalar o Streamlit em seu servidor, use o comando streamlit run seguido pelo caminho para o seu script em Python. Você poderá acessar seu aplicativo Streamlit usando o endereço IP do seu servidor e o número da porta em que o Streamlit está sendo executado.

Executando o Streamlit no VS Code

O Visual Studio Code (VS Code) é um editor de código popular que suporta o Streamlit. Para executar o Streamlit no VS Code, abra seu script em Python no editor, depois abra o terminal e digite o comando streamlit run seguido pelo caminho para o seu script.

Criando e Executando Sua Primeira Aplicação Streamlit

Agora que você sabe como executar o Streamlit, é hora de criar sua primeira aplicação Streamlit. Nesta seção, orientaremos você pelo processo passo a passo, desde escrever suas primeiras linhas de código até implantar seu aplicativo no Render.

Escrevendo Sua Primeira Aplicação Streamlit

Uma aplicação Streamlit é apenas um script em Python que usa a biblioteca Streamlit. Aqui está um exemplo simples:

import streamlit as st
 
st.title('Olá, Streamlit!')
st.write('Esta é a minha primeira aplicação Streamlit.')

Quando você executa esse script com o Streamlit, ele exibirá uma página da web com o título "Olá, Streamlit!" e o texto "Esta é a minha primeira aplicação Streamlit."

Implantação da Sua Aplicação Streamlit no Render

O Render é uma plataforma de nuvem que facilita a implantação de aplicativos web, incluindo aqueles construídos com o Streamlit. Para implantar sua aplicação Streamlit no Render, você precisará criar um arquivo Dockerfile que informe ao Render como construir e executar seu aplicativo. Aqui está um exemplo:

FROM python:3.7
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD streamlit run app.py

Este Dockerfile começa com uma imagem Python 3.7, define o diretório de trabalho para /app, copia os arquivos de seu aplicativo para a imagem, instala os pacotes Python necessários e, por fim, executa seu aplicativo Streamlit.

Depois de criar seu Dockerfile, você poderá fazer o upload do seu aplicativo para o Render e ele será automaticamente construído e implantado para você.

Otimizando Sua Aplicação Streamlit

As aplicações Streamlit são projetadas para serem rápidas e eficientes, mas, assim como todo software, sempre há espaço para melhorias. Nesta seção, exploraremos algumas técnicas para otimizar suas aplicações Streamlit, focando na melhoria de desempenho e responsividade.

Melhorando o Desempenho do Aplicativo

O Streamlit oferece poderosos recursos de cache que podem melhorar significativamente o desempenho de seu aplicativo. Esses recursos de cache permitem que seu aplicativo permaneça rápido mesmo ao carregar dados da web, manipular grandes conjuntos de dados ou realizar cálculos computacionalmente intensivos.

O Streamlit oferece dois principais tipos de cache: @st.cache_data e @st.cache_resource. O decorador @st.cache_data é usado para armazenar em cache funções que retornam dados, como transformações de dataframes, consultas a bancos de dados ou inferência de aprendizado de máquina. Por outro lado, o decorador @st.cache_resource é usado para armazenar em cache funções que retornam recursos globais, como conexões de banco de dados ou modelos de aprendizado de máquina.

Aqui está um exemplo de como usar esses decoradores:

@st.cache_data
def long_function(param1, param2):
    # Realize cálculos custosos aqui ou
    # obtenha dados da web aqui
    return data
 
@st.cache_resource
def init_model():
    # Retorne um recurso global aqui
    return pipeline(
        "sentiment-analysis",
        model="distilbert-base-uncased-finetuned-sst-2-english"
    )

Você também pode limpar todos os caches de dados em memória e em disco usando st.cache_data.clear() e st.cache_resource.clear().

Otimizando a Renderização do Aplicativo

O desempenho de uma aplicação Streamlit também pode ser afetado pela complexidade de sua interface de usuário. Se o seu aplicativo fica irresponsivo ao redimensionar a janela do navegador ou expandir/recolher a barra lateral, pode ser devido à renderização de elementos de IU complexos. Uma maneira de otimizar o rendering da sua aplicação Streamlit é simplificar sua interface do usuário. Por exemplo, em vez de usar um grande número de sliders ou select sliders, considere usar outros tipos de widgets de entrada que são menos intensivos em recursos.

Outra abordagem é otimizar o rendering dos seus gráficos. Se sua aplicação inclui gráficos complexos do Plotly, você pode considerar usar a opção use_container_width=True ao chamar st.plotly_chart. Essa opção garante que seus gráficos sejam renderizados no tamanho ideal para o container da sua aplicação, melhorando o desempenho do rendering.

Desenvolvendo Aplicações Streamlit com Eficiência

Ao implantar uma aplicação Streamlit, é importante considerar os recursos necessários pela sua aplicação e as capacidades da plataforma de implantação. Por exemplo, se sua aplicação realiza cálculos pesados ou manipula grandes conjuntos de dados, você pode precisar escolher uma plataforma de implantação com recursos suficientes de CPU e memória.

Um erro comum ao implantar aplicações Streamlit é não levar em consideração a otimização de memória. Se a sua aplicação usa uma grande quantidade de memória, ela pode travar durante a implantação ou ficar irresponsiva. Para evitar isso, considere usar técnicas como caching, manipulação eficiente de dados e perfilamento de memória para reduzir o uso de memória da sua aplicação.

Em resumo, otimizar uma aplicação Streamlit envolve melhorar o desempenho computacional, otimizar o rendering da interface do usuário e implantar sua aplicação de forma eficiente. Ao aplicar essas técnicas, você pode garantir que suas aplicações Streamlit sejam rápidas, responsivas e confiáveis.

Recursos Avançados do Streamlit

Streamlit não é apenas uma ferramenta para criar aplicativos web simples. É uma plataforma poderosa que suporta uma ampla gama de recursos avançados, permitindo que você construa aplicativos complexos e interativos com facilidade. Depois de se familiarizar com os conceitos básicos, você pode começar a explorar os recursos avançados do Streamlit. Alguns deles incluem:

  • Widgets interativos: Streamlit suporta uma ampla gama de widgets interativos, incluindo sliders, checkboxes, radio buttons e outros. Esses widgets permitem que os usuários interajam com sua aplicação, controlando seu comportamento e visualizando dados de diferentes maneiras.

  • Caching de dados: Como discutimos anteriormente, os recursos de caching do Streamlit podem melhorar significativamente o desempenho da sua aplicação. Ao armazenar em cache os resultados de cálculos custosos, você pode tornar sua aplicação mais rápida e responsiva.

  • Estado da sessão: O recurso de estado da sessão do Streamlit permite que você mantenha um estado entre diferentes execuções, possibilitando interações mais complexas. Por exemplo, você pode usar o estado da sessão para lembrar a entrada do usuário ou a página atual em um aplicativo com várias páginas.

  • Componentes: Os componentes do Streamlit permitem estender as capacidades do Streamlit integrando com outras bibliotecas e frameworks JavaScript. Você pode usar componentes para criar widgets personalizados, incorporar visualizações interativas e muito mais.

Dominando esses recursos avançados, você pode levar suas aplicações Streamlit para o próximo nível, criando aplicativos complexos e interativos que atendam às necessidades dos seus usuários.

Além disso, você pode criar uma ferramenta de visualização de dados No Code com esta incrível biblioteca Python de código aberto:

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao tableau em seu aplicativo Streamlit.

PyGWalker para visualização de dados no Streamlit (opens in a new tab)

Conclusão

Streamlit é uma ferramenta poderosa para criar aplicativos web orientados a dados. Com sua interface fácil de usar e recursos extensivos, ela permite que desenvolvedores transformem scripts Python em aplicativos web interativos rapidamente. Seja executando o Streamlit em sua máquina local, em um servidor ou no VS Code, começar é fácil. E com as técnicas corretas de otimização, você pode garantir que suas aplicações Streamlit sejam rápidas, responsivas e confiáveis. Então, por que esperar? Comece a explorar o Streamlit hoje mesmo e descubra como ele pode transformar suas análises e visualizações de dados.

Perguntas Frequentes

  1. O que é o Streamlit?

    Streamlit é uma biblioteca Python de código aberto que permite que os desenvolvedores criem aplicativos web interativos orientados a dados com facilidade. Ele foi projetado para ajudar cientistas de dados e engenheiros a agilizarem seu trabalho, transformando scripts em aplicativos web compartilháveis em apenas algumas linhas de código.

  2. Como executo o Streamlit em minha máquina local?

    Para executar o Streamlit em sua máquina local, você precisa primeiro instalá-lo usando o pip. Uma vez instalado, você pode executar o Streamlit digitando o comando streamlit run seu_script.py no prompt de comando, substituindo seu_script.py pelo nome do seu script Python.

  3. Como posso otimizar minha aplicação Streamlit?

    Você pode otimizar sua aplicação Streamlit usando os recursos de caching do Streamlit, simplificando a interface do usuário da sua aplicação e implantando sua aplicação de forma eficiente. Essas técnicas podem ajudar a melhorar o desempenho da sua aplicação, tornando-a mais rápida e responsiva.