--- title: Roblox Luau Assistant emoji: 🤖 colorFrom: purple colorTo: indigo sdk: gradio sdk_version: 5.31.0 app_file: app.py python_version: "3.11" hf_oauth: true pinned: false --- # Roblox Luau Assistant Chatbot hỗ trợ viết & sửa code Luau cho Roblox, chạy trên Gradio + Hugging Face Inference API, dùng model [`squaredcuber/roblox-luau-mistral-7b-rft`](https://huggingface.co/squaredcuber/roblox-luau-mistral-7b-rft). ## Tính năng - Giao diện chat đẹp, tuỳ chỉnh (avatar, bubble, theme tím) - Lưu lịch sử chat tự động trong `localStorage` của trình duyệt (không mất khi reload trang) - Nút xoá lịch sử chat - System prompt, cấu hình model tách riêng ra file để dễ chỉnh sửa - Đăng nhập Hugging Face (`gr.LoginButton`) để dùng token cá nhân gọi Inference API ## Cấu trúc thư mục ``` . ├── app.py # Ứng dụng Gradio chính ├── model.json # Cấu hình model (id, tham số mặc định) ├── systemprompt.md # System prompt mặc định ├── requirements.txt # Thư viện Python cần thiết ├── public/ │ └── index.html # Banner HTML nhúng vào giao diện └── README.md ``` ## Chạy local ```bash pip install -r requirements.txt python app.py ``` Sau đó mở trình duyệt tại địa chỉ mà Gradio in ra (mặc định `http://127.0.0.1:7860`). ## Deploy lên Hugging Face Spaces 1. Tạo Space mới, chọn SDK **Gradio**. 2. Upload toàn bộ các file trong thư mục này (giữ nguyên cấu trúc, kể cả thư mục `public/`). 3. Space sẽ tự cài `requirements.txt` và chạy `app.py`. 4. Người dùng bấm nút **Sign in with Hugging Face** để đăng nhập, token của họ sẽ được dùng để gọi Inference API tới model. > Nếu muốn dùng token cố định thay vì bắt user đăng nhập, có thể set biến môi trường > `HF_TOKEN` trong **Space secrets** và sửa `app.py` để đọc `os.environ["HF_TOKEN"]` > thay cho `hf_token.token`. ## Tuỳ chỉnh - **Đổi model**: sửa `model_id` trong `model.json`. - **Đổi system prompt mặc định**: sửa nội dung `systemprompt.md`. - **Đổi giao diện banner**: sửa `public/index.html`. - **Đổi màu/theme**: sửa biến `custom_css` và `gr.themes.Soft(primary_hue=...)` trong `app.py`. ## Lưu ý về lịch sử chat Lịch sử được lưu bằng `window.localStorage` với key `luau_chat_history`, nghĩa là: - Chỉ lưu trên **trình duyệt hiện tại**, không đồng bộ giữa các máy/thiết bị. - Không xoá khi đóng tab hay reload trang. - Bị xoá nếu người dùng xoá dữ liệu duyệt web (site data) hoặc bấm nút **🗑️ Xoá lịch sử chat**.