Hub documentation
Ikhtisar Spaces
Ikhtisar Spaces
Hugging Face Spaces memudahkan Anda membuat dan mendeploy demo berbasis ML dalam hitungan menit. Tonton video berikut untuk pengenalan singkat tentang Spaces:
Pada bagian-bagian berikut, Anda akan mempelajari dasar-dasar pembuatan Space, konfigurasinya, dan penerapan kode Anda ke dalamnya.
Membuat Space baru
Untuk membuat Space baru, kunjungi halaman utama Spaces dan klik Buat Space baru. Selain memilih nama untuk Space Anda, memilih lisensi opsional, dan mengatur visibilitas Space Anda (publik, terlindungi, atau privat), Anda akan diminta untuk memilih SDK untuk Space Anda. Hub menawarkan tiga opsi SDK: Gradio, Docker, dan HTML statis. Jika Anda memilih “Gradio” sebagai SDK Anda, Anda akan diarahkan ke repo baru yang menampilkan halaman berikut:
Static Spaces gratis untuk semua orang. Gradio dan Docker Spaces berjalan di compute dan memerlukan paket berbayar untuk dibuat: PRO untuk akun pribadi, Team atau Enterprise untuk organisasi. Akun pribadi gratis yang berstatus baik masih dapat menampung hingga 2 Gradio Spaces yang berjalan di ZeroGPU.

