Autentifikācija
Katrs pieprasījums nes jūsu API atslēgu galvenē. Viena atslēga kontam darbojas katrā galapunktā un katram modelim, divās galvenes formās.
Galvene · OpenAI SDK
Authorization: Bearer YOUR_API_KEY Galvene · Anthropic SDK
x-api-key: YOUR_API_KEY Pieņemtās galvenes
Abas galvenes tiek lasītas katrā /v1 galapunktā, neatkarīgi no tā, kādu formātu galapunkts runā. Sūtiet vienu no tām.
| Galvene | Apraksts |
|---|---|
Authorization: Bearer <key> | Pārbauda pirmo. Rakstiet Bearer ar lielo B un vienu atstarpi pirms atslēgas. OpenAI SDK sūta šo galveni. |
x-api-key: <key> | Tiek lasīta, ja pieprasījumā nav galvenes Authorization: Bearer. Anthropic SDK sūta šo galveni. |
Ar OpenAI SDK iestatiet atslēgu un bāzes URL; SDK sūta 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!"}
]
}' Ar Anthropic SDK iestatiet atslēgu un bāzes URL bez /v1; SDK sūta 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!"}
]
}' Kuriem galapunktiem vajadzīga atslēga
| Endpoints | Atslēga |
|---|---|
POST /v1/chat/completions | Obligāta |
POST /v1/messages | Obligāta |
POST /v1/responses | Obligāta |
POST /v1/tokenize | Obligāta |
POST /v1/messages/count_tokens | Obligāta |
GET /v1/models | Nav vajadzīga |
Jūsu atslēga
- Atslēga ir
sk-, kam seko 43 rakstzīmes noA–Z,a–z,0–9,-un_: kopā 46 rakstzīmes. - Katram kontam ir tieši viena atslēga. Tā tiek izveidota, pirmo reizi atverot lapu Atslēgas un izmantošana.
- Atslēga dod pilnu piekļuvi API jūsu kontam: katram galapunktam, katram modelim un visam atlikumam.
- Atslēgai nav derīguma termiņa. Tā darbojas, līdz to nomaināt vai atsaucat.
Nomaiņa un atsaukšana
Atslēgu nomaināt un atsaucat lapā Atslēgas un izmantošana. Atslēgas un izmantošana
| Darbība | Kas notiek |
|---|---|
| Nomainīt | Tiek izsniegta jauna atslēga, un vecā pārstāj darboties. Jaunā darbojas uzreiz. |
| Atsaukt | Atslēga pārstāj darboties, un jauna netiek izsniegta. Nomainiet to, lai atkal iegūtu darbojošos atslēgu. |
- Abas darbojas uzreiz: nākamais pieprasījums ar veco atslēgu tiek atbildēts ar
401. Uzskatiet 60 sekundes par augšējo robežu, pēc kuras vecā atslēga tiek noraidīta visur. - Visi konta klienti izmanto vienu un to pašu atslēgu, tāpēc nomaiņa skar tos visus. Jauno atslēgu ievietojiet savos klientos uzreiz pēc nomaiņas.
- Atlikums, izmantošana un flood protection pieder kontam, nevis atslēgai. Jauna atslēga turpina ar to pašu atlikumu un to pašu pieprasījumu skaitu pašreizējai minūtei.
Kļūdas
Katrai autentifikācijas kļūmei ir statuss 401 un tips authentication_error. Gadījumus atšķir ziņojums.
| Statuss | Veids | Ziņojums | Kad |
|---|---|---|---|
401 | authentication_error | Missing authentication | Pieprasījumā nav ne galvenes Authorization: Bearer, ne galvenes x-api-key, kas sākas ar sk-. Tāda pati atbilde ir arī uz bearer mazajiem burtiem un uz Authorization vērtību bez Bearer. |
401 | authentication_error | Invalid API key | Atslēga nav konta pašreizējā atslēga: tā ir nepareizi ievadīta, tā ir atsaukta vai aizstāta ar nomaiņu. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - Uz katra ceļa, izņemot
/v1/messages, objektāerrorir arīcode: "invalid_api_key", arī trūkstošai atslēgai, unparam: null. - Atslēga tiek pārbaudīta, pirms tiek nolasīts pamatteksts. Pieprasījums bez derīgas atslēgas saņem
401pat tad, ja tā pamatteksts ir nederīgs vai pārāk liels. Authorization: Bearervērtība, kas nesākas arsk-, netiek uzskatīta par API atslēgu. Tā saņem401ar ziņojumu, ka tokens ir nederīgs vai beidzies.
Pārlūki un CORS
- API atbild uz pārlūku starpizcelsmes pieprasījumiem tikai noteiktam izcelsmes avotu sarakstam. JavaScript citas izcelsmes lapā nevar nolasīt
/v1atbildes. - Izsauciet API no sava servera un lieciet savai lapai sazināties ar savu serveri. Tā atslēga paliek ārpus lapas pirmkoda.
- Servera puses kods un komandrindas rīki šo neietekmē: šo noteikumu piemēro tikai pārlūki.
- Pierakstīšanās vietnē shannon-ai.com neautentificē
/v1pieprasījumus. Sīkdatnes tur netiek lasītas; atslēga ir vienīgie akreditācijas dati. - Atļautam izcelsmes avotam (origin) pārlūks drīkst sūtīt
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaunx-request-id, un drīkst lasīt atbildes galvenix-request-id.
Atslēgas drošība
- Glabājiet atslēgu serverī. Nevietojiet to tīmekļa lapās, mobilajās lietotnēs vai publiskos repozitorijos: ikviens, kam tā ir, var iztērēt visu jūsu atlikumu.
- Ielādējiet atslēgu no vides mainīgā vai noslēpumu krātuves, nevis rakstiet to kodā.
- Ja atslēga varētu būt noplūdusi, nomainiet to lapā Atslēgas un izmantošana. Vecā atslēga pārstāj darboties uzreiz.
- Pēc noplūdes izlasiet pieprasījumu sarakstu lapā Atslēgas un izmantošana. Tajā redzams katrs pieprasījums, ko atslēga veikusi pēdējo 30 dienu laikā.