Todennus
Jokainen pyyntö kuljettaa API-avaintasi otsakkeessa. Yksi avain tiliä kohti toimii jokaisessa päätepisteessä ja jokaisella mallilla kummassa tahansa kahdesta otsakemuodosta.
Otsake · OpenAI SDK:t
Authorization: Bearer YOUR_API_KEY Otsake · Anthropic SDK:t
x-api-key: YOUR_API_KEY Hyväksytyt otsakkeet
Molemmat otsakkeet luetaan jokaisessa /v1-päätepisteessä riippumatta siitä, mitä formaattia päätepiste puhuu. Lähetä jompikumpi.
| Otsake | Kuvaus |
|---|---|
Authorization: Bearer <key> | Tarkistetaan ensin. Kirjoita Bearer isolla B:llä ja yhdellä välilyönnillä ennen avainta. OpenAI SDK:t lähettävät tämän otsakkeen. |
x-api-key: <key> | Luetaan, kun pyynnössä ei ole Authorization: Bearer -otsaketta. Anthropic SDK:t lähettävät tämän otsakkeen. |
OpenAI SDK:lla aseta avain ja perus-URL; SDK lähettää 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:lla aseta avain ja perus-URL ilman /v1; SDK lähettää 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!"}
]
}' Mitkä päätepisteet vaativat avaimen
| Päätepiste | Avain |
|---|---|
POST /v1/chat/completions | Pakollinen |
POST /v1/messages | Pakollinen |
POST /v1/responses | Pakollinen |
POST /v1/tokenize | Pakollinen |
POST /v1/messages/count_tokens | Pakollinen |
GET /v1/models | Ei tarvita |
Avaimesi
- Avain on
sk-ja sen perässä 43 merkkiä joukostaA–Z,a–z,0–9,-ja_: yhteensä 46 merkkiä. - Jokaisella tilillä on täsmälleen yksi avain. Se luodaan, kun avaat Avaimet ja käyttö -sivun ensimmäisen kerran.
- Avain antaa tilillesi täyden pääsyn API:in: jokaiseen päätepisteeseen, jokaiseen malliin ja koko saldoon.
- Avaimella ei ole vanhenemispäivää. Se toimii, kunnes vaihdat tai mitätöit sen.
Vaihto ja mitätöinti
Avaimen vaihdat ja mitätöit sivulla Avaimet ja käyttö. Avaimet ja käyttö
| Toiminto | Mitä tapahtuu |
|---|---|
| Vaihto | Uusi avain myönnetään ja vanha lakkaa toimimasta. Uusi avain toimii heti. |
| Mitätöinti | Avain lakkaa toimimasta, eikä uutta avainta myönnetä. Vaihda avain saadaksesi toimivan avaimen takaisin. |
- Molemmat tulevat voimaan heti: seuraava pyyntö vanhalla avaimella saa vastauksen
401. Pidä 60 sekuntia ylärajana, jonka jälkeen vanha avain hylätään kaikkialla. - Tilin jokainen asiakas käyttää samaa avainta, joten vaihto koskee kaikkia. Laita uusi avain asiakkaisiisi heti vaihdon jälkeen.
- Saldo, käyttö ja tulvasuoja kuuluvat tilille, eivät avaimelle. Uusi avain jatkaa samalla saldolla ja samalla käynnissä olevan minuutin pyyntömäärällä.
Virheet
Jokaisen todennusvirheen tila on 401 ja tyyppi authentication_error. Viestistä erottaa tapaukset toisistaan.
| Tila | Tyyppi | Viesti | Milloin |
|---|---|---|---|
401 | authentication_error | Missing authentication | Pyynnössä ei ole Authorization: Bearer -otsaketta eikä sk--alkuista x-api-key-otsaketta. Tämä on myös vastaus pienillä kirjaimilla kirjoitettuun bearer-sanaan ja Authorization-arvoon ilman Bearer-sanaa. |
401 | authentication_error | Invalid API key | Avain ei ole tilin nykyinen avain: se on kirjoitettu väärin, mitätöity tai korvattu avaimen vaihdolla. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - Kaikilla poluilla paitsi
/v1/messageserror-objekti sisältää myöscode: "invalid_api_key", myös puuttuvan avaimen tapauksessa, sekäparam: null. - Avain tarkistetaan ennen kuin runko luetaan. Pyyntö ilman kelvollista avainta saa vastauksen
401, vaikka sen runko olisi virheellinen tai liian suuri. Authorization: Bearer-arvoa, joka ei ala merkeilläsk-, ei käsitellä API-avaimena. Se saa vastauksen401ja viestin, että token on virheellinen tai vanhentunut.
Selaimet ja CORS
- API vastaa selaimen cross-origin-pyyntöihin vain kiinteälle originien listalle. Toisen originin sivun JavaScript ei voi lukea
/v1-vastauksia. - Kutsu API:a palvelimeltasi ja anna sivusi keskustella palvelimesi kanssa. Näin avain pysyy myös poissa sivun lähdekoodista.
- Palvelinpuolen koodia ja komentorivityökaluja tämä ei koske: säännön noudattaa vain selain.
- Sisäänkirjautuminen osoitteessa shannon-ai.com ei todenna
/v1-pyyntöjä. Evästeitä ei lueta siellä; avain on ainoa tunniste. - Sallitusta originista selain voi lähettää otsakkeet
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betajax-request-idsekä lukea vastausotsakkeenx-request-id.
Avaimen turvassa pitäminen
- Pidä avain palvelimella. Älä laita sitä verkkosivuille, mobiilisovelluksiin tai julkisiin repositorioihin: sen haltija voi kuluttaa koko saldosi.
- Lataa avain ympäristömuuttujasta tai salaisuuksien säilöstä sen sijaan, että kirjoittaisit sen koodiin.
- Jos avain on voinut vuotaa, vaihda se sivulla Avaimet ja käyttö. Vanha avain lakkaa toimimasta heti.
- Vuodon jälkeen lue pyyntölista sivulla Avaimet ja käyttö. Se näyttää kaikki avaimella tehdyt pyynnöt viimeisen 30 päivän ajalta.