Անցնել բովանդակությանը
Վավերացում

Վավերացում

Յուրաքանչյուր հարցում ձեր API բանալին կրում է header-ում։ Հաշվի մեկ բանալին աշխատում է յուրաքանչյուր endpoint-ում և յուրաքանչյուր մոդելի վրա՝ header-ի երկու ձևերից որևէ մեկով։

Header · OpenAI SDK-ներ
Authorization: Bearer YOUR_API_KEY
Header · Anthropic SDK-ներ
x-api-key: YOUR_API_KEY

Ընդունվող header-ներ

Երկու header-ներն էլ կարդացվում են յուրաքանչյուր /v1 endpoint-ում՝ անկախ այն բանից, թե endpoint-ը որ ձևաչափով է խոսում։ Ուղարկեք դրանցից մեկը։

Header Նկարագրություն
Authorization: Bearer <key> Ստուգվում է առաջինը։ Գրեք Bearer մեծատառ B-ով և բանալուց առաջ մեկ բացատով։ OpenAI SDK-ներն ուղարկում են այս header-ը։
x-api-key: <key> Կարդացվում է, երբ հարցումը չունի Authorization: Bearer header։ Anthropic SDK-ներն ուղարկում են այս header-ը։

OpenAI SDK-ով սահմանեք բանալին և 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)

Anthropic SDK-ով սահմանեք բանալին և 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 վայրկյանից։
  • Հաշվի բոլոր կլիենտները օգտագործում են նույն բանալին, ուստի փոխարինումը վերաբերում է բոլորին։ Փոխարինելուց անմիջապես հետո դրեք նոր բանալին ձեր կլիենտների մեջ։
  • Մնացորդը, օգտագործումը և flood-պաշտպանությունը պատկանում են հաշվին, ոչ թե բանալուն։ Նոր բանալին շարունակում է նույն մնացորդով և ընթացիկ րոպեի հարցումների նույն հաշվարկով։

Սխալներ

Վավերացման յուրաքանչյուր ձախողում ունի 401 կարգավիճակ և authentication_error տեսակ։ Դեպքերը տարբերվում են հաղորդագրությամբ։

Կարգավիճակ Տեսակ Հաղորդագրություն Երբ
401 authentication_error Missing authentication Հարցումը չունի ո՛չ Authorization: Bearer header, ո՛չ էլ sk--ով սկսվող x-api-key header։ Սա նաև պատասխանն է փոքրատառ bearer-ի և Bearer-ից զուրկ Authorization արժեքի դեպքում։
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 նույնիսկ այն դեպքում, երբ նրա մարմինը անվավեր է կամ չափազանց մեծ։
  • sk--ով չսկսվող Authorization: Bearer արժեքը API բանալի չի համարվում։ Այն ստանում է 401՝ հաղորդագրությամբ, որ թոքենն անվավեր է կամ ժամկետանց։

Բրաուզերներ և CORS

  • API-ն պատասխանում է cross-origin բրաուզերային հարցումներին միայն origin-ների ֆիքսված ցանկի համար։ Այլ origin-ի էջի JavaScript-ը չի կարող կարդալ /v1 պատասխանները։
  • Կանչեք API-ն ձեր սերվերից, իսկ ձեր էջը թող խոսի ձեր սերվերի հետ։ Դա նաև բանալին պահում է էջի սկզբնական կոդից դուրս։
  • Սերվերային կոդը և հրամանի տողի գործիքները չեն ազդվում. այս կանոնը կիրառում են միայն բրաուզերները։
  • shannon-ai.com-ում մուտքը չի վավերացնում /v1 հարցումները։ Cookie-ները այնտեղ չեն կարդացվում. բանալին միակ վավերագիրն է։
  • Թույլատրված origin-ի համար բրաուզերը կարող է ուղարկել content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta և x-request-id header-ները և կարող է կարդալ պատասխանի x-request-id header-ը։

Ինչպես պահել բանալին անվտանգ

  • Պահեք բանալին սերվերում։ Մի դրեք այն վեբ էջերում, բջջային հավելվածներում կամ հանրային պահոցներում (repository). այն ունեցողը կարող է ծախսել ձեր ամբողջ մնացորդը։
  • Բեռնեք բանալին միջավայրի փոփոխականից կամ գաղտնիքների պահոցից՝ այն կոդի մեջ գրելու փոխարեն։
  • Եթե բանալին կարող էր արտահոսել, փոխարինեք այն «Բանալիներ և օգտագործում» էջում։ Հին բանալին անմիջապես դադարում է աշխատել։
  • Արտահոսքից հետո կարդացեք հարցումների ցանկը «Բանալիներ և օգտագործում» էջում։ Այն ցույց է տալիս բանալիով վերջին 30 օրվա ընթացքում կատարված բոլոր հարցումները։