# 🟧 Label Studio di Spaces

[Label Studio](https://labelstud.io) adalah [platform pelabelan data open-source](https://github.com/heartexlabs/label-studio) untuk melabeli, meng anotasi, dan mengeksplorasi berbagai jenis data. Selain itu, Label Studio mencakup [antarmuka machine learning](https://labelstud.io/guide/ml.html) yang kuat yang dapat digunakan untuk pelatihan model baru, active learning, supervised learning, dan banyak teknik pelatihan lainnya.

Panduan ini akan mengajarkan Anda cara mendeploy Label Studio untuk pelabelan dan anotasi data di dalam Hugging Face Hub. Anda dapat menggunakan konfigurasi bawaan Label Studio sebagai aplikasi mandiri yang di-host sepenuhnya di Hub menggunakan Docker untuk keperluan demonstrasi dan evaluasi, atau Anda dapat menempelkan database dan penyimpanan cloud Anda sendiri untuk meng-host aplikasi produksi yang lengkap dan siap pakai di Spaces.

## ⚡️ Deploy Label Studio di Spaces

Anda dapat mendeploy Label Studio di Spaces hanya dengan beberapa klik:

  

Spaces mengharuskan Anda untuk mendefinisikan:

* Sebuah **Owner**: akun pribadi Anda atau organisasi yang Anda ikuti.

* **Nama Space**: nama Space di dalam akun tempat Anda membuat Space.

* **Visibility**: _private_ jika Anda ingin Space hanya terlihat oleh Anda atau organisasi Anda, atau _public_ jika Anda ingin Space terlihat oleh pengguna atau aplikasi lain yang menggunakan Label Studio API (disarankan).

## 🚀 Menggunakan Konfigurasi Default

Secara default, Label Studio diinstal di Spaces dengan konfigurasi yang menggunakan penyimpanan lokal untuk basis data aplikasi guna menyimpan konfigurasi, kredensial akun, dan informasi proyek. Tugas penandaan dan item data juga disimpan di penyimpanan lokal.

> [!WARNING]
> Penyimpanan di Hugging Face Spaces bersifat sementara secara default. Untuk mempertahankan data Anda di antara restart, hubungkan [Storage Bucket](./storage-buckets) — lihat [bagian persistensi](#enable-persistence-with-hf-storage-buckets) di bawah.

Setelah meluncurkan Label Studio, Anda akan ditampilkan layar login standar. Anda dapat memulai dengan membuat akun baru menggunakan alamat email Anda dan masuk dengan kredensial baru Anda. Secara berkala setelah masuk, Label Studio akan memperingatkan Anda bahwa penyimpanan bersifat sementara dan data dapat hilang jika Space Anda dimulai ulang. Anda juga akan diberi prompt dari Heidi, maskot Label Studio yang membantu, untuk membuat proyek baru agar dapat mulai memberi label pada data Anda. Untuk memulai, lihat tutorial Label Studio ["Zero to One"](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/) yang berisi panduan tentang cara membangun antarmuka anotasi untuk analisis sentimen.

## 🛠️ Mengonfigurasi Instance Label Studio yang Siap Produksi

Untuk membuat Space Anda siap produksi, Anda perlu melakukan tiga perubahan konfigurasi:

* Nonaktifkan pembuatan akun baru tanpa batasan.

* Aktifkan persistensi dengan menempelkan [Storage Bucket](./storage-buckets) atau database eksternal.

* Secara opsional, lampirkan penyimpanan cloud untuk tugas pelabelan.

### Nonaktifkan Penciptaan Akun Baru Tanpa Batasan

Konfigurasi bawaan pada Label Studio memungkinkan pembuatan akun baru tanpa batasan bagi siapa pun yang memiliki URL aplikasi Anda. Anda dapat [membatasi pendaftaran](https://labelstud.io/guide/signup.html#Restrict-signup-for-local-deployments) dengan menambahkan rahasia konfigurasi berikut ke **Pengaturan** Space Anda.

* `LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK`: Mengatur nilai ini ke `true` akan menonaktifkan pembuatan akun tanpa batasan.

* `LABEL_STUDIO_USERNAME`: Ini adalah nama pengguna akun yang akan Anda gunakan sebagai pengguna pertama di Label Studio Space Anda. Harus berupa alamat email yang valid.

* `LABEL_STUDIO_PASSWORD`: Kata sandi yang akan dikaitkan dengan akun pengguna pertama.

Mulai ulang Space untuk menerapkan pengaturan ini. Kemampuan untuk membuat akun baru dari layar login akan dinonaktifkan. Untuk membuat akun baru, Anda perlu mengundang pengguna baru di pengaturan `Organization` dalam aplikasi Label Studio.

### Aktifkan Persistensi dengan HF Storage Buckets

Secara default, Space ini menyimpan semua konfigurasi proyek dan anotasi data di penyimpanan lokal dengan SQLite. Jika Space direset, semua data konfigurasi dan anotasi di dalam Space akan hilang.

Cara termudah untuk mengaktifkan persistensi adalah dengan melampirkan [Storage Bucket](./storage-buckets), yang memuat penyimpanan objek persisten langsung ke dalam Space. Label Studio menulis database SQLite dan unggahan medianya ke dalam bucket yang dimuat, sehingga proyek dan anotasi tetap tersimpan setelah restart.

1. **Buat bucket:**

   ```bash
   hf buckets create <your-namespace>/label-studio-data
   ```

2. **Hubungkan** di Space Settings → Storage Buckets, jalur mount `/data`.

3. **Atur dua Variabel Space:**

   ```
   LABEL_STUDIO_BASE_DATA_DIR=/data
   STORAGE_PERSISTENCE=1
   ```

4. **Factory rebuild** Space.

> [!TIP]
> Setel `SECRET_KEY` sebagai Space Secret untuk menjaga sesi pengguna tetap aktif melintasi restart. Tanpa ini, Label Studio menghasilkan kunci acak pada setiap boot dan semua pengguna akan keluar saat restart.

#### Biarkan agen coding melakukannya untuk Anda

Jika Anda lebih memilih tidak mengklik melalui pengaturan Space, Anda dapat meminta agen coding dengan akses ke `huggingface_hub` untuk menyiapkan Space untuk Anda. Beritahu ID Space dan nama bucket Anda, dan agen tersebut dapat menjalankan ekuivalen dari:

```python
from huggingface_hub import HfApi, Volume

api = HfApi()
space_id = "<your-namespace>/<your-space>"

# Attach the bucket at /data
api.set_space_volumes(
    space_id,
    volumes=[
        Volume(type="bucket", source="<your-namespace>/label-studio-data", mount_path="/data"),
    ],
)

# Tell Label Studio to write its SQLite DB and media into the mounted bucket
api.add_space_variable(space_id, "LABEL_STUDIO_BASE_DATA_DIR", "/data")
api.add_space_variable(space_id, "STORAGE_PERSISTENCE", "1")

# Optional: set a stable SECRET_KEY so sessions survive restarts
api.add_space_secret(space_id, "SECRET_KEY", "<random-string>")

# Factory rebuild so the new mount and variables take effect
api.restart_space(space_id, factory_reboot=True)
```

Lihat panduan [`manage-spaces`](/docs/huggingface_hub/guides/manage-spaces) untuk informasi lebih lanjut tentang pengelolaan spaces dan volume mounts melalui `huggingface_hub`.

### Aktifkan Persistensi dengan Postgres

Untuk deployment multi-user yang lebih berat, Anda dapat mengaktifkan persistensi dengan cara [menghubungkan database Postgres eksternal ke space Anda](https://labelstud.io/guide/storedata.html#PostgreSQL-database), sehingga menjamin bahwa semua pengaturan proyek dan anotasi tetap tersimpan.

Setel variabel rahasia berikut agar sesuai dengan instance Postgres yang Anda host sendiri. Kami sangat merekomendasikan untuk menyetel ini sebagai rahasia guna mencegah kebocoran informasi tentang layanan database Anda ke publik dalam definisi spaces Anda.

* `DJANGO_DB`: Atur ini ke `default`.

* `POSTGRE_NAME`: Atur ini ke nama database Postgres.

* `POSTGRE_USER`: Atur ini ke nama pengguna Postgres.

* `POSTGRE_PASSWORD`: Atur ini ke kata sandi untuk pengguna Postgres Anda.

* `POSTGRE_HOST`: Atur ini ke host tempat database Postgres Anda berjalan.

* `POSTGRE_PORT`: Atur ini ke port tempat database Postgres Anda berjalan.

* `STORAGE_PERSISTENCE`: Setel ini ke `1` untuk menghapus peringatan tentang penyimpanan sementara.

Mulai ulang Space untuk menerapkan pengaturan ini. Informasi tentang pengguna, proyek, dan anotasi akan disimpan di database, dan akan dimuat ulang oleh Label Studio jika space dimulai ulang atau direset.

### Aktifkan Penyimpanan Cloud

Secara default, satu-satunya penyimpanan data yang diaktifkan untuk Space ini adalah lokal. Jika Space direset, semua data akan hilang. Untuk mengaktifkan penyimpanan permanen, Anda harus mengaktifkan [cloud storage connector](https://labelstud.io/guide/storage.html). Pilih cloud connector yang sesuai dan konfigurasikan secrets untuknya.

#### Amazon S3

* `STORAGE_TYPE`: Setel ini ke `s3`.

* `STORAGE_AWS_ACCESS_KEY_ID`: `<YOUR_ACCESS_KEY_ID>`

* `STORAGE_AWS_SECRET_ACCESS_KEY`: `<YOUR_SECRET_ACCESS_KEY>`

* `STORAGE_AWS_BUCKET_NAME`: `<YOUR_BUCKET_NAME>`

* `STORAGE_AWS_REGION_NAME`: `<YOUR_BUCKET_REGION>`

* `STORAGE_AWS_FOLDER`: Setel ini ke string kosong.

#### Google Cloud Storage

* `STORAGE_TYPE`: Setel ini ke `gcs`.

* `STORAGE_GCS_BUCKET_NAME`: `<YOUR_BUCKET_NAME>`

* `STORAGE_GCS_PROJECT_ID`: `<YOUR_PROJECT_ID>`

* `STORAGE_GCS_FOLDER`: Setel ini ke string kosong.

* `GOOGLE_APPLICATION_CREDENTIALS`: Atur ini menjadi `/opt/heartex/secrets/key.json`.

#### Azure Blob Storage

* `STORAGE_TYPE`: Setel ini ke `azure`.

* `STORAGE_AZURE_ACCOUNT_NAME`: `<YOUR_STORAGE_ACCOUNT>`

* `STORAGE_AZURE_ACCOUNT_KEY`: `<YOUR_STORAGE_KEY>`

* `STORAGE_AZURE_CONTAINER_NAME`: `<YOUR_CONTAINER_NAME>`

* `STORAGE_AZURE_FOLDER`: Setel ini ke string kosong.

## 🤗 Langkah Berikutnya, Umpan Balik, dan Dukungan

Untuk memulai dengan Label Studio, lihat [tutorial "Zero to One" Label Studio](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/), yang memandu Anda melalui proyek anotasi analisis sentimen sebagai contoh. Anda dapat menemukan kumpulan sumber daya lengkap tentang Label Studio dan komunitas Label Studio di [Halaman Beranda Label Studio](https://labelstud.io). Ini mencakup [dokumentasi lengkap](https://labelstud.io/guide/), [playground interaktif](https://labelstud.io/playground/) untuk mencoba berbagai antarmuka anotasi, serta tautan untuk bergabung dengan [Komunitas Slack Label Studio](https://slack.labelstudio.heartex.com/?source=spaces).

