# Hızlı başlangıç

Sayfa: https://docs.sonecentral.com/hizli-baslangic
Markdown: https://docs.sonecentral.com/hizli-baslangic.md

> Anahtarınızı oluşturun, asistanınızın kimliğini bulun ve ilk mesajı gönderin.

> **Dokümanı ajanınıza verin.** Dokümanın tamamı tek bir Markdown dosyasında: https://docs.sonecentral.com/llms-full.txt . Kodlama ajanınıza bu adresi yapıştırın. Tek bir sayfa için o sayfanın .md adresini verin, örneğin https://docs.sonecentral.com/hizli-baslangic.md . Sayfaların listesi: https://docs.sonecentral.com/llms.txt

Bir kodlama ajanıyla çalışıyorsanız işin en kısa yolu bu: yukarıdaki adresi ajanınıza verin, ne yapmak istediğinizi söyleyin. Kendiniz yazacaksanız aşağıdaki dört adım yeterli.

### Anahtar oluşturun

Sonecentral'da **Metin asistanı** sayfasını açın ve **API anahtarları** bölümünden yeni anahtar oluşturun. Bu bölümü yalnız çalışma alanının yöneticileri görür. **Tür** alanında iki seçenek var:

- **Sunucu anahtarı** `sk-sone-v1-` ile başlar ve arka uç kodunuz içindir. Tarayıcıya, mobil uygulama paketine ya da herkese açık bir depoya asla koymayın.
- **Tarayıcı anahtarı** `pk-sone-v1-` ile başlar ve sitenizdeki sohbet penceresi içindir. Yalnız izin verdiğiniz sitelerden çalışır.

Anahtar yalnız oluşturulduğu anda bir kez gösterilir. Hemen ortam değişkeni olarak saklayın:

```bash
export SONE_API_KEY="sk-sone-v1-..."
```

Ayrıntılar: [Kimlik doğrulama ve anahtarlar](https://docs.sonecentral.com/kimlik-dogrulama.md).

### Asistanınızın kimliğini bulun

```bash
curl https://pb.sonecentral.com/api/v1/models \
  -H "Authorization: Bearer $SONE_API_KEY"
```

Listedeki `id`, `model` alanına yazacağınız değerdir. Anahtar tek bir asistana açıksa `"default"` yazmanız da yeter.

### İlk mesajı gönderin

**curl**

```bash
curl https://pb.sonecentral.com/api/v1/chat/completions \
  -H "Authorization: Bearer $SONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "default",
    "messages": [
      { "role": "user", "content": "Yarın öğleden sonra randevu alabilir miyim?" }
    ]
  }'
```

**OpenAI JS**

```ts
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://pb.sonecentral.com/api/v1',
  apiKey: process.env.SONE_API_KEY,
});

const completion = await client.chat.completions.create({
  model: 'default',
  messages: [{ role: 'user', content: 'Yarın öğleden sonra randevu alabilir miyim?' }],
});

console.log(completion.choices[0].message.content);
```

**OpenAI Python**

```python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://pb.sonecentral.com/api/v1",
    api_key=os.environ["SONE_API_KEY"],
)

completion = client.chat.completions.create(
    model="default",
    messages=[{"role": "user", "content": "Yarın öğleden sonra randevu alabilir miyim?"}],
)

print(completion.choices[0].message.content)
```

**Vercel AI SDK**

```ts
import { createOpenAI } from '@ai-sdk/openai';
import { generateText } from 'ai';

const sone = createOpenAI({
  baseURL: 'https://pb.sonecentral.com/api/v1',
  apiKey: process.env.SONE_API_KEY,
});

const { text } = await generateText({
  model: sone.chat('default'),
  prompt: 'Yarın öğleden sonra randevu alabilir miyim?',
});

console.log(text);
```

Kurulum: `npm i openai`, `pip install openai` ya da `npm i ai @ai-sdk/openai`. Örnekler `openai` 7 (Node), `openai` 2 (Python), `ai` 7 ve `@ai-sdk/openai` 4 ile denendi.

### Sohbeti sürdürün

Yanıtta `choices[0].message.sone.conversation_id` gelir. Sonraki mesajda bunu `metadata` içinde geri gönderin; asistan önceki mesajları hatırlar. Yalnız yeni mesajı gönderdiğiniz için her mesaja bir `Idempotency-Key` de ekleyin: ağ hatasından sonra aynı anahtarla yeniden denerseniz mesaj iki kez kaydedilmez.

```ts
// `sone` OpenAI tiplerinde yok; tipini Chat Completions sayfasında bulursunuz.
const { sone } = completion.choices[0].message as unknown as {
  sone: { conversation_id: string };
};

await client.chat.completions.create(
  {
    model: 'default',
    metadata: { conversation_id: sone.conversation_id },
    messages: [{ role: 'user', content: 'Saat dört uygun mu?' }],
  },
  { headers: { 'Idempotency-Key': crypto.randomUUID() } },
);
```

Başka yollar, yeniden deneme ve tarayıcıda saklama: [Sohbet sürekliliği](https://docs.sonecentral.com/sohbet-surekliligi.md).

## Buradan nereye

- Sitenize sohbet penceresi koymak: [Site içine sohbet penceresi](https://docs.sonecentral.com/sohbet-penceresi.md)
- React ve Next.js: [Vercel AI SDK](https://docs.sonecentral.com/vercel-ai-sdk.md)
- Ürün kartları ve düğmeler: [Zengin mesajlar](https://docs.sonecentral.com/zengin-mesajlar.md)
