# Kapılı modeller

Modellerin nasıl kullanılacağı üzerinde daha fazla kontrol sağlamak için Hub, model yazarlarının modelleri için **erişim isteklerini** etkinleştirmesine olanak tanır. Etkinleştirildiğinde, kullanıcılar model dosyalarına erişmek için bir erişim isteği göndermelidir; bu istek, yazarlar toplama işlemini devre dışı bırakmadığı sürece Hugging Face bilgilerini (kullanıcı adı ve e-posta adresi) model yazarlarıyla paylaşır. Model yazarları ayrıca özel alanlar da ekleyebilir. Erişim istekleri etkinleştirilmiş bir modele **kısıtlı model** denir. Erişim istekleri her zaman tüm organizasyonlara değil, bireysel kullanıcılara verilir. Kısıtlı modellerin yaygın bir kullanım senaryosu, geniş çaplı yayınlanmadan önce erken aşama araştırma modellerine erişim sağlamaktır.

## Model yazarı olarak kapalı modelleri yönetme

 
 

Erişim isteklerini etkinleştirmek için model ayarları sayfasına gidin. Varsayılan olarak model kapalıdır. Sağ üst köşedeki **Erişim isteğini etkinleştir** seçeneğine tıklayın.

    
    

Varsayılan olarak, modele erişim, model talep edildiğinde kullanıcıya otomatik olarak sağlanır. Buna **otomatik onay** denir. Bu modda, herhangi bir kullanıcı, kişisel bilgilerini sizinle paylaştığında modelinize erişebilir.

    
    

Modelinize erişebilecek kullanıcıları manuel olarak onaylamak istiyorsanız, bunu **manual approval** olarak ayarlamalısınız. Bu durumda daha fazla seçenek göreceksiniz:
- **Erişim ekle**, bir kullanıcıyı aramanıza ve talep etmemiş olsa bile ona erişim izni vermenize olanak tanır.
- **Bildirim sıklığı**, yeni kullanıcılar erişim talep ettiğinde ne zaman bildirim alacağınızı yapılandırmanızı sağlar. Günde bir kez veya gerçek zamanlı olarak ayarlanabilir. Varsayılan olarak, bir e-posta birincil e-posta adresinize gönderilir. Bir kuruluş altında barındırılan modeller için, e-postalar varsayılan olarak kuruluşun ilk 5 yöneticisine gönderilir. Her iki durumda da (kullanıcı veya kuruluş) **Bildirim e-postası** alanında farklı bir e-posta adresi belirleyebilirsiniz.

    
    

### Erişim isteklerini gözden geçirin

Erişim istekleri etkinleştirildiğinde, onay modu manuel veya otomatik olsun ya da olmasın, modelinize kimlerin erişebileceğini tam olarak kontrol edersiniz. İstekleri arayüzden veya API üzerinden inceleyebilir ve yönetebilirsiniz.

#### Arayüzden

Gated modelinize kimlerin erişim yetkisi olduğunu, ayarlar sayfasındaki **Erişim isteklerini incele** düğmesine tıklayarak görüntüleyebilirsiniz. Bu işlem, kullanıcıların 3 listeden oluşan bir pencereyi açar:
- **pending**: modelinize erişim için onay bekleyen kullanıcıların listesi. Bu liste, **manual approval** seçeneğini seçmediğiniz sürece boş kalır. Talebi **Accept** veya **Reject** edebilirsiniz. Talep reddedilirse, kullanıcı modelinize erişemez ve tekrar erişim talep edemez.
- **accepted**: modelinize erişimi olan kullanıcıların tam listesi. Onay modu manuel veya otomatik olsun, herhangi bir kullanıcı için istediğiniz zaman erişimi **Reject** edebilirsiniz. Ayrıca onayı **Cancel** edebilir ve bu, kullanıcının *pending* listesine taşınmasını sağlar.
- **rejected**: Manuel olarak reddettiğiniz kullanıcıların listesi. Bu kullanıcılar modellerinize erişemez. Model deposuna giderlerse *Your request to access this repo has been rejected by the repo's authors* mesajını görürler.

    
    

#### API üzerinden

Erişim isteklerinin onayını API'yi kullanarak otomatikleştirebilirsiniz. Kapalı depoya `write` erişimine sahip bir `token` iletmeniz gerekir. Bir token oluşturmak için [kullanıcı ayarlarınıza](https://huggingface.co/settings/tokens) gidin.

| Yöntem | URI | Açıklama | Başlıklar | Gövde
| ------ | --- | ----------- | -------  | -------  |
| `GET` | [`/api/models/{repo_id}/user-access-request/{status}`](https://huggingface.co/spaces/huggingface/openapi#tag/models/GET/api/models/{namespace}/{repo}/user-access-request/{status}) | Verilen `status` ile istekleri listeleyin: `pending`, `accepted`, `rejected` veya `reset`. Her isteğin bir `requestId` ve kullanıcı adı toplandıysa bir `user` alanı vardır. | `{"authorization": "Bearer $token"}` | |
| `POST` | [`/api/models/{repo_id}/user-access-request/handle`](https://huggingface.co/spaces/huggingface/openapi#tag/models/POST/api/models/{namespace}/{repo}/user-access-request/handle) | Belirli bir erişim isteğinin durumunu `status` olarak değiştirin. | `{"authorization": "Bearer $token"}` | `{"status": "accepted"/"rejected"/"pending"/"reset", "user": "username" (or "requestId": "request id"), "rejectionReason": "Optional rejection reason that will be visible to the user (max 200 characters).", "resetReason": "Optional reset reason that will be included in the email sent to the user (max 200 characters)."}` |
| `POST` | [`/api/models/{repo_id}/user-access-request/grant`](https://huggingface.co/spaces/huggingface/openapi#tag/models/POST/api/models/{namespace}/{repo}/user-access-request/grant) | Belirli bir kullanıcının reponuza erişmesine izin verin. | `{"authorization":  "Bearer $token"}` | `{"user": "username"} ` |

Yukarıdaki HTTP uç noktaları için temel URL `https://huggingface.co`'dur.

Bir isteği `reset` olarak ayarlamak, önceki kararı iptal eder ve kullanıcıya baştan başlamasını ister: kullanıcı model erişimini kaybeder, isteğinin sıfırlandığına dair (isteğe bağlı `resetReason` dahil) bir e-posta alır ve model sayfasını bir sonraki ziyaretinde kapama koşullarını kabul etmesi ve yeni bir istek göndermesi istenir. Bu, mevcut isteği olduğu gibi koruyup yalnızca inceleme kuyruğuna geri koyan `pending` durumundan ve kullanıcının tekrar erişim isteğinde bulunmasını engelleyen `rejected` durumundan farklıdır.

**YENİ!** Bu uç noktalar artık Python istemcimiz `huggingface_hub` içinde resmi olarak destekleniyor. Modelinize yapılan erişim isteklerini [`list_pending_access_requests`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.list_pending_access_requests), [`list_accepted_access_requests`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.list_accepted_access_requests) ve [`list_rejected_access_requests`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.list_rejected_access_requests) ile listeleyebilirsiniz. Ayrıca erişim isteklerini [`accept_access_request`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.accept_access_request), [`cancel_access_request`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.cancel_access_request) ve [`reject_access_request`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.reject_access_request) ile kabul edebilir, iptal edebilir ve reddedebilirsiniz. Son olarak, bir kullanıcıya [`grant_access`](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/hf_api#huggingface_hub.HfApi.grant_access) ile erişim verebilirsiniz.

### Erişim raporunu indir

Bir gated model için tüm erişim isteklerinin raporunu **download user access report** düğmesiyle indirebilirsiniz. Kullanıcı listesini içeren bir json dosyasını indirmek için düğmeye tıklayın. Her kayıt için şunlara sahipsiniz:
- **requestId**: isteğin kimliği.
- **user**: kullanıcı kimliği. Örnek: *julien-c*.
- **fullname**: Hub'daki kullanıcının adı. Örnek: *Julien Chaumond*.
- **status**: isteğin durumu. `"pending"`, `"accepted"`, `"rejected"` veya `"reset"` olabilir.
- **email**: kullanıcının e-posta adresi.
- **time**: kullanıcının isteği ilk olarak yaptığı zaman.
- **reviewedAt**: isteğin kabul edildiği veya reddedildiği tarih ve saat. Bekleyen istekler için ayarlanmaz.

> [!TIP]
> `user`, `fullname` ve `email` alanları, istek yapıldığında bunları [toplamayı](#choose-which-profile-data-hugging-face-shares-with-you) seçtiyseniz mevcuttur. İstekler her zaman `requestId` ile tanımlanabilir.

### Hugging Face'in sizinle paylaştığı profil verilerini seçin

Varsayılan olarak Hugging Face, isteği yapan kullanıcının kullanıcı adını ve birincil e-posta adresini sizinle paylaşır. Kişisel tanımlayıcı bilgilerin (PII) işlenmesinden ve bunları nasıl işlediğinizi ilgili yasalara uygun olarak açıklamaktan (örneğin kendi Gizlilik Politikasına bir bağlantı ekleyerek) siz sorumlusunuz. Bunu, model ayarları sayfasındaki erişim kısıtlama seçeneklerinde değiştirebilirsiniz:

- **Kullanıcı adını topla**: işaret kaldırıldığında, isteği yapan kişinin Hugging Face kullanıcı adı, tam adı ve avatarı size iletilmez. İstekler, bir istek kimliğiyle listelenir ve diğer herhangi bir istek gibi kabul edilebilir veya reddedilebilir.
- **E-posta topla**: istek sahibinin Hugging Face profil e-postasını toplar. **Kullanıcı adı topla** gerektirir.

[Özel form alanlarınızın](#customize-requested-information) yanıtlarını hâlâ alırsınız, bu nedenle orada ihtiyacınız olan tüm iletişim bilgilerini isteyebilirsiniz. Bu ayarlar yalnızca yeni isteklere uygulanır: mevcut istekler, oluşturulduklarında geçerli olan ayarları korur.

[Gating Group Collection](./enterprise-gating-group-collections) içindeki modeller için bu seçenekler koleksiyon üzerinde yapılandırılır.

 

### İstenen bilgileri özelleştirin

Varsayılan olarak, kapalı modelinize gelen kullanıcılar, **Agree and send request to access repo** düğmesine tıklayarak Hugging Face bilgilerini (e-posta ve kullanıcı adı, [toplanmalarını devre dışı bırakmadıysanız](#choose-which-profile-data-hugging-face-shares-with-you)) paylaşmaları istenir.

    
    

Daha fazla kullanıcı bilgisi toplamak istiyorsanız ek alanlar yapılandırabilirsiniz. Bu bilgi **Ayarlar** sekmesinden erişilebilir olacaktır. Bunu yapmak için, anahtar/değer çiftlerinden oluşan bir liste içeren `extra_gated_fields` özelliğini [model kartı meta verilerinize](./model-cards#model-card-metadata) ekleyin. *key* alanın adıdır, *value* ise türüdür veya `type` alanına sahip bir nesnedir. Alan türlerinin listesi şudur:

- `text`: tek satırlık bir metin alanı.
- `checkbox`: bir onay kutusu alanı.
- `date_picker`: bir tarih seçici alanı.
- `country`: ülke açılır listesi. Ülke listesi [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) standardına dayanmaktadır.
- `select`: seçenek listesi içeren bir açılır menü. Seçenek listesi `options` alanında tanımlanır. Örnek: `options: ["option 1", "option 2", {label: "option3", value: "opt3"}]`.

Son olarak, kullanıcıya gösterilen mesajı `extra_gated_prompt` ek alanıyla da kişiselleştirebilirsiniz.

Kullanıcının şirket adını ve ülkesini belirtmesi ile modelin yalnızca ticari olmayan kullanım için olduğu konusunda onay vermesi istenen, özelleştirilmiş bir istek formunun örneği aşağıda verilmiştir.

```yaml
---
extra_gated_prompt: "You agree to not use the model to conduct experiments that cause harm to human subjects."
extra_gated_fields:
  Company: text
  Country: country
  Specific date: date_picker
  I want to use this model for:
    type: select
    options: 
      - Research
      - Education
      - label: Other
        value: other
  I agree to use this model for non-commercial use ONLY: checkbox
---
```

Bazı durumlarda, kapı başlığı, açıklaması ve düğmesindeki varsayılan metni de değiştirmek isteyebilirsiniz. Bu kullanım senaryoları için `extra_gated_heading`, `extra_gated_description` ve `extra_gated_button_content` değerlerini şu şekilde değiştirebilirsiniz:

```yaml
---
extra_gated_heading: "Acknowledge license to accept the repository"
extra_gated_description: "Our team may take 2-3 days to process your request"
extra_gated_button_content: "Acknowledge license"
---
```

### Programatik olarak erişim isteklerini yönetmenin örnek kullanım senaryoları

Gated (erişimi kısıtlı) depolara yönelik erişim isteklerini programatik olarak yönetmenin, toplulukta doğal olarak ortaya çıkan birkaç ilginç kullanım senaryosunu aşağıda bulabilirsiniz. Hatırlatma olarak, model deposunun manuel onay olarak ayarlanması gerekir; aksi takdirde kullanıcılar otomatik olarak erişim alır.

Programatik yönetimin olası kullanım senaryoları şunları içerir:
- Gelişmiş kullanıcı isteği tarama gereksinimleriniz varsa (gelişmiş uyumluluk gereksinimleri vb.) veya kullanıcı isteklerini Hub dışında işlemek istiyorsanız.
    - Bunun bir örneği, kullanıcıların Meta web sitesinden erişim talep etmesi gereken Meta'nın [Llama 2](https://huggingface.co/meta-llama/Llama-2-7b-chat-hf) ilk sürümüdür.
    - Erişim akışınızda kullanıcılardan HF kullanıcı adlarını isteyebilir ve ardından bir betik kullanarak Hub'daki kullanıcı isteklerini, belirlediğiniz koşullara göre programatik olarak kabul edebilirsiniz.
- Bir ödeme akışının tamamlanmasına bağlı olarak bir modele erişimi koşullandırmak istiyorsanız (gerçek ödeme akışının Hub dışında gerçekleştiğini unutmayın).
    - TrelisResearch'ten bu kullanım senaryosunu kullanan bir [örnek depo](https://huggingface.co/Trelis/openchat_3.5-function-calling-v3) işte.
   - [@RonanMcGovern](https://huggingface.co/RonanMcGovern), [akış hakkında bir video](https://www.youtube.com/watch?v=2OT2SI5auQU) paylaştı ve bunu nasıl uygulayacaklarına dair ipuçları verdi.

### Organizasyon üyeleri için geçiş erişimi

Bir kuruluş altında barındırılan kapılı modeller için, kuruluşun **kendi üyelerinin** de erişim isteği göndermesini zorunlu kılabilirsiniz. Model ayarları sayfasında, kapı seçeneklerinin altında **`{org}` üyeleri için de erişimi kapalı tut** seçeneğini etkinleştirin.

Bu seçenek etkinleştirildiğinde, organizasyon üyeleri diğer tüm kullanıcılar gibi modele erişim için talep oluşturmalıdır. Aşağıdaki roller talebi atlayarak doğrudan erişimlerini korur:

- Organizasyon yöneticileri
- Depoyu oluşturan kullanıcı
- [Resource Group](./security-resource-groups) admins, when the model belongs to a Resource Group

Diğer tüm üyeler, erişim isteği akışından geçmelidir. Bu, okuma, katkıda bulunan veya yazma kuruluş rolüne sahip üyeleri ve yönetici rolü olmayan Kaynak Grubu üyelerini içerir.

## Bir organizasyon olarak (Team & Enterprise) gated modelleri yönetin

[Team & Enterprise](https://huggingface.co/docs/hub/en/enterprise) aboneleri, bir koleksiyondaki tüm modellere ve veri setlerine erişimi tek seferde tanımlamak (veya reddetmek) için Gating Group Collection oluşturabilir.

Gating Group Collections hakkında daha fazla bilgi, [özel belgemizde](https://huggingface.co/docs/hub/en/enterprise-gating-group-collections) bulunabilir.

## Kullanıcı olarak gated modellere erişim

Bir kullanıcı olarak, kapılı bir model kullanmak istiyorsanız bu modele erişim talep etmeniz gerekir. Bu, bir Hugging Face kullanıcı hesabına giriş yapmış olmanız gerektiği anlamına gelir.

Erişim talebi yalnızca tarayıcınızdan yapılabilir. Hub'daki modele gidin ve bilgilerinizi paylaşmanız istenecektir:

    
    

**Kabul Et** düğmesine tıklayarak, istek formunda girdiğiniz bilgileri (uygulanabilirse) model yazarlarıyla paylaşmayı, ayrıca yazarların bunları toplamayı tercih etmesi durumunda Hugging Face kullanıcı adınızı ve e-posta adresinizi paylaşmayı kabul etmiş olursunuz. Model yazarlarının size erişim izni verip vermeyeceğine karar vermesine yardımcı olmak için, form alanlarını mümkün olduğunca eksiksiz doldurmaya çalışın.

Erişim isteği gönderildikten sonra iki olasılık vardır. Onay mekanizması otomatikse, model dosyalarına anında erişim sağlarsınız. Aksi takdirde, isteklerin yazarlar tarafından manuel olarak onaylanması gerekir ve bu işlem daha fazla zaman alabilir.

> [!WARNING]
> Model yazarları, modele erişim üzerinde tam kontrole sahiptir. Özellikle, onay mekanizmasından bağımsız olarak ve talebiniz zaten onaylanmış olsa bile, modelinize erişiminizi önceden haber vermeden herhangi bir zamanda engelleyebilirler.

### Dosyaları indir

Korumalı bir modelden dosya indirmek için kimlik doğrulamanız gerekir. Tarayıcıda, hesabınızla oturum açtığınız sürece bu işlem otomatik olarak yapılır. Bir betik kullanıyorsanız, bir [kullanıcı belirteci](./security-tokens) (user token) sağlamalısınız. Hugging Face Python ekosisteminde (`transformers`, `diffusers`, `datasets` vb.) [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/index) kütüphanesini kullanarak makinenize giriş yapabilir ve terminalinizde şunu çalıştırabilirsiniz:

```bash
hf auth login
```

Alternatif olarak, bir defterde veya betikte `login()` kullanarak programatik olarak oturum açabilirsiniz:

```python
>>> from huggingface_hub import login
>>> login()
```

Kütüphanelerdeki (`from_pretrained`, `hf_hub_download`, `load_dataset` vb.) çoğu yükleme yöntemine, betiklerinizden doğrudan `token` parametresini de sağlayabilirsiniz.

Giriş yapma konusunda daha fazla ayrıntı için [giriş kılavuzuna](https://huggingface.co/docs/huggingface_hub/quick-start#login) göz atın.

### AB Kullanıcıları İçin Erişimi Kısıtlama

Kapılı modeller için, Avrupa Birliği ülkelerindeki kullanıcıları özellikle kısıtlamak amacıyla ek bir erişim kontrol katmanı ekleyebilirsiniz. Modelinizin lisansı veya kullanım koşulları AB'de dağıtımını yasaklıyorsa bu işe yarar.

Bunu etkinleştirmek için model kartınızın meta verilerine `extra_gated_eu_disallowed: true` özelliğini ekleyin.

**Önemli:** Bu özellik yalnızca modeliniz zaten kapılıysa etkinleşir. `gated: false` ise veya özellik ayarlanmamışsa bu kısıtlama uygulanmaz.

```yaml
---
license: mit
gated: true
extra_gated_eu_disallowed: true
---
```

Sistem, bir kullanıcının konumunu IP adresine dayanarak belirler.

