ഓഥെന്റിക്കേഷൻ
ഓരോ റിക്വസ്റ്റും നിങ്ങളുടെ API കീ ഒരു ഹെഡറിൽ വഹിക്കുന്നു. ഒരു അക്കൗണ്ടിന് ഒരു കീ എല്ലാ എൻഡ്പോയിന്റിലും എല്ലാ മോഡലിലും പ്രവർത്തിക്കും, രണ്ട് ഹെഡർ രൂപങ്ങളിൽ ഏതിലും.
Authorization: Bearer YOUR_API_KEY x-api-key: YOUR_API_KEY സ്വീകരിക്കുന്ന ഹെഡറുകൾ
എൻഡ്പോയിന്റ് ഏത് ഫോർമാറ്റ് സംസാരിച്ചാലും, രണ്ട് ഹെഡറുകളും എല്ലാ /v1 എൻഡ്പോയിന്റിലും വായിക്കും. അവയിൽ ഒന്ന് അയയ്ക്കുക.
| ഹെഡർ | വിവരണം |
|---|---|
Authorization: Bearer <key> | ആദ്യം പരിശോധിക്കുന്നു. Bearer വലിയ B ഉപയോഗിച്ച് എഴുതുക, കീയ്ക്ക് മുമ്പ് ഒരു സ്പേസ് ഇടുക. OpenAI SDK-കൾ ഈ ഹെഡർ അയയ്ക്കുന്നു. |
x-api-key: <key> | റിക്വസ്റ്റിൽ Authorization: Bearer ഹെഡർ ഇല്ലെങ്കിൽ വായിക്കും. Anthropic SDK-കൾ ഈ ഹെഡർ അയയ്ക്കുന്നു. |
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) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-3',
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(response.choices[0].message.content); curl -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' Anthropic SDK ഉപയോഗിച്ച്, കീയും /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")) import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com'
});
const message = await client.messages.create({
model: 'shannon-3',
max_tokens: 1024,
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(message.content.filter((block) => block.type === 'text').map((block) => block.text).join('')); curl -X POST "https://api.shannon-ai.com/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' ഏതൊക്കെ എൻഡ്പോയിന്റുകൾക്ക് കീ വേണം
| എൻഡ്പോയിന്റ് | കീ |
|---|---|
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
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} /v1/messagesഒഴികെയുള്ള എല്ലാ പാതകളിലും, കീ ഇല്ലാത്ത സാഹചര്യത്തിലും,errorഒബ്ജക്റ്റിൽcode: "invalid_api_key",param: nullഎന്നിവയും ഉണ്ടാകും.- ബോഡി വായിക്കുന്നതിന് മുമ്പ് കീ പരിശോധിക്കുന്നു. സാധുവായ കീ ഇല്ലാത്ത റിക്വസ്റ്റിന്റെ ബോഡി അസാധുവോ വളരെ വലുതോ ആണെങ്കിലും
401ലഭിക്കും. sk-എന്ന് തുടങ്ങാത്തAuthorization: Bearerമൂല്യം API കീ ആയി കണക്കാക്കില്ല. ടോക്കൺ അസാധുവാണ് അല്ലെങ്കിൽ കാലഹരണപ്പെട്ടു എന്ന സന്ദേശത്തോടെ401ലഭിക്കും.
ബ്രൗസറുകളും CORS-ഉം
- ഉറപ്പിച്ച ഒരു ഒറിജിൻ പട്ടികയ്ക്ക് മാത്രമേ API ക്രോസ്-ഒറിജിൻ ബ്രൗസർ റിക്വസ്റ്റുകൾക്ക് മറുപടി നൽകുകയുള്ളൂ. മറ്റൊരു ഒറിജിനിലെ പേജിലുള്ള JavaScript-ന്
/v1മറുപടികൾ വായിക്കാൻ കഴിയില്ല. - API നിങ്ങളുടെ സെർവറിൽ നിന്ന് വിളിക്കുക, നിങ്ങളുടെ പേജ് നിങ്ങളുടെ സെർവറുമായി സംവദിക്കട്ടെ. ഇത് കീ പേജ് സോഴ്സിൽ വരാതിരിക്കാനും സഹായിക്കുന്നു.
- സെർവർ-സൈഡ് കോഡിനെയും കമാൻഡ്-ലൈൻ ടൂളുകളെയും ഇത് ബാധിക്കില്ല: ഈ നിയമം ബ്രൗസറുകൾ മാത്രമേ നടപ്പാക്കുന്നുള്ളൂ.
- shannon-ai.com-ൽ സൈൻ ഇൻ ചെയ്തത്
/v1റിക്വസ്റ്റുകളെ ഓതന്റിക്കേറ്റ് ചെയ്യുന്നില്ല. അവിടെ കുക്കികൾ വായിക്കില്ല; കീ മാത്രമാണ് ക്രെഡൻഷ്യൽ. - അനുവദിച്ച ഒരു ഒറിജിനിൽ നിന്ന്, ബ്രൗസറിന്
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-beta,x-request-idഎന്നിവ അയയ്ക്കാം, മറുപടി ഹെഡർx-request-idവായിക്കുകയും ചെയ്യാം.
കീ സുരക്ഷിതമായി സൂക്ഷിക്കൽ
- കീ ഒരു സെർവറിൽ സൂക്ഷിക്കുക. വെബ് പേജുകളിലോ മൊബൈൽ ആപ്പുകളിലോ പബ്ലിക് റിപ്പോസിറ്ററികളിലോ ഇടരുത്: അത് കൈവശമുള്ള ആർക്കും നിങ്ങളുടെ മുഴുവൻ ബാലൻസും ചെലവാക്കാൻ കഴിയും.
- കീ കോഡിൽ എഴുതുന്നതിന് പകരം എൻവയോൺമെന്റ് വേരിയബിളിൽ നിന്നോ സീക്രട്ട് സ്റ്റോറിൽ നിന്നോ ലോഡ് ചെയ്യുക.
- കീ ചോർന്നിരിക്കാൻ സാധ്യതയുണ്ടെങ്കിൽ, കീകളും ഉപയോഗവും പേജിൽ റൊട്ടേറ്റ് ചെയ്യുക. പഴയ കീ ഉടൻ പ്രവർത്തനം നിർത്തും.
- ചോർച്ചയ്ക്ക് ശേഷം, കീകളും ഉപയോഗവും പേജിലെ റിക്വസ്റ്റ് പട്ടിക വായിക്കുക. കഴിഞ്ഞ 30 ദിവസത്തിൽ കീ നടത്തിയ എല്ലാ റിക്വസ്റ്റുകളും അതിൽ കാണാം.