அங்கீகாரம்
ஒவ்வொரு கோரிக்கையும் header-ல் உங்கள் API key-ஐக் கொண்டுசெல்லும். ஒரு கணக்குக்கு ஒரு key ஒவ்வொரு endpoint-லும் ஒவ்வொரு மாடலிலும், இரண்டு header வடிவங்களில் எதிலும் வேலை செய்யும்.
Authorization: Bearer YOUR_API_KEY x-api-key: YOUR_API_KEY ஏற்கப்படும் headers
endpoint எந்த வடிவத்தில் பேசினாலும், இரண்டு header-களும் ஒவ்வொரு /v1 endpoint-லும் படிக்கப்படுகின்றன. ஏதேனும் ஒன்றை அனுப்புங்கள்.
| Header | விளக்கம் |
|---|---|
Authorization: Bearer <key> | முதலில் சரிபார்க்கப்படும். Bearer என்பதை பெரிய B-யுடன் எழுதி, key-க்கு முன் ஒரு இடைவெளி விடுங்கள். OpenAI SDK-கள் இந்த header-ஐ அனுப்புகின்றன. |
x-api-key: <key> | கோரிக்கையில் Authorization: Bearer header இல்லாதபோது படிக்கப்படும். Anthropic SDK-கள் இந்த header-ஐ அனுப்புகின்றன. |
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) 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-யுடன், 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")) 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!"}
]
}' எந்த endpoint-களுக்கு 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 & usage
| செயல் | என்ன நடக்கும் |
|---|---|
| மாற்று | புதிய key வழங்கப்படும், பழைய key செயல்படாது. புதிய key உடனே வேலை செய்யும். |
| ரத்துசெய் | key செயல்படாது; புதிய key வழங்கப்படாது. மீண்டும் வேலை செய்யும் key பெற key-ஐ மாற்றுங்கள். |
- இரண்டும் உடனே நடைமுறைக்கு வரும்: பழைய key-யுடன் அடுத்த கோரிக்கை
401பதிலைப் பெறும். பழைய key எல்லா இடங்களிலும் நிராகரிக்கப்பட அதிகபட்சம் 60 வினாடிகள் என்று கொள்ளுங்கள். - கணக்கின் ஒவ்வொரு கிளையன்ட்டும் ஒரே key-ஐப் பயன்படுத்துகிறது, எனவே மாற்றம் அனைத்தையும் பாதிக்கும். மாற்றிய உடனே புதிய key-ஐ உங்கள் கிளையன்ட்களில் இடுங்கள்.
- இருப்பு, பயன்பாடு மற்றும் ஃப்ளட் பாதுகாப்பு ஆகியவை key-க்கு அல்ல, கணக்குக்கு உரியவை. புதிய key அதே இருப்புடனும், தற்போதைய நிமிடத்துக்கான அதே கோரிக்கை எண்ணிக்கையுடனும் தொடரும்.
பிழைகள்
ஒவ்வொரு அங்கீகாரத் தோல்விக்கும் நிலை 401 மற்றும் வகை authentication_error. செய்தி எந்த நிலை என்பதைப் பிரித்துக் காட்டும்.
| நிலை | வகை | செய்தி | எப்போது |
|---|---|---|---|
401 | authentication_error | Missing authentication | கோரிக்கையில் Authorization: Bearer header-ம் இல்லை, sk- என்று தொடங்கும் x-api-key header-ம் இல்லை. சிறிய எழுத்தில் bearer என்றோ Bearer இல்லாத Authorization மதிப்பு என்றோ அனுப்பினாலும் இதே பதில்தான். |
401 | authentication_error | Invalid API key | key ஒரு கணக்கின் தற்போதைய key அல்ல: தவறாகத் தட்டச்சு செய்யப்பட்டது, ரத்து செய்யப்பட்டது, அல்லது மாற்றத்தால் புதிய 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தவிர ஒவ்வொரு பாதையிலும், key இல்லாத நிலையிலும் கூட,errorobject-ல்code: "invalid_api_key"மற்றும்param: nullஇருக்கும்.- body படிக்கப்படுவதற்கு முன்பே key சரிபார்க்கப்படும். செல்லுபடியாகும் key இல்லாத கோரிக்கையின் body தவறாக இருந்தாலும் மிகப் பெரிதாக இருந்தாலும் அது
401பெறும். sk-என்று தொடங்காதAuthorization: Bearerமதிப்பு API key ஆகக் கருதப்படாது. அது401பெறும்; செய்தி, token செல்லாதது அல்லது காலாவதியானது என்று கூறும்.
உலாவிகளும் CORS-ம்
- நிலையான origin பட்டியலுக்கு மட்டுமே API cross-origin உலாவி கோரிக்கைகளுக்குப் பதிலளிக்கும். வேறொரு origin-ன் பக்கத்திலுள்ள JavaScript-ஆல்
/v1பதில்களைப் படிக்க முடியாது. - API-ஐ உங்கள் சர்வரிலிருந்து அழையுங்கள், உங்கள் பக்கம் உங்கள் சர்வருடன் பேசட்டும். இதனால் key பக்க மூலத்திலும் வெளிப்படாது.
- சர்வர் பக்க குறியீடும் கட்டளை வரிக் கருவிகளும் பாதிக்கப்படுவதில்லை: இந்த விதியை உலாவிகள் மட்டுமே செயல்படுத்துகின்றன.
- shannon-ai.com-ல் உள்நுழைவது
/v1கோரிக்கைகளை அங்கீகரிக்காது. அங்கே cookies படிக்கப்படுவதில்லை; key மட்டுமே சான்று. - அனுமதிக்கப்பட்ட origin-க்கு, உலாவி
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaமற்றும்x-request-idஆகியவற்றை அனுப்பலாம், மேலும் பதில் headerx-request-id-ஐப் படிக்கலாம்.
key-ஐப் பாதுகாப்பாக வைத்தல்
- key-ஐ சர்வரில் வையுங்கள். வலைப்பக்கங்கள், மொபைல் ஆப்கள் அல்லது பொதுக் களஞ்சியங்களில் வைக்காதீர்கள்: அதை வைத்திருப்பவர் உங்கள் முழு இருப்பையும் செலவிட முடியும்.
- key-ஐ குறியீட்டில் எழுதாமல் environment variable அல்லது secret store-லிருந்து ஏற்றுங்கள்.
- key கசிந்திருக்கலாம் என்றால், Keys & usage-ல் அதை மாற்றுங்கள். பழைய key உடனே செயல்படாது.
- key கசிந்த பிறகு, Keys & usage-ல் கோரிக்கைப் பட்டியலைப் படியுங்கள். கடந்த 30 நாட்களில் அந்த key செய்த ஒவ்வொரு கோரிக்கையையும் அது காட்டும்.