Hub documentation

نظرة عامة على Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نظرة عامة على 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 vCPU32 GB$0.03
Nvidia T4 - صغير4 vCPU15 جيجابايت16 GB$0.40
Nvidia T4 - متوسط8 vCPU30 جيجابايت16 GB$0.60
1x Nvidia L48 vCPU30 جيجابايت24 جيجابايت$0.80
4x Nvidia L448 وحدة معالجة مركزية186 جيجابايت96 GB$3.80
1x Nvidia L40S8 vCPU62 جيجابايت48 GB$1.80
4x Nvidia L40S48 وحدة معالجة مركزية382 جيجابايت192 GB$8.30
8x Nvidia L40S192 وحدة معالجة مركزية1534 GB384 GB$23.50
1x Nvidia RTX PRO 600023 وحدة معالجة مركزية افتراضية256 GB96 GB$2.75
2x Nvidia RTX PRO 600046 وحدة معالجة مركزية افتراضية512 جيجابايت192 GB$5.50
4x Nvidia RTX PRO 600092 وحدة معالجة مركزية1024 جيجابايت384 GB$11.00
8x Nvidia RTX PRO 6000184 وحدة معالجة مركزية افتراضية2048 جيجابايت768 GB$22.00
Nvidia A10G - صغير4 vCPU15 جيجابايت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 A10048 وحدة معالجة مركزية568 جيجابايت320 جيجابايت$10.00
8x Nvidia A10096 vCPU1136 جيجابايت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: 4
  • MEMORY: 15Gi
  • SPACE_AUTHOR_NAME: osanseviero
  • SPACE_REPO_NAME: i-like-flan
  • SPACE_TITLE: I Like Flan (محدد في ملف README)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_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
Update on GitHub