Developer guide
Autenticar com uma chave de API
O cabeçalho que recebe a chave de API e a base URL a ser configurada no SDK
Esta página explica como autenticar com uma chave de API no gateway da CLEVI.
Tanto o caminho compatível com OpenAI quanto o caminho compatível com Anthropic usam uma única chave para autenticação,
e o escopo permitido do cabeçalho que recebe a chave e a base URL a ser configurada no SDK diferem conforme a especificação.
Cabeçalho de autenticação
Ambas as especificações compatíveis usam uma única chave de API para autenticação. A chave é emitida na tela de chaves de API do console, onde também é possível revogá-la e gerenciar seu escopo de uso.
| Cabeçalho | Compatível com OpenAI | Compatível com Anthropic |
|---|---|---|
| X-API-Key: <키> | Permitido | Permitido |
| Authorization: Bearer <키> | Permitido | Permitido |
| Authorization: <키> (sem Bearer) | Rejeitado | Permitido |
Os nomes dos cabeçalhos não diferenciam maiúsculas de minúsculas. x-api-key enviado pelo SDK da Anthropic também funciona normalmente.
base URL
Os SDKs que você já usa continuarão funcionando se você alterar apenas a base URL para um dos endereços abaixo. A diferença entre os dois endereços é se eles incluem /v1.
| Especificação | base URL | Regra de caminho |
|---|---|---|
| Compatível com OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Inclua até /v1 na base URL. |
| Compatível com Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | O SDK da Anthropic adiciona /v1 automaticamente ao caminho, portanto a base URL termina antes de /v1. |
Verificar a autenticação
Você pode verificar imediatamente se a autenticação foi realizada informando a chave e a base URL e consultando a lista de modelos. Os três exemplos abaixo fazem a mesma consulta usando curl, o SDK da OpenAI e o SDK da Anthropic.
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
-H "X-API-Key: sk-..."
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
-H "Authorization: Bearer sk-..." \
-H "anthropic-version: 2023-06-01"from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)
for model in client.models.list():
print(model.id)from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)
for model in client.models.list(limit=20).data:
print(model.id)Substitua sk-... pela chave emitida na tela de chaves de API.
- Se a resposta for 200, a autenticação foi realizada. data contém a lista de modelos que podem ser chamados com esta chave.
- Se a resposta for 401, verifique na ordem apresentada na seção Falha de autenticação abaixo.
Cabeçalhos usados em conjunto
Todos são opcionais. Para rastrear problemas, é recomendável incluir X-Request-Id.
| Cabeçalho | Finalidade | Se omitido |
|---|---|---|
| X-Request-Id | Identificador para rastreamento da solicitação. Em respostas compatíveis com Anthropic, ele retorna como o cabeçalho request-id. | Emitido pelo servidor. |
| X-Region-Code | Região da chamada | global. |
| X-Product-Sku (também pode ser usado como product_sku na consulta) | Especifica diretamente o Product SKU a ser usado para cobrança. O cabeçalho tem prioridade sobre a consulta e é usado principalmente em rotas de voz e voice. | É necessário nas rotas de voice. audio/speech e audio/transcriptions selecionam o Product por meio de model no corpo. |
| anthropic-version / anthropic-beta | É encaminhado como está nas rotas compatíveis com Anthropic. | A versão é 2023-06-01. |
Falha de autenticação
Se você enviar uma chave ausente, expirada ou revogada, o resultado será 401. Ao fazer uma chamada sem chave em uma rota compatível com OpenAI, o corpo abaixo será retornado; em uma rota compatível com Anthropic, error.type será authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}- Verifique o status da chave na tela de chaves da API. Se ela estiver expirada ou revogada, emita uma nova.
- Verifique se o nome do cabeçalho é X-API-Key ou Authorization.
- Se usar Authorization em uma rota compatível com OpenAI, verifique o prefixo Bearer.
