# Asistanlar ve modeller

Sayfa: https://docs.sonecentral.com/asistanlar-ve-modeller
Markdown: https://docs.sonecentral.com/asistanlar-ve-modeller.md

> model alanına ne yazılır, asistanlar nasıl listelenir ve "default" ne anlama gelir.

OpenAI biçiminde `model` bir dil modelinin adıdır. Burada ise **asistanınızın kimliğidir**: hangi asistanın yanıt vereceğini seçer. Dil modelini, talimatı ve araçları asistanın Sonecentral'daki ayarları belirler; istekten değiştirilemez.

## Asistan neleri kullanır

API'deki asistan, WhatsApp'ta, Instagram'da ve Messenger'da yanıt veren asistanın kendisidir. Çalışma alanınızda tanımlı her şeyi orada nasıl kullanıyorsa burada da aynen öyle kullanır:

- hizmetleriniz; fiyat, süre, görsel ve bağlantılarıyla,
- ürünleriniz ve stokunuz; fiyat, görsel ve bağlantılarıyla,
- katalog öğeleriniz ve paketleriniz,
- ekibiniz, bölümleriniz ve çalışma saatleriniz,
- işletme bilgileriniz: ad, adres ve telefon,
- bağlı mağazanızın kargo kuralları ve kampanyaları,
- fiyat listeniz ve tanımladıysanız iskonto yetkiniz,
- Bilgi Bankası'ndaki belgeler, gönderilebilir olarak tanımladığınız belgeler ve belgelerinizden çıkarılan işletme verileri,
- anahtarda talep ayarı açıksa sipariş ve randevu talepleri ile uygun randevu saatleri,
- ekibe not bırakmak ve sohbeti ekibe devretmek.

Ürün ve hizmet kartları, düğmeler ve dosyalar yapılandırılmış veri olarak gelir: [Zengin mesajlar](https://docs.sonecentral.com/zengin-mesajlar.md).

API ziyaretçisinin kimliği doğrulanmadığı için asistan bilerek şunları yapmaz: kişinin kendi kayıtlarını (geçmiş siparişler, mevcut randevular, müşteri kartı, hatırlanan bilgiler, bağlı paneldeki hesap) okumaz ya da değiştirmez ve randevuyu kendisi kesinleştirmez. Ayrıntılar: [Siparişler, randevular ve gizlilik](https://docs.sonecentral.com/siparis-randevu-gizlilik.md).

## Asistanları listelemek

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

```json
{
  "object": "list",
  "data": [
    {
      "id": "k3m9x2p7q1w8e4r",
      "object": "model",
      "created": 1760889600,
      "owned_by": "sonecentral",
      "name": "Mağaza asistanı"
    }
  ]
}
```

Liste yalnız **anahtarın çağırabildiği** ve **yayında olan** asistanları içerir. Taslak ya da kurulumu bitmemiş bir asistan listede görünmez. Sıra, asistanların adına göredir.

| Alan | Tür | Açıklama |
| --- | --- | --- |
| `id` | string | Asistanın kimliği. model alanına bu yazılır. |
| `object` | "model" | Her zaman model. |
| `created` | integer | Asistanın oluşturulduğu an, Unix saniyesi. |
| `owned_by` | "sonecentral" | Her zaman sonecentral. |
| `name` | string | Asistanın paneldeki adı. |

Tek bir asistan için `GET /models/{id}` aynı nesneyi döner.

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

OpenAI SDK'larında aynı şey `client.models.list()` ve `client.models.retrieve(id)` ile yapılır.

`model` değerinde son `/` işaretinden öncesi yok sayılır. Bu yüzden model adlarının önüne sağlayıcı adı koyan araçlarda `sonecentral/k3m9x2p7q1w8e4r` gibi bir değer de aynı asistanı seçer.

## `"default"`

`model` boş bırakılırsa ya da `"default"` yazılırsa asistan şu sırayla seçilir:

1. Anahtar yalnız bir asistanı çağırabiliyorsa o asistan.
2. Değilse, anahtar onu çağırabiliyorsa çalışma alanının varsayılan metin asistanı.
3. O da yoksa anahtarın çağırabildiği asistanlardan adı alfabede ilk gelen.

Anahtarınız birden çok asistana açıksa ve hangisinin yanıt vereceği önemliyse kimliği açıkça yazın.

## Sohbet ve asistan

Bir sohbet açıldığı asistana bağlıdır. Aynı sohbeti başka bir `model` ile sürdürmeye çalışırsanız istek `400 conversation_model_mismatch` alır. Aynı asistanla sürdürün ya da yeni bir sohbet başlatın.

## Hatalar

| Durum | `code` | Ne zaman |
| --- | --- | --- |
| `404` | `model_not_found` | Bu kimlikte yayında bir asistan yok ya da anahtar onu çağıramaz. Asistan taslaktaysa ya da kurulumu bitmemişse de bu kod gelir. |
| `400` | `conversation_model_mismatch` | Sohbet başka bir asistanla açılmış. |
