कंटेंट पर जाएँ
प्रमाणीकरण

प्रमाणीकरण

हर अनुरोध अपनी API key हेडर में ले जाता है। अकाउंट की एक key हर endpoint और हर मॉडल पर काम करती है, दो हेडर रूपों में से किसी एक में।

हेडर · OpenAI SDK
Authorization: Bearer YOUR_API_KEY
हेडर · Anthropic SDK
x-api-key: YOUR_API_KEY

स्वीकार किए जाने वाले हेडर

दोनों हेडर हर /v1 endpoint पर पढ़े जाते हैं, endpoint जिस भी फ़ॉर्मेट में बोलता हो। इनमें से एक भेजें।

हेडर विवरण
Authorization: Bearer <key> सबसे पहले जाँचा जाता है। Bearer को बड़े B के साथ और key से पहले एक स्पेस के साथ लिखें। OpenAI SDK यह हेडर भेजते हैं।
x-api-key: <key> तब पढ़ा जाता है जब अनुरोध में Authorization: Bearer हेडर न हो। Anthropic SDK यह हेडर भेजते हैं।

OpenAI SDK के साथ key और बेस 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 के साथ key और /v1 के बिना बेस URL सेट करें; 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 को key चाहिए

एंडपॉइंट Key
POST /v1/chat/completions आवश्यक
POST /v1/messages आवश्यक
POST /v1/responses आवश्यक
POST /v1/tokenize आवश्यक
POST /v1/messages/count_tokens आवश्यक
GET /v1/models आवश्यक नहीं

आपकी key

  • Key sk- होती है जिसके बाद A–Z, a–z, 0–9, - और _ के 43 अक्षर आते हैं: कुल 46 अक्षर।
  • हर अकाउंट के पास ठीक एक key होती है। यह तब बनती है जब आप पहली बार Keys & usage खोलते हैं।
  • Key आपके अकाउंट के लिए API की पूरी पहुँच देती है: हर endpoint, हर मॉडल और पूरा बैलेंस।
  • Key की कोई समाप्ति तिथि नहीं होती। यह तब तक काम करती है जब तक आप इसे रोटेट या रद्द न करें।

रोटेट और रद्द करें

आप key को Keys & usage पेज पर रोटेट और रद्द करते हैं। Keys और उपयोग

कार्रवाई क्या होता है
रोटेट करना नई key जारी होती है और पुरानी key काम करना बंद कर देती है। नई key तुरंत काम करती है।
रद्द करना Key काम करना बंद कर देती है और कोई नई key जारी नहीं होती। फिर से चालू key पाने के लिए रोटेट करें।
  • दोनों तुरंत प्रभावी होते हैं: पुरानी key वाले अगले अनुरोध का उत्तर 401 होता है। पुरानी key के हर जगह अस्वीकार होने की ऊपरी सीमा 60 सेकंड मानें।
  • अकाउंट का हर क्लाइंट वही key उपयोग करता है, इसलिए रोटेशन सब पर असर डालता है। रोटेट करने के तुरंत बाद नई key अपने क्लाइंट में डालें।
  • बैलेंस, उपयोग और flood protection अकाउंट के होते हैं, key के नहीं। नई key उसी बैलेंस और मौजूदा मिनट की उसी अनुरोध गिनती के साथ जारी रहती है।

त्रुटियाँ

हर प्रमाणीकरण विफलता का स्टेटस 401 और प्रकार authentication_error होता है। संदेश से मामलों में अंतर पता चलता है।

स्टेटस प्रकार संदेश कब
401 authentication_error Missing authentication अनुरोध में न तो Authorization: Bearer हेडर है और न sk- से शुरू होने वाला x-api-key हेडर। यही उत्तर छोटे अक्षरों वाले bearer और बिना Bearer वाले Authorization मान पर भी मिलता है।
401 authentication_error Invalid API key यह key किसी अकाउंट की मौजूदा key नहीं है: गलत टाइप हुई है, रद्द की जा चुकी है, या रोटेशन से बदल दी गई है।
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • /v1/messages को छोड़कर हर पाथ पर error ऑब्जेक्ट में code: "invalid_api_key" और param: null भी होते हैं, गायब key के लिए भी।
  • key की जाँच बॉडी पढ़ने से पहले होती है। वैध key के बिना अनुरोध को 401 मिलता है, भले ही उसकी बॉडी अवैध या बहुत बड़ी हो।
  • sk- से शुरू न होने वाले Authorization: Bearer मान को API key नहीं माना जाता। उसे 401 मिलता है और संदेश बताता है कि टोकन अवैध या समाप्त है।

ब्राउज़र और CORS

  • API क्रॉस-ऑरिजिन ब्राउज़र अनुरोधों का उत्तर केवल origin की एक तय सूची के लिए देता है। किसी दूसरे origin के पेज का JavaScript /v1 के उत्तर नहीं पढ़ सकता।
  • API को अपने सर्वर से कॉल करें और अपने पेज को अपने सर्वर से बात करने दें। इससे key पेज के सोर्स से बाहर भी रहती है।
  • सर्वर-साइड कोड और कमांड-लाइन टूल प्रभावित नहीं होते: यह नियम केवल ब्राउज़र लागू करते हैं।
  • shannon-ai.com पर साइन-इन /v1 अनुरोधों को प्रमाणित नहीं करता। वहाँ कुकीज़ नहीं पढ़ी जातीं; key ही एकमात्र क्रेडेंशियल है।
  • अनुमत origin के लिए ब्राउज़र content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta और x-request-id भेज सकता है, और उत्तर हेडर x-request-id पढ़ सकता है।

Key को सुरक्षित रखना

  • Key को सर्वर पर रखें। उसे वेब पेज, मोबाइल ऐप या सार्वजनिक रिपॉज़िटरी में न डालें: जिसके पास भी वह होगी वह आपका पूरा बैलेंस खर्च कर सकता है।
  • Key को कोड में लिखने के बजाय environment variable या सीक्रेट स्टोर से लोड करें।
  • यदि key लीक हुई हो सकती है, तो उसे Keys & usage पर रोटेट करें। पुरानी key तुरंत काम करना बंद कर देती है।
  • लीक के बाद Keys & usage पर अनुरोध सूची पढ़ें। वह पिछले 30 दिनों में key से किया गया हर अनुरोध दिखाती है।