botClaitonTeste / app.py
coan's picture
Update app.py
3f9b165 verified
import gradio as gr
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from joblib import dump, load
import os
from huggingface_hub import HfApi
from huggingface_hub import login
login(token="botcoin")
huggingface-cli login
# Função para treinar e salvar o modelo
def train_model():
# Carregar e dividir o dataset
data = load_iris()
X = data.data
y = data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Treinando o modelo
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# Criar diretório para salvar o modelo
diretorio = "/mnt/data"
os.makedirs(diretorio, exist_ok=True)
# Salvar o modelo em /mnt/data/
model_filename = os.path.join(diretorio, "model.pkl")
dump(model, model_filename)
# Criar repositório no Hugging Face se não existir
api = HfApi()
repo_id = "coan/botClaiton" # Substitua pelo seu repositório
# Verificar se o repositório já existe
try:
api.repo_info(repo_id)
except:
# Criar o repositório caso não exista
api.create_repo(repo_id, repo_type="model")
# Upload do modelo para o repositório Hugging Face
api.upload_file(
path_or_fileobj=model_filename,
path_in_repo="model.pkl", # Nome do arquivo no repositório
repo_id=repo_id,
repo_type="model"
)
return f"Modelo treinado e salvo em: {model_filename}"
# Função para carregar o modelo treinado e fazer previsões
def predict(input_data):
# Carregar o modelo treinado
model = load("/mnt/data/model.pkl") # Caminho do modelo salvo
# Garantir que a entrada seja um vetor (as características)
input_data = [float(i) for i in input_data.split()]
# Realizar a previsão
prediction = model.predict([input_data]) # input_data deve ser um vetor com as características
return f"Previsão: {prediction[0]}"
# Interface para treinamento do modelo
train_iface = gr.Interface(
fn=train_model,
inputs=[], # Nenhuma entrada necessária para treinar
outputs=["text"] # Exibe uma mensagem de sucesso
)
# Interface para previsões
predict_iface = gr.Interface(
fn=predict, # Função para chamar ao gerar previsão
inputs=gr.Textbox(label="Input (4 features, espaço separado)"), # Caixa de entrada de texto
outputs=gr.Textbox(label="Output") # Caixa de saída com a previsão
)
# Iniciar a interface de treinamento
train_iface.launch()
# Iniciar a interface de previsões
predict_iface.launch()