Autentifikazioa
Eskaera guztiek zure API gakoa daramate goiburu batean. Kontu bakoitzeko gako batek endpoint eta modelo guztietan balio du, bi goiburu-formetako edozeinetan.
Goiburua · OpenAI SDK-ak
Authorization: Bearer YOUR_API_KEY Goiburua · Anthropic SDK-ak
x-api-key: YOUR_API_KEY Onartutako goiburuak
Bi goiburuak /v1 endpoint guztietan irakurtzen dira, endpoint-ak formatu zein hitz egiten duen kontuan hartu gabe. Bidali bietako bat.
| Goiburua | Deskribapena |
|---|---|
Authorization: Bearer <key> | Lehenik egiaztatzen da. Idatzi Bearer B larriz eta tarte bakar batekin gakoaren aurretik. OpenAI SDK-ek goiburu hau bidaltzen dute. |
x-api-key: <key> | Eskaerak Authorization: Bearer goibururik ez duenean irakurtzen da. Anthropic SDK-ek goiburu hau bidaltzen dute. |
OpenAI SDK batekin, ezarri gakoa eta base URL-a; SDK-ak Authorization: Bearer bidaltzen du.
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 batekin, ezarri gakoa eta base URL-a /v1 gabe; SDK-ak x-api-key bidaltzen du.
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!"}
]
}' Zein endpoint-ek behar duten gakoa
| Endpoint-a | Gakoa |
|---|---|
POST /v1/chat/completions | Beharrezkoa |
POST /v1/messages | Beharrezkoa |
POST /v1/responses | Beharrezkoa |
POST /v1/tokenize | Beharrezkoa |
POST /v1/messages/count_tokens | Beharrezkoa |
GET /v1/models | Ez da behar |
Zure gakoa
- Gako bat
sk-da, eta ondorenA–Z,a–z,0–9,-eta_multzoko 43 karaktere: 46 karaktere guztira. - Kontu bakoitzak gako bakar bat du. Gakoak eta erabilera irekitzen duzun lehen aldian sortzen da.
- Gakoak zure kontuaren API-rako sarbide osoa ematen du: endpoint guztiak, modelo guztiak eta saldo osoa.
- Gako batek ez du iraungitze-datarik. Birsortu edo indargabetu arte balio du.
Birsortu eta indargabetu
Gakoak eta erabilera orrialdean birsortzen eta indargabetzen da gakoa. Gakoak eta erabilera
| Ekintza | Zer gertatzen den |
|---|---|
| Birsortu | Gako berri bat igortzen da eta gako zaharrak funtzionatzeari uzten dio. Gako berriak berehala funtzionatzen du. |
| Indargabetu | Gakoak funtzionatzeari uzten dio eta ez da gako berririk igortzen. Birsortu berriro gako erabilgarri bat izateko. |
- Biek berehala dute eragina: gako zaharrarekin egindako hurrengo eskaerari
401erantzuten zaio. Hartu 60 segundo goiko muga gisa, gako zaharra toki guztietan ukatu arte. - Kontuko bezero guztiek gako bera erabiltzen dute, beraz birsortzeak guztiei eragiten die. Jarri gako berria zure bezeroetan birsortu eta berehala.
- Saldoa, erabilera eta flood protection kontuarenak dira, ez gakoarenak. Gako berriak saldo berarekin eta uneko minutuko eskaera-kopuru berarekin jarraitzen du.
Erroreak
Autentifikazio-hutsegite guztiek 401 egoera eta authentication_error mota dute. Mezuak kasuak bereizten ditu.
| Egoera | Mota | Mezua | Noiz |
|---|---|---|---|
401 | authentication_error | Missing authentication | Eskaerak ez du Authorization: Bearer goibururik ez sk- hasten den x-api-key goibururik. Hau da erantzuna minuskulaz idatzitako bearer-i eta Bearer gabeko Authorization balioari ere. |
401 | authentication_error | Invalid API key | Gakoa ez da kontu baten uneko gakoa: gaizki idatzita dago, indargabetu egin da, edo birsortze batek ordezkatu du. |
{
"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/messagesizan ezik bide guztietan,errorobjektuakcode: "invalid_api_key"ere badu, gakorik ezean ere, etaparam: null.- Gakoa gorputza irakurri aurretik egiaztatzen da. Gako baliodunik gabeko eskaerak
401jasotzen du gorputza baliogabea edo handiegia denean ere. sk-hasten ez denAuthorization: Bearerbalioa ez da API gakotzat hartzen.401jasotzen du, tokena baliogabea edo iraungia dela dioen mezuarekin.
Nabigatzaileak eta CORS
- API-ak jatorri arteko nabigatzaile-eskaerei jatorri-zerrenda finko batentzat bakarrik erantzuten die. Beste jatorri bateko orrialde bateko JavaScript-ek ezin ditu
/v1erantzunak irakurri. - Deitu API-ari zure zerbitzaritik eta utzi zure orrialdeari zure zerbitzariarekin hitz egiten. Horrek gakoa orrialdearen iturburu-kodetik kanpo ere uzten du.
- Zerbitzari-aldeko kodeari eta komando-lerroko tresnei ez die eragiten: arau hau nabigatzaileek bakarrik aplikatzen dute.
- shannon-ai.com-en saioa hasteak ez ditu
/v1eskaerak autentifikatzen. Han cookieak ez dira irakurtzen; gakoa da kredentzial bakarra. - Baimendutako jatorri batetik, nabigatzaile batek
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaetax-request-idbidal ditzake, etax-request-iderantzun-goiburua irakur dezake.
Gakoa seguru gordetzea
- Gorde gakoa zerbitzari batean. Ez jarri web-orrietan, mugikorreko aplikazioetan edo biltegi publikoetan: daukanak zure saldo osoa gastatu dezake.
- Kargatu gakoa ingurune-aldagai batetik edo sekretu-biltegi batetik, kodean idatzi beharrean.
- Gakoa ihes egin badu, birsortu Gakoak eta erabilera orrialdean. Gako zaharrak berehala uzten dio funtzionatzeari.
- Ihes baten ondoren, irakurri Gakoak eta erabilera orrialdeko eskaera-zerrenda. Gakoak azken 30 egunetan egindako eskaera guztiak erakusten ditu.