सामग्रीमा जानुहोस्
प्रमाणीकरण

प्रमाणीकरण

हरेक अनुरोधले आफ्नो API की हेडरमा बोक्छ। खाता पिच्छे एउटा कीले हरेक इन्डपोइन्ट र हरेक मोडलमा काम गर्छ, दुई हेडर रूपमध्ये जुनसुकैमा।

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

स्वीकार गरिने हेडरहरू

दुवै हेडर हरेक /v1 इन्डपोइन्टमा पढिन्छन्, इन्डपोइन्टले जुन ढाँचा बोले पनि। तीमध्ये एउटा पठाउनुहोस्।

हेडर विवरण
Authorization: Bearer <key> पहिले जाँचिन्छ। Bearer लाई ठूलो B ले र कीअघि एउटा स्पेस राखेर लेख्नुहोस्। OpenAI SDK हरूले यो हेडर पठाउँछन्।
x-api-key: <key> अनुरोधमा Authorization: Bearer हेडर नभएमा पढिन्छ। Anthropic SDK हरूले यो हेडर पठाउँछन्।

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 सँग, की र /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"))

कुन इन्डपोइन्टलाई की चाहिन्छ

इन्डपोइन्ट की
POST /v1/chat/completions आवश्यक
POST /v1/messages आवश्यक
POST /v1/responses आवश्यक
POST /v1/tokenize आवश्यक
POST /v1/messages/count_tokens आवश्यक
GET /v1/models आवश्यक छैन

तपाईंको की

  • की sk- पछि A–Z, a–z, 0–9, - र _ का 43 अक्षर हुन्: जम्मा 46 अक्षर।
  • हरेक खातामा ठ्याक्कै एउटा की हुन्छ। तपाईंले पहिलो पटक की र प्रयोग खोल्दा यो बनाइन्छ।
  • कीले तपाईंको खाताका लागि API मा पूर्ण पहुँच दिन्छ: हरेक इन्डपोइन्ट, हरेक मोडल र सम्पूर्ण ब्यालेन्स।
  • कीको म्याद सकिने मिति हुँदैन। तपाईंले रोटेट वा रद्द नगरेसम्म यो काम गर्छ।

रोटेट र रद्द

तपाईं की र प्रयोग पेजमा की रोटेट र रद्द गर्नुहुन्छ। की र प्रयोग

कार्य के हुन्छ
रोटेट गर्नुहोस् नयाँ की जारी हुन्छ र पुरानो की काम गर्न छोड्छ। नयाँ की तुरुन्तै काम गर्छ।
रद्द गर्नुहोस् की काम गर्न छोड्छ र कुनै नयाँ की जारी हुँदैन। फेरि काम गर्ने की पाउन रोटेट गर्नुहोस्।
  • दुवै तुरुन्तै लागू हुन्छन्: पुरानो कीसँगको अर्को अनुरोधलाई 401 ले जवाफ दिइन्छ। पुरानो की सबैतिर अस्वीकार हुनु अघिको माथिल्लो सीमा 60 सेकेन्ड मान्नुहोस्।
  • खाताका हरेक क्लाइन्टले उही की प्रयोग गर्छ, त्यसैले रोटेसन सबैमा पुग्छ। रोटेट गरेपछि तुरुन्तै नयाँ कीलाई आफ्ना क्लाइन्टहरूमा राख्नुहोस्।
  • ब्यालेन्स, प्रयोग र फ्लड प्रोटेक्सन खाताका हुन्, कीका होइनन्। नयाँ कीले उही ब्यालेन्स र हालको मिनेटका लागि उही अनुरोध गणनासँग जारी राख्छ।

त्रुटिहरू

हरेक प्रमाणीकरण विफलताको स्थिति 401 र प्रकार authentication_error हुन्छ। सन्देशले अवस्थाहरू छुट्याउँछ।

स्थिति प्रकार सन्देश कहिले
401 authentication_error Missing authentication अनुरोधमा Authorization: Bearer हेडर पनि छैन र sk- बाट सुरु हुने x-api-key हेडर पनि छैन। सानो अक्षरको 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 ले क्रस-origin ब्राउजर अनुरोधहरूको जवाफ origin को निश्चित सूचीका लागि मात्र दिन्छ। अर्को origin को पेजमा चल्ने JavaScript ले /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 पढ्न सक्छ।

कीलाई सुरक्षित राख्ने

  • कीलाई सर्भरमा राख्नुहोस्। यसलाई वेब पेज, मोबाइल एप वा सार्वजनिक रिपोजिटरीमा नराख्नुहोस्: जोससँग यो छ उसले तपाईंको सम्पूर्ण ब्यालेन्स खर्च गर्न सक्छ।
  • कीलाई कोडमा लेख्नुको सट्टा environment variable वा सिक्रेट स्टोरबाट लोड गर्नुहोस्।
  • की लीक भएको हुन सक्छ भने, की र प्रयोगमा गएर रोटेट गर्नुहोस्। पुरानो की तुरुन्तै काम गर्न छोड्छ।
  • लीक भएपछि, की र प्रयोगमा अनुरोध सूची पढ्नुहोस्। यसले पछिल्ला 30 दिनमा कीले गरेका हरेक अनुरोध देखाउँछ।