Saltar ao contido
Autenticación

Autenticación

Cada solicitude leva a túa clave API nunha cabeceira. Unha clave por conta funciona en todos os endpoints e todos os modelos, en calquera das dúas formas de cabeceira.

Cabeceira · SDK de OpenAI
Authorization: Bearer YOUR_API_KEY
Cabeceira · SDK de Anthropic
x-api-key: YOUR_API_KEY

Cabeceiras aceptadas

As dúas cabeceiras lense en todos os endpoints de /v1, sexa cal sexa o formato que fale o endpoint. Envía unha delas.

Cabeceira Descrición
Authorization: Bearer <key> Compróbase primeiro. Escribe Bearer con B maiúscula e un espazo antes da clave. Os SDK de OpenAI envían esta cabeceira.
x-api-key: <key> Lese cando a solicitude non ten cabeceira Authorization: Bearer. Os SDK de Anthropic envían esta cabeceira.

Cun SDK de OpenAI, define a clave e a URL base; o SDK envía 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)

Cun SDK de Anthropic, define a clave e a URL base sen /v1; o SDK envía 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"))

Que endpoints precisan unha clave

Endpoint Clave
POST /v1/chat/completions Obrigatoria
POST /v1/messages Obrigatoria
POST /v1/responses Obrigatoria
POST /v1/tokenize Obrigatoria
POST /v1/messages/count_tokens Obrigatoria
GET /v1/models Non fai falta

A túa clave

  • Unha clave é sk- seguido de 43 caracteres de A–Z, a–z, 0–9, - e _: 46 caracteres en total.
  • Cada conta ten exactamente unha clave. Créase a primeira vez que abres Claves e uso.
  • A clave dá acceso completo á API para a túa conta: todos os endpoints, todos os modelos e todo o saldo.
  • Unha clave non ten data de caducidade. Funciona ata que a rotes ou a revogues.

Rotar e revogar

Rotas e revogas a clave na páxina Claves e uso. Claves e uso

Acción Que pasa
Rotar Emítese unha clave nova e a antiga deixa de funcionar. A clave nova funciona de inmediato.
Revogar A clave deixa de funcionar e non se emite ningunha clave nova. Rota para obter de novo unha clave que funcione.
  • Ambas as accións teñen efecto de inmediato: a seguinte solicitude coa clave antiga recibe 401. Considera 60 segundos como o límite máximo ata que a clave antiga se rexeite en todas partes.
  • Todos os clientes da conta usan a mesma clave, así que unha rotación chega a todos. Pon a clave nova nos teus clientes xusto despois de rotar.
  • O saldo, o uso e a protección contra inundación pertencen á conta, non á clave. Unha clave nova continúa co mesmo saldo e co mesmo reconto de solicitudes do minuto actual.

Erros

Todo fallo de autenticación ten o estado 401 e o tipo authentication_error. A mensaxe distingue os casos.

Estado Tipo Mensaxe Cando
401 authentication_error Missing authentication A solicitude non ten nin cabeceira Authorization: Bearer nin cabeceira x-api-key que comece por sk-. Tamén é a resposta para bearer en minúsculas e para un valor de Authorization sen Bearer.
401 authentication_error Invalid API key A clave non é a clave actual dunha conta: está mal escrita, foi revogada ou substituíuse por unha rotación.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • En todas as rutas excepto /v1/messages, o obxecto error contén ademais code: "invalid_api_key", tamén cando falta a clave, e param: null.
  • A clave comprógase antes de ler o corpo. Unha solicitude sen unha clave válida recibe 401 aínda que o seu corpo sexa inválido ou demasiado grande.
  • Un valor de Authorization: Bearer que non comeza por sk- non se trata como clave API. Recibe 401 cunha mensaxe de que o token é inválido ou caducou.

Navegadores e CORS

  • A API só responde a solicitudes de navegador de orixe cruzada para unha lista fixa de orixes. O JavaScript dunha páxina doutra orixe non pode ler as respostas de /v1.
  • Chama á API desde o teu servidor e fai que a túa páxina fale co teu servidor. Así tamén a clave queda fóra do código fonte da páxina.
  • O código do lado do servidor e as ferramentas de liña de comandos non se ven afectados: esta regra só a aplican os navegadores.
  • Iniciar sesión en shannon-ai.com non autentica as solicitudes a /v1. Alí non se len as cookies; a clave é a única credencial.
  • Para unha orixe permitida, un navegador pode enviar content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta e x-request-id, e pode ler a cabeceira de resposta x-request-id.

Manter a clave segura

  • Garda a clave nun servidor. Non a metas en páxinas web, aplicacións móbiles nin repositorios públicos: quen a teña pode gastar todo o teu saldo.
  • Carga a clave desde unha variable de contorna ou un almacén de segredos en lugar de escribila no código.
  • Se a clave puido filtrarse, rótaa en Claves e uso. A clave antiga deixa de funcionar de inmediato.
  • Despois dunha filtración, le a lista de solicitudes en Claves e uso. Mostra todas as solicitudes que fixo a clave nos últimos 30 días.