Hub documentation
نظرة عامة على Spaces
نظرة عامة على Spaces
تتيح لك مساحات Hugging Face إنشاء ونشر عروض توضيحية مدعومة بتقنيات التعلم الآلي في دقائق معدودة. شاهد الفيديو التالي للحصول على مقدمة سريعة إلى المساحات:
في الأقسام التالية، ستتعلم أساسيات إنشاء مساحة، وإعدادها، ونشر كودك عليها.
إنشاء مساحة جديدة
لإنشاء مساحة جديدة، انتقل إلى الصفحة الرئيسية للمساحات وانقر على إنشاء مساحة جديدة. إلى جانب اختيار اسم لمساحتك، واختيار ترخيص اختياري، وإعداد إمكانية الوصول لمساحتك (عام، محمي، أو خاص)، سيُطلب منك اختيار SDK لمساحتك. يوفر Hub ثلاث خيارات لـ SDK: Gradio وDocker وHTML الثابت. إذا اخترت “Gradio” كـ SDK، فسيتم توجيهك إلى مستودع جديد يعرض الصفحة التالية:
مساحات Static مجانية للجميع. تعمل مساحات Gradio وDocker على وحدات الحوسبة وتتطلب اشتراكًا مدفوعًا لإنشائها: PRO للحسابات الشخصية، وTeam أو Enterprise للمنظمات. لا يزال بإمكان الحسابات الشخصية المجانية ذات الحالة الجيدة استضافة ما يصل إلى مساحتين Gradio تعملان على ZeroGPU.

