Autenticação

Duas credenciais — uma chave de API para máquinas, uma sessão para a consola — e as regras que as mantêm separadas.

Dois tipos de credencial

A API aceita uma chave de API. A consola aceita um cookie de sessão. Não são intercambiáveis, e a API impõe isso em vez de decidir, pedido a pedido, se um cookie deveria estar presente.

Um navegador com sessão iniciada não pode chamar a API

Um pedido autenticado com um cookie de sessão recebe 403 api_key_required, com uma mensagem que aponta para a página de chaves da consola. Isto é deliberado: sem um caminho autenticado por cookie para a API, não há nada que um pedido entre sites possa forjar.

O cabeçalho

Envie a chave como token bearer. Uma chave é um prefixo, um ponto e um segredo; o prefixo identifica a linha, por isso a revogação é imediata e custa uma consulta.

curl https://api.llmeu.com/v1/chat/completions \
  -H "Authorization: Bearer llmeu_live_xxxxxxxx.your-secret" \
  -H "Content-Type: application/json" \
  -d '{"model":"llmeu-auto","messages":[{"role":"user","content":"Hello"}]}'

Âmbitos

Uma chave tem um ou mais âmbitos. Um pedido cuja chave não tenha o âmbito exigido por um endpoint é recusado com 403 insufficient_scope, antes de o corpo ser analisado.

Âmbito Desbloqueia
inference Conclusões de chat, embeddings, e os endpoints de lista e detalhe de modelos.
platform_read Ler a sua organização: perfil, chaves, utilização, traces e políticas.
platform_write Criar e revogar chaves, e criar ou editar políticas. Este é o âmbito que altera quem pode fazer o quê, por isso emita-o deliberadamente.

Os âmbitos são verificados por endpoint, não por chave. Uma chave com platform_read não pode gastar crédito através do playground.

Criar uma chave

Na consola, ou através da API da plataforma com uma chave que já tenha platform_write. O segredo é mostrado uma vez, quando é criado: só é armazenado um hash scrypt, por isso ninguém — incluindo nós — o pode ler de volta.

curl -X POST https://api.llmeu.com/platform/v1/api-keys \
  -H "Authorization: Bearer llmeu_live_xxxxxxxx.a-platform-write-key" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci","scopes":["inference"]}'

As ações administrativas na consola — políticas, equipa, definições, crédito, revogação de chaves — são apenas para owner ou admin, independentemente dos âmbitos que uma chave tenha.

Revogação, e o que uma chave não é

Uma chave pertence a uma organização, e a organização é resolvida a partir da própria chave — nunca a partir de um campo no corpo do pedido, por isso um chamador não pode dirigir-se a outro tenant apenas pedindo. A revogação entra em vigor no pedido seguinte. Rodar significa criar uma segunda chave, mover o tráfego e depois revogar a primeira; não há janela de sobreposição para configurar.

Para a consola, em vez disso

Início de sessão, recuperação de palavra-passe e verificação de endereço estão documentados com a consola. Não há OAuth, nem SAML, nem token de acesso pessoal: a consola usa um cookie de sessão, a API usa chaves.