Developer guide
Autenticarse con una clave de API
El encabezado que contiene la clave de API y la base URL que se configurará en el SDK
La puerta de enlace de CLEVI autentica las rutas compatibles con OpenAI y las rutas compatibles con Anthropic con una sola clave de API.
En el cliente, solo es necesario configurar dos valores: el encabezado de autenticación que contiene la clave y la base URL del SDK. El formato de encabezado y la base URL permitidos difieren según la especificación.
Después de completar la configuración, puede comprobar inmediatamente si la autenticación funciona consultando la lista de modelos.
Si la autenticación falla, se devuelve un 401; si, después de autenticarse, no se cumplen las condiciones de permisos o límites, se devuelve un 403.
Emita la clave de API desde la pantalla de claves de API de la consola. En la misma pantalla puede gestionar la revocación de la clave y su ámbito de uso.
Encabezado de autenticación
Ambas especificaciones incluyen la clave de API en un único encabezado de solicitud. Puede utilizar el encabezado X-API-Key o el encabezado Authorization, y el formato permitido depende de la especificación.
| Encabezado | Compatible con OpenAI | Compatible con Anthropic |
|---|---|---|
| X-API-Key: <키> | Disponible | Disponible |
| Authorization: Bearer <키> | Disponible | Disponible |
| Authorization: <키> (sin Bearer) | Rechazado | Disponible |
En las rutas compatibles con OpenAI, se requiere el prefijo Bearer al utilizar el encabezado Authorization. Si se envía solo la clave sin el prefijo, la puerta de enlace rechazará la solicitud.
Los nombres de los encabezados no distinguen entre mayúsculas y minúsculas, por lo que el encabezado x-api-key enviado por el SDK de Anthropic también funciona tal cual. Si se especifican ambos encabezados, se aplica primero el valor de X-API-Key.
base URL
Los SDK que ya utilizaba pueden seguir usándose tal cual cambiando únicamente la base URL por una de las siguientes direcciones. Las dos direcciones se diferencian en si incluyen /v1, por lo que debe especificar la dirección correspondiente a la especificación tal cual.
| Especificación | base URL | Regla de ruta |
|---|---|---|
| Compatible con OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Incluya /v1 en la base URL. |
| Compatible con Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | El SDK de Anthropic añade directamente /v1 a la ruta de solicitud, por lo que la base URL termina antes de /v1. |
Comprobar la autenticación
Después de configurar la clave y la URL base, puede comprobar si la autenticación funciona consultando la lista de modelos. Los ejemplos siguientes ejecutan la misma consulta con curl, el SDK de OpenAI y el SDK de Anthropic. Sustituya sk-... por la clave emitida en la pantalla de claves de API.
Al realizar la consulta con curl, especifique la ruta completa hasta /v1/models en ambos formatos. El primer comando utiliza el encabezado X-API-Key en la ruta compatible con OpenAI, y el segundo utiliza el encabezado Authorization en la ruta compatible con 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"En el SDK de OpenAI, especifique una dirección que incluya /v1 en 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)En el SDK de Anthropic, especifique una dirección para base_url que termine antes de /v1.
Para la autenticación, use tal cual el encabezado x-api-key que envía el SDK.
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)Si la respuesta de cualquier ejemplo es 200, la autenticación se ha realizado correctamente y data de la respuesta contiene la lista de modelos que se pueden invocar con esta clave. Si recibe 401, compruebe la causa siguiendo el orden de la sección siguiente.
Error de autenticación
Si envía una clave inexistente, caducada o revocada, se devuelve 401. Si realiza una llamada sin clave en la ruta compatible con OpenAI, se devuelve el cuerpo siguiente; en la ruta compatible con Anthropic, error.type es authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Si recibe 401, compruebe lo siguiente en este orden.
- Compruebe el estado de la clave en la pantalla de claves de API. Si ha caducado o ha sido revocada, emita una nueva.
- Compruebe que el nombre del encabezado sea X-API-Key o Authorization.
- Si utiliza el encabezado Authorization en la ruta compatible con OpenAI, compruebe que incluya el prefijo Bearer.
Después de realizar las correcciones, vuelva a ejecutar la consulta de la lista de modelos de la sección Comprobar la autenticación y confirme que recibe 200.
Encabezados de uso conjunto
Todos los encabezados siguientes son opcionales. Recomendamos especificar X-Request-Id para poder rastrear los problemas.
| Encabezado | Uso | Si se omite |
|---|---|---|
| X-Request-Id | Es el identificador para el seguimiento de la solicitud. La ruta compatible con Anthropic devuelve el mismo valor en el encabezado request-id de la respuesta. | Lo emite el servidor. |
| X-Region-Code | Especifica la región de la llamada. | Es global. |
| X-Product-Sku (también se puede especificar mediante la consulta product_sku) | Especifica directamente el Product SKU que se utilizará para la facturación. El encabezado tiene prioridad sobre la consulta y se utiliza principalmente en las rutas de voz. | No se puede omitir en las rutas de voz. audio/speech y audio/transcriptions seleccionan el Product mediante model en el cuerpo de la solicitud. |
| anthropic-version / anthropic-beta | Se transmite tal cual en la ruta compatible con Anthropic. | La versión es 2023-06-01. |
Si los errores 5xx se repiten, infórmenos a través de la ayuda y contacto, junto con X-Request-Id. Si se trata de un valor especificado directamente, podrá contrastarse de inmediato con los registros del cliente.