Kontentga o'tish
Autentifikatsiya

Autentifikatsiya

Har bir so'rov API kalitingizni sarlavhada olib yuradi. Hisob uchun bitta kalit har bir endpoint va har bir modelda, ikki sarlavha shaklidan birida ishlaydi.

Sarlavha · OpenAI SDK'lar
Authorization: Bearer YOUR_API_KEY
Sarlavha · Anthropic SDK'lar
x-api-key: YOUR_API_KEY

Qabul qilinadigan sarlavhalar

Ikkala sarlavha ham endpoint qaysi formatda gaplashishidan qat'i nazar, har bir /v1 endpointida o'qiladi. Ulardan birini yuboring.

Sarlavha Tavsif
Authorization: Bearer <key> Birinchi tekshiriladi. Bearerni bosh B bilan va kalitdan oldin bitta bo'sh joy bilan yozing. OpenAI SDK'lar shu sarlavhani yuboradi.
x-api-key: <key> So'rovda Authorization: Bearer sarlavhasi bo'lmasa o'qiladi. Anthropic SDK'lar shu sarlavhani yuboradi.

OpenAI SDK bilan kalit va base URL'ni o'rnating; SDK Authorization: Bearer'ni yuboradi.

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)

Anthropic SDK bilan kalitni va /v1siz base URL'ni o'rnating; SDK x-api-key'ni yuboradi.

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"))

Qaysi endpointlarga kalit kerak

Endpoint Kalit
POST /v1/chat/completions Majburiy
POST /v1/messages Majburiy
POST /v1/responses Majburiy
POST /v1/tokenize Majburiy
POST /v1/messages/count_tokens Majburiy
GET /v1/models Kerak emas

Kalitingiz

  • Kalit — sk- va undan keyin A–Z, a–z, 0–9, - va _ dan 43 ta belgi: jami 46 belgi.
  • Har bir hisobda aynan bitta kalit bor. U Keys & usage sahifasini birinchi marta ochganingizda yaratiladi.
  • Kalit hisobingiz uchun API'ga to'liq kirish beradi: har bir endpoint, har bir model va butun balans.
  • Kalitning amal qilish muddati yo'q. U siz almashtirmaguningizcha yoki bekor qilmaguningizcha ishlaydi.

Almashtirish va bekor qilish

Kalitni Keys & usage sahifasida almashtirasiz va bekor qilasiz. Keys & usage

Amal Nima bo'ladi
Almashtirish Yangi kalit beriladi va eskisi ishlamay qoladi. Yangi kalit darhol ishlaydi.
Bekor qilish Kalit ishlamay qoladi va yangi kalit berilmaydi. Yana ishlaydigan kalit olish uchun almashtiring.
  • Ikkalasi ham darhol kuchga kiradi: eski kalit bilan keyingi so'rovga 401 javob beriladi. Eski kalit hamma joyda rad etilgunga qadar yuqori chegara sifatida 60 soniyani oling.
  • Hisobning barcha mijozlari bir xil kalitdan foydalanadi, shuning uchun almashtirish hammasiga ta'sir qiladi. Almashtirgandan so'ng yangi kalitni darhol mijozlaringizga qo'ying.
  • Balans, foydalanish va flood himoyasi kalitga emas, hisobga tegishli. Yangi kalit xuddi shu balans va joriy daqiqa uchun xuddi shu so'rovlar soni bilan davom etadi.

Xatolar

Har bir autentifikatsiya xatosining holati 401 va turi authentication_error. Holatlarni xabar ajratib beradi.

Holat Tur Xabar Qachon
401 authentication_error Missing authentication So'rovda na Authorization: Bearer sarlavhasi, na sk- bilan boshlanadigan x-api-key sarlavhasi bor. Bu kichik harfli bearer va Bearersiz Authorization qiymatiga ham javob.
401 authentication_error Invalid API key Kalit hisobning joriy kaliti emas: u xato yozilgan, bekor qilingan yoki almashtirish natijasida yangilangan.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • /v1/messagesdan tashqari har bir yo'lda error obyektida code: "invalid_api_key" ham bo'ladi, kalit yo'q bo'lganda ham, va param: null.
  • Kalit tana o'qilishidan oldin tekshiriladi. To'g'ri kalitsiz so'rov, tanasi yaroqsiz yoki juda katta bo'lsa ham, 401 oladi.
  • sk- bilan boshlanmaydigan Authorization: Bearer qiymati API kalit deb hisoblanmaydi. U token yaroqsiz yoki muddati o'tgani haqida xabar bilan 401 oladi.

Brauzerlar va CORS

  • API cross-origin brauzer so'rovlariga faqat qat'iy origin ro'yxati uchun javob beradi. Boshqa origin sahifasidagi JavaScript /v1 javoblarini o'qiy olmaydi.
  • API'ni serveringizdan chaqiring, sahifangiz esa serveringiz bilan gaplashsin. Bu kalitni sahifa manbasidan ham uzoqda saqlaydi.
  • Server tomonidagi kod va buyruq qatori vositalariga ta'sir qilmaydi: bu qoidani faqat brauzerlar qo'llaydi.
  • shannon-ai.com saytiga kirish /v1 so'rovlarini autentifikatsiya qilmaydi. U yerda cookie o'qilmaydi; kalit — yagona kredensial.
  • Ruxsat etilgan origin uchun brauzer content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta va x-request-id'ni yuborishi hamda x-request-id javob sarlavhasini o'qishi mumkin.

Kalitni xavfsiz saqlash

  • Kalitni serverda saqlang. Uni veb-sahifalarga, mobil ilovalarga yoki ochiq repozitoriylarga qo'ymang: unga ega bo'lgan har kim butun balansingizni sarflashi mumkin.
  • Kalitni kodga yozish o'rniga muhit o'zgaruvchisidan yoki sirlar omboridan yuklang.
  • Kalit sizib chiqqan bo'lishi mumkin bo'lsa, uni Keys & usage'da almashtiring. Eski kalit darhol ishlamay qoladi.
  • Sizib chiqqandan so'ng Keys & usage'dagi so'rovlar ro'yxatini o'qing. U kalit so'nggi 30 kunda yuborgan har bir so'rovni ko'rsatadi.