# المكونات

## ما هو المكوّن (widget)؟

تحتوي العديد من مستودعات النماذج على أداة تفاعلية تتيح لأي شخص تشغيل عمليات الاستدلال مباشرةً في المتصفح. تعمل هذه الأدوات التفاعلية بواسطة [موفّري الاستدلال](https://huggingface.co/docs/inference-providers)، الذين يوفّرون للمطوّرين وصولاً موحّداً ومبسّطاً إلى مئات نماذج تعلّم الآلة، مدعوماً بشركائنا في الاستدلال الخادمي.

فيما يلي بعض الأمثلة على النماذج الشائعة حاليًا:

- [DeepSeek V3](https://huggingface.co/deepseek-ai/DeepSeek-V3-0324) - نموذج محادثة مفتوح الأوزان من الطراز الأحدث
- [Flux Kontext](https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev) - نموذج محوّل بأوزان مفتوحة لتحرير الصور
- [كشف المحتوى غير اللائق من Falconsai](https://huggingface.co/Falconsai/nsfw_image_detection) - مراجعة محتوى الصور
- [نموذج Chatterbox من ResembleAI](https://huggingface.co/ResembleAI/chatterbox) - نموذج مفتوح المصدر لتحويل النص إلى كلام بمستوى الإنتاج.

يمكنك استكشاف المزيد من النماذج ومكوناتها على [صفحة النماذج](https://huggingface.co/models?inference_provider=all&sort=trending) أو تجربتها تفاعليًا في [Inference Playground](https://huggingface.co/playground).

## تفعيل أداة

تُعرض أدوات الواجهة (Widgets) عندما يستضيف النموذج مزوّد استدلال واحد على الأقل، مما يضمن الأداء الأمثل والموثوقية العالية لاستدلال النموذج. يختار المزوّدون بأنفسهم ويتحكمون في النماذج التي ينشرونها.

يُستنتج نوع المكوّن المعروض (من نص إلى صورة، التعرف التلقائي على الكلام، إلخ) من `pipeline_tag` الخاص بالنموذج، وهو وسم خاص يحاول Hub حسابه تلقائيًا لجميع النماذج. الاستثناء الوحيد هو مكوّن `conversational`، الذي يُعرض على جميع النماذج التي يكون `pipeline_tag` الخاص بها إما `text-generation` أو `image-text-to-text`. اخترنا عرض **مكوّن واحد فقط** لكل نموذج من أجل البساطة.

في بعض المكتبات، مثل `transformers`، يمكن استنتاج نوع النموذج تلقائيًا بناءً على ملفات الإعداد (`config.json`). يمكن أن يحدد البنية النوع: على سبيل المثال، `AutoModelForTokenClassification` يتوافق مع `token-classification`. إذا كنت مهتمًا بهذا، يمكنك الاطلاع على الشيفرة الزائفة في [هذا الملخص](https://gist.github.com/julien-c/857ba86a6c6a895ecd90e7f7cab48046).

في معظم حالات الاستخدام الأخرى، نستخدم وسوم النموذج لتحديد نوع مهمة النموذج. على سبيل المثال، إذا وُجد `tag: text-classification` في [بيانات بطاقة النموذج الوصفية](./model-cards)، فإن `pipeline_tag` المستنتج سيكون `text-classification`.

**يمكنك دائمًا تجاوز نوع خط الأنابيب يدويًا باستخدام `pipeline_tag: xxx` في [بيانات بطاقة النموذج الوصفية](./model-cards#model-card-metadata).** (يمكنك أيضًا استخدام محرر الواجهة الرسومية للبيانات الوصفية للقيام بذلك).

### كيف يمكنني التحكم في مثال الإدخال الخاص بواجهة النموذج (widget)؟

يمكنك تحديد مدخلات الودجت في قسم بيانات الوصف (metadata) لبطاقة النموذج:

```yaml
widget:
  - text: "This new restaurant has amazing food and great service!"
    example_title: "Positive Review"
  - text: "I'm really disappointed with this product. Poor quality and overpriced."
    example_title: "Negative Review"
  - text: "The weather is nice today."
    example_title: "Neutral Statement"
```

يمكنك تقديم أكثر من مثال إدخال واحد. في قائمة المنسدلة للأمثلة داخل المكوّن، ستظهر على شكل `Example 1`، `Example 2`، وما إلى ذلك. بشكل اختياري، يمكنك أيضًا تقديم `example_title`.

```yaml
widget:
  - text: "Is this review positive or negative? Review: Best cast iron skillet you will ever buy."
    example_title: "Sentiment analysis"
  - text: "Barack Obama nominated Hilary Clinton as his secretary of state on Monday. He chose her because she had ..."
    example_title: "Coreference resolution"
  - text: "On a shelf, there are five books: a gray book, a red book, a purple book, a blue book, and a black book ..."
    example_title: "Logic puzzles"
  - text: "The two men running to become New York City's next mayor will face off in their first debate Wednesday night ..."
    example_title: "Reading comprehension"
```

علاوة على ذلك، يمكنك تحديد مدخلات أمثلة غير نصية في بيانات بطاقة النموذج الوصفية. راجع [هنا](./models-widgets-examples) للحصول على قائمة كاملة بتنسيقات مدخلات الأمثلة لجميع أنواع الأدوات. بالنسبة لأنواع أدوات الرؤية والصوت، قم بتوفير مدخلات أمثلة باستخدام `src` بدلاً من `text`.

على سبيل المثال، اسمح للمستخدمين باختيار ملفين صوتيين نموذجيين لمهام التعرف التلقائي على الكلام من خلال:

```yaml
widget:
  - src: https://example.org/somewhere/speech_samples/sample1.flac
    example_title: Speech sample 1
  - src: https://example.org/somewhere/speech_samples/sample2.flac
    example_title: Speech sample 2
```

لاحظ أنه يمكنك أيضًا تضمين ملفات أمثلة في مستودع النموذج الخاص بك واستخدامها على النحو التالي:

```yaml
widget:
  - src: https://huggingface.co/username/model_repo/resolve/main/sample1.flac
    example_title: Custom Speech Sample 1
```

لكن الأمر أكثر راحة إذا كان الملف موجودًا في مستودع النموذج المقابل، إذ يمكنك ببساطة استخدام اسم الملف أو مسار الملف داخل المستودع:

```yaml
widget:
  - src: sample1.flac
    example_title: Custom Speech Sample 1
```

أو إذا كان متداخلاً داخل المستودع:

```yaml
widget:
  - src: nested/directory/sample1.flac
```

نوفر مدخلات أمثلة لبعض اللغات ومعظم أنواع الأدوات في [ملف default-widget-inputs.ts](https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/default-widget-inputs.ts). إذا كانت بعض الأمثلة مفقودة، فنرحب بالمساهمات من المجتمع لإضافتها!

## أمثلة على المخرجات

كمُكمِل لدخلات المثال، يمكنك أيضًا اختيار وصف مخرجات النموذج المقابلة لكل مثال في أداة العرض، مباشرةً في خاصية `output`.

يكون هذا مفيدًا عندما لا يدعم مزودو الاستدلال النموذج بعد، بحيث يمكن لصفحة النموذج أن تُظهر ما زال كيفية عمل النموذج والنتائج التي يعطيها.

على سبيل المثال، لنموذج [automatic-speech-recognition](./models-widgets-examples#automatic-speech-recognition):

```yaml
widget:
  - src: sample1.flac
    output:
      text: "Hello my name is Julien"
```

يجب أن تكون خاصية `output` قاموس YAML يمثل صيغة الإخراج من مزودي الاستدلال.

بالنسبة إلى نموذج يُخرج نصًا، راجع المثال أعلاه.

بالنسبة لنموذج يُخرج تسميات (مثل نموذج [text-classification](./models-widgets-examples#text-classification) على سبيل المثال)، يجب أن يبدو المخرج على النحو التالي:

```yaml
widget:
  - text: "I liked this movie"
    output:
      - label: POSITIVE
        score: 0.8
      - label: NEGATIVE
        score: 0.2
```

أخيرًا، بالنسبة لنموذج يُخرج صورة أو صوتًا أو أي نوع آخر من الأصول، يجب أن يتضمن المخرج خاصية `url` تربط إما باسم ملف أو مسار داخل المستودع أو عنوان URL عن بُعد. على سبيل المثال، بالنسبة لنموذج نص إلى صورة:

```yaml
widget:
  - text: "picture of a futuristic tiger, artstation"
    output:
      url: images/tiger.jpg
```

يمكننا أيضًا عرض المخرجات النموذجية في واجهة Hugging Face، على سبيل المثال، لنموذج نص إلى صورة لعرض معرض لتوليدات صور رائعة.

## توفر المصغرات ودعم المزود

لا تتوفر أدوات تفاعلية لجميع النماذج. يعتمد توفر الأدوات التفاعلية على:

1. **دعم المهام**: يجب أن تكون مهمة النموذج مدعومة من قبل مزود واحد على الأقل في شبكة مزودي الاستدلال
2. **توفر المزوّد**: يجب أن يكون مزوّد واحد على الأقل يقدم النموذج المحدد
3. **إعدادات النموذج**: يجب أن يحتوي النموذج على بيانات وصفية وملفات إعدادات صحيحة

لعرض القائمة الكاملة بالمهام المدعومة، راجع [صفحتنا المخصصة للتوثيق](https://huggingface.co/docs/inference-providers/tasks/index).

يتوفر قائمة بجميع المزودين والمهام التي يدعمونها في [هذه الصفحة التوثيقية](https://huggingface.co/docs/inference-providers/index#partners).

بالنسبة إلى النماذج التي لا تدعمها مزوّدو الخدمات، يمكنك ما زال إبراز الوظائف باستخدام [مخرجات أمثلة](#example-outputs) في بطاقة النموذج الخاصة بك.

يمكنك أيضًا النقر على _طلب دعم المزوّد_ مباشرةً في صفحة النموذج لتشجيع المزوّدين على تقديم النموذج، شريطة أن يكون هناك اهتمام كافٍ من المجتمع.

## استكشاف النماذج باستخدام ساحة الاستدلال

قبل دمج النماذج في تطبيقاتك، يمكنك اختبارها تفاعليًا باستخدام [Inference Playground](https://huggingface.co/playground). يتيح لك هذا المكان:

- اختبر نماذج إكمال المحادثة [المختلفة](https://huggingface.co/models?inference_provider=all&sort=trending&other=conversational) باستخدام أوامر مخصصة
- مقارنة الاستجابات عبر نماذج مختلفة
- جرّب معلمات الاستدلال مثل درجة الحرارة، والحد الأقصى لعدد الرموز، وغيرها
- اعثر على النموذج المثالي لحالة الاستخدام الخاصة بك

يستخدم حقل اللعب بنية تحتية مزوّدي الاستدلال (Inference Providers) نفسها التي تُشغّل الأدوات المدمجة، لذا يمكنك توقع أداء وقدرات مماثلة عند دمج النماذج في تطبيقاتك الخاصة.

