Developer guide
Autenticação com chave de API
O cabeçalho que contém a chave de API e a base URL a ser configurada no SDK
O gateway da CLEVI autentica as rotas compatíveis com OpenAI e 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. O formato de cabeçalho permitido e a base URL diferem 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 aprovada, mas as condições de permissão ou limite não forem atendidas, 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
Em ambas as especificações, a chave de API é incluída em um único cabeçalho da solicitação. Use o cabeçalho X-API-Key ou Authorization; o formato permitido 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 em uma rota compatível com OpenAI, o prefixo Bearer é obrigatório. 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 que você já usava continuarão funcionando se você alterar apenas a base URL para um dos endereços abaixo. Como 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 | Como o SDK da Anthropic adiciona /v1 diretamente ao caminho da solicitação, a base URL termina antes de /v1. |
Verificação da autenticação
Depois de configurar a chave e a base URL, consulte a lista de modelos para verificar se a autenticação está funcionando. Os exemplos abaixo executam a mesma consulta com curl, OpenAI SDK e Anthropic SDK. Substitua sk-... pela chave emitida na tela de chaves de API.
Ao consultar com curl, especifique o caminho completo até /v1/models em ambos os formatos. 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 no base_url o endereço que inclui /v1.
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 no base_url um endereço 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 for 200 em qualquer exemplo, a autenticação foi bem-sucedida, e o 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 no 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 na seguinte ordem.
- Verifique o status da chave na tela de chaves de API. Se a chave 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 da chamada. | É global. |
| X-Product-Sku (também pode ser especificado 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 nas rotas de voz e voice. | Não pode ser omitido nas rotas de voz. audio/speech e audio/transcriptions selecionam o Product usando model no corpo da solicitação. |
| anthropic-version / anthropic-beta | É encaminhado sem alterações nas rotas compatíveis com Anthropic. | A versão é 2023-06-01. |
Se os erros 5xx se repetirem, informe-nos pela ajuda e pelo contato, juntamente com o X-Request-Id. Se o valor tiver sido especificado diretamente, será possível compará-lo imediatamente com os registros do cliente.