ఆథెంటికేషన్
ప్రతి రిక్వెస్ట్ మీ 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) 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 లేని బేస్ 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 అక్షరాలు. - ప్రతి ఖాతాకు సరిగ్గా ఒక కీ ఉంటుంది. మీరు మొదటిసారి Keys & usage ని తెరిచినప్పుడు అది సృష్టించబడుతుంది.
- కీ మీ ఖాతా కోసం APIకి పూర్తి యాక్సెస్ ఇస్తుంది: ప్రతి ఎండ్పాయింట్, ప్రతి మోడల్ మరియు మొత్తం బ్యాలెన్స్.
- కీకి గడువు తేదీ ఉండదు. మీరు రొటేట్ చేసే వరకు లేదా రద్దు చేసే వరకు అది పనిచేస్తుంది.
రొటేట్ చేయడం మరియు రద్దు చేయడం
మీరు Keys & usage పేజీలో కీని రొటేట్ చేస్తారు మరియు రద్దు చేస్తారు. Keys & usage
| చర్య | ఏమి జరుగుతుంది |
|---|---|
| రొటేట్ చేయడం | కొత్త కీ జారీ చేయబడుతుంది మరియు పాత కీ పనిచేయడం ఆగిపోతుంది. కొత్త కీ వెంటనే పనిచేస్తుంది. |
| రద్దు చేయడం | కీ పనిచేయడం ఆగిపోతుంది మరియు కొత్త కీ జారీ చేయబడదు. మళ్ళీ పనిచేసే కీ కోసం రొటేట్ చేయండి. |
- రెండూ వెంటనే అమలులోకి వస్తాయి: పాత కీతో వచ్చే తదుపరి రిక్వెస్ట్కు
401తో సమాధానం వస్తుంది. పాత కీ అన్నిచోట్లా తిరస్కరించబడటానికి గరిష్ఠ పరిమితిగా 60 సెకన్లు భావించండి. - ఖాతాలోని ప్రతి క్లయింట్ ఒకే కీని ఉపయోగిస్తుంది, కాబట్టి రొటేషన్ అన్నిటికీ వర్తిస్తుంది. రొటేట్ చేసిన వెంటనే కొత్త కీని మీ క్లయింట్లలో పెట్టండి.
- బ్యాలెన్స్, వినియోగం మరియు flood protection ఖాతాకు చెందినవి, కీకి కాదు. కొత్త కీ అదే బ్యాలెన్స్తో మరియు ప్రస్తుత నిమిషానికి అదే రిక్వెస్ట్ లెక్కతో కొనసాగుతుంది.
ఎరర్లు
ప్రతి ఆథెంటికేషన్ వైఫల్యానికి స్టేటస్ 401 మరియు type 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తప్ప ప్రతి path లోerrorఆబ్జెక్ట్లోcode: "invalid_api_key"కూడా ఉంటుంది, కీ లేనప్పుడు కూడా, మరియుparam: null.- బాడీ చదవడానికి ముందే కీ తనిఖీ చేయబడుతుంది. చెల్లుబాటు అయ్యే కీ లేని రిక్వెస్ట్కు దాని బాడీ చెల్లనిది లేదా చాలా పెద్దది అయినా
401వస్తుంది. sk-తో మొదలుకానిAuthorization: Bearerవిలువ API కీగా పరిగణించబడదు. దానికి టోకెన్ చెల్లనిది లేదా గడువు ముగిసినది అనే మెసేజ్తో401వస్తుంది.
బ్రౌజర్లు మరియు CORS
- API క్రాస్-ఆరిజిన్ బ్రౌజర్ రిక్వెస్ట్లకు నిర్ణీత 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ను చదవవచ్చు.
కీని సురక్షితంగా ఉంచడం
- కీని సర్వర్లో ఉంచండి. వెబ్ పేజీలు, మొబైల్ యాప్లు లేదా పబ్లిక్ రిపోజిటరీలలో పెట్టకండి: అది ఉన్నవారు మీ మొత్తం బ్యాలెన్స్ను ఖర్చు చేయగలరు.
- కీని కోడ్లో రాయకుండా ఎన్విరాన్మెంట్ వేరియబుల్ లేదా సీక్రెట్ స్టోర్ నుండి లోడ్ చేయండి.
- కీ లీక్ అయి ఉండవచ్చని అనిపిస్తే, Keys & usage లో దాన్ని రొటేట్ చేయండి. పాత కీ వెంటనే పనిచేయడం ఆగిపోతుంది.
- లీక్ అయిన తర్వాత, Keys & usage లోని రిక్వెస్ట్ జాబితాను చదవండి. ఇది గత 30 రోజుల్లో కీ చేసిన ప్రతి రిక్వెస్ట్ను చూపిస్తుంది.