Към съдържанието
Удостоверяване

Удостоверяване

Всяка заявка носи вашия API ключ в хедър. Един ключ на акаунт работи на всеки ендпоинт и с всеки модел, в една от две форми на хедъра.

Хедър · SDK на OpenAI
Authorization: Bearer YOUR_API_KEY
Хедър · SDK на Anthropic
x-api-key: YOUR_API_KEY

Приемани хедъри

И двата хедъра се четат на всеки ендпоинт на /v1, независимо от формата, на който говори ендпоинтът. Изпратете единия от тях.

Хедър Описание
Authorization: Bearer <key> Проверява се първо. Пишете Bearer с главно B и един интервал преди ключа. SDK на OpenAI изпращат този хедър.
x-api-key: <key> Чете се, когато заявката няма хедър Authorization: Bearer. SDK на Anthropic изпращат този хедър.

С OpenAI SDK задайте ключа и базовия 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)

С Anthropic SDK задайте ключа и базовия 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"))

Кои ендпоинти изискват ключ

Ендпоинт Ключ
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 знака.
  • Всеки акаунт има точно един ключ. Създава се при първото отваряне на Keys & usage.
  • Ключът дава пълен достъп до API за вашия акаунт: всеки ендпоинт, всеки модел и целия баланс.
  • Ключът няма срок на валидност. Работи, докато не го смените или отмените.

Смяна и отмяна

Сменяте и отменяте ключа на страницата Keys & usage. Keys & usage

Действие Какво се случва
Смяна Издава се нов ключ и старият спира да работи. Новият ключ работи веднага.
Отмяна Ключът спира да работи и не се издава нов. Сменете ключа, за да получите отново работещ.
  • И двете действат веднага: следващата заявка със стария ключ получава отговор 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 заявки от браузър само за фиксиран списък от произходи. JavaScript на страница от друг произход не може да чете отговорите на /v1.
  • Извиквайте API от вашия сървър и оставете страницата си да говори с вашия сървър. Така ключът остава и извън изходния код на страницата.
  • Кодът на сървъра и инструментите от командния ред не са засегнати: това правило се прилага само от браузърите.
  • Вход в shannon-ai.com не удостоверява заявките към /v1. Бисквитките не се четат там; ключът е единственото удостоверение.
  • За разрешен произход браузърът може да изпраща content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta и x-request-id и може да чете хедъра на отговора x-request-id.

Как да пазите ключа

  • Дръжте ключа на сървър. Не го слагайте в уеб страници, мобилни приложения или публични хранилища: който го притежава, може да похарчи целия ви баланс.
  • Зареждайте ключа от променлива на средата или хранилище за тайни, вместо да го записвате в кода.
  • Ако ключът може да е изтекъл, сменете го в Keys & usage. Старият ключ спира да работи веднага.
  • След изтичане прочетете списъка със заявки в Keys & usage. Той показва всяка заявка, направена с ключа през последните 30 дни.