File size: 1,552 Bytes
7d12de8
b2695a8
7d12de8
4d2ea36
c6250c3
 
b2695a8
 
089ba1a
 
 
c6250c3
 
b2695a8
 
 
 
 
 
7d12de8
b2695a8
 
 
7d12de8
b2695a8
 
7d12de8
ce441c4
b2695a8
 
 
 
 
 
 
 
 
 
 
7d12de8
b2695a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import streamlit as st
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

@st.cache_resource
def load_model():
    model_path = "missantroop/CorebotClassifier"  # Substitua pelo caminho do seu modelo
    tokenizer = AutoTokenizer.from_pretrained(model_path)
    model = AutoModelForCausalLM.from_pretrained(
        model_path, torch_dtype=torch.float32, device_map="cpu"
    )
    return tokenizer, model

# Função para classificar texto
def classify_lyrics(model, tokenizer, text):
    inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=512)
    outputs = model.generate(**inputs, max_new_tokens=50)
    generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return generated_text

# Interface Streamlit
st.title("Classificador de Letras de Metal")
st.write("Carregue uma letra de música para classificação.")

# Input do usuário
lyrics = st.text_area("Insira a letra da música aqui", height=200)

if st.button("Classificar"):
    if lyrics.strip():
        st.write("Carregando modelo...")
        tokenizer, model = load_model()
        st.write("Modelo carregado! Classificando...")
        
        try:
            result = classify_lyrics(model, tokenizer, lyrics)
            st.success("Classificação concluída!")
            st.write(f"**Resultado da classificação:** {result}")
        except Exception as e:
            st.error(f"Erro ao classificar: {str(e)}")
    else:
        st.warning("Por favor, insira uma letra antes de classificar.")