Spaces:
Runtime error
Runtime error
| 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() | |