# 🟧 Spaces'te Label Studio

[Label Studio](https://labelstud.io), birçok farklı veri türünü etiketleme, anotasyon ve keşfetme için kullanılan [açık kaynaklı bir veri etiketleme platformudur](https://github.com/heartexlabs/label-studio). Ayrıca Label Studio, yeni model eğitimi, aktif öğrenme, denetimli öğrenme ve birçok diğer eğitim tekniği için kullanılabilen güçlü bir [makine öğrenmesi arayüzü](https://labelstud.io/guide/ml.html) içerir.

Bu kılavuz, veri etiketleme ve anotasyon için Label Studio'yu Hugging Face Hub üzerinde nasıl dağıtacağınızı öğretecektir. Label Studio'nun varsayılan yapılandırmasını, Docker kullanılarak tamamen Hub üzerinde barındırılan, gösterim ve değerlendirme amaçlı bağımsız bir uygulama olarak kullanabilir veya kendi veritabanınızı ve bulut depolamanızı bağlayarak Spaces üzerinde barındırılan, tam özellikli ve üretim ortamına hazır bir uygulama oluşturabilirsiniz.

## ⚡️ Label Studio'yu Spaces'te dağıtın

Label Studio'yu birkaç tıklamayla Spaces üzerinde dağıtabilirsiniz:

  

Spaces, şunları tanımlamanızı gerektirir:

* Bir **Sahip**: Kişisel hesabınız veya üyesi olduğunuz bir kuruluş.

* Bir **Space adı**: Space oluşturduğunuz hesap içindeki Space'in adı.

* Space'in yalnızca size veya organizasyonunuza görünür olmasını istiyorsanız **Görünürlük**: _özel_, Label Studio API'sini kullanan diğer kullanıcılar veya uygulamalar tarafından görünür olmasını istiyorsanız _herkese açık_ (önerilen).

## 🚀 Varsayılan Yapılandırmayı Kullanma

Varsayılan olarak, Label Studio, uygulama veritabanı için yapılandırma, hesap kimlik bilgileri ve proje bilgilerini depolamak üzere yerel depolamayı kullanan bir yapılandırmayla Spaces'te yüklenir. Etiketleme görevleri ve veri öğeleri de yerel depolamada tutulur.

> [!WARNING]
> Hugging Face Spaces'te depolama varsayılan olarak geçicidir. Verilerinizi yeniden başlatmalar arasında kalıcı hale getirmek için bir [Storage Bucket](./storage-buckets) ekleyin — aşağıdaki [kalıcılık bölümüne](#enable-persistence-with-hf-storage-buckets) bakın.

Label Studio'yu başlattıktan sonra standart giriş ekranı görüntülenir. E-posta adresinizi kullanarak yeni bir hesap oluşturup yeni kimlik bilgilerinizle oturum açarak başlayabilirsiniz. Oturum açtıktan sonra belirli aralıklarla, Label Studio depolamanın geçici olduğunu ve Space'iniz yeniden başlatılırsa verilerin kaybedilebileceği konusunda sizi uyarır. Ayrıca, verilerinizi etiketlemeye başlamak için yeni bir proje oluşturmanızı öneren, Label Studio'nun yardımsever maskotu Heidi'den bir istek de hazır olarak karşınıza çıkar. Başlamak için, duygu analizi için bir not arayüzü oluşturma rehberini içeren Label Studio ["Zero to One" eğitimini](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/) inceleyin.

## 🛠️ Üretime Hazır Bir Label Studio Örneği Yapılandırma

Space'inizi üretim ortamına hazır hale getirmek için üç yapılandırma değişikliği yapmanız gerekir:

* Yeni hesapların sınırsız oluşturulmasını devre dışı bırakın.

* Kalıcılığı etkinleştirmek için bir [Storage Bucket](./storage-buckets) veya harici bir veritabanı ekleyin.

* İsteğe bağlı olarak, etiketleme görevleri için bulut depolama ekleyin.

### Yeni Hesapların Kısıtsız Oluşturulmasını Devre Dışı Bırak

Label Studio'daki varsayılan yapılandırma, uygulamanızın URL'sine sahip herkesin sınırsız şekilde yeni hesap oluşturmasına izin verir. Space'inizin **Ayarlar** bölümüne aşağıdaki yapılandırma gizli anahtarlarını ekleyerek [kayıtları kısıtlayabilirsiniz](https://labelstud.io/guide/signup.html#Restrict-signup-for-local-deployments).

* `LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK`: Bu değeri `true` olarak ayarlamak, kısıtsız hesap oluşturma işlevini devre dışı bırakır.

* `LABEL_STUDIO_USERNAME`: Label Studio Space'inizde ilk kullanıcı olarak kullanacağınız hesabın kullanıcı adıdır. Geçerli bir e-posta adresi olmalıdır.

* `LABEL_STUDIO_PASSWORD`: İlk kullanıcı hesabıyla ilişkilendirilecek şifre.

Bu ayarları uygulamak için Space'i yeniden başlatın. Giriş ekranından yeni hesap oluşturma özelliği devre dışı bırakılacaktır. Yeni hesaplar oluşturmak için Label Studio uygulamasındaki `Organization` ayarlarında yeni kullanıcılar davet etmeniz gerekir.

### HF Storage Buckets ile Kalıcılığı Etkinleştirin

Varsayılan olarak bu Space, tüm proje yapılandırmasını ve veri etiketlemelerini SQLite ile yerel depolamada saklar. Space sıfırlanırsa, Space içindeki tüm yapılandırma ve etiketleme verileri kaybolur.

Kalıcılığı etkinleştirmenin en basit yolu, [Storage Bucket](./storage-buckets) eklemektir; bu, kalıcı nesne depolamayı doğrudan Space'e bağlar. Label Studio, SQLite veritabanını ve medya yüklemelerini bağlı kovaya yazar, böylece projeler ve etiketlemeler yeniden başlatmalardan sonra korunur.

1. **Varlık oluşturun:**

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

2. Bunu Space Ayarları → Storage Buckets bölümüne **bağlayın**, mount yolu `/data`.

3. **İki Space Değişkeni ayarlayın:**

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

4. Space'i **fabrika yeniden kurulumu** ile sıfırlayın.

> [!TIP]
> Kullanıcı oturumlarının yeniden başlatmalar arasında canlı kalmasını sağlamak için bir `SECRET_KEY` Space Secret ayarlayın. Bu yapılmazsa, Label Studio her açılışta rastgele bir anahtar oluşturur ve yeniden başlatmada tüm kullanıcılar oturumdan çıkar.

#### Bunu sizin yerine bir kodlama ajanı yapsın

Space ayarlarında gezinmek istemiyorsanız, `huggingface_hub` erişimine sahip bir kodlama ajanından Space'i sizin için hazırlamasını isteyebilirsiniz. Ona Space kimliğinizi ve varlık adı (bucket name) verin; ajan aşağıdaki eşdeğerini çalıştırabilir:

```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)
```

Alanları ve `huggingface_hub` ile hacim bağlamaları hakkında daha fazla bilgi için [`manage-spaces` kılavuzuna](/docs/huggingface_hub/guides/manage-spaces) bakın.

### Postgres ile Kalıcılığı Etkinleştirin

Daha ağır çok kullanıcılı dağıtımlar için, tüm proje ve etiketleme ayarlarının korunmasını garanti altına almak üzere [uzantı bir Postgres veritabanını alanınıza bağlayarak](https://labelstud.io/guide/storedata.html#PostgreSQL-database) kalıcılığı etkinleştirebilirsiniz.

Aşağıdaki gizli değişkenleri, kendi barındırdığınız Postgres örneğinizle eşleşecek şekilde ayarlayın. Veritabanı hizmetinizle ilgili bilgilerin Spaces tanımınızda herkese açık olarak sızmasını önlemek için bu değişkenleri gizli olarak ayarlamayı şiddetle öneririz.

* `DJANGO_DB`: Bunu `default` olarak ayarlayın.

* `POSTGRE_NAME`: Bunu Postgres veritabanının adıyla eşleştirin.

* `POSTGRE_USER`: Bunu Postgres kullanıcı adıyla ayarlayın.

* `POSTGRE_PASSWORD`: Bunu Postgres kullanıcı şifreniz olarak ayarlayın.

* `POSTGRE_HOST`: Bunu, Postgres veritabanınızın çalıştığı ana makineye (host) ayarlayın.

* `POSTGRE_PORT`: Bunu, Postgres veritabanınızın çalıştığı porta ayarlayın.

* `STORAGE_PERSISTENCE`: Geçici depolama uyarısını kaldırmak için bunu `1` olarak ayarlayın.

Bu ayarları uygulamak için Space'i yeniden başlatın. Kullanıcı, proje ve etiketleme bilgileri veritabanında saklanacak ve Space yeniden başlatıldığında veya sıfırlandığında Label Studio tarafından yeniden yüklenecektir.

### Bulut Depolamayı Etkinleştir

Varsayılan olarak, bu Space için etkin olan tek veri depolama yöntemi yereldir. Space sıfırlanırsa tüm veriler kaybolur. Kalıcı depolamayı etkinleştirmek için bir [bulut depolama bağlantı noktası](https://labelstud.io/guide/storage.html) etkinleştirmeniz gerekir. Uygun bulut bağlantı noktasını seçin ve onun için gizli bilgileri yapılandırın.

#### Amazon S3

* `STORAGE_TYPE`: Bunu `s3` olarak ayarlayın.

* `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`: Bunu boş bir dize olarak ayarlayın.

#### Google Cloud Storage

* `STORAGE_TYPE`: Bunu `gcs` olarak ayarlayın.

* `STORAGE_GCS_BUCKET_NAME`: `<YOUR_BUCKET_NAME>`

* `STORAGE_GCS_PROJECT_ID`: `<YOUR_PROJECT_ID>`

* `STORAGE_GCS_FOLDER`: Bunu boş bir dize olarak ayarlayın.

* `GOOGLE_APPLICATION_CREDENTIALS`: Bunu `/opt/heartex/secrets/key.json` olarak ayarlayın.

#### Azure Blob Storage

* `STORAGE_TYPE`: Bunu `azure` olarak ayarlayın.

* `STORAGE_AZURE_ACCOUNT_NAME`: `<YOUR_STORAGE_ACCOUNT>`

* `STORAGE_AZURE_ACCOUNT_KEY`: `<YOUR_STORAGE_KEY>`

* `STORAGE_AZURE_CONTAINER_NAME`: `<YOUR_CONTAINER_NAME>`

* `STORAGE_AZURE_FOLDER`: Bunu boş bir dize olarak ayarlayın.

## 🤗 Sonraki Adımlar, Geri Bildirim ve Destek

Label Studio ile başlamak için, örnek bir duygu analizi etiketleme projesini adım adım anlatan Label Studio ["Zero to One" eğitimini](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/) inceleyin. Label Studio ve Label Studio topluluğuyla ilgili kapsamlı bir kaynak setine [Label Studio Ana Sayfası](https://labelstud.io)'nda erişebilirsiniz. Bu kaynaklar arasında [tam dokümantasyon](https://labelstud.io/guide/), farklı etiketleme arayüzlerini denemek için bir [etkileşimli oyun alanı](https://labelstud.io/playground/) ve [Label Studio Slack Topluluğu](https://slack.labelstudio.heartex.com/?source=spaces)'na katılmak için bağlantılar yer alır.