Di balik layar, Spaces menyimpan kode Anda di dalam repositori git, sama seperti repositori model dan dataset. Berkat hal ini, alat-alat yang sama yang kami gunakan untuk semua repositori lain di Hub (git dan git-xet) juga berfungsi untuk Spaces. Ikuti alur yang sama seperti pada Mulai dengan Repositori untuk menambahkan file ke Space Anda. Setiap kali commit baru didorong, Space akan secara otomatis dibangun ulang dan dimulai ulang.
Untuk tutorial langkah demi langkah dalam membuat Space pertama Anda, lihat panduan di bawah ini:
Visibilitas Space
Anda dapat mengatur visibilitas Space dari tab Pengaturan menggunakan dropdown visibilitas. Spaces mendukung tiga tingkat visibilitas: public, protected, dan private.
Visibilitas terlindungi merupakan bagian dari paket PRO atau Team & Enterprise.
| Publik | Dilindungi | Privat | |
|---|---|---|---|
| Kode sumber di Hub | Terlihat oleh semua orang | Privat (hanya pemilik/kolaborator) | Privat (hanya pemilik/kolaborator) |
| Aplikasi dapat diakses melalui URL embed | Ya | Ya | Tidak |
| Aplikasi dapat diakses melalui domain kustom | Ya | Ya | Tidak |
| Bisa dikloning oleh orang lain | Ya | Tidak | Tidak |
Spaces Publik sepenuhnya terbuka: siapa pun dapat melihat kode sumber, mengakses aplikasi yang berjalan, dan mengkloning repositori.
Spaces Terlindungi menjaga kode sumbernya tetap privat di Hub — hanya pemilik dan kolaborator yang dapat melihat atau mengkloning repositori. Namun, aplikasi yang berjalan tetap dapat diakses secara publik melalui URL embed-nya (https://<space-subdomain>.hf.space) atau melalui domain kustom jika telah dikonfigurasi. Hal ini sangat berguna untuk menghosting situs web atau aplikasi tanpa mempublikasikan kode sumbernya.
Spaces Private sepenuhnya bersifat privat: kode sumber dan aplikasi yang berjalan hanya dapat diakses oleh pemilik dan kolaborator. Space tersebut tidak akan muncul di hasil pencarian dan pengguna lain akan menerima error 404 saat mengunjungi URL-nya.
Sumber daya perangkat keras
Setiap lingkungan Spaces dibatasi pada 16GB RAM, 2 inti CPU, dan 50GB ruang disk (tidak persisten) secara default. Perangkat keras CPU Basic default tidak memiliki biaya per jam, tetapi membuat Space yang berjalan di compute (Gradio atau Docker) memerlukan paket berbayar, sedangkan Static Spaces gratis untuk semua orang. Anda dapat meningkatkan ke perangkat keras yang lebih baik, termasuk berbagai akselerator GPU, dengan harga yang kompetitif. Untuk meminta peningkatan, silakan klik tombol Settings di Space Anda dan pilih lingkungan perangkat keras yang Anda inginkan.
| Perangkat Keras | CPU | Memori | Memori GPU | Harga per Jam |
|---|---|---|---|---|
| Dasar CPU | 2 vCPU | 16 GB | GRATIS | |
| Upgrade CPU | 8 vCPU | 32 GB | $0.03 | |
| Nvidia T4 - kecil | 4 vCPU | 15 GB | 16 GB | $0.40 |
| Nvidia T4 - sedang | 8 vCPU | 30 GB | 16 GB | $0.60 |
| 1x Nvidia L4 | 8 vCPU | 30 GB | 24 GB | $0.80 |
| 4x Nvidia L4 | 48 vCPU | 186 GB | 96 GB | $3.80 |
| 1x Nvidia L40S | 8 vCPU | 62 GB | 48 GB | $1.80 |
| 4x Nvidia L40S | 48 vCPU | 382 GB | 192 GB | $8.30 |
| 8x Nvidia L40S | 192 vCPU | 1534 GB | 384 GB | $23.50 |
| 1x Nvidia RTX PRO 6000 | 23 vCPU | 256 GB | 96 GB | $2.75 |
| 2x Nvidia RTX PRO 6000 | 46 vCPU | 512 GB | 192 GB | $5.50 |
| 4x Nvidia RTX PRO 6000 | 92 vCPU | 1024 GB | 384 GB | $11.00 |
| 8x Nvidia RTX PRO 6000 | 184 vCPU | 2048 GB | 768 GB | $22.00 |
| Nvidia A10G - kecil | 4 vCPU | 15 GB | 24 GB | $1.00 |
| Nvidia A10G - besar | 12 vCPU | 46 GB | 24 GB | $1.50 |
| 2x Nvidia A10G - besar | 24 vCPU | 92 GB | 48 GB | $3.00 |
| 4x Nvidia A10G - besar | 48 vCPU | 184 GB | 96 GB | $5.00 |
| Nvidia A100 - besar | 12 vCPU | 142 GB | 80 GB | $2.50 |
| 4x Nvidia A100 | 48 vCPU | 568 GB | 320 GB | $10.00 |
| 8x Nvidia A100 | 96 vCPU | 1136 GB | 640 GB | $20.00 |
Catatan: Temukan informasi harga yang lebih detail dan komprehensif di halaman harga kami.
Apakah Anda memiliki Space yang luar biasa tetapi membutuhkan bantuan untuk menutupi biaya peningkatan perangkat keras? Kami senang membantu mereka yang memiliki Space inovatif, jadi silakan ajukan permohonan hibah GPU komunitas menggunakan tautan di tab Settings Space Anda dan lihat apakah Space Anda terpilih!
Baca selengkapnya di bagian khusus kami tentang Spaces GPU Upgrades dan Spaces Disk Usage & Storage.

Mengelola rahasia dan variabel lingkungan
Jika aplikasi Anda memerlukan variabel lingkungan (misalnya, kunci rahasia atau token), jangan menuliskannya secara langsung di dalam aplikasi Anda! Sebaliknya, buka halaman Pengaturan dari repositori Space Anda dan tambahkan variabel atau rahasia baru. Gunakan variabel jika Anda perlu menyimpan nilai konfigurasi yang tidak sensitif, dan gunakan rahasia untuk menyimpan token akses, kunci API, atau nilai dan kredensial sensitif lainnya.

Anda dapat menggunakan:
- Variables jika Anda perlu menyimpan nilai konfigurasi yang tidak sensitif. Variabel ini dapat diakses dan dilihat secara publik, serta akan ditambahkan secara otomatis ke Spaces yang diduplikasi dari milik Anda.
- Secrets untuk menyimpan token akses, kunci API, atau nilai dan kredensial sensitif lainnya. Mereka bersifat privat dan nilainya tidak dapat dibaca dari halaman pengaturan Space setelah diatur. Mereka tidak akan ditambahkan ke Spaces yang diduplikasi dari repositori Anda.
Akses ke rahasia dan variabel berbeda tergantung pada SDK Space Anda:
- Untuk Static Spaces, keduanya tersedia melalui JavaScript sisi klien di
window.huggingface.variables - Untuk Docker Spaces, lihat manajemen lingkungan dengan Docker
Untuk Spaces lainnya, keduanya diekspos ke aplikasi Anda sebagai variabel lingkungan. Berikut adalah contoh yang sangat sederhana untuk mengakses variabel MODEL_REPO_ID yang telah dideklarasikan sebelumnya di Python (hal yang sama berlaku untuk secrets):
import os
print(os.getenv('MODEL_REPO_ID'))Pemilik Spaces akan diberi peringatan ketika Spaces Secrets Scanner kami menemukan rahasia yang di-hard-code.
Menduplikasi Space
Menduplikasi Space dapat berguna jika Anda ingin membangun demo baru menggunakan demo lain sebagai template awal. Space yang diduplikasi juga dapat berguna jika Anda ingin memiliki Space Upgraded individual untuk penggunaan Anda dengan inferensi cepat.
Jika Anda ingin menduplikasi Space, Anda dapat mengklik tiga titik di kanan atas space tersebut dan mengklik Duplicate this Space. Setelah Anda melakukan ini, Anda akan dapat mengubah atribut berikut:
- Owner: Space yang diduplikasi dapat berada di bawah akun Anda atau organisasi mana pun yang memiliki akses tulis
- Nama ruang
- Visibilitas: Space bersifat privat secara default. Baca lebih lanjut tentang opsi visibilitas di sini.
- Hardware: Anda dapat memilih hardware tempat Space akan dijalankan. Baca lebih lanjut tentang peningkatan hardware di sini.
- Penyimpanan: Jika repo asli menggunakan storage bucket, Anda akan diminta untuk mengonfigurasi penyimpanan. Baca lebih lanjut tentang penggunaan disk dan penyimpanan di sini.
- Secrets dan variabel: Jika repo asli telah mengatur beberapa secrets dan variables, Anda dapat mengaturnya saat menduplikasi repo.
Beberapa Spaces mungkin memiliki variabel lingkungan yang perlu Anda atur. Dalam kasus seperti ini, alur kerja duplikasi akan secara otomatis mengisi variabel Variables publik dari Space sumber, dan memberikan peringatan tentang pengaturan Secrets. Space yang diduplikasi akan menggunakan perangkat keras CPU Basic secara default, tetapi Anda dapat memutakhirkannya kemudian jika diperlukan. Duplikasi mengikuti aturan yang sama dengan pembuatan Space baru: menduplikasi Space Gradio atau Docker memerlukan paket berbayar untuk akun atau organisasi tujuan (dengan pengecualian ZeroGPU free tier yang sama untuk akun pribadi).
Networking
Jika Space Anda perlu membuat permintaan jaringan, Anda dapat membuat permintaan melalui port HTTP dan HTTPS standar (80 dan 443) serta port 8080. Permintaan yang ditujukan ke port lain akan diblokir.
Manajemen siklus hidup
Pada perangkat keras gratis, Space Anda akan “tidur” dan berhenti dieksekusi setelah periode waktu tertentu jika tidak digunakan. Jika Anda ingin Space Anda berjalan tanpa henti, pertimbangkan untuk meningkatkan ke perangkat keras berbayar. Anda juga dapat menjeda Space Anda secara manual dari tab Settings. Space yang dijeda akan berhenti dieksekusi hingga seseorang dengan akses tulis memulai ulang. Waktu jeda tidak ditagihkan.
Variabel lingkungan bawaan
Dalam beberapa kasus, Anda mungkin tertarik untuk memiliki akses programatik ke nama penulis atau repositori Space. Fitur ini sangat berguna ketika Anda mengharapkan pengguna untuk menduplikasi Space Anda. Untuk membantu hal ini, Spaces mengekspos berbagai variabel lingkungan pada saat runtime (lihat juga variabel lingkungan bawaan di Jobs). Diberikan sebuah Space osanseviero/i-like-flan:
ACCELERATOR: Jenis akselerator yang tersedia (misalnya,t4-medium,a10g-small), ataunoneuntuk Spaces yang hanya menggunakan CPU.CPU_CORES: 4MEMORY: 15GiSPACE_AUTHOR_NAME: osansevieroSPACE_REPO_NAME: i-like-flanSPACE_TITLE: I Like Flan (dinyatakan dalam file README)SPACE_ID:osanseviero/i-like-flanSPACE_HOST:osanseviero-i-like-flan.hf.spaceSPACE_CREATOR_USER_ID:6032802e1f993496bc14d9e3- Ini adalah ID pengguna yang awalnya membuat Space. Informasi ini berguna jika Space berada di bawah organisasi. Anda dapat memperoleh informasi pengguna dengan panggilan API kehttps://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview.SPACE_SIGNING_SECRET: rahasia acak yang unik untuk Space Anda, yang diekspos sebagai secret. Nilainya tetap sama di antara restart, rebuild, dan replika, sehingga Anda dapat menggunakannya untuk menandatangani hal-hal seperti cookie, state OAuth, atau token CSRF. Untuk menggunakan nilai Anda sendiri, tambahkan secret bernamaSPACE_SIGNING_SECRETdi pengaturan Space Anda.
Jika OAuth diaktifkan untuk Space Anda, variabel berikut juga akan tersedia:
OAUTH_CLIENT_ID: ID klien aplikasi OAuth Anda (publik)OAUTH_CLIENT_SECRET: rahasia klien aplikasi OAuth AndaOAUTH_SCOPES: scope yang dapat diakses oleh aplikasi OAuth Anda. Saat ini, ini selalu"openid profile".OPENID_PROVIDER_URL: URL dari penyedia OpenID. Metadata OpenID akan tersedia di{OPENID_PROVIDER_URL}/.well-known/openid-configuration.
Clone Repositori
Anda dapat dengan mudah meng-kloning repo Space Anda secara lokal. Mulailah dengan mengklik menu dropdown di bagian kanan atas halaman Space Anda:

Pilih “Clone repository”, lalu Anda dapat mengikuti instruksi untuk meng-clone repo Space ke mesin lokal Anda menggunakan HTTPS atau SSH.


Menghubungkan Model dan Dataset di Hub
Anda dapat menampilkan semua model dan dataset yang ditautkan oleh Space Anda dengan menambahkan identifikatornya di metadata README Space Anda. Untuk melakukannya, Anda dapat mendefinisikannya di bawah kunci models dan datasets. Selain mencantumkan artefak dalam file README, Anda juga dapat mencatatnya di file .py, .ini atau .html mana pun. Kami akan memarsekannya secara otomatis!
Berikut adalah contoh yang menghubungkan dua model dari sebuah space:
title: My lovely space
emoji: 🤗
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
models:
- reach-vb/musicgen-large-fp16-endpoint
- reach-vb/wav2vec2-large-xls-r-1B-common_voice7-lt-ft