ਸਮੱਗਰੀ ਤੇ ਜਾਓ
ਪਰਮਾਣਿਕਤਾ

ਪਰਮਾਣਿਕਤਾ

ਹਰ ਰਿਕੁਐਸਟ ਇੱਕ ਹੈਡਰ ਵਿੱਚ ਤੁਹਾਡੀ 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 ਅਤੇ 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 ਨਾਲ key ਅਤੇ /v1 ਤੋਂ ਬਿਨਾਂ base 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 ਬਦਲੋ।
  • ਦੋਵੇਂ ਤੁਰੰਤ ਲਾਗੂ ਹੁੰਦੇ ਹਨ: ਪੁਰਾਣੀ key ਨਾਲ ਅਗਲੀ ਰਿਕੁਐਸਟ ਦਾ ਜਵਾਬ 401 ਨਾਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਪੁਰਾਣੀ key ਹਰ ਥਾਂ ਰੱਦ ਹੋਣ ਤੱਕ 60 ਸਕਿੰਟ ਨੂੰ ਉੱਪਰਲੀ ਹੱਦ ਮੰਨੋ।
  • ਖਾਤੇ ਦਾ ਹਰ ਕਲਾਇੰਟ ਇੱਕੋ key ਵਰਤਦਾ ਹੈ, ਇਸ ਲਈ rotation ਸਭ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। key ਬਦਲਣ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਨਵੀਂ key ਆਪਣੇ ਕਲਾਇੰਟਾਂ ਵਿੱਚ ਪਾਓ।
  • ਬੈਲੇਂਸ, ਵਰਤੋਂ ਅਤੇ ਫਲੱਡ ਪ੍ਰੋਟੈਕਸ਼ਨ ਖਾਤੇ ਦੇ ਹੁੰਦੇ ਹਨ, 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 ਨਹੀਂ ਹੈ: ਉਹ ਗਲਤ ਟਾਈਪ ਹੋਈ ਹੈ, ਰੱਦ ਕਰ ਦਿੱਤੀ ਗਈ ਸੀ, ਜਾਂ rotation ਨਾਲ ਬਦਲ ਦਿੱਤੀ ਗਈ ਸੀ।
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • /v1/messages ਨੂੰ ਛੱਡ ਕੇ ਹਰ path ਉੱਤੇ error object ਵਿੱਚ code: "invalid_api_key" ਅਤੇ param: null ਵੀ ਹੁੰਦੇ ਹਨ, key ਗੈਰਹਾਜ਼ਰ ਹੋਣ ਦੀ ਸੂਰਤ ਵਿੱਚ ਵੀ।
  • key ਦੀ ਜਾਂਚ body ਪੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਹੁੰਦੀ ਹੈ। ਜਾਇਜ਼ key ਤੋਂ ਬਿਨਾਂ ਰਿਕੁਐਸਟ ਨੂੰ 401 ਮਿਲਦਾ ਹੈ, ਭਾਵੇਂ ਉਸ ਦੀ body ਗਲਤ ਜਾਂ ਬਹੁਤ ਵੱਡੀ ਹੋਵੇ।
  • sk- ਨਾਲ ਸ਼ੁਰੂ ਨਾ ਹੋਣ ਵਾਲੇ Authorization: Bearer ਮੁੱਲ ਨੂੰ API key ਨਹੀਂ ਮੰਨਿਆ ਜਾਂਦਾ। ਉਸ ਨੂੰ 401 ਮਿਲਦਾ ਹੈ, ਅਜਿਹੇ ਸੁਨੇਹੇ ਨਾਲ ਕਿ token ਅਵੈਧ ਹੈ ਜਾਂ ਉਸ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ।

ਬ੍ਰਾਊਜ਼ਰ ਅਤੇ CORS

  • API ਕਰਾਸ-origin ਬ੍ਰਾਊਜ਼ਰ ਰਿਕੁਐਸਟਾਂ ਦਾ ਜਵਾਬ ਸਿਰਫ਼ origins ਦੀ ਇੱਕ ਤੈਅ ਸੂਚੀ ਲਈ ਦਿੰਦੀ ਹੈ। ਕਿਸੇ ਹੋਰ 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 ਜਾਂ secret store ਤੋਂ ਲੋਡ ਕਰੋ।
  • ਜੇ key ਲੀਕ ਹੋ ਗਈ ਹੋ ਸਕਦੀ ਹੈ, ਤਾਂ Keys & usage ਉੱਤੇ ਇਸ ਨੂੰ ਬਦਲੋ। ਪੁਰਾਣੀ key ਤੁਰੰਤ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ।
  • ਲੀਕ ਹੋਣ ਤੋਂ ਬਾਅਦ, Keys & usage ਉੱਤੇ ਰਿਕੁਐਸਟਾਂ ਦੀ ਸੂਚੀ ਪੜ੍ਹੋ। ਇਹ ਪਿਛਲੇ 30 ਦਿਨਾਂ ਵਿੱਚ key ਨਾਲ ਕੀਤੀ ਹਰ ਰਿਕੁਐਸਟ ਦਿਖਾਉਂਦੀ ਹੈ।