v4.0 — Word Segmentation (Model 3)hiện tại
Tổng quát hoá tokenizer của AI Engine từ "bigram-only" sang longest-match N-gram (tối đa 5 từ): sửa lỗi "vocab chết" — 54/591 cụm cảm xúc 3-5 từ trong từ điển (ví dụ "không thể chấp nhận được") có embedding sẵn nhưng tokenizer/rule scorer cũ không bao giờ nhận diện được thành 1 cụm. Đăng ký toàn bộ từ phủ định vào vocab một cách chắc chắn ngay từ đầu (trước đây chỉ "tình cờ" lọt vào qua online learning). Thêm script dạy lại model trên các cụm vừa "sống lại" — không đổi kiến trúc Embedding/Self-Attention/Leaky ReLU, tương thích ngược 100% với weights đã học.
v3.8 — Giao diện đa theme
Thêm bộ chọn giao diện ngay trong app với 3 theme: Tối · Midnight (mặc định), Sáng · Aurora (nền trắng, sương màu pastel cam-tím-xanh-hồng trôi nhẹ liên tục, tự tắt animation khi hệ điều hành bật giảm chuyển động, card nổi bằng shadow) và Rực rỡ · Sunset (gradient hoàng hôn chuyển động nhẹ, card kính mờ/glass, đổi hẳn tông cam-hồng-vàng) — chọn xong tự nhớ qua localStorage, không nhấp nháy sai theme lúc tải trang. Dọn anti-pattern gradient-text ở logo/heading, chuẩn hoá lại toàn bộ màu chữ/nền để đạt độ tương phản WCAG AA ở cả 3 theme, và sơ đồ tri thức AI (canvas) giờ tự đổi màu tia/bong bóng theo theme đang chọn thay vì hardcode cố định xanh-tím.
v3.7 — Vận hành production ổn định hơn
Thêm app icon/favicon/PWA manifest và presence widget hiển thị số người đang online/đang nghe/tổng lượt truy cập — số thật, đếm trực tiếp từ session đang hoạt động. Bật lại Audio Feature Engine (vá lỗi tempo trả về dạng array của bản librosa mới) và chuyển sang waitress thay Flask dev server. Tự vá lệch Embedding/VOCAB sau restart, và thêm rate-limit + admin key cho /api/learn để chặn spam đầu độc model online learning chung.
v3.6 — Chuẩn hoá nhận diện phủ định & cụm từ cảm xúc
Sửa rule scorer nhận diện phủ định tiếng Việt sai/thiếu: hỗ trợ phủ định nhiều từ ("không hề", "chẳng bao giờ"...), và áp dụng phủ định cho cả cụm 2 từ (bigram) — trước đây chỉ từ đơn mới được xét, nên "không tập trung" vẫn bị tính điểm dương cho "Tập trung". Mở rộng vocab động: cụm từ cảm xúc mới học được từ feedback giờ tự thêm vào từ điển (dynamic_lexicon.json) để rule scorer học được ngay, không chỉ riêng phần MLP embedding như trước.
v3.5 — Chuẩn hoá cảm xúc theo Valence-Arousal
Rút gọn từ 15 → 10 "cảm xúc đơn giản", loại bỏ các class trùng lặp/không phải cảm xúc thuần (Vui nhộn, Phiêu lưu, Bí ẩn, Tự tin, Biết ơn). Đổi tên class nội bộ sang tiếng Anh (happy, sad, romantic...), nhãn hiển thị vẫn giữ tiếng Việt. Áp dụng mô hình khoa học Valence-Arousal (GEMS/Circumplex): thêm toạ độ Sắc thái/Năng lượng cho từng cảm xúc và cập nhật bộ tag Jamendo theo mô hình này. Cập nhật lại từ điển/vocab, dọn các nút cảm xúc trùng/dư ở khung "Nhập cảm xúc", model Self-Attention được train lại với kiến trúc đầu ra mới.
v3.1 — Thêm cảm xúc mới
Mở rộng từ điển cảm xúc và thêm 3 cảm xúc mới: Tự tin 💪 (động lực, quyết tâm), Biết ơn 🙏 (mãn nguyện, bình yên nội tâm), Tức giận 😡 (giận dữ, phẫn nộ) — nâng tổng số lên 15 cảm xúc. Model Self-Attention được train lại với kiến trúc đầu ra mới.
v3.0 — RLUF & Knowledge Graph
Tự cài đặt Thompson Sampling Multi-Armed Bandit (Beta-Bernoulli, NumPy thuần) để học gu nhạc người dùng từ Like/Dislike/Bỏ qua — tối ưu tỉ lệ trộn Online:Local và chọn bộ tag Jamendo phù hợp. Thêm Sơ đồ tri thức cảm xúc tương tác (Canvas 2D): các từ khoá trong câu phát "tia năng lượng" theo trọng số Attention bắn vào các bong bóng cảm xúc.
v2.5 — Adaptive Learning
Thay ReLU bằng Leaky ReLU (max(0.01x, x)) ở lớp ẩn để tránh "chết nơ-ron". Thêm Adaptive L2: hệ số weight decay tăng dần theo số lần feedback (chặn ở 5× giá trị gốc) giúp chống overfit khi học online nhiều lần.
v2.0 — Self-Attention
Thay Bag-of-Words bằng Embedding Layer + Self-Attention (Q,K,V) tự viết bằng NumPy, hiểu được câu đảo ngữ/phủ định. Thêm Dynamic Vocab/Weight Expansion (mở rộng từ điển runtime), Audio Feature Engine (BPM/Spectral Centroid/MFCC qua librosa) để re-rank nhạc, và Kho nhạc Local (Hybrid Online/Offline qua File System Access API).
v1.1 — Hoàn thiện giao diện
Hiển thị số phiên bản trên giao diện; hoàn thiện đầy đủ các chức năng: phân tích cảm xúc Hybrid AI (Bag-of-Words + MLP), gợi ý/nghe nhạc Jamendo, online learning, gợi ý cá nhân hoá, gợi ý theo giờ trong ngày, lịch sử phân tích.
v1.0 — Phiên bản nền tảng
Rule Scorer + MLP Hybrid Engine (NumPy thuần), tích hợp Jamendo API, feedback & online learning cơ bản.