# Modeller ve sağlayıcılar

Tek OpenAI uyumlu arayüzün arkasında OpenAI ve Anthropic dahil farklı sağlayıcılar: model seçimi, erişilebilir modelleri listeleme, yeniden deneme ve alternatife geçiş.

Gateway tek bir OpenAI uyumlu arayüz sunar. Arkasında hangi sağlayıcının çalıştığı istemciyi ilgilendirmez: uygulamanız aynı istek biçimini gönderir, değişen tek alan `model` olur.

## Model seçimi

Model adı istekte belirtilir. Kuruma tanımlı modeller arasında geçiş yapmak için tek satır değişir; SDK, parametreler ve yanıt biçimi aynı kalır.

```python
resp = client.responses.create(
    model="gpt-4o-mini",
    input="Ahmet Yılmaz, TCKN 10000000382, adres değişikliği istiyor.",
)
```

Hangi modellere erişebildiğinizi `/v1/models` ucundan alırsınız. Liste, kurumunuz için tanımlanmış modelleri döndürür; yalnız maskeleme için ayrılmış `gurubase-siper` adı da buradadır. Uç noktanın tam referansı için [Erişilebilir modelleri listele](/docs/api/gateway/models/listmodels/).

## Gömme (embedding) modelleri

Gömme modelleri metni sayı vektörüne çevirir; arama, benzerlik ve öneri kurmak için kullanılır. Uç `/v1/embeddings` adresindedir ve OpenAI ile uyumludur: SDK’nızda yalnız `base_url` ve anahtar değişir.

```python
resp = client.embeddings.create(
    model="text-embedding-3-small",
    input="Ahmet Yılmaz, TCKN 10000000382, talebini iletti.",
)
vektor = resp.data[0].embedding
```

Maskeleme burada da açıktır ve sohbetle **aynı** anahtarla yönetilir: metindeki kişisel alanlar vektör hesaplanmadan önce yer tutuculara döner. Yani elinizdeki vektör, maskeli metnin vektörüdür.

Bunun iki sonucu vardır ve ikisini de baştan bilmek gerekir.

**Aynı belge her zaman aynı vektörü verir.** Yer tutucular bu uçta deterministiktir, bu yüzden bir belgeyi yeniden gömdüğünüzde aynı vektörü alırsınız ve indeksinizdeki değer tutar. Bu, aynı kaydın iki kez EKLENMESİNİ kendiliğinden engellemez; tekilleştirme için belge başına kararlı bir kimlik kullanıp upsert yapmanız (ya da açıkça tekilleştirmeniz) gerekir. Determinizmin sağladığı şey, o kimliğe bağlı vektörün zaman içinde değişmemesidir.

**Maskelenen varlıklar birbirinden ayırt edilmez.** Yalnız kişi adında farklı olan iki belge aynı yer tutucuya indiği için AYNI vektörü üretir (ölçüldü: benzerlik 1,000). Kişi adıyla yaptığınız sorgu “bir kişiden söz eden belgeleri” bulur ama hangi kişi olduğunu ayıramaz; iki belgeye de aynı puanı verir. Bu sessiz bir sonuçtur, arama hata vermez, sadece yanlış kişinin belgesini eşit olasılıkla döndürür. Kişiye göre filtrelemeniz gerekiyorsa bunu vektör benzerliğiyle değil, kendi tarafınızdaki bir kimlik alanıyla yapın.

Konu bazlı arama bundan etkilenmez: maskelenmeyen içerik (talep türü, konu, tarih) vektörde olduğu gibi kalır.

Ayrıca indeksleme ve sorgulama aynı yoldan geçmelidir: biri gateway üzerinden, diğeri doğrudan sağlayıcıdan gelirse vektörler karşılaştırılabilir olmaz.

Girdi metin olmalıdır. Önceden token’lanmış girdi (token id dizisi) maskelenemediği için sağlayıcıya iletilmez, 415 ile geri döner. Uç noktanın tam referansı için [Gömme vektörü üret](/docs/api/gateway/embeddings/createembedding/).

## Sağlayıcılar

Aynı arayüzün arkasında iki tür sağlayıcı çalışabilir: OpenAI, Anthropic ve Gemini gibi genel sağlayıcılar ya da kendi sunucunuzda barındırdığınız modeller. Hangi sağlayıcıların açık olacağı ve her sanal anahtarın hangi modellere erişeceği kurum için tanımlanır.

Sağlayıcının gerçek API anahtarı Gateway içinde durur. Uygulamalarınız ve panel kullanıcıları yalnız sanal anahtar görür; sağlayıcı anahtarı istemciye hiçbir zaman inmez. Anahtar üretme, döndürme ve iptal adımları için [Panel](/docs/panel/).

Maskeleme bu seçimden bağımsızdır: hangi sağlayıcı seçilirse seçilsin, istek dış modele çıkmadan önce aynı koruma katmanlarından geçer. Katmanlar için [Koruma katmanları](/docs/guardrails/).

## Yeniden deneme ve alternatife geçiş

Sağlayıcılar zaman zaman hız sınırı döndürür ya da yavaşlar. Bu durumda yeniden deneme kararı uygulama kodunuzda değil, Gateway’de verilir: istek, artan bekleme aralıklarıyla yeniden denenir.

Kurumunuz için birden fazla sağlayıcı tanımlıysa, bir sağlayıcı yanıt veremediğinde isteğin alternatif bir sağlayıcıya yönlendirilmesi de aynı yerde yapılandırılır. Uygulama tarafında ek kod gerekmez.

Sizin tarafınızdaki limitler (dakika başına istek, token bütçesi ve 429 davranışı) ayrı bir konudur; ayrıntısı [Limitler ve kotalar](/docs/limits/) sayfasındadır.
