# 🟧 Label Studio على Spaces

[Label Studio](https://labelstud.io) هو [منصة مفتوحة المصدر لتوسيم البيانات](https://github.com/heartexlabs/label-studio) تُستخدم لتوسيم البيانات وإضافتها وتصفح أنواع مختلفة من البيانات. بالإضافة إلى ذلك، يتضمن Label Studio [واجهة تعلم آلي قوية](https://labelstud.io/guide/ml.html) يمكن استخدامها لتدريب نماذج جديدة، والتعلم النشط، والتعلم الإشرافي، والعديد من تقنيات التدريب الأخرى.

ستعلّمك هذه الدليل كيفية نشر Label Studio لتوسيم البيانات وتعليقها داخل Hugging Face Hub. يمكنك استخدام التهيئة الافتراضية لـ Label Studio كتطبيق مكتفٍ ذاتيًا يُستضاف بالكامل على Hub باستخدام Docker لأغراض العرض والتقييم، أو يمكنك ربط قاعدة بيانات وتخزين سحابي خاصين بك لاستضافة تطبيق جاهز للإنتاج ومزود بجميع الميزات على Spaces.

## ⚡️ نشر Label Studio على Spaces

يمكنك نشر Label Studio على Spaces بعدد قليل من النقرات فقط:

  

يتطلب منك Spaces تحديد:

* **مالك**: إما حسابك الشخصي أو منظمة أنت عضو فيها.

* اسم **مساحة**: اسم المساحة داخل الحساب الذي تقوم بإنشاء المساحة فيه.

* **الظهور**: _private_ إذا كنت تريد أن يكون المساحة مرئية لك أو لمنظمتك فقط، أو _public_ إذا كنت تريد أن تكون مرئية لمستخدمين أو تطبيقات أخرى تستخدم واجهة برمجة تطبيقات Label Studio (مقترح).

## 🚀 استخدام الإعداد الافتراضي

بشكل افتراضي، يتم تثبيت Label Studio في Spaces بإعداد يستخدم التخزين المحلي لقاعدة بيانات التطبيق لتخزين الإعدادات، وبيانات اعتماد الحساب، ومعلومات المشروع. كما تُحفظ مهام التسمية وعناصر البيانات في التخزين المحلي.

> [!WARNING]
> تخزين البيانات في Hugging Face Spaces مؤقت افتراضيًا. لحفظ بياناتك عبر عمليات إعادة التشغيل، اربط [Storage Bucket](./storage-buckets) — راجع [قسم الاستمرارية](#enable-persistence-with-hf-storage-buckets) أدناه.

بعد تشغيل Label Studio، ستظهر لك شاشة تسجيل الدخول القياسية. يمكنك البدء بإنشاء حساب جديد باستخدام عنوان بريدك الإلكتروني وتسجيل الدخول باستخدام بيانات الاعتماد الجديدة الخاصة بك. بشكل دوري بعد تسجيل الدخول، سيحذّرك Label Studio من أن التخزين مؤقت وأن البيانات قد تُفقد إذا تم إعادة تشغيل مساحة العمل الخاصة بك. كما ستجد رسالة مبدئية من هيدي، الشخصية الرمزية المساعدة لـ Label Studio، تدعوك لإنشاء مشروع جديد لبدء تسمية بياناتك. للبدء، اطّلع على [دليل "من الصفر إلى واحد"](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/) في Label Studio الذي يشرح كيفية بناء واجهة تسمية لتحليل المشاعر.

## 🛠️ تكوين نسخة جاهزة للإنتاج من Label Studio

لجعل مساحة Space جاهزة للإنتاج، ستحتاج إلى إجراء ثلاثة تغييرات في الإعدادات:

* تعطيل إنشاء حسابات جديدة دون قيود.

* فعّل الاستمرارية عن طريق إرفاق [Storage Bucket](./storage-buckets) أو قاعدة بيانات خارجية.

* اختياريًا، أرفق تخزينًا سحابيًا لمهام التسمية.

### تعطيل إنشاء حسابات جديدة دون قيود

تسمح الإعدادات الافتراضية في Label Studio بإنشاء حسابات جديدة دون قيود لأي شخص لديه عنوان URL لتطبيقك. يمكنك [تقييد التسجيل](https://labelstud.io/guide/signup.html#Restrict-signup-for-local-deployments) عن طريق إضافة أسرار الإعداد التالية إلى **الإعدادات** الخاصة بمساحتك.

* `LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK`: ضبط هذه القيمة على `true` سيعطّل إنشاء الحسابات غير المقيدة.

* `LABEL_STUDIO_USERNAME`: هذا هو اسم المستخدم للحساب الذي ستستخدمه كمستخدم أول في مساحة Label Studio الخاصة بك. يجب أن يكون عنوان بريد إلكتروني صالحًا.

* `LABEL_STUDIO_PASSWORD`: كلمة المرور التي ستُربط بحساب المستخدم الأول.

أعد تشغيل المساحة لتطبيق هذه الإعدادات. سيتم تعطيل إمكانية إنشاء حسابات جديدة من شاشة تسجيل الدخول. لإنشاء حسابات جديدة، ستحتاج إلى دعوة مستخدمين جدد في إعدادات `Organization` في تطبيق Label Studio.

### تفعيل الاستمرارية باستخدام دلاء تخزين HF

بشكل افتراضي، يخزّن هذا المساحة (Space) جميع إعدادات المشروع وتعليقات البيانات في التخزين المحلي باستخدام SQLite. إذا تمت إعادة تعيين المساحة، فستُفقد جميع بيانات الإعدادات والتعليقات الموجودة فيها.

أبسط طريقة لتفعيل الاستمرارية هي إرفاق [Storage Bucket](./storage-buckets)، والذي يركّب تخزين الكائنات الدائم مباشرةً داخل المساحة. تكتب Label Studio قاعدة بيانات SQLite الخاصة بها ورفع الوسائط في الدلو المرفق، لذا تبقى المشاريع والتعليقات سليمة بعد إعادة التشغيل.

1. **إنشاء دلو:**

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

2. **أرفقه** في إعدادات المساحة → دلاء التخزين، مع تحديد مسار التركيب `/data`.

3. **اضبط متغيرَي مساحة:**

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

4. إعادة بناء **Factory rebuild** للمساحة.

> [!TIP]
> اضبط سِرّ مساحة `SECRET_KEY` للحفاظ على جلسات المستخدمين نشطة عبر عمليات إعادة التشغيل. بدونه، يولّد Label Studio مفتاحًا عشوائيًا عند كل إقلاع، مما يؤدي إلى تسجيل خروج جميع المستخدمين عند إعادة التشغيل.

#### دع وكيل البرمجة يقوم بذلك نيابةً عنك

إذا كنت تفضّل عدم التنقل عبر إعدادات المساحة، يمكنك طلب المساعدة من وكيل برمجي لديه وصول إلى `huggingface_hub` لإعداد المساحة نيابةً عنك. أخبره بمعرّف مساحتك واسم الدلو، وسيتمكن من تنفيذ ما يعادل:

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

راجع [دليل `manage-spaces`](/docs/huggingface_hub/guides/manage-spaces) لمزيد من المعلومات حول إدارة المساحات وتثبيتات الأحجام عبر `huggingface_hub`.

### تفعيل الاستمرارية باستخدام Postgres

في حالات النشر متعددة المستخدمين الأكثر تعقيداً، يمكنك بدلاً من ذلك تفعيل الاستمرارية عن طريق [ربط قاعدة بيانات Postgres خارجية بمساحتك](https://labelstud.io/guide/storedata.html#PostgreSQL-database)، مما يضمن الحفاظ على جميع إعدادات المشروع والتعليقات.

اضبط المتغيرات السرية التالية لتتطابق مع نسخة Postgres التي تستضيفها بنفسك. ننصح بشدة بإعداد هذه المتغيرات كمتغيرات سرية لمنع تسريب معلومات حول خدمة قاعدة البيانات الخاصة بك إلى الجمهور في تعريف مساحاتك (spaces).

* `DJANGO_DB`: اضبط هذا على `default`.

* `POSTGRE_NAME`: اضبط هذا على اسم قاعدة بيانات Postgres.

* `POSTGRE_USER`: اضبط هذا على اسم مستخدم Postgres.

* `POSTGRE_PASSWORD`: اضبط هذا على كلمة مرور مستخدم Postgres الخاص بك.

* `POSTGRE_HOST`: اضبط هذا على المضيف الذي يعمل عليه قاعدة بيانات Postgres الخاصة بك.

* `POSTGRE_PORT`: اضبط هذا على المنفذ الذي يعمل عليه قاعدة بيانات Postgres الخاصة بك.

* `STORAGE_PERSISTENCE`: اضبط هذا على `1` لإزالة التحذير المتعلق بالتخزين المؤقت.

أعد تشغيل المساحة لتطبيق هذه الإعدادات. سيتم تخزين معلومات المستخدمين والمشاريع والتعليقات التوضيحية في قاعدة البيانات، وستعيد Label Studio تحميلها إذا تم إعادة تشغيل المساحة أو إعادة تعيينها.

### تفعيل التخزين السحابي

بشكل افتراضي، يكون التخزين المحلي هو الخيار الوحيد المفعّل لتخزين البيانات في هذا الفضاء. في حال إعادة تعيين الفضاء، ستُفقد جميع البيانات. لتفعيل تخزين دائم، يجب عليك تفعيل [موصّل تخزين سحابي](https://labelstud.io/guide/storage.html). اختر الموصّل السحابي المناسب وقم بإعداد الأسرار الخاصة به.

#### Amazon S3

* `STORAGE_TYPE`: اضبط هذا على `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`: اضبط هذا على سلسلة فارغة.

#### Google Cloud Storage

* `STORAGE_TYPE`: اضبط هذا على `gcs`.

* `STORAGE_GCS_BUCKET_NAME`: `<YOUR_BUCKET_NAME>`

* `STORAGE_GCS_PROJECT_ID`: `<YOUR_PROJECT_ID>`

* `STORAGE_GCS_FOLDER`: اضبط هذا على سلسلة فارغة.

* `GOOGLE_APPLICATION_CREDENTIALS`: اضبط هذا على `/opt/heartex/secrets/key.json`.

#### تخزين أزور بلوب

* `STORAGE_TYPE`: اضبط هذا على `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`: اضبط هذا على سلسلة فارغة.

## 🤗 الخطوات التالية، الملاحظات، والدعم

للبدء مع Label Studio، اطّلع على [دليل "من الصفر إلى واحد"](https://labelstud.io/blog/introduction-to-label-studio-in-hugging-face-spaces/) الخاص بـ Label Studio، والذي يشرح لك خطوة بخطوة مشروعًا تجريبيًا لتعليقات تحليل المشاعر. يمكنك العثور على مجموعة كاملة من الموارد المتعلقة بـ Label Studio ومجتمع Label Studio على [الصفحة الرئيسية لـ Label Studio](https://labelstud.io). ويشمل ذلك [التوثيق الكامل](https://labelstud.io/guide/)، و[ساحة تفاعلية](https://labelstud.io/playground/) لتجربة واجهات التعليق المختلفة، وروابط للانضمام إلى [مجتمع Label Studio على Slack](https://slack.labelstudio.heartex.com/?source=spaces).