في الخلفية، يخزّن Spaces كودك داخل مستودع git، تمامًا كما هو الحال مع مستودعات النماذج والمجموعات. وبفضل ذلك، تعمل نفس الأدوات التي نستخدمها لجميع المستودعات الأخرى على Hub (git وgit-xet) مع Spaces أيضًا. اتبع نفس المسار الوارد في البدء باستخدام المستودعات لإضافة الملفات إلى مساحتك. في كل مرة يُدفع فيها التزام جديد، ستُعاد مساحة العمل بناءً تلقائيًا ويُعاد تشغيلها.
للحصول على شروحات خطوة بخطوة لإنشاء مساحتك الأولى، راجع الأدلة أدناه:
رؤية مساحة
يمكنك تحديد مستوى ظهور مساحة من تبويب الإعدادات باستخدام قائمة المنسدلة الخاصة بالظهور. تدعم المساحات ثلاثة مستويات من الظهور: عام، ومحمي، وخاص.
تُعدّ الرؤية المحمية جزءًا من خطط PRO أو Team & Enterprise.
| عام | محمي | خاص | |
|---|---|---|---|
| Source code on the Hub | مرئي للجميع | خاص (المالك/المساهمون فقط) | خاص (المالك/المساهمون فقط) |
| تطبيق يمكن الوصول إليه عبر رابط التضمين | نعم | نعم | لا |
| تطبيق يمكن الوصول إليه عبر نطاق مخصص | نعم | نعم | لا |
| قابلة للنسخ من قِبل الآخرين | نعم | لا | لا |
التطبيقات العامة مفتوحة بالكامل: يمكن لأي شخص عرض الشيفرة المصدرية، والوصول إلى التطبيق قيد التشغيل، ونسخ المستودع.
تُبقي مساحات محمية على كود مصدرها سرّية على المنصة — إذ لا يمكن سوى المالك والمشاركين في العمل الاطلاع على المستودع أو نسخه. ومع ذلك، يبقى التطبيق قيد التشغيل متاحاً للعامة عبر رابط تضمينه (https://<space-subdomain>.hf.space) أو عبر نطاق مخصص عند ضبطه. وهذا مفيد بشكل خاص لاستضافة مواقع الويب أو التطبيقات دون نشر كود المصدر.
المساحات الخاصة خاصة بالكامل: لا يمكن الوصول إلى الشيفرة المصدرية والتطبيق قيد التشغيل إلا من قِبل المالك والمشاركين. لن تظهر المساحة في نتائج البحث، وسيواجه المستخدمون الأخطاء 404 عند زيارة رابطها.
موارد العتاد
يخضع كل بيئة Spaces افتراضيًا لحدود تتكون من 16 جيجابايت من ذاكرة الوصول العشوائي، ونواة معالجين مركزيين، ومساحة تخزين على القرص تبلغ 50 جيجابايت (غير دائمة). لا يتحمل عتاد CPU Basic الافتراضي أي تكلفة بالساعة، لكن إنشاء مساحة تعمل على الحوسبة (Gradio أو Docker) يتطلب اشتراكًا مدفوعًا، في حين أن المساحات الثابتة مجانية للجميع. يمكنك الترقية إلى عتاد أفضل، بما في ذلك مجموعة متنوعة من معجلات GPU، مقابل سعر تنافسي. لطلب الترقية، يرجى النقر على زر Settings في مساحتك واختيار بيئة العتاد المفضلة لديك.
| الأجهزة | CPU | الذاكرة | ذاكرة وحدة معالجة الرسوميات | السعر بالساعة |
|---|---|---|---|---|
| أساسيات المعالج | 2 وحدة معالجة مركزية | 16 GB | مجاني | |
| ترقية وحدة المعالجة المركزية | 8 vCPU | 32 GB | $0.03 | |
| Nvidia T4 - صغير | 4 vCPU | 15 جيجابايت | 16 GB | $0.40 |
| Nvidia T4 - متوسط | 8 vCPU | 30 جيجابايت | 16 GB | $0.60 |
| 1x Nvidia L4 | 8 vCPU | 30 جيجابايت | 24 جيجابايت | $0.80 |
| 4x Nvidia L4 | 48 وحدة معالجة مركزية | 186 جيجابايت | 96 GB | $3.80 |
| 1x Nvidia L40S | 8 vCPU | 62 جيجابايت | 48 GB | $1.80 |
| 4x Nvidia L40S | 48 وحدة معالجة مركزية | 382 جيجابايت | 192 GB | $8.30 |
| 8x Nvidia L40S | 192 وحدة معالجة مركزية | 1534 GB | 384 GB | $23.50 |
| 1x Nvidia RTX PRO 6000 | 23 وحدة معالجة مركزية افتراضية | 256 GB | 96 GB | $2.75 |
| 2x Nvidia RTX PRO 6000 | 46 وحدة معالجة مركزية افتراضية | 512 جيجابايت | 192 GB | $5.50 |
| 4x Nvidia RTX PRO 6000 | 92 وحدة معالجة مركزية | 1024 جيجابايت | 384 GB | $11.00 |
| 8x Nvidia RTX PRO 6000 | 184 وحدة معالجة مركزية افتراضية | 2048 جيجابايت | 768 GB | $22.00 |
| Nvidia A10G - صغير | 4 vCPU | 15 جيجابايت | 24 جيجابايت | $1.00 |
| Nvidia A10G - كبير | 12 وحدة معالجة مركزية | 46 جيجابايت | 24 جيجابايت | $1.50 |
| 2x Nvidia A10G - كبير | 24 وحدة معالجة مركزية | 92 جيجابايت | 48 GB | $3.00 |
| 4x Nvidia A10G - كبير | 48 وحدة معالجة مركزية | 184 جيجابايت | 96 GB | $5.00 |
| Nvidia A100 - كبير | 12 وحدة معالجة مركزية | 142 جيجابايت | 80 جيجابايت | $2.50 |
| 4x Nvidia A100 | 48 وحدة معالجة مركزية | 568 جيجابايت | 320 جيجابايت | $10.00 |
| 8x Nvidia A100 | 96 vCPU | 1136 جيجابايت | 640 جيجابايت | $20.00 |
ملاحظة: يمكنك العثور على معلومات تسعير أكثر تفصيلاً وشُمولاً في صفحة التسعير لدينا.
هل لديك مساحة رائعة لكنك بحاجة إلى مساعدة في تغطية تكاليف ترقية الأجهزة؟ نحن نحب مساعدة أصحاب المساحات المبتكرة، لذا لا تتردد في التقديم على منحة وحدة معالجة رسومية مجتمعية باستخدام الرابط الموجود في تبويب الإعدادات الخاص بمساحتك، وشاهد ما إذا كانت مساحتك ستحظى بالقبول!
اقرأ المزيد في أقسامنا المخصصة حول ترقيات GPU في Spaces واستخدام القرص والتخزين في Spaces.

إدارة الأسرار ومتغيرات البيئة
إذا كانت تطبيقك تتطلب متغيرات بيئة (على سبيل المثال، مفاتيح سرية أو رموز وصول)، فلا ترمزها داخل تطبيقك! بدلاً من ذلك، انتقل إلى صفحة الإعدادات في مستودع مساحة العمل الخاصة بك وأضف متغيراً جديداً أو سراً. استخدم المتغيرات إذا كنت بحاجة إلى تخزين قيم إعدادات غير حساسة، والسرية لتخزين رموز الوصول أو مفاتيح واجهات برمجة التطبيقات أو أي قيمة حساسة أو بيانات اعتماد.

يمكنك استخدام:
- المتغيرات إذا كنت بحاجة إلى تخزين قيم إعدادات غير حساسة. فهي متاحة للجمهور وقابلة للاطلاع، وستُضاف تلقائيًا إلى المساحات (Spaces) المنسوخة من مساحتك.
- الأسرار لتخزين رموز الوصول ومفاتيح واجهات برمجة التطبيقات أو أي قيم أو بيانات اعتماد حساسة. وهي خاصة ولا يمكن قراءة قيمتها من صفحة إعدادات المساحة بعد ضبطها. ولن تُضاف إلى المساحات المنسوخة من مستودعك.
تختلف طريقة الوصول إلى الأسرار والمتغيرات حسب إصدار SDK الخاص بـ Space لديك:
- في المساحات الثابتة، يتوفر كلاهما عبر JavaScript على جانب العميل في
window.huggingface.variables - بالنسبة إلى مساحات Docker، راجع إدارة البيئة باستخدام Docker
بالنسبة للمساحات الأخرى، تُعرَض المتغيرات الاثنان لتطبيقك كمتغيرات بيئة. فيما يلي مثال بسيط جدًا للوصول إلى متغير MODEL_REPO_ID المُعلَن سابقًا بلغة بايثون (سيكون الأمر نفسه بالنسبة للأسرار):
import os
print(os.getenv('MODEL_REPO_ID'))يُحذَّر مالكو Spaces عندما تكتشف أداة Spaces Secrets Scanner أسرارا مضمّنة في الكود.
نسخ مساحة
يمكن أن يكون تكرار مساحة مفيدًا إذا كنت ترغب في بناء عرض توضيحي جديد باستخدام عرض توضيحي آخر كقالب مبدئي. كما يمكن أن تكون المساحات المكررة مفيدة إذا كنت ترغب في امتلاك مساحة مطوّرة خاصة بك للاستخدام مع الاستدلال السريع.
إذا كنت ترغب في تكرار مساحة، يمكنك النقر على النقاط الثلاث في أعلى يمين المساحة ثم النقر على Duplicate this Space. بمجرد القيام بذلك، ستتمكن من تغيير السمات التالية:
- المالك: يمكن أن يكون المساحة المكررة تحت حسابك أو أي منظمة لديك صلاحية الكتابة فيها
- اسم المساحة
- الظهور: يكون المساحة خاصة افتراضيًا. اقرأ المزيد حول خيارات الظهور هنا.
- العتاد: يمكنك اختيار العتاد الذي سيعمل عليه المساحة. اقرأ المزيد حول ترقية العتاد هنا.
- التخزين: إذا كان المستودع الأصلي يستخدم دلو تخزين، فسيُطلب منك تكوين التخزين. اقرأ المزيد حول استخدام القرص والتخزين هنا.
- الأسرار والمتغيرات: إذا كانت المستودع الأصلي يحتوي على أسرار ومتغيرات محددة، فسيكون بإمكانك ضبطها أثناء تكرار المستودع.
قد تحتوي بعض المساحات (Spaces) على متغيرات بيئة قد تحتاج إلى ضبطها. في هذه الحالات، سيقوم سير عمل النسخ تلقائيًا بملء متغيرات Variables العامة من المساحة المصدرية، وسيمنحك تحذيرًا بشأن ضبط الأسرار (Secrets). ستستخدم المساحة المنسوخة وحدة المعالجة المركزية الأساسية (CPU Basic) افتراضيًا، لكن يمكنك الترقية لاحقًا إذا لزم الأمر. يخضع النسخ للقواعد نفسها المطبقة عند إنشاء مساحة جديدة: يتطلب نسخ مساحة Gradio أو Docker اشتراكًا مدفوعًا للحساب أو المنظمة المستهدفة (مع استثناء ZeroGPU free tier نفسه للحسابات الشخصية).
التشبيك
إذا كان مساحتك بحاجة إلى تنفيذ أي طلبات شبكة، يمكنك تنفيذ الطلبات عبر منفذي HTTP وHTTPS القياسيين (80 و443) إلى جانب المنفذ 8080. سيتم حظر أي طلبات موجهة إلى منافذ أخرى.
إدارة دورة
على الأجهزة المجانية، سيدخل مساحتك في وضع “النوم” ويتوقف عن التنفيذ بعد فترة من عدم الاستخدام. إذا كنت ترغب في تشغيل مساحتك بشكل مستمر، فكّر في الترقية إلى أجهزة مدفوعة. يمكنك أيضًا إيقاف مساحتك يدويًا من تبويب الإعدادات. المساحة الموقوفة تتوقف عن التنفيذ حتى يعيد شخص لديه صلاحية الكتابة تشغيلها. لا يتم احتساب رسوم عن وقت الإيقاف المؤقت.
متغيرات البيئة المدمجة
في بعض الحالات، قد ترغب في الحصول على وصول برمجي إلى اسم مؤلف المساحة أو مستودعها. تكون هذه الميزة مفيدة بشكل خاص عندما تتوقع أن يقوم المستخدمون بتكرار مساحتك. لمساعدتك في ذلك، تكشف المساحات عن متغيرات بيئة مختلفة وقت التشغيل (انظر أيضاً متغيرات البيئة المدمجة في Jobs). بالنسبة لمساحة osanseviero/i-like-flan:
ACCELERATOR: نوع المُسرِّف المتاح (مثلt4-medium،a10g-small)، أوnoneللمساحات التي تعمل على المعالج المركزي فقط.CPU_CORES: 4MEMORY: 15GiSPACE_AUTHOR_NAME: osansevieroSPACE_REPO_NAME: i-like-flanSPACE_TITLE: I Like Flan (محدد في ملف README)SPACE_ID:osanseviero/i-like-flanSPACE_HOST:osanseviero-i-like-flan.hf.spaceSPACE_CREATOR_USER_ID:6032802e1f993496bc14d9e3- هذا هو المعرّف الخاص بالمستخدم الذي أنشأ المساحة في الأصل. يكون مفيدًا إذا كانت المساحة تابعة لمنظمة. يمكنك الحصول على معلومات المستخدم عبر استدعاء واجهة برمجة التطبيقات إلىhttps://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview.SPACE_SIGNING_SECRET: سر عشوائي فريد لمساحتك، يُعرَّف كسر. يبقى ثابتًا عبر عمليات إعادة التشغيل وإعادة البناء والنسخ، مما يتيح لك استخدامه للتوقيع على عناصر مثل ملفات تعريف الارتباط، وحالة OAuth، أو رموز CSRF. لاستخدام قيمتك الخاصة بدلاً من ذلك، أضف سرًا باسمSPACE_SIGNING_SECRETفي إعدادات مساحتك.
في حال تم تفعيل OAuth لمساحتك، ستكون المتغيرات التالية متاحة أيضاً:
OAUTH_CLIENT_ID: معرّف العميل لتطبيق OAuth الخاص بك (عام)OAUTH_CLIENT_SECRET: سر العميل الخاص بتطبيق OAuth الخاص بكOAUTH_SCOPES: النطاقات المتاحة لتطبيق OAuth الخاص بك. حاليًا، تكون دائمًا"openid profile".OPENID_PROVIDER_URL: عنوان URL لمزوّد OpenID. ستكون بيانات OpenID الوصفية متاحة في{OPENID_PROVIDER_URL}/.well-known/openid-configuration.
استنساخ المستودع
يمكنك بسهولة استنساخ مستودع مساحة Space محليًا. ابدأ بالنقر على قائمة القائمة المنسدلة في أعلى يمين صفحة مساحتك:

اختر “Clone repository”، ثم يمكنك اتباع التعليمات لاستنساخ مستودع المساحة على جهازك المحلي باستخدام HTTPS أو SSH.


ربط النماذج ومجموعات البيانات على المنصة
يمكنك عرض جميع النماذج ومجموعات البيانات التي يرتبط بها مساحتك (Space) عن طريق إضافة معرفاتها في بيانات الوصف (metadata) الخاصة بملف README الخاص بمساحتك. للقيام بذلك، يمكنك تعريفها تحت المفاتيح models وdatasets. بالإضافة إلى إدراج هذه العناصر في ملف README، يمكنك أيضاً تسجيلها في أي ملف .py أو .ini أو .html. سنقوم بتحليلها تلقائياً!
فيما يلي مثال يربط بين نموذجين من مساحة:
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