import torch from transformers import BertForSequenceClassification, BertTokenizer from safetensors.torch import load_file import gradio as gr # Load model dan tokenizer model_path = "model (5).safetensors" state_dict = load_file(model_path) model = BertForSequenceClassification.from_pretrained('indobenchmark/indobert-base-p2', num_labels=3) tokenizer = BertTokenizer.from_pretrained('indobenchmark/indobert-base-p2') model.load_state_dict(state_dict, strict=False) model.eval() # Set model ke mode evaluasi # Fungsi deteksi stres dengan model def detect_stress(input_text): # Tokenisasi input teks inputs = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True, max_length=128) # Inference with torch.no_grad(): outputs = model(**inputs) # Mengambil prediksi logits = outputs.logits predicted_class = torch.argmax(logits, dim=1).item() # Label, warna, dan pesan berdasarkan tingkat stres labels = { 0: ("Tidak Stres", "#8BC34A", "Saat ini anda tidak mengalami stres. Tetap jaga kesehatan Anda!"), 1: ("Stres Ringan", "#FF7F00", "Saat ini anda sedang mengalami stres ringan. Luangkan waktu untuk relaksasi."), 2: ("Stres Berat", "#F44336", "Saat ini anda sedang mengalami stres berat. Mohon untuk segera melakukan konsultasi.") } level, color, message = labels[predicted_class] return f"