გადასვლა შინაარსზე
ავთენტიკაცია

ავთენტიკაცია

ყოველი მოთხოვნა header-ში თქვენს API გასაღებს ატარებს. ანგარიშზე ერთი გასაღები მუშაობს ყველა 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-ებს სჭირდება გასაღები

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 სიმბოლო.
  • ყველა ანგარიშს აქვს ზუსტად ერთი გასაღები. ის იქმნება, როცა პირველად გახსნით გვერდს Keys & usage.
  • გასაღები თქვენი ანგარიშისთვის API-ზე სრულ წვდომას იძლევა: ყველა endpoint-ზე, ყველა მოდელზე და მთელ ბალანსზე.
  • გასაღებს ვადის გასვლის თარიღი არ აქვს. ის მუშაობს მანამ, სანამ როტაციას ან გაუქმებას არ გაუკეთებთ.

როტაცია და გაუქმება

გასაღების როტაციასა და გაუქმებას გააკეთებთ გვერდზე Keys & usage. გასაღებები და გამოყენება

მოქმედება რა ხდება
როტაცია გაიცემა ახალი გასაღები და ძველი მუშაობას წყვეტს. ახალი გასაღები მაშინვე მუშაობს.
გაუქმება გასაღები მუშაობას წყვეტს და ახალი არ გაიცემა. სამუშაო გასაღების მისაღებად გააკეთეთ როტაცია.
  • ორივე მაშინვე ამოქმედდება: ძველი გასაღებით შემდეგ მოთხოვნას უპასუხებს 401. ძველი გასაღების ყველგან უარყოფამდე ზედა ზღვრად 60 წამი ჩათვალეთ.
  • ანგარიშის ყველა კლიენტი ერთსა და იმავე გასაღებს იყენებს, ამიტომ როტაცია ყველას შეეხება. ახალი გასაღები კლიენტებში როტაციისთანავე ჩასვით.
  • ბალანსი, გამოყენება და flood protection ეკუთვნის ანგარიშს და არა გასაღებს. ახალი გასაღები აგრძელებს იმავე ბალანსითა და მიმდინარე წუთის მოთხოვნების იმავე მთვლელით.

შეცდომები

ავთენტიკაციის ყოველი შეცდომის სტატუსია 401 და ტიპი authentication_error. შემთხვევებს შეტყობინება არჩევს.

სტატუსი ტიპი შეტყობინება როდის
401 authentication_error Missing authentication მოთხოვნას არც Authorization: Bearer header აქვს და არც x-api-key header, რომელიც 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-ს.
  • გასაღები მოწმდება body-ის წაკითხვამდე. მოთხოვნას ვალიდური გასაღების გარეშე ეძლევა 401 მაშინაც, როცა მისი body არასწორია ან ზედმეტად დიდია.
  • Authorization: Bearer მნიშვნელობა, რომელიც sk--ით არ იწყება, 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.

გასაღების დაცვა

  • გასაღები სერვერზე შეინახეთ. ნუ ჩასვამთ მას ვებგვერდებში, მობილურ აპებში ან საჯარო რეპოზიტორიებში: ვისაც ის აქვს, მას თქვენი მთელი ბალანსის დახარჯვა შეუძლია.
  • გასაღები ჩატვირთეთ გარემოს ცვლადიდან ან საიდუმლოებების საცავიდან და არა კოდში ჩაწერით.
  • თუ გასაღები შესაძლოა გაჟონილა, გააკეთეთ მისი როტაცია გვერდზე Keys & usage. ძველი გასაღები მაშინვე შეწყვეტს მუშაობას.
  • გაჟონვის შემდეგ წაიკითხეთ მოთხოვნების სია გვერდზე Keys & usage. ის აჩვენებს გასაღებით ბოლო 30 დღეში შესრულებულ ყველა მოთხოვნას.