සත්යාපනය
සෑම ඉල්ලීමක්ම ඔබේ API key එක header එකක ගෙන යයි. ගිණුමකට එක key එකක් සෑම endpoint එකකම සහ සෑම model එකකම ක්රියා කරයි, header ආකාර දෙකෙන් ඕනෑම එකකින්.
Header · OpenAI SDKs
Authorization: Bearer YOUR_API_KEY Header · Anthropic SDKs
x-api-key: YOUR_API_KEY පිළිගන්නා headers
Endpoint එක කථා කරන format එක කුමක් වුවත්, සෑම /v1 endpoint එකකම headers දෙකම කියවයි. ඉන් එකක් යවන්න.
| Header | විස්තරය |
|---|---|
Authorization: Bearer <key> | මුලින්ම පරීක්ෂා කෙරේ. Bearer ලියන්නේ ලොකු B අකුරකින් සහ key එකට පෙර එක space එකක් සහිතවය. OpenAI SDKs මෙම header එක යවයි. |
x-api-key: <key> | ඉල්ලීමේ Authorization: Bearer header එකක් නැති විට කියවයි. Anthropic SDKs මෙම 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!"}
]
}' Key එකක් අවශ්ය endpoints මොනවාද
| Endpoint | 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 එකක්ම, සෑම model එකක්ම සහ සම්පූර්ණ ශේෂය.
- Key එකකට කල් ඉකුත් වන දිනයක් නැත. ඔබ එය මාරු කරන හෝ අවලංගු කරන තෙක් එය ක්රියා කරයි.
මාරු කිරීම සහ අවලංගු කිරීම
ඔබ key එක මාරු කරන්නේ සහ අවලංගු කරන්නේ Keys & usage පිටුවේදීය. යතුරු සහ භාවිතය
| ක්රියාව | සිදුවන දේ |
|---|---|
| මාරු කරන්න | අලුත් key එකක් නිකුත් කෙරෙන අතර පරණ key එක ක්රියා කිරීම නවතී. අලුත් key එක වහාම ක්රියා කරයි. |
| අවලංගු කරන්න | Key එක ක්රියා කිරීම නවතින අතර අලුත් key එකක් නිකුත් නොකෙරේ. නැවත ක්රියා කරන key එකක් ලබා ගැනීමට මාරු කරන්න. |
- දෙකම වහාම බලපැවැත්වේ: පරණ key එක සමඟ ඊළඟ ඉල්ලීමට
401ලැබේ. පරණ key එක සෑම තැනකම ප්රතික්ෂේප වන තෙක් ඉහළ සීමාව ලෙස තත්පර 60ක් සලකන්න. - ගිණුමේ සෑම client එකක්ම එකම key එක භාවිතා කරයි, එබැවින් මාරු කිරීමක් ඒ සියල්ලටම බලපායි. ඔබ මාරු කළ වහාම අලුත් key එක ඔබේ clients වලට ඇතුළත් කරන්න.
- ශේෂය, භාවිතය සහ flood protection අයත් වන්නේ key එකට නොව ගිණුමටය. අලුත් key එකක් එම ශේෂයෙන්ම සහ වත්මන් විනාඩියේ එම ඉල්ලීම් ගණනින්ම දිගටම ක්රියා කරයි.
දෝෂ
සෑම සත්යාපන අසාර්ථකත්වයකම status 401 සහ type 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 එක නොවේ: එය වැරදියට ටයිප් කර ඇත, අවලංගු කර ඇත, නැතහොත් මාරු කිරීමකින් (rotation) ප්රතිස්ථාපනය වී ඇත. |
{
"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හැර සෑම path එකකමerrorobject එකේcode: "invalid_api_key"ද ඇත, key එක නොමැති විටත්, සහparam: nullද ඇත.- Body එක කියවීමට පෙර key එක පරීක්ෂා කෙරේ. වලංගු key එකක් නොමැති ඉල්ලීමකට, එහි body එක වලංගු නොවූවත් හෝ ඉතා විශාල වුවත්
401ලැබේ. sk-වලින් ආරම්භ නොවනAuthorization: Bearerඅගයක් API key එකක් ලෙස සලකන්නේ නැත. එයට token එක වලංගු නොවන බව හෝ කල් ඉකුත් වූ බව දැනුම් දෙන පණිවිඩයක් සහිත401ලැබේ.
Browsers සහ CORS
- API එක cross-origin browser ඉල්ලීම්වලට පිළිතුරු දෙන්නේ origins වල ස්ථාවර ලැයිස්තුවකට පමණි. වෙනත් origin එකක පිටුවක JavaScript වලට
/v1පිළිතුරු කියවිය නොහැක. - API එක ඔබේ server එකෙන් call කර ඔබේ පිටුව ඔබේ server එක සමඟ සන්නිවේදනය කරවන්න. එය key එක පිටුවේ source එකෙන් ද බැහැර කරයි.
- Server-side code සහ command-line මෙවලම්වලට බලපෑමක් නැත: මෙම නීතිය ක්රියාත්මක කරන්නේ browsers පමණි.
- shannon-ai.com හි sign-in එකක්
/v1ඉල්ලීම් සත්යාපනය නොකරයි. Cookies එහිදී කියවන්නේ නැත; key එක පමණක් credential එකයි. - අවසර ඇති origin එකක් සඳහා, browser එකකට
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaසහx-request-idයැවිය හැකි අතර, පිළිතුරේx-request-idheader එක කියවිය හැක.
Key එක ආරක්ෂිතව තබා ගැනීම
- Key එක server එකක තබා ගන්න. එය වෙබ් පිටු, mobile apps හෝ public repositories තුළ තබන්න එපා: එය අතැති ඕනෑම කෙනෙකුට ඔබේ සම්පූර්ණ ශේෂය වියදම් කළ හැක.
- Key එක code එකේ ලිවීම වෙනුවට environment variable එකකින් හෝ secret store එකකින් load කරන්න.
- Key එක කාන්දු වී ඇති විය හැකි නම්, Keys & usage හිදී එය මාරු කරන්න. පරණ key එක වහාම ක්රියා කිරීම නවතී.
- කාන්දුවකින් පසු, Keys & usage හි ඉල්ලීම් ලැයිස්තුව කියවන්න. එයින් පසුගිය දින 30 තුළ key එක මගින් කළ සෑම ඉල්ලීමක්ම පෙන්වයි.