Upload 10 files
Browse files
app.py
CHANGED
|
@@ -6,13 +6,16 @@ from flask_login import LoginManager, login_user, logout_user, login_required, c
|
|
| 6 |
from models import db, User, Feedback
|
| 7 |
from forms import RegistrationForm, LoginForm
|
| 8 |
from PhoBERTMultiTask import PhoBERTMultiTask
|
| 9 |
-
from config import config
|
| 10 |
|
| 11 |
app = Flask(__name__)
|
| 12 |
|
| 13 |
# Cấu hình
|
| 14 |
-
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
# Khởi tạo extensions
|
| 18 |
db.init_app(app)
|
|
@@ -29,7 +32,7 @@ def load_user(user_id):
|
|
| 29 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 30 |
|
| 31 |
# === Load tokenizer & model ===
|
| 32 |
-
MODEL_REPO =
|
| 33 |
|
| 34 |
print("🔄 Đang tải tokenizer và model từ Hugging Face...")
|
| 35 |
tokenizer = AutoTokenizer.from_pretrained(MODEL_REPO, use_fast=False)
|
|
@@ -158,8 +161,8 @@ def predict():
|
|
| 158 |
topic = torch.argmax(logits_topic, dim=1).item()
|
| 159 |
|
| 160 |
# Mapping
|
| 161 |
-
SENTIMENT_MAP =
|
| 162 |
-
TOPIC_MAP =
|
| 163 |
|
| 164 |
sentiment = SENTIMENT_MAP[sent]
|
| 165 |
topic_result = TOPIC_MAP[topic]
|
|
@@ -201,11 +204,5 @@ with app.app_context():
|
|
| 201 |
|
| 202 |
if __name__ == "__main__":
|
| 203 |
# Hugging Face Spaces configuration
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
print(f"🚀 Starting Flask app on port {port}")
|
| 208 |
-
print(f"🔧 Debug mode: {debug}")
|
| 209 |
-
print(f"🌐 Environment: {os.environ.get('FLASK_ENV', 'default')}")
|
| 210 |
-
|
| 211 |
-
app.run(host="0.0.0.0", port=port, debug=debug)
|
|
|
|
| 6 |
from models import db, User, Feedback
|
| 7 |
from forms import RegistrationForm, LoginForm
|
| 8 |
from PhoBERTMultiTask import PhoBERTMultiTask
|
|
|
|
| 9 |
|
| 10 |
app = Flask(__name__)
|
| 11 |
|
| 12 |
# Cấu hình
|
| 13 |
+
app.config['SECRET_KEY'] = 'your-secret-key-change-this-in-production'
|
| 14 |
+
# Sử dụng đường dẫn database phù hợp với Hugging Face Spaces
|
| 15 |
+
db_path = os.path.join(os.getcwd(), 'instance', 'feedback_analysis.db')
|
| 16 |
+
os.makedirs(os.path.dirname(db_path), exist_ok=True)
|
| 17 |
+
app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{db_path}'
|
| 18 |
+
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
| 19 |
|
| 20 |
# Khởi tạo extensions
|
| 21 |
db.init_app(app)
|
|
|
|
| 32 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 33 |
|
| 34 |
# === Load tokenizer & model ===
|
| 35 |
+
MODEL_REPO = "Ptul2x5/Student_Feedback_Sentiment" # 🔹 Repo Hugging Face của bạn
|
| 36 |
|
| 37 |
print("🔄 Đang tải tokenizer và model từ Hugging Face...")
|
| 38 |
tokenizer = AutoTokenizer.from_pretrained(MODEL_REPO, use_fast=False)
|
|
|
|
| 161 |
topic = torch.argmax(logits_topic, dim=1).item()
|
| 162 |
|
| 163 |
# Mapping
|
| 164 |
+
SENTIMENT_MAP = {0: "negative", 1: "neutral", 2: "positive"}
|
| 165 |
+
TOPIC_MAP = {0: "lecturer", 1: "training_program", 2: "facility", 3: "others"}
|
| 166 |
|
| 167 |
sentiment = SENTIMENT_MAP[sent]
|
| 168 |
topic_result = TOPIC_MAP[topic]
|
|
|
|
| 204 |
|
| 205 |
if __name__ == "__main__":
|
| 206 |
# Hugging Face Spaces configuration
|
| 207 |
+
debug = os.environ.get("DEBUG", "False").lower() == "true"
|
| 208 |
+
app.run(host="0.0.0.0", port=7860, debug=debug)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|