# Başlangıç

Kurulum gerektirmeden başlayın: sanal anahtarınızı alın, OpenAI SDK'da base_url değerini değiştirin ve dakikalar içinde ilk maskeli isteğinizi gönderin.

İlk isteğiniz için iki adres ve bir sanal anahtar yeter. Kurulum yok; OpenAI SDK kullanıyorsanız yalnız `base_url` değerini ve anahtarı değiştirirsiniz, kodunuzun geri kalanına dokunmazsınız.

## Erişim bilgileriniz

| Kullanım | Adres |
| --- | --- |
| API tabanı (OpenAI SDK `base_url`) | `https://gw-tr.gurubase.io/v1` |
| Yönetim paneli | `https://gateway-tr.gurubase.io` |

## Sanal anahtarınızı üretin

[Panele](https://gateway-tr.gurubase.io) giriş yapın ve bir sanal anahtar üretin; isteklerinizi bu anahtarla gönderirsiniz. Dil modeli sağlayıcısının gerçek anahtarı Gateway içinde kalır, uygulamanızda tutmanız gerekmez. Adımlar için [Panel](/docs/panel/).

## İlk istek

Aşağıdaki üç örnek de Responses API’ye aynı isteği gönderir. Metinde bir ad ve bir TCKN var; ikisi de modele gitmeden önce maskelenir.

```bash
curl https://gw-tr.gurubase.io/v1/responses \
  -H "Authorization: Bearer $SANAL_ANAHTAR" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "input": "Ayşe Demir, TCKN 10000000214, başvuru durumunu soruyor."
  }'
```

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://gw-tr.gurubase.io/v1",
    api_key="SANAL_ANAHTAR",
)

resp = client.responses.create(
    model="gpt-4o-mini",
    input="Ayşe Demir, TCKN 10000000214, başvuru durumunu soruyor.",
)
print(resp.output_text)
```

```ts
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://gw-tr.gurubase.io/v1",
  apiKey: process.env.SANAL_ANAHTAR,
});

const resp = await client.responses.create({
  model: "gpt-4o-mini",
  input: "Ayşe Demir, TCKN 10000000214, başvuru durumunu soruyor.",
});
console.log(resp.output_text);
```

## Ne oldu?

Girdinizdeki ad ve TCKN, modele giden kopyada yer tutucularla değiştirildi:

```text
Girdi : "Ayşe Demir, TCKN 10000000214, başvuru durumunu soruyor."
Modele: "<PERSON_1>, TCKN <TCKN_1>, başvuru durumunu soruyor."
```

Model maskeli metinle çalışır; yanıt dönerken aynı yer tutucular korunur. Yer tutucular API çıktısında İngilizcedir; yer tutucuların biçimini ve panel gösteriminden farkını [Kavramlar](/docs/concepts/) sayfasında bulursunuz.

## Sıradaki adımlar

- [Kavramlar](/docs/concepts/): Yer tutucu formatı, fail-closed davranış ve veri egemenliği.
- [Gateway entegrasyonu](/docs/guides/gateway-integration/): Streaming, Chat Completions ve yalnız maskeleme.
- [Kategoriler](/docs/categories/): Maskelenen 26 kişisel veri kategorisinin tam listesi.
- [Panel](/docs/panel/): Sanal anahtar üretimi ve kullanım takibi.
