דילוג לתוכן
אימות

אימות

כל בקשה נושאת את מפתח ה-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 שולחים את הכותרת הזו.

עם OpenAI SDK, הגדירו את המפתח ואת כתובת הבסיס; ה-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, הגדירו את המפתח ואת כתובת הבסיס בלי /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"))

אילו endpoints צריכים מפתח

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 רק עבור רשימה קבועה של origins. JavaScript בדף של origin אחר אינו יכול לקרוא תשובות /v1.
  • קראו ל-API מהשרת שלכם ותנו לדף שלכם לדבר עם השרת. כך המפתח גם נשאר מחוץ לקוד המקור של הדף.
  • קוד בצד השרת וכלי שורת פקודה אינם מושפעים: הכלל הזה נאכף רק בדפדפנים.
  • התחברות ב-shannon-ai.com אינה מאמתת בקשות /v1. עוגיות אינן נקראות שם; המפתח הוא האישור היחיד.
  • עבור origin מותר, דפדפן רשאי לשלוח content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta ו-x-request-id, ולקרוא את כותרת התשובה x-request-id.

שמירה על המפתח

  • שמרו את המפתח בשרת. אל תכניסו אותו לדפי אינטרנט, לאפליקציות מובייל או למאגרים ציבוריים: מי שמחזיק בו יכול להוציא את כל היתרה שלכם.
  • טענו את המפתח ממשתנה סביבה או ממאגר סודות במקום לכתוב אותו בקוד.
  • אם ייתכן שהמפתח דלף, החליפו אותו בדף מפתחות ושימוש. המפתח הישן מפסיק לעבוד מיד.
  • אחרי דליפה, עיינו ברשימת הבקשות בדף מפתחות ושימוש. היא מראה כל בקשה שהמפתח ביצע ב-30 הימים האחרונים.