Genel Bakış
API'nin haritası: her uç nokta, bir istek ve bir hatanın nasıl göründüğü, çağrıların nasıl ödendiği ve bir OpenAI ya da Anthropic SDK'sından geliyorsanız bilmeniz gerekenler.
Uç noktalar
Her uç nokta tek bir temel URL altında yer alır ve HTTPS üzerinden sunulur.
https://api.shannon-ai.com | Uç nokta | Biçim | Ne işe yarar |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Bir konuşma gönderin, sonraki yanıtı alın. Streaming ile ya da streaming olmadan. |
POST /v1/messages | Anthropic Messages | Aynısı, Anthropic SDK'larının istek ve yanıt biçimlerinde. |
POST /v1/responses | OpenAI Responses | Aynısı, Responses biçimlerinde. Uç nokta durum tutmaz: konuşmayı her istekle birlikte gönderin. |
GET /v1/models | OpenAI model listesi | Modelleri bağlam penceresi, fiyatlar ve yeteneklerle listeleyin. Anahtar gerektirmez. |
POST /v1/tokenize | Shannon API | Host edilen açık ağırlıklı bir model için bir metnin ya da bir sohbet isteğinin token'larını sayın. Ücretsiz. |
POST /v1/messages/count_tokens | Anthropic token sayımı | Host edilen açık ağırlıklı bir model için bir Messages isteğinin giriş token'larını sayın. Ücretsiz. |
Metin üreten üç uç nokta aynı modellere ulaşır. Kodunuzun zaten kullandığı biçime uyanı seçin.
İstek temelleri
| Başlık | Açıklama |
|---|---|
Authorization: Bearer <key> | API anahtarınız. x-api-key göndermiyorsanız GET /v1/models dışındaki her uç noktada zorunludur. |
x-api-key: <key> | Anthropic SDK'larının gönderdiği başlıkta aynı anahtar. Her uç noktada okunur. |
Content-Type: application/json | Her POST için zorunludur. Onsuz yanıt 415 olur. |
x-request-id: <your id> | İsteğe bağlı. İsteğe verdiğiniz kendi kimliğiniz; x-request-id yanıt başlığında geri gelir. Onsuz API 12 onaltılık karakterden oluşan bir tane üretir. |
- Her
POSTisteğinin gövdesi, en fazla 32 MiB'lık tek bir JSON nesnesidir. - API'nin bilmediği bir alan hata oluşturmaz ve etkisi yoktur. Başka bir sağlayıcı için yazılmış bir istek fazladan bir alan yüzünden başarısız olmaz.
- Yanlış JSON türünde bilinen bir alan ya da eksik zorunlu bir alan
422ile yanıtlanır. Geçerli JSON olmayan bir gövde400ile yanıtlanır. model, Models & pricing sayfasındaki kimliklerden biridir. Büyük ve küçük harf fark etmez.
Yanıt JSON'dır; istek stream değerini true yaptıysa server-sent events akışıdır. Her uç nokta kendi biçiminde yanıt verir. Her yanıtta x-request-id başlığı bulunur.
Bir isteğin geçtiği denetimler
Bir model çalışmadan önce istek belirli bir sırayla denetlenir. Başarısız olan ilk denetim yanıt verir; bu yüzden bir 401 henüz gövde hakkında hiçbir şey söylemez.
| Denetlenen, bu sırayla | Başarısız olduğunda durum |
|---|---|
| API anahtarı | 401 |
| Gövde: boyut, içerik türü, JSON, alan türleri | 413 · 415 · 400 · 422 |
| Model kimliği | 400 |
| Flood koruması: hesap başına dakikada 120 istek | 429 |
| Bakiye: isteğin çıktı bütçesi sığmalıdır | 429 |
Hata biçimi
Hata, type ve message içeren bir error taşıyan JSON nesnesidir. /v1/messages onu Anthropic SDK'larının beklediği şekilde sarar; diğer her yol OpenAI biçimini kullanır.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} typevemessagealanlarını okuyun.codeveparamyalnızca bazı hatalarda bulunur: bunları isteğe bağlı sayın.paramher zamannull'dır.- Bir stream başladıktan sonra durum zaten
200'dür. O zaman bir başarısızlık stream içinde bir hata frame'i olarak gelir. - Her hata yanıtı
x-request-idbaşlığını taşır.
| Durum | Tür | Ne zaman |
|---|---|---|
400 | invalid_request_error | Gövde geçerli JSON değil, model kimliği bilinmiyor ya da model gönderdiğiniz bir girdi türünü kabul etmiyor. |
401 | authentication_error | Anahtar eksik veya geçerli değil. |
404 | not_found_error | Yol mevcut değil. |
405 | api_error | Yol mevcut, yöntem yanlış. |
413 | invalid_request_error | Gövde 32 MiB'tan büyük. |
415 | invalid_request_error | Content-Type değeri application/json değil. |
422 | invalid_request_error | Bir alanın JSON türü yanlış ya da zorunlu bir alan eksik. |
429 | rate_limit_error | Bakiye isteği karşılamıyor, bir dakikada 120'den fazla istek geldi, penceredeki Shannon Coder çağrıları tükendi ya da model meşgul. Mesaj hangisi olduğunu söyler. |
5xx | api_error | 500, 502, 503 veya 504 durumu: istek geçerliydi ve yanıtlanamadı. Yeniden gönderin. Bir 500, server_error türünü taşıyabilir. |
Faturalandırma ve bakiye
- Hesap başına tek bir bakiye vardır ve sohbet ile API onu paylaşır: önce bugünün plan limiti, sonra satın alınan kredi. API'nin kendine ait bir kotası yoktur.
- Bir istek çıktı bütçesini (
max_tokens, varsayılan 4,096) ayırır ve sonra gerçekten kullandığı token'lar için modelin fiyatından ücretlendirilir. - Her yanıt token sayılarını
usageiçinde bildirir. Keys & usage sayfası bakiyeyi ve her isteğin maliyetini gösterir. - Her istek eşit karşılanır. İstek hızındaki tek sınır flood korumasıdır: hesap başına dakikada 120 istek. Paralel gönderilen istekler sırada bekler.
Limitler ve bakiye Modeller ve fiyatlandırma Keys & usage
Modele bağlı alanlar
Her model aynı isteği kabul eder. Birkaç alan yalnızca bazı modellerde etkili olur; tablo nerede olduğunu belirtir. Uç nokta sayfaları her alanı listeler.
| Alan | Açıklama | Uygulayan |
|---|---|---|
system | Model için talimatlar: Chat Completions'ta bir system mesajı, Messages'ta system, Responses'ta instructions. | Host edilen açık ağırlıklı modeller, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Örnekleme sıcaklığı. | Host edilen açık ağırlıklı modeller, shannon-1.6-*, shannon-coder-1 |
top_p | Nucleus örnekleme. | Host edilen açık ağırlıklı modeller |
seed | Örnekleme için sabit bir seed. | Host edilen açık ağırlıklı modeller |
stop | En fazla 4 durdurma dizisi. | Host edilen açık ağırlıklı modeller |
reasoning_effort | Modelin yanıt vermeden önce ne kadar akıl yürüttüğü. Responses'ta reasoning.effort, Messages'ta thinking. | Host edilen açık ağırlıklı modeller |
web_search | true, modelin bu istek için web'de arama yapmasına izin verir. Bu API'ye ait bir alandır; Chat Completions ve Messages üzerinde geçerlidir. | shannon-coder-1 dışındaki Shannon modelleri |
max_tokens | Çıktı bütçesi. Her modelde bakiyenizden ayrılan miktarı belirler. | Yanıt uzunluğunun sınırı olarak: host edilen açık ağırlıklı modeller, shannon-1.6-*, shannon-coder-1 |
OpenAI SDK'sından geliyorsanız
- Temel URL'yi
https://api.shannon-ai.com/v1olarak, anahtarı da Shannon anahtarınız olarak ayarlayın. Chat Completions ve Responses çağrıları o zaman SDK ile olduğu gibi çalışır. modelbir Shannon kimliği olmalıdır.gpt-4ogibi başka bir sağlayıcının model adı400veunknown modelile yanıtlanır.- Akıl yürütme kendi alanında gelir: mesajda ve stream delta'larında
contentyanındareasoning_content. - Bir stream,
usagebilgisini her zaman son chunk içinde,finish_reasonile birlikte taşır. - Bir stream içindeki araç çağrısı, eksiksiz
argumentsdizesiyle tek bir chunk olarak gelir. - Bir yanıtın tek bir choice'ı vardır.
- Yukarıdaki tabloda olmayan OpenAI API yolları, örneğin
/v1/embeddings,404ile yanıtlanır.
Anthropic SDK'sından geliyorsanız
- Temel URL'yi
/v1olmadanhttps://api.shannon-ai.comolarak, anahtarı da Shannon anahtarınız olarak ayarlayın. SDK onux-api-keyolarak gönderir. modelbir Shannon kimliği olmalıdır.max_tokensbu API'de isteğe bağlıdır. Varsayılanı 4,096'dır.- Bir yanıt
thinking,textvetool_usetüründe içerik blokları taşır. İlk blok her zaman metin değildir: bloklarıtypealanına göre seçin. stop_reasondeğeriend_turnveyatool_useolur. Bir Shannon modelinin stream'imax_tokensile de bitebilir.anthropic-versionveanthropic-betakabul edilir; böylece SDK değişmeden çalışır. Bir isteğin bunlara ihtiyacı yoktur./v1/messagesüzerindeki hatalar Anthropic biçimindedir:{"type": "error", "error": {…}}.
Bu biçimleri konuşan kodlama araçları aynı şekilde ayarlanır: temel URL, anahtar ve model olarak bir Shannon kimliği. CLI kodlama araçları