# Bileşenler

## Widget nedir?

Birçok model deposu, herkesin tarayıcıda doğrudan çıkarım yapmasını sağlayan bir widget içerir. Bu widget'lar, sunucusuz çıkarım ortaklarımız tarafından desteklenen, yüzlerce makine öğrenimi modeline geliştiriciler için akıcı ve birleşik erişim sağlayan [Inference Providers](https://huggingface.co/docs/inference-providers) tarafından çalıştırılır.

İşte güncel popüler modellerden bazı örnekler:

- [DeepSeek V3](https://huggingface.co/deepseek-ai/DeepSeek-V3-0324) - En son teknolojiye sahip açık ağırlıklı sohbet modeli
- [Flux Kontext](https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev) - Görsel düzenleme için açık ağırlıklı dönüştürücü modeli
- [Falconsai NSFW Algılama](https://huggingface.co/Falconsai/nsfw_image_detection) - Görsel içerik denetimi
- [ResembleAI'nin Chatterbox'ı](https://huggingface.co/ResembleAI/chatterbox) - Üretim kalitesinde açık kaynak metinden seslendirme modeli.

Daha fazla model ve widget'larını [modeller sayfasında](https://huggingface.co/models?inference_provider=all&sort=trending) keşfedebilir veya [Inference Playground](https://huggingface.co/playground) içinde etkileşimli olarak deneyebilirsiniz.

## Bir widget etkinleştirme

Widget'ler, model en az bir Inference Provider tarafından barındırıldığında görüntülenir; bu, modelin çıkarım (inference) işlemi için en iyi performansı ve güvenilirliği sağlar. Sağlayıcılar, dağıttıkları modelleri bağımsız olarak seçer ve kontrol eder.

Gösterilen widget türü (metinden görüntüye, otomatik konuşma tanıma vb.), Hub'ın tüm modeller için otomatik olarak hesaplamaya çalıştığı özel bir etiket olan modelin `pipeline_tag`'ından çıkarılır. Tek istisna, `pipeline_tag`'ı `text-generation` veya `image-text-to-text` olan tüm modellerde gösterilen `conversational` widget'ıdır. Basitlik için her model için **sadece bir** widget göstermeyi tercih ediyoruz.

Bazı kütüphanelerde, örneğin `transformers` gibi, model tipi yapılandırma dosyalarına (`config.json`) dayanarak otomatik olarak çıkarılabilir. Mimari, tipi belirleyebilir: örneğin `AutoModelForTokenClassification`, `token-classification` ile eşleşir. Bu konuda ilginiz varsa, sözde kodu [bu gist](https://gist.github.com/julien-c/857ba86a6c6a895ecd90e7f7cab48046) adresinde görebilirsiniz.

Çoğu diğer kullanım senaryosunda, model görev türünü belirlemek için model etiketlerini kullanırız. Örneğin, [model kartı meta verilerinde](./model-cards) `tag: text-classification` varsa, çıkarılan `pipeline_tag` değeri `text-classification` olur.

**Pipeline türünüzü her zaman [model kartı meta verilerinde](./model-cards#model-card-metadata) `pipeline_tag: xxx` ile manuel olarak geçersiz kılabilirsiniz.** (Bunu yapmak için meta veri GUI düzenleyicisini de kullanabilirsiniz).

### Modelimin widget örnek girdisini nasıl kontrol edebilirim?

Widget girdisini model kartı meta veri bölümünde belirtebilirsiniz:

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

Birden fazla örnek giriş sağlayabilirsiniz. Widget'ın örnekler açılır menüsünde `Example 1`, `Example 2` vb. olarak görünürler. İsteğe bağlı olarak `example_title` değerini de verebilirsiniz.

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

Ayrıca, model kartı meta verilerinde metin dışı örnek girişler de belirtebilirsiniz. Tüm widget türleri için örnek giriş biçimlerinin tam listesine [buradan](./models-widgets-examples) bakabilirsiniz. Görüntü & ses widget türleri için, `text` yerine `src` ile örnek girişler sağlayın.

Örneğin, otomatik konuşma tanıma görevleri için kullanıcıların iki örnek ses dosyasından seçim yapmasını sağlayın:

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

Model deposunuza örnek dosyalar da ekleyebileceğinizi ve bunları şu şekilde kullanabileceğinizi unutmayın:

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

Ancak daha da pratik bir şekilde, dosya ilgili model deposunda bulunuyorsa, yalnızca dosya adını veya depodaki dosya yolunu kullanabilirsiniz:

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

veya depoyun içinde yerleşikse:

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

Bazı diller ve çoğu widget türü için örnek girdileri [default-widget-inputs.ts dosyasında](https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/default-widget-inputs.ts) sunuyoruz. Bazı örnekler eksikse, bunları eklemek için topluluktan gelen PR'lara açığız!

## Örnek çıktılar

Örnek girdilere bir uzantı olarak, her widget örneği için ilgili model çıktısını da isteğe bağlı olarak doğrudan `output` özelliğinde tanımlayabilirsiniz.

Bu, modelin henüz Inference Providers tarafından desteklenmediği durumlarda kullanışlıdır; böylece model sayfası, modelin nasıl çalıştığını ve hangi sonuçları verdiğini yine de sergileyebilir.

Örneğin, bir [automatic-speech-recognition](./models-widgets-examples#automatic-speech-recognition) modeli için:

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

`output` özelliği, Inference Providers'dan gelen çıktı biçimini temsil eden bir YAML sözlüğü olmalıdır.

Metin çıkaran bir model için yukarıdaki örneğe bakın.

Etiketler üreten bir model için (örneğin bir [text-classification](./models-widgets-examples#text-classification) modeli), çıktı şu şekilde görünmelidir:

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

Son olarak, bir görüntü, ses veya başka bir tür varlık üreten bir model için çıktı, depodaki bir dosya adı veya yoluna ya da uzak bir URL'ye bağlanan bir `url` özelliği içermelidir. Örneğin, metinden görüntüye bir model için:

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

Örnek çıktıları Hugging Face arayüzünde de görüntüleyebiliriz; örneğin metinden görüntüye model için etkileyici görüntü üretimlerinden oluşan bir galeri göstermek gibi.

## Widget Kullanılabilirliği ve Sağlayıcı Desteği

Tüm modeller için widget'lar mevcut değildir. Widget kullanılabilirliği şunlara bağlıdır:

1. **Görev Desteği**: Modelin görevi, Inference Providers ağındaki en az bir sağlayıcı tarafından desteklenmelidir
2. **Sağlayıcı Kullanılabilirliği**: Belirli modeli sunan en az bir sağlayıcı olmalıdır
3. **Model Yapılandırması**: Modelin uygun meta verileri ve yapılandırma dosyaları olmalıdır

Desteklenen görevlerin tam listesini görmek için [özel dokümantasyon sayfamıza](https://huggingface.co/docs/inference-providers/tasks/index) göz atın.

Tüm sağlayıcıların ve destekledikleri görevlerin listesi [bu dokümantasyon sayfasında](https://huggingface.co/docs/inference-providers/index#partners) mevcuttur.

Sağlayıcı desteği olmayan modeller için, model kartınızda [örnek çıktılar](#example-outputs) kullanarak işlevselliği sergilemeye devam edebilirsiniz.

Model sayfasında doğrudan _Sağlayıcı desteği iste_ seçeneğine tıklayarak, yeterli topluluk ilgisinin olması durumunda sağlayıcıların modeli sunmasını teşvik edebilirsiniz.

## Inference Playground ile Modelleri Keşfetme

Uygulamalarınıza modelleri entegre etmeden önce, onları [Inference Playground](https://huggingface.co/playground) ile etkileşimli olarak test edebilirsiniz. Playground size şunları yapma imkanı tanır:

- Özel istemlerle farklı [sohbet tamamlama modellerini](https://huggingface.co/models?inference_provider=all&sort=trending&other=conversational) test edin
- Farklı modeller arasında yanıtları karşılaştırın
- Sıcaklık, maksimum token sayısı gibi çıkarım parametreleriyle deneyler yapın
- Belirli kullanım senaryonuza mükemmel modeli bulun

Oyun alanı, widget'ları destekleyen aynı Inference Providers altyapısını kullandığı için modelleri kendi uygulamalarınıza entegre ettiğinizde benzer performans ve yetenekler bekleyebilirsiniz.

