--- title: AI Assistant Mahasiswa NVIDIA emoji: ๐ŸŽ“ colorFrom: blue colorTo: indigo sdk: docker app_port: 7860 pinned: false --- # AI Assistant Mahasiswa NVIDIA Aplikasi Hugging Face Spaces berbasis Docker + Gradio untuk: 1. Chat umum mahasiswa. 2. Membuat draft laporan Deep Learning otomatis dari satu atau beberapa file `.ipynb`. 3. Menambahkan **perintah tugas tambahan** sebagai arahan pembuatan laporan. 4. Menampilkan **draft review yang bisa diedit** sebelum menjadi file Word. 5. Export hasil akhir ke Microsoft Word `.docx`. ## File wajib di root repo ```txt app.py requirements.txt README.md Dockerfile ``` ## Secret wajib Tambahkan di **Settings > Variables and secrets > New secret**: ```txt NVIDIA_API_KEY=isi_api_key_nvidia_kamu ``` ## Variable disarankan Tambahkan di **Settings > Variables and secrets > New variable**: ```txt NVIDIA_MODEL=qwen/qwen3-coder-480b-a35b-instruct NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1 ``` ## Cara Pakai Fitur Laporan 1. Jalankan notebook `.ipynb` terlebih dahulu agar output/grafik tersimpan. 2. Upload satu atau beberapa file `.ipynb`. 3. Isi data cover laporan. 4. Isi **Perintah Tugas Tambahan** bila ada instruksi dari dosen. 5. Klik **1. Buat Draft Review**. 6. Edit draft di kotak **Review & Edit Isi Laporan**. 7. Setelah sesuai, klik **2. Export ke DOCX Setelah Edit**. 8. Download file `.docx`. ## Catatan - Jangan tulis API key langsung di `app.py`. - Simpan API key di Hugging Face Secret bernama `NVIDIA_API_KEY`. - AI diarahkan agar tidak mengarang angka, akurasi, dataset, atau hasil evaluasi yang tidak ada di notebook. - Placeholder gambar seperti `[GAMBAR_OUTPUT_1_1]` akan otomatis diganti menjadi gambar/grafik asli saat export DOCX, selama placeholder tidak dihapus dari draft. ## Multi IPYNB Versi ini mendukung upload beberapa file `.ipynb` sekaligus. Alur: ```txt Upload beberapa .ipynb โ†“ Semua kode/output notebook dibaca โ†“ AI membuat satu draft laporan gabungan โ†“ User review dan edit โ†“ Export ke DOCX ``` Catatan: - Cocok untuk tugas yang terdiri dari beberapa notebook. - Jika ingin laporan lebih rapi, isi kolom **Perintah Tugas Tambahan** untuk menjelaskan urutan notebook atau fokus pembahasan. ## Update v7 Perbaikan penting: 1. Export DOCX setelah edit sudah diperbaiki. - Karakter NULL/control character dari output notebook dibersihkan otomatis. - Error `All strings must be XML compatible` sudah ditangani. 2. Kode dan output tidak lagi dipangkas saat masuk draft dan DOCX. - Fungsi pemotongan hanya dipakai untuk prompt AI agar request tidak terlalu berat. - Draft review menampilkan kode/output lebih lengkap. 3. Penjelasan dibuat lebih panjang. - Prompt laporan meminta 2 sampai 4 paragraf pendek untuk setiap bagian. - `max_tokens` untuk penjelasan tiap bagian dinaikkan. Catatan: Jika output notebook sangat besar, proses export DOCX bisa lebih lama karena semua kode/output dimasukkan. ## Update v8: AI Bisa Edit Draft Setelah draft laporan muncul, user bisa memberi instruksi ke AI untuk: 1. Menambahkan bagian baru, misalnya: - Tambahkan kesimpulan dan saran. - Tambahkan abstrak. - Tambahkan pembahasan evaluasi model. - Tambahkan ringkasan hasil training. 2. Mengubah draft, misalnya: - Ubah penjelasan bagian training agar lebih detail. - Rapikan bahasa supaya lebih formal. - Perjelas bagian confusion matrix. - Ubah gaya bahasa agar mirip laporan praktikum. Alur baru: ```txt Upload .ipynb โ†“ Buat Draft Review โ†“ Edit manual atau isi Perintah Edit AI โ†“ Klik Minta AI Tambahkan/Ubah Draft โ†“ Review lagi โ†“ Export ke DOCX ``` Catatan: - Mode **Tambah bagian baru di akhir** lebih aman untuk draft panjang. - Mode **Ubah draft penuh sesuai instruksi** cocok untuk draft pendek/sedang. - Setelah AI mengubah draft, tetap cek lagi sebelum export ke DOCX. ## Update v9: Terhubung ke Telegram Versi ini menambahkan fitur **Telegram Bot**. Fitur Telegram: 1. User bisa chat dengan AI lewat Telegram. 2. Bot mendukung perintah: - `/start` atau `/help` - `/reset` - `/status` 3. Riwayat chat Telegram disimpan sementara di memori aplikasi. 4. Akses bot bisa dibatasi dengan `TELEGRAM_ALLOWED_USER_IDS`. 5. Untuk upload `.ipynb`, review draft laporan, edit draft, dan export DOCX tetap menggunakan UI Hugging Face. ### Secret Telegram Wajib Tambahkan di **Settings > Variables and secrets > New secret**: ```txt TELEGRAM_BOT_TOKEN=token_bot_dari_botfather ``` ### Variable Telegram Opsional Tambahkan di **Settings > Variables and secrets > New variable**: ```txt TELEGRAM_ENABLED=true TELEGRAM_ALLOWED_USER_IDS=123456789,987654321 TELEGRAM_MAX_HISTORY=8 ``` Jika `TELEGRAM_ALLOWED_USER_IDS` dikosongkan, semua user yang menemukan bot dapat menggunakannya. ### Cara Membuat Bot Telegram 1. Buka Telegram. 2. Cari **@BotFather**. 3. Kirim `/newbot`. 4. Ikuti instruksi sampai mendapatkan token bot. 5. Simpan token di Hugging Face sebagai Secret `TELEGRAM_BOT_TOKEN`. 6. Restart Space. ### Catatan Bot Telegram menggunakan long polling (`getUpdates`), jadi tidak perlu setting webhook. Jika Space tidur/sleep, bot Telegram juga berhenti sampai Space aktif lagi. ## Update v10: Telegram Bisa Upload IPYNB + Tombol Menu Versi ini menambahkan fitur Telegram yang lebih lengkap. Fitur Telegram: 1. Ada ucapan selamat datang saat user membuka bot. 2. User tidak perlu mengetik command `/`. 3. Menu Telegram memakai tombol: - ๐Ÿ‘‹ Menu - ๐Ÿ’ฌ Chat AI - ๐Ÿ“„ Laporan IPYNB - ๐Ÿ“ Perintah Tugas - โœ… Buat Draft - โž• Tambah Bagian - โ™ป๏ธ Ubah Draft - ๐Ÿ“ฅ Export DOCX - ๐Ÿงพ Set Cover - ๐Ÿงน Reset 4. User bisa upload satu atau beberapa file `.ipynb` langsung melalui Telegram. 5. Bot bisa membuat draft laporan dari file `.ipynb`. 6. Draft lengkap dikirim sebagai file `.txt` untuk review. 7. User bisa minta AI menambahkan bagian atau mengubah draft lewat Telegram. 8. Bot bisa export hasil akhir menjadi `.docx` dan mengirimkannya kembali ke Telegram. ### Cara Pakai Telegram 1. Buka bot Telegram. 2. Tekan Start. 3. Tekan tombol **๐Ÿ“„ Laporan IPYNB**. 4. Upload satu atau beberapa file `.ipynb`. 5. Tekan **๐Ÿ“ Perintah Tugas** jika ingin memasukkan instruksi dosen. 6. Tekan **๐Ÿงพ Set Cover** jika ingin mengatur data cover. 7. Tekan **โœ… Buat Draft**. 8. Review draft TXT yang dikirim bot. 9. Tekan **โž• Tambah Bagian** atau **โ™ป๏ธ Ubah Draft** jika ingin AI memperbaiki draft. 10. Tekan **๐Ÿ“ฅ Export DOCX** untuk mendapatkan file Word. ### Variable Default Cover Telegram Opsional, bisa ditambahkan sebagai Variable di Hugging Face: ```txt TELEGRAM_REPORT_TITLE=Laporan Deep Learning TELEGRAM_REPORT_NAMA=Nama Kamu TELEGRAM_REPORT_NIM=235530xxxx TELEGRAM_REPORT_DOSEN=Nama Dosen TELEGRAM_REPORT_KELAS=ILB TELEGRAM_REPORT_ANGGOTA= TELEGRAM_REPORT_PRODI=Program Studi Teknik Informatika TELEGRAM_REPORT_KAMPUS=Politeknik Caltex Riau TELEGRAM_REPORT_TAHUN=2025 ``` Catatan: - Sesi Telegram disimpan di memori Space. Jika Space restart/sleep, user perlu upload ulang file `.ipynb`. - Untuk draft sangat panjang, bot akan mengirim draft lengkap sebagai dokumen `.txt`. - Review paling nyaman tetap lewat UI Hugging Face, tapi Telegram sudah bisa membuat draft, edit AI, dan export DOCX. ## Update v11: Fix Telegram Read Timeout Versi ini memperbaiki error Telegram seperti: ```txt HTTPSConnectionPool(host='api.telegram.org', port=443): Read timed out ``` Perbaikan: 1. Timeout Telegram dinaikkan. 2. Ditambahkan retry otomatis. 3. `getUpdates`, `getMe`, `sendMessage`, dan `deleteWebhook` lebih tahan saat koneksi Telegram lambat. Variable opsional baru: ```txt TELEGRAM_REQUEST_TIMEOUT=60 TELEGRAM_RETRY_COUNT=3 ``` Jika masih sering timeout, coba naikkan: ```txt TELEGRAM_REQUEST_TIMEOUT=90 TELEGRAM_RETRY_COUNT=5 ```