Criação de Interfaces de ML com Streamlit
Descubra como criar interfaces de usuário interativas para suas aplicações de ML com Streamlit.
I
InSkillCoach
· min
Criação de Interfaces de ML com Streamlit
Descubra como criar interfaces de usuário interativas para suas aplicações de ML com Streamlit.
Configuração Básica
1. Instalação
pip install streamlit pandas numpy plotly scikit-learn
2. Estrutura Básica
# app.py
import streamlit as st
import pandas as pd
import plotly.express as px
# Configuração da página
st.set_page_config(
page_title="Application ML",
page_icon="🤖",
layout="wide"
)
# Título e descrição
st.title("Application ML Interactive")
st.markdown("""
Cette application permet de :
- Visualiser des données
- Faire des prédictions
- Analyser les résultats
""")
Componentes de Interface
1. Widgets Básicos
# Widgets de entrada
text_input = st.text_input("Texte", "Valeur par défaut")
number_input = st.number_input("Nombre", min_value=0, max_value=100)
selectbox = st.selectbox("Sélection", ["Option 1", "Option 2", "Option 3"])
multiselect = st.multiselect("Sélection multiple", ["A", "B", "C"])
# Botões e ações
if st.button("Exécuter"):
st.write("Action exécutée!")
# Caixas de seleção
if st.checkbox("Afficher les détails"):
st.write("Détails supplémentaires...")
2. Visualização de Dados
# Criação de um gráfico
def create_chart(data):
fig = px.line(data, x='date', y='value')
st.plotly_chart(fig, use_container_width=True)
# Exibição de tabelas
def display_table(data):
st.dataframe(data)
st.table(data)
# Métricas
col1, col2, col3 = st.columns(3)
with col1:
st.metric("Précision", "95%")
with col2:
st.metric("Recall", "92%")
with col3:
st.metric("F1-Score", "93%")
Funcionalidades Avançadas
1. Gerenciamento de Arquivos
# Upload de arquivos
uploaded_file = st.file_uploader("Choisir un fichier", type=['csv', 'xlsx'])
if uploaded_file is not None:
if uploaded_file.type == "text/csv":
data = pd.read_csv(uploaded_file)
else:
data = pd.read_excel(uploaded_file)
st.write(data)
2. Sidebar e Navegação
# Configuração da sidebar
with st.sidebar:
st.title("Configuration")
model_type = st.selectbox(
"Type de modèle",
["Classification", "Régression", "Clustering"]
)
parameters = {
"learning_rate": st.slider("Learning Rate", 0.01, 1.0, 0.1),
"epochs": st.number_input("Époques", 1, 100, 10),
"batch_size": st.selectbox("Batch Size", [16, 32, 64, 128])
}
3. Cache e Desempenho
@st.cache_data
def load_data():
return pd.read_csv("data.csv")
@st.cache_resource
def load_model():
return joblib.load("model.pkl")
# Utilização
data = load_data()
model = load_model()
Integração com o Backend
1. Chamadas de API
import requests
def call_api(data):
response = requests.post(
"http://localhost:8000/predict",
json=data
)
return response.json()
# Interface de previsão
def prediction_interface():
st.subheader("Faire une prédiction")
# Formulário de entrada
with st.form("prediction_form"):
features = {}
for feature in ["age", "income", "education"]:
features[feature] = st.number_input(feature)
submitted = st.form_submit_button("Prédire")
if submitted:
result = call_api(features)
st.write("Résultat:", result)
2. Tratamento de Erros
def safe_api_call(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except requests.exceptions.RequestException as e:
st.error(f"Erreur de connexion: {str(e)}")
return None
return wrapper
@safe_api_call
def get_prediction(data):
return requests.post("http://localhost:8000/predict", json=data).json()
Boas Práticas
-
Interface do Usuário
- Design responsivo
- Navegação intuitiva
- Feedback ao usuário
- Tratamento de erros
-
Desempenho
- Cache de dados
- Otimização das requisições
- Carregamento progressivo
- Gerenciamento de memória
-
Segurança
- Validação das entradas
- Proteção dos dados
- Gerenciamento de sessões
- Logging
Conclusão
Pontos-chave a lembrar:
- Interface interativa
- Visualização eficiente
- Desempenho otimizado
- Integração com o backend
Recomendações:
- Seguir as boas práticas
- Otimizar o desempenho
- Testar a interface
- Documentar o código
- Aprofundar-se em Streamlit
Sobre InSkillCoach
Especialista em treinamento e tecnologias
Coach especializado em tecnologias avançadas e IA, apoiado pela GNeurone Inc.
Certificações:
- AWS Certified Solutions Architect – Professional
- Certificações Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
1.0k
216
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão