---
title: Başlangıç
description: Sanal anahtarınızı alın ve OpenAI SDK ile dakikalar içinde ilk maskeli isteğinizi gönderin.
sidebar:
  icon: rocket
---

İ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](/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.

<CodeGroup>

```bash title="curl"
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 title="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 title="TypeScript"
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);
```

</CodeGroup>

## 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](/concepts) sayfasında bulursunuz.

## Sıradaki adımlar

<CardGroup>
  <Card title="Kavramlar" href="/concepts">
    Yer tutucu formatı, fail-closed davranış ve veri egemenliği.
  </Card>
  <Card title="Gateway entegrasyonu" href="/guides/gateway-integration">
    Streaming, Chat Completions ve yalnız maskeleme.
  </Card>
  <Card title="Kategoriler" href="/categories">
    Maskelenen 26 kişisel veri kategorisinin tam listesi.
  </Card>
  <Card title="Panel" href="/panel">
    Sanal anahtar üretimi ve kullanım takibi.
  </Card>
</CardGroup>
