Spaces:
Sleeping
Sleeping
| 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 | |
| ``` | |