Developer guide
Autenticar com uma chave de API
O cabeçalho que contém a chave de API e a base URL a ser configurada no SDK
O gateway CLEVI autentica as rotas compatíveis com OpenAI e as rotas compatíveis com Anthropic usando uma única chave de API.
No cliente, há dois valores a serem configurados: o cabeçalho de autenticação que contém a chave e a base URL do SDK. Os formatos de cabeçalho aceitos e a base URL variam conforme a especificação.
Após concluir a configuração, consulte a lista de modelos para verificar imediatamente se a autenticação foi realizada.
Se a autenticação falhar, será retornado 401. Se a autenticação for bem-sucedida, mas os requisitos de permissão ou limite não forem atendidos, será retornado 403.
Emita a chave de API na tela de chaves de API do console. Nessa mesma tela, você pode gerenciar a revogação da chave e o escopo de uso.
Cabeçalho de autenticação
Ambas as especificações incluem a chave de API em um único cabeçalho da solicitação. Use um dos cabeçalhos, X-API-Key ou Authorization; o formato aceito varia conforme a especificação.
| Cabeçalho | Compatível com OpenAI | Compatível com Anthropic |
|---|---|---|
| X-API-Key: <키> | Aceito | Aceito |
| Authorization: Bearer <키> | Aceito | Aceito |
| Authorization: <키> (sem Bearer) | Rejeitado | Aceito |
Ao usar o cabeçalho Authorization na rota compatível com OpenAI, é necessário o prefixo Bearer. Se você enviar apenas a chave, sem o prefixo, o gateway rejeitará a solicitação.
Os nomes dos cabeçalhos não diferenciam maiúsculas de minúsculas, portanto o cabeçalho x-api-key enviado pelo SDK da Anthropic também funciona normalmente. Se ambos os cabeçalhos forem especificados, o valor de X-API-Key terá prioridade.
base URL
Os SDKs usados anteriormente podem continuar sendo utilizados simplesmente alterando a base URL para um dos endereços abaixo. Os dois endereços diferem quanto à inclusão de /v1; especifique exatamente o endereço correspondente à especificação.
| Especificação | base URL | Regra de caminho |
|---|---|---|
| Compatível com OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Inclua /v1 na base URL. |
| Compatível com Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | A Anthropic SDK adiciona /v1 diretamente ao caminho da solicitação, portanto a URL termina antes de /v1. |
Verificar a autenticação
Depois de configurar a chave e a URL base, você pode verificar se a autenticação está funcionando consultando a lista de modelos. Os exemplos abaixo executam a mesma consulta com curl, OpenAI SDK e Anthropic SDK. Substitua sk-... pela chave emitida na tela da chave de API.
Ao fazer a consulta com curl, especifique o caminho completo até /v1/models em ambos os padrões. O primeiro comando usa o cabeçalho X-API-Key no caminho compatível com OpenAI, e o segundo usa o cabeçalho Authorization no caminho compatível com 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"No OpenAI SDK, especifique um endereço que inclua /v1 em base_url.
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)No Anthropic SDK, especifique uma base_url que termine antes de /v1.
Para a autenticação, use o cabeçalho x-api-key enviado pelo SDK sem alterações.
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)Se a resposta de qualquer exemplo for 200, a autenticação foi bem-sucedida, e data da resposta conterá a lista de modelos que podem ser chamados com essa chave. Se receber 401, verifique a causa seguindo a ordem da próxima seção.
Falha na autenticação
Se você enviar uma chave ausente, expirada ou revogada, será retornado 401. Ao fazer uma chamada sem chave pelo caminho compatível com OpenAI, o corpo abaixo será retornado; no caminho compatível com Anthropic, error.type será authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Se receber 401, verifique os itens na ordem a seguir.
- Verifique o status da chave na tela da chave de API. Se ela estiver expirada ou revogada, emita uma nova.
- Verifique se o nome do cabeçalho é X-API-Key ou Authorization.
- Se estiver usando o cabeçalho Authorization no caminho compatível com OpenAI, verifique se ele contém o prefixo Bearer.
Depois de fazer as correções, execute novamente a consulta da lista de modelos na seção de verificação da autenticação e confirme se a resposta é 200.
Cabeçalhos usados em conjunto
Todos os cabeçalhos a seguir são opcionais. Recomendamos especificar X-Request-Id para facilitar o rastreamento de problemas.
| Cabeçalho | Finalidade | Se omitido |
|---|---|---|
| X-Request-Id | Identificador para rastreamento da solicitação. A rota compatível com Anthropic retorna o mesmo valor no cabeçalho request-id da resposta. | Emitido pelo servidor. |
| X-Region-Code | Especifica a região de chamada. | É global. |
| X-Product-Sku (também pode ser especificado com o parâmetro de consulta product_sku) | Especifica diretamente o Product SKU usado para cobrança. O cabeçalho tem prioridade sobre o parâmetro de consulta e é usado principalmente nas rotas de voz e áudio. | Não pode ser omitido nas rotas de voz. audio/speech e audio/transcriptions selecionam o Product por meio de model no corpo da solicitação. |
| anthropic-version / anthropic-beta | É encaminhado como está nas rotas compatíveis com Anthropic. | A versão é 2023-06-01. |
Se os erros 5xx se repetirem, informe-nos pela Central de Ajuda e pelo formulário de contato, incluindo o X-Request-Id. Se você tiver especificado o valor diretamente, será possível compará-lo imediatamente com os registros do cliente.