Developer guide

S’authentifier avec une clé API

En-tête contenant la clé API et base URL à configurer dans le SDK

La passerelle CLEVI authentifie les chemins compatibles avec OpenAI et les chemins compatibles avec Anthropic avec une seule clé API.
Les deux valeurs à configurer dans le client sont l’en-tête d’authentification contenant la clé et le base URL du SDK. Les formats d’en-tête et le base URL autorisés diffèrent selon la spécification.
Après avoir terminé la configuration, vous pouvez vérifier immédiatement l’authentification en récupérant la liste des modèles.
Une erreur d’authentification renvoie 401. Si l’authentification réussit, mais que les conditions d’autorisation ou de limite ne sont pas respectées, la réponse est 403.

Obtenez une clé API à partir de l’écran des clés API de la console. Vous pouvez également y gérer la révocation de la clé et sa portée d’utilisation.

En-tête d’authentification

Les deux spécifications placent la clé API dans un seul en-tête de requête. Utilisez l’en-tête X-API-Key ou l’en-tête Authorization; le format autorisé varie selon la spécification.

En-têteCompatible avec OpenAICompatible avec Anthropic
X-API-Key: <clé>AutoriséAutorisé
Authorization: Bearer <clé>AutoriséAutorisé
Authorization: <clé> (sans Bearer)RejetéAutorisé

Lorsque vous utilisez l’en-tête Authorization avec un chemin compatible avec OpenAI, le préfixe Bearer est requis. Si vous envoyez uniquement la clé sans le préfixe, la passerelle rejette la requête.

Les noms d’en-tête ne sont pas sensibles à la casse; l’en-tête x-api-key envoyé par le SDK Anthropic fonctionne donc également tel quel. Si les deux en-têtes sont spécifiés, la valeur de X-API-Key est prioritaire.

base URL

Les SDK que vous utilisez déjà peuvent continuer à être utilisés tels quels en remplaçant uniquement le base URL par l’adresse ci-dessous. Les deux adresses diffèrent quant à l’inclusion de /v1; spécifiez l’adresse correspondant à la spécification telle quelle.

Spécificationbase URLRègle de chemin
Compatible avec OpenAIhttps://platform.clevi.net/api/v2/aiservice/openai/v1Incluez /v1 jusqu’à la fin dans le base URL.
Compatible avec Anthropichttps://platform.clevi.net/api/v2/aiservice/anthropicLe SDK Anthropic ajoute directement /v1 au chemin de la requête; le base URL se termine donc avant /v1.

Vérifier l’authentification

Après avoir configuré la clé et l’URL de base, vous pouvez vérifier l’authentification en récupérant la liste des modèles. Les exemples ci-dessous exécutent la même requête avec curl, l’OpenAI SDK et l’Anthropic SDK. Remplacez sk-... par la clé générée dans l’écran des clés API.

Pour effectuer la requête avec curl, spécifiez le chemin complet jusqu’à /v1/models dans les deux formats. La première commande utilise l’en-tête X-API-Key pour le chemin compatible avec OpenAI, tandis que la deuxième utilise l’en-tête Authorization pour le chemin compatible avec 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"

Avec l’OpenAI SDK, spécifiez une adresse qui inclut /v1 dans 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)

Avec l’Anthropic SDK, spécifiez une adresse qui se termine avant /v1 dans base_url.
Pour l’authentification, utilisez tel quel l’en-tête x-api-key envoyé par le 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 réponse est 200 dans n’importe quel exemple, l’authentification a réussi et la propriété data de la réponse contient la liste des modèles que vous pouvez appeler avec cette clé. Si vous recevez 401, vérifiez la cause en suivant l’ordre indiqué dans la section suivante.

Échec de l’authentification

Si vous envoyez une clé absente, expirée ou révoquée, une réponse 401 est renvoyée. Si vous effectuez un appel sans clé sur le chemin compatible avec OpenAI, le corps ci-dessous est renvoyé; sur le chemin compatible avec Anthropic, error.type vaut authentication_error.

{
  "error": {
    "message": "API key is required.",
    "type": "invalid_request_error"
  }
}

Si vous recevez 401, effectuez les vérifications dans l’ordre suivant.

  1. Vérifiez l’état de la clé dans l’écran des clés API. Si elle est expirée ou révoquée, générez-en une nouvelle.
  2. Vérifiez que le nom de l’en-tête est X-API-Key ou Authorization.
  3. Si vous utilisez l’en-tête Authorization sur le chemin compatible avec OpenAI, vérifiez qu’il comporte le préfixe Bearer.

Après avoir effectué les corrections, relancez la récupération de la liste des modèles dans la section Vérification de l’authentification et vérifiez que la réponse est 200.

En-têtes utilisés conjointement

Tous les en-têtes suivants sont facultatifs. Nous vous recommandons de définir X-Request-Id afin de faciliter le suivi des problèmes.

En-têteUtilisationSi omis
X-Request-IdIdentifiant de suivi de la requête. Le chemin compatible avec Anthropic renvoie la même valeur dans l’en-tête request-id de la réponse.Attribué par le serveur.
X-Region-CodeSpécifie la région d’appel.Il s’agit de global.
X-Product-Sku (peut également être spécifié avec le paramètre de requête product_sku)Spécifie directement le Product SKU à utiliser pour la facturation. L’en-tête a priorité sur le paramètre de requête et est principalement utilisé pour les chemins audio et vocaux.Ne peut pas être omis dans les chemins vocaux. audio/speech et audio/transcriptions sélectionnent le Product au moyen de model dans le corps de la requête.
anthropic-version / anthropic-betaTransmis tel quel dans le chemin compatible avec Anthropic.La version est 2023-06-01.

Si les erreurs 5xx se répètent, veuillez nous en informer dans l’aide et les demandes de renseignements, en indiquant X-Request-Id. Si la valeur a été spécifiée directement, elle peut être comparée immédiatement aux journaux du client.

Langue et région

Les langues traduites automatiquement sont traduites par clevi/cip-5.5-im et identifiées comme telles. Cela s’applique aux langues pour lesquelles un bundle de site a été publié.

137 langues

Recommandé

1

Asie orientale

7

Asie du Sud-Est

11

Asie du Sud

18

Asie centrale

5

Moyen-Orient et Caucase

10

Europe occidentale et Europe méridionale

17

Royaume-Uni et Irlande

4

Europe septentrionale

10

Europe centrale et Balkans

14

Europe orientale

5

Afrique orientale

8

Afrique occidentale et Afrique centrale

9

Afrique australe

8

Amériques

5

Océanie

5