İçeriğe geç
Kimlik Doğrulama

Kimlik Doğrulama

Her istek API anahtarınızı bir başlıkta taşır. Hesap başına tek anahtar, iki başlık biçiminden herhangi biriyle her uç noktada ve her modelde çalışır.

Başlık · OpenAI SDK'ları
Authorization: Bearer YOUR_API_KEY
Başlık · Anthropic SDK'ları
x-api-key: YOUR_API_KEY

Kabul edilen başlıklar

Her iki başlık da uç noktanın hangi biçimi konuştuğuna bakılmaksızın her /v1 uç noktasında okunur. Birini gönderin.

Başlık Açıklama
Authorization: Bearer <key> İlk olarak kontrol edilir. Bearer sözcüğünü büyük B ile ve anahtardan önce tek boşlukla yazın. OpenAI SDK'ları bu başlığı gönderir.
x-api-key: <key> İstekte Authorization: Bearer başlığı yoksa okunur. Anthropic SDK'ları bu başlığı gönderir.

Bir OpenAI SDK'sı ile anahtarı ve temel URL'yi ayarlayın; SDK Authorization: Bearer gönderir.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1"
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print(response.choices[0].message.content)

Bir Anthropic SDK'sı ile anahtarı ve /v1 olmadan temel URL'yi ayarlayın; SDK x-api-key gönderir.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com"
)

message = client.messages.create(
    model="shannon-3",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print("".join(block.text for block in message.content if block.type == "text"))

Hangi uç noktalar anahtar gerektirir

Uç nokta Anahtar
POST /v1/chat/completions Gerekir
POST /v1/messages Gerekir
POST /v1/responses Gerekir
POST /v1/tokenize Gerekir
POST /v1/messages/count_tokens Gerekir
GET /v1/models Gerekmez

Anahtarınız

  • Anahtar, sk- ve ardından A–Z, a–z, 0–9, - ve _ karakterlerinden 43 karakterdir: toplam 46 karakter.
  • Her hesabın tam olarak bir anahtarı vardır. Keys & usage sayfasını ilk açtığınızda oluşturulur.
  • Anahtar, hesabınız için API'ye tam erişim sağlar: her uç nokta, her model ve tüm bakiye.
  • Anahtarın son kullanma tarihi yoktur. Siz yenileyene veya iptal edene kadar çalışır.

Yenileme ve iptal

Anahtarı Keys & usage sayfasında yenilersiniz ve iptal edersiniz. Keys & usage

İşlem Ne olur
Yenile Yeni bir anahtar verilir ve eski anahtar çalışmayı durdurur. Yeni anahtar hemen çalışır.
İptal et Anahtar çalışmayı durdurur ve yeni anahtar verilmez. Yeniden çalışan bir anahtar almak için yenileyin.
  • İkisi de hemen etkili olur: eski anahtarla yapılan sonraki istek 401 ile yanıtlanır. Eski anahtarın her yerde reddedilmesi için üst sınır olarak 60 saniyeyi kabul edin.
  • Hesabın her istemcisi aynı anahtarı kullanır, bu yüzden bir yenileme hepsini etkiler. Yeni anahtarı, yeniledikten hemen sonra istemcilerinize koyun.
  • Bakiye, kullanım ve flood koruması anahtara değil hesaba aittir. Yeni anahtar, aynı bakiye ve geçerli dakika için aynı istek sayısıyla devam eder.

Hatalar

Her kimlik doğrulama hatasının durumu 401, türü authentication_error'dır. Durumları birbirinden mesaj ayırt eder.

Durum Tür Mesaj Ne zaman
401 authentication_error Missing authentication İstekte ne Authorization: Bearer başlığı ne de sk- ile başlayan bir x-api-key başlığı var. Küçük harfle yazılmış bearer için ve Bearer içermeyen bir Authorization değeri için de yanıt budur.
401 authentication_error Invalid API key Anahtar bir hesabın geçerli anahtarı değil: yanlış yazılmış, iptal edilmiş veya bir yenileme ile değiştirilmiş.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • /v1/messages dışındaki her yolda error nesnesi ayrıca code: "invalid_api_key" içerir (eksik anahtar için de) ve param: null içerir.
  • Anahtar, gövde okunmadan önce kontrol edilir. Geçerli anahtarı olmayan bir istek, gövdesi geçersiz veya çok büyük olsa bile 401 alır.
  • sk- ile başlamayan bir Authorization: Bearer değeri API anahtarı olarak ele alınmaz. Token'ın geçersiz veya süresi dolmuş olduğunu belirten bir mesajla 401 alır.

Tarayıcılar ve CORS

  • API, tarayıcıların origin'ler arası isteklerine yalnızca sabit bir origin listesi için yanıt verir. Başka bir origin'in sayfasındaki JavaScript /v1 yanıtlarını okuyamaz.
  • API'yi sunucunuzdan çağırın ve sayfanızın sunucunuzla konuşmasını sağlayın. Bu, anahtarı sayfa kaynağının dışında da tutar.
  • Sunucu tarafı kod ve komut satırı araçları etkilenmez: bu kuralı yalnızca tarayıcılar uygular.
  • shannon-ai.com'da oturum açmak /v1 isteklerinin kimliğini doğrulamaz. Çerezler orada okunmaz; tek kimlik bilgisi anahtardır.
  • İzin verilen bir origin için tarayıcı content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta ve x-request-id başlıklarını gönderebilir ve x-request-id yanıt başlığını okuyabilir.

Anahtarı güvende tutma

  • Anahtarı bir sunucuda tutun. Web sayfalarına, mobil uygulamalara veya herkese açık depolara koymayın: elinde bulunduran herkes tüm bakiyenizi harcayabilir.
  • Anahtarı koda yazmak yerine bir ortam değişkeninden veya bir gizli bilgi deposundan yükleyin.
  • Anahtar sızmış olabilirse Keys & usage sayfasında yenileyin. Eski anahtar hemen çalışmayı durdurur.
  • Bir sızıntıdan sonra Keys & usage sayfasındaki istek listesini okuyun. Anahtarın son 30 günde yaptığı her isteği gösterir.