પ્રમાણિકરણ
દરેક રિક્વેસ્ટ હેડરમાં તમારી API કી લઈ જાય છે. એકાઉન્ટ દીઠ એક કી દરેક એન્ડપોઇન્ટ અને દરેક મોડેલ પર કામ કરે છે, બે હેડર સ્વરૂપમાંથી કોઈપણમાં.
હેડર · OpenAI SDKs
Authorization: Bearer YOUR_API_KEY હેડર · Anthropic SDKs
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 અક્ષરો. - દરેક એકાઉન્ટ પાસે બરાબર એક કી હોય છે. તમે Keys & usage પહેલી વાર ખોલો ત્યારે તે બને છે.
- કી તમારા એકાઉન્ટ માટે API ની પૂરી ઍક્સેસ આપે છે: દરેક એન્ડપોઇન્ટ, દરેક મોડેલ અને આખું બેલેન્સ.
- કી ની કોઈ સમાપ્તિ તારીખ નથી. તમે રોટેટ અથવા રદ કરો ત્યાં સુધી તે કામ કરે છે.
રોટેટ અને રદ કરો
તમે Keys & usage પેજ પર કી રોટેટ અને રદ કરો છો. Keys & usage
| ક્રિયા | શું થાય છે |
|---|---|
| રોટેટ કરો | નવી કી અપાય છે અને જૂની કી કામ કરવાનું બંધ કરે છે. નવી કી તરત કામ કરે છે. |
| રદ કરો | કી કામ કરવાનું બંધ કરે છે અને કોઈ નવી કી અપાતી નથી. ફરી ચાલતી કી મેળવવા રોટેટ કરો. |
- બંને તરત અસરમાં આવે છે: જૂની કી સાથેની આગલી રિક્વેસ્ટનો જવાબ
401થી મળે છે. જૂની કી બધે નકારાય તે પહેલાંની ઉપલી મર્યાદા 60 સેકન્ડ ગણો. - એકાઉન્ટના બધા ક્લાયન્ટ એ જ કી વાપરે છે, તેથી રોટેશન બધાને અસર કરે છે. રોટેટ કર્યા પછી તરત નવી કી તમારા ક્લાયન્ટમાં મૂકો.
- બેલેન્સ, વપરાશ અને flood protection એકાઉન્ટના છે, કીના નહીં. નવી કી એ જ બેલેન્સ અને ચાલુ મિનિટની એ જ રિક્વેસ્ટ ગણતરી સાથે આગળ ચાલે છે.
એરર્સ
દરેક પ્રમાણીકરણ નિષ્ફળતાનું સ્ટેટસ 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 ક્રોસ-origin બ્રાઉઝર રિક્વેસ્ટનો જવાબ માત્ર 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વાંચી શકે છે.
કીને સુરક્ષિત રાખવી
- કીને સર્વર પર રાખો. તેને વેબ પેજ, મોબાઇલ એપ કે પબ્લિક રિપોઝિટરીમાં ન મૂકો: જેની પાસે તે હોય તે તમારું આખું બેલેન્સ ખર્ચી શકે છે.
- કીને કોડમાં લખવાને બદલે environment variable અથવા secret store માંથી લોડ કરો.
- કી લીક થઈ હોય તેવી શક્યતા હોય, તો Keys & usage પર તેને રોટેટ કરો. જૂની કી તરત કામ કરવાનું બંધ કરે છે.
- લીક પછી, Keys & usage પર રિક્વેસ્ટ યાદી વાંચો. તે છેલ્લા 30 દિવસમાં કી દ્વારા થયેલી દરેક રિક્વેસ્ટ બતાવે છે.