Гузариш ба мундариҷа
Аутентификатсия

Аутентификатсия

Ҳар дархост калиди API-и шуморо дар сарлавҳа мебарад. Як калид барои ҳар аккаунт дар ҳар endpoint ва ҳар модел, дар яке аз ду шакли сарлавҳа кор мекунад.

Сарлавҳа · SDK-ҳои OpenAI
Authorization: Bearer YOUR_API_KEY
Сарлавҳа · SDK-ҳои Anthropic
x-api-key: YOUR_API_KEY

Сарлавҳаҳои қабулшаванда

Ҳарду сарлавҳа дар ҳар endpoint-и /v1 хонда мешаванд, endpoint бо кадом формат кор карданаш фарқ надорад. Яке аз онҳоро фиристед.

Сарлавҳа Тавсиф
Authorization: Bearer <key> Аввал санҷида мешавад. Bearer-ро бо B-и калон ва як фосила пеш аз калид нависед. SDK-ҳои OpenAI ин сарлавҳаро мефиристанд.
x-api-key: <key> Вақте хонда мешавад, ки дархост сарлавҳаи Authorization: Bearer надорад. SDK-ҳои Anthropic ин сарлавҳаро мефиристанд.

Бо SDK-и OpenAI калид ва base URL-ро танзим кунед; SDK Authorization: Bearer-ро мефиристад.

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)

Бо SDK-и Anthropic калид ва base URL-ро бе /v1 танзим кунед; SDK x-api-key-ро мефиристад.

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

Кадом endpoint-ҳо калид мехоҳанд

Эндпоинт Калид
POST /v1/chat/completions Ҳатмӣ
POST /v1/messages Ҳатмӣ
POST /v1/responses Ҳатмӣ
POST /v1/tokenize Ҳатмӣ
POST /v1/messages/count_tokens Ҳатмӣ
GET /v1/models Лозим нест

Калиди шумо

  • Калид sk- ва пас аз он 43 аломат аз A–Z, a–z, 0–9, - ва _ аст: дар маҷмӯъ 46 аломат.
  • Ҳар аккаунт ҳамагӣ як калид дорад. Он аввалин бор ҳангоми кушодани Калидҳо ва истифода сохта мешавад.
  • Калид ба API барои аккаунти шумо дастрасии пурра медиҳад: ҳар endpoint, ҳар модел ва тамоми баланс.
  • Калид санаи анҷом надорад. Он то замоне, ки шумо онро иваз ё бекор кунед, кор мекунад.

Иваз ва бекор кардан

Калидро дар саҳифаи Калидҳо ва истифода иваз ва бекор мекунед. Калидҳо ва истифода

Амал Чӣ мешавад
Иваз кардан Калиди нав дода мешавад ва калиди кӯҳна кор карданро бас мекунад. Калиди нав фавран кор мекунад.
Бекор кардан Калид кор карданро бас мекунад ва калиди нав дода намешавад. Барои гирифтани калиди корӣ бори дигар иваз кунед.
  • Ҳарду фавран амал мекунанд: ба дархости баъдӣ бо калиди кӯҳна 401 ҷавоб дода мешавад. 60 сонияро ҳадди боло ҳисоб кунед, то калиди кӯҳна дар ҳама ҷо рад карда шавад.
  • Ҳар клиенти аккаунт ҳамон як калидро истифода мебарад, бинобар ин иваз кардан ба ҳамаи онҳо мерасад. Калиди навро пас аз иваз кардан фавран ба клиентҳои худ гузоред.
  • Баланс, истифода ва ҳифз аз дархостҳои аз ҳад зиёд ба аккаунт тааллуқ доранд, на ба калид. Калиди нав бо ҳамон баланс ва ҳамон шумораи дархостҳо барои дақиқаи ҷорӣ идома меёбад.

Хатогиҳо

Ҳар нокомии аутентификатсия ҳолати 401 ва навъи authentication_error дорад. Паём ҳолатҳоро аз ҳам фарқ мекунад.

Ҳолат Навъ Паём Кай
401 authentication_error Missing authentication Дархост на сарлавҳаи Authorization: Bearer дорад ва на сарлавҳаи x-api-key, ки бо sk- оғоз мешавад. Ин ҳамчунин ҷавоб ба bearer бо ҳарфҳои хурд ва ба қимати Authorization бе Bearer аст.
401 authentication_error Invalid API key Калид калиди ҷории аккаунт нест: хато навишта шудааст, бекор шудааст ё бо иваз кардан иваз шудааст.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Дар ҳар роҳ ба ҷуз /v1/messages объекти error ҳамчунин code: "invalid_api_key"-ро дорад, барои калиди намерасанда низ, ва param: null.
  • Калид пеш аз хондани бадан санҷида мешавад. Дархост бе калиди дуруст 401 мегирад, ҳатто агар баданаш нодуруст ё аз ҳад калон бошад.
  • Қимати Authorization: Bearer, ки бо sk- оғоз намешавад, ҳамчун калиди API баррасӣ намешавад. Он 401 бо паёме мегирад, ки токен нодуруст ё мӯҳлаташ гузаштааст.

Браузерҳо ва CORS

  • API ба дархостҳои браузерии cross-origin танҳо барои рӯйхати собити origin-ҳо ҷавоб медиҳад. JavaScript дар саҳифаи origin-и дигар ҷавобҳои /v1-ро хонда наметавонад.
  • API-ро аз сервери худ даъват кунед ва бигузоред саҳифаи шумо бо сервератон сӯҳбат кунад. Ин ҳамчунин калидро аз коди сарчашмаи саҳифа дур нигоҳ медорад.
  • Коди тарафи сервер ва абзорҳои хати фармон ба ин таъсир намерасонанд: ин қоидаро танҳо браузерҳо татбиқ мекунанд.
  • Воридшавӣ дар shannon-ai.com дархостҳои /v1-ро аутентификатсия намекунад. Cookie-ҳо дар он ҷо хонда намешаванд; калид ягона маълумоти эътимодист.
  • Барои origin-и иҷозатдодашуда браузер метавонад content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta ва x-request-id-ро фиристад ва сарлавҳаи ҷавоби x-request-id-ро хонда метавонад.

Нигоҳ доштани амни калид

  • Калидро дар сервер нигоҳ доред. Онро ба саҳифаҳои веб, барномаҳои мобилӣ ё репозиторияҳои оммавӣ нагузоред: ҳар кӣ онро дошта бошад, тамоми балансатонро сарф карда метавонад.
  • Калидро аз тағйирёбандаи муҳит ё захиравии асрор бор кунед, на ин ки онро ба код нависед.
  • Агар калид метавонист ошкор шуда бошад, онро дар Калидҳо ва истифода иваз кунед. Калиди кӯҳна фавран кор карданро бас мекунад.
  • Пас аз ошкор шудан рӯйхати дархостҳоро дар Калидҳо ва истифода хонед. Он ҳар дархостеро, ки калид дар 30 рӯзи охир анҷом додааст, нишон медиҳад.