Kimlik doğrulama ve anahtarlar
Sunucu anahtarı ile tarayıcı anahtarı arasındaki fark, anahtarın nasıl gönderildiği, izin verilen siteler ve anahtarın nasıl iptal edildiği.
İki anahtar türü
| Sunucu anahtarı | Tarayıcı anahtarı | |
|---|---|---|
| Biçim | sk-sone-v1- ve 48 harf ya da rakam | pk-sone-v1- ve 48 harf ya da rakam |
| Nerede | Arka uç kodu, sunucusuz işlev, betik | Sitenizdeki sohbet penceresi |
| Tarayıcıdan | Reddedilir (403 secret_key_in_browser) | Yalnız izin verilen sitelerden |
user ile sohbet bulma | Var | Yok, gönderilen değer yok sayılır |
| Geliştirici bağlamı | Var | Yok, gönderilen bağlam yok sayılır |
| Yeni sohbete aktarılan geçmiş | Ziyaretçi ve asistan satırları | Yalnız ziyaretçinin satırları |
| İstek sınırı | Anahtar başına dakikada 120 | Ziyaretçi adresi başına dakikada 30; anahtar başına saatte 1.200 istek ve 20.000 okuma |
| Otomatik yanıt sınırı | Çalışma alanının sınırı: saatte 60, günde 300 tur | Bu sınırın içinde bütün tarayıcı anahtarlarının ortak payı: saatte 40, günde 200 tur |
Anahtarları Sonecentral'da Metin asistanı sayfasının API anahtarları bölümünde oluşturur, düzenler ve iptal edersiniz. Bu bölümü yalnız çalışma alanının yöneticileri görür. Bir çalışma alanında aynı anda en fazla 50 etkin anahtar olabilir; iptal edilen anahtarlar bu sayıya girmez.
Anahtarı göndermek
Anahtarı Authorization başlığında taşıyın:
Authorization: Bearer sk-sone-v1-...x-api-key başlığı da kabul edilir. İkisi birden gelirse Authorization kullanılır.
x-api-key: sk-sone-v1-...OpenAI SDK'ları ve Vercel AI SDK, apiKey seçeneğine verdiğiniz değeri zaten Authorization: Bearer olarak gönderir.
Anahtar ne zaman gösterilir
Anahtarın tamamı yalnız oluşturulduğu anda, bir kez gösterilir. Sonecentral onu saklamaz, yalnız özetini tutar; listede ilk karakterleri ve son dört karakteri görürsünüz. İstek kayıtlarımız da anahtarı tutmaz; Authorization ile de, x-api-key ile de gönderilse. Anahtarı kaybettiyseniz yenisini oluşturup eskisini iptal edin.
Anahtarın ayarları
Anahtar oluşturulurken şunlar seçilir:
- Ad. Anahtarı listede tanımanız için, en fazla 80 karakter.
GET /keyyanıtında da görünür; gizli bilgi yazmayın. - Tür. Sunucu anahtarı ya da tarayıcı anahtarı. Tür sonradan değiştirilemez; gerekirse yeni anahtar oluşturun.
- Asistanlar. Anahtarın çağırabileceği asistanlar. Hepsi seçilirse çalışma alanında yayında olan bütün asistanlar, sonradan yayınlananlar da. Henüz yayında olmayan bir asistan da seçilebilir; anahtar onunla asistan yayınlandığında çalışır.
- İzin verilen siteler. Yalnız tarayıcı anahtarında. En az bir, en fazla 20 site.
- Sipariş ve randevu talebi alabilir. Açıksa asistan bu sohbetlerde yeni sipariş ya da randevu talebi açabilir; talepler ekibinizin onayını bekler. Kapalıysa asistan isteği ayrıntılarıyla ekibe iletir. Varsayılan olarak açıktır. Ayrıntılar: Siparişler, randevular ve gizlilik.
Tür dışındaki ayarlar sonradan düzenlenebilir; değişiklik bir sonraki istekte geçerli olur.
İzin verilen siteler
Tarayıcı, siteler arası her istekte Origin başlığını kendisi gönderir. Tarayıcı anahtarı yalnız Origin değeri listedeki sitelerden biriyle aynıysa kabul edilir. Origin başlığı olmayan bir istekte tarayıcı anahtarı kullanılamaz.
Site adresleri şöyle yazılır:
https://www.ornek.comgibi, yalnız şema ve alan adı. Alan adında en az bir nokta olmalıdır. 443 dışında bir port gerekiyorsahttps://www.ornek.com:8443gibi yazılır.- Yol, sorgu,
*joker karakteri, IP adresi vehttps://localhostkabul edilmez. https://ornek.comilehttps://www.ornek.comiki ayrı sitedir; ikisini de kullanıyorsanız ikisini de ekleyin.- Geliştirme için yalnız
http://localhostvehttp://127.0.0.1eklenebilir, portlu ya da portsuz:http://localhost:3000,http://127.0.0.1:5173. Bunun dışındahttpkabul edilmez.
Alan adı küçük harfe çevrilerek karşılaştırılır. Listede olmayan bir siteden gelen istek 403 origin_not_allowed ile reddedilir.
Sunucu anahtarı tarayıcıda çalışmaz
Sunucu anahtarı sitenizin koduna girerse onu herkes okuyabilir ve sizin adınıza istek gönderebilir. Bunun önüne geçmek için Sonecentral, Origin başlığında anahtarın listelemediği bir site taşıyan istekte sunucu anahtarını 403 secret_key_in_browser ile reddeder. Panel sunucu anahtarına site eklemez; bu yüzden tarayıcıdan gelen her istek reddedilir. Tarayıcıda her zaman tarayıcı anahtarını kullanın.
Bu bir güvenlik ağıdır, garanti değildir. Bilgisayardaki bir dosyadan ya da korumalı bir çerçeveden açılan sayfalar Origin: null gönderir. Sonecentral böyle bir isteği sunucudan gelen bir istekten ayıramaz ve reddetmez. Sunucu anahtarını tarayıcıya, mobil uygulama paketine ya da herkese açık bir depoya hiçbir zaman koymayın.
Tarayıcıdaki kodunuz yanıtın şu başlıklarını okuyabilir: x-request-id, retry-after, x-should-retry ve x-sone-conversation-id.
Geliştirici bağlamı
Sunucu anahtarıyla gönderdiğiniz system ve developer rolündeki mesajlar, Responses'taki instructions alanı ve Vercel AI SDK'daki context alanı asistana yalnız bilgi olarak iletilir. Örneğin ziyaretçinin hangi ürün sayfasında olduğunu ya da uygulamanızdaki dil tercihini bildirebilirsiniz.
Bu metin işletmenin talimatını ve kurallarını değiştiremez; içindeki talimatlara uyulmaz. Birden çok bağlam alt alta birleştirilir ve en fazla 2.000 karakteri dikkate alınır. Responses'taki instructions 2.000 karakterden ya da JSON olarak 4 KB'tan uzunsa istek 400 instructions_too_long alır. Bağlam, gönderildiği tur için geçerlidir: sonraki istekte göndermezseniz kalkar.
Tarayıcı anahtarıyla gönderilen geliştirici bağlamı yok sayılır ve saklanmaz, çünkü onu ziyaretçi de değiştirebilir.
İptal
Anahtarı API anahtarları bölümünden iptal ettiğiniz anda kullanılamaz olur; sonraki istekler 401 revoked_api_key alır. İptal geri alınmaz, iptal edilen anahtar düzenlenemez; gerekirse yeni anahtar oluşturun. Anahtarın açtığı sohbetler Mesajlar ekranında kalır.
İptal edilen anahtarın sakladığı yanıtlar 30 gün sonra kendiliğinden silinir. Aynı asistanı çağırabilen yeni bir anahtar onları okuyabilir ve previous_response_id ile sürdürebilir, ama silemez; instructions, safety_identifier ve user alanlarını da göremez: Saklanan yanıtlar.
Anahtarı denetlemek
GET /key kullandığınız anahtarın özetini döner. Anahtarın doğru çalışma alanına ve asistanlara bağlı olduğunu kurulumda bununla doğrulayabilirsiniz.
curl https://pb.sonecentral.com/api/v1/key \
-H "Authorization: Bearer $SONE_API_KEY"{
"data": {
"label": "pk-sone-v1-Ab3…",
"name": "Web sitesi sohbeti",
"kind": "publishable",
"assistants": ["k3m9x2p7q1w8e4r"],
"requests": true,
"allowed_origins": ["https://www.ornek.com"],
"limits": {
"requests_per_minute_per_visitor": 30,
"requests_per_hour": 1200,
"read_requests_per_hour": 20000,
"assistant_turns_per_hour": 60,
"assistant_turns_per_day": 300,
"browser_assistant_turns_per_hour": 40,
"browser_assistant_turns_per_day": 200
}
}
}Alan
Tür
Sunucu anahtarında limits şöyledir:
{ "requests_per_minute": 120, "assistant_turns_per_hour": 60, "assistant_turns_per_day": 300 }GET /key isteği de bir okumadır ve anahtarın sınırına sayılır: Limitler.
Hatalar
| Durum | code | Ne zaman |
|---|---|---|
401 | missing_api_key | Anahtar gönderilmedi. |
401 | invalid_api_key | Anahtar tanınmadı, biçimi bozuk ya da öneki türüyle uyuşmuyor. |
401 | revoked_api_key | Anahtar iptal edilmiş. |
403 | origin_not_allowed | Tarayıcı anahtarı listede olmayan bir siteden ya da Origin başlığı olmadan kullanıldı. |
403 | secret_key_in_browser | Sunucu anahtarı, anahtarın listelemediği bir sitedeki tarayıcıdan kullanıldı. |
429 | rate_limit_exceeded | Anahtarın istek ya da okuma sınırı aşıldı. Retry-After kadar bekleyin. |
Bütün hata kodları: Hatalar.