Retour au blog

Premiers pasGuide

Première requête depuis Google Colab : garder la clé API dans Secrets

Envoyez votre première complétion de chat depuis un notebook Colab avec la clé stockée dans Colab Secrets, puis lisez la réponse et l'utilisation des tokens.

Par CheapTokens TeamPublié le 5 min de lecture

Cellule de notebook Google Colab lisant la clé depuis Colab Secrets et appelant l'API CheapTokens
Sur cette page
  1. Ce dont vous avez besoin
  2. Placer la clé dans Colab Secrets
  3. Exécuter la première requête
  4. Combien coûte la requête
  5. Quand une cellule échoue
  6. Partage et rotation

Vous pouvez exécuter votre première requête dans un notebook Colab sans rien installer sur votre ordinateur. Enregistrez la clé dans Colab Secrets, lisez-la avec userdata.get(...), pointez le package openai vers https://api.cheaptokens.dev/v1, et affichez choices[0].message.content et usage. La clé ne réside jamais dans une cellule, donc partager le notebook ne partage pas votre clé.

C'est précisément pour cette raison que ça vaut la peine. Imaginez que vous terminiez le notebook et envoyiez le lien à un camarade. Si la clé est collée dans une cellule, il l'a désormais. Si elle réside dans Secrets, il obtient le code et rien d'autre.

Ce guide s'appuie sur la première requête avec requests simple. Ici, la seule nouveauté est l'endroit où réside la clé et la façon dont un notebook la lit. Pour la même idée sur un ordinateur portable, voir stocker une clé dans une variable d'environnement.

Ce dont vous avez besoin#

  • Un compte Google et un nouveau notebook sur colab.research.google.com.
  • Une clé API CheapTokens et un solde rechargé. Les clés et le solde se trouvent dans votre compte ; la documentation montre les étapes exactes.
  • Cinq minutes.

L'API est compatible avec OpenAI Chat Completions, donc le package Python openai standard fonctionne avec un base_url différent. Le README d'openai-python (vérifié le 5 novembre 2026) indique Python 3.10 ou supérieur et pip install openai.

Placer la clé dans Colab Secrets#

Dans la barre latérale gauche du notebook se trouve une icône de clé, qui ouvre le panneau Secrets. Ajoutez un nouveau secret, nommez-le CHEAPTOKENS_KEY, collez votre clé comme valeur, et activez l'accès au notebook pour le notebook sur lequel vous travaillez. Le libellé des boutons peut changer, donc cherchez l'icône de clé plutôt qu'un chemin de menu.

Choisissez le nom que vous voulez dès maintenant : c'est la chaîne que vous passerez au code. Un nom erroné est une erreur facile à commettre, et la section sur les erreurs montre à quoi cela ressemble.

Avant et après : une clé collée dans la cellule versus userdata.get
À gauche : la clé réside dans la cellule et voyage avec le notebook. À droite : la cellule ne fait que nommer le secret.

Exécuter la première requête#

Colab lit les secrets avec google.colab.userdata.get(name), une fonction du module colabtools de Google (docstrings vérifiées le 5 novembre 2026). Installez le SDK, lisez le secret, envoyez une requête.

Étape par étape

Votre première requête en trois cellules

Installer le package

Exécutez ceci dans la première cellule. L'option -q garde la sortie courte, et cela fonctionne que le package soit déjà présent ou non dans l'environnement d'exécution.

python
!pip install -q openai

Lire la clé et créer le client

La clé provient de Secrets. Rien n'est collé ici.

python
from google.colab import userdata
from openai import OpenAI

client = OpenAI(
    api_key=userdata.get('CHEAPTOKENS_KEY'),
    base_url='https://api.cheaptokens.dev/v1',
)

Envoyer une requête et afficher le résultat

Utilisez l'identifiant complet du modèle avec le préfixe développeur. Les identifiants courts ne sont pas acceptés.

python
resp = client.chat.completions.create(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    messages=[{'role': 'user', 'content': 'Explain a token in one sentence.'}],
    max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

Le premier print affiche la réponse du modèle. Le second affiche deux nombres : les tokens envoyés et les tokens écrits par le modèle. C'est la facture complète de la requête, c'est pourquoi nous l'affichons à chaque fois.

Combien coûte la requête#

Les tokens sont ce que vous payez, alors regardez la deuxième ligne de sortie. Disons qu'une question courte comme celle ci-dessus utilise environ 40 tokens en entrée et que la réponse fait 150 tokens en sortie. Cette requête coûte $0.000016 au prix actuel, et mille d'entre elles coûtent $0.0156. Remplacez 40 et 150 par les deux nombres affichés par votre notebook.

DeepSeek-V4-Flash est le modèle par défaut ici pour une raison : 380K de contexte, jusqu'à 32 768 tokens de sortie par réponse, et un prix unique à toute heure, sans heures de pointe. Un seul solde couvre tous les modèles, vous pouvez donc changer de modèle dans cette cellule sans rien modifier d'autre. Essayez zai-org/GLM-5.3-Flash (390K de contexte, jusqu'à 8 192 tokens de sortie) et relancez la cellule. Voir tous les modèles et prix pour la liste complète.

Essayez vous-mêmeEssayez : combien font resp.choices[0].finish_reason ?Afficher la réponse

Ajoutez print(resp.choices[0].finish_reason) sous les autres affichages. Si la réponse s'est terminée naturellement, vous voyez stop. Définissez max_tokens=5 et relancez : la réponse est tronquée et vous voyez length, ce qui signifie que c'est la limite qui l'a arrêtée, pas le modèle.

Quand une cellule échoue#

Les erreurs du côté des secrets arrivent en premier, avant qu'aucune requête ne quitte Colab. Le code source de colabtools (vérifié le 5 novembre 2026) indique que userdata.get peut lever trois erreurs.

Erreur Colab : SecretNotFoundError
SecretNotFoundError signifie que le nom dans le code ne correspond à aucun secret.
  • SecretNotFoundError : il n'existe aucun secret portant ce nom. Comparez la chaîne dans userdata.get('...') avec le nom dans le panneau Secrets, lettre par lettre. La casse compte.
  • NotebookAccessError : le secret existe, mais ce notebook n'y a pas accès. Activez le bouton d'accès dans le panneau Secrets et relancez la cellule.
  • TimeoutException : Colab n'a pas répondu à la demande du secret. Le message d'erreur indique que les secrets ne peuvent être récupérés que lorsque le code s'exécute depuis l'interface Colab, donc exécutez la cellule dans le notebook Colab lui-même, pas dans un script exporté.

Si le secret se charge et que la requête échoue quand même, le problème vient du côté de l'API. Un 401 signifie que la clé est erronée ou manquante ; un 404 pointe généralement vers une URL de base ou un identifiant de modèle erroné. API 401 ou 404 : clé, URL de base, identifiant de modèle traite les deux cas, et lister les modèles avec GET /v1/models montre comment copier l'identifiant exact.

Partage et rotation#

Partagez le notebook et le code qui appelle userdata.get suit ; la clé n'est dans aucune cellule ni sortie, il n'y a donc rien à divulguer. Quiconque ouvre le notebook a besoin de son propre secret portant le même nom, sinon il obtient SecretNotFoundError (voir ci-dessus).

Si vous créez une nouvelle clé, mettez à jour la valeur dans le panneau Secrets ; le code reste identique car il ne fait que nommer le secret.

Une habitude compte toujours : n'affichez jamais la clé. Une cellule comme print(userdata.get('CHEAPTOKENS_KEY')) la place dans la sortie, et les sorties sont enregistrées avec le notebook.

Vérification rapide

Où la clé API doit-elle résider dans un notebook Colab partagé ?

Afficher la réponse

Réponse: Dans Colab Secrets, lue avec userdata.get

Une cellule et sa sortie sont enregistrées avec le notebook et partagées avec lui ; le code ne fait que nommer le secret.

Étape suivante : intégrez la réponse dans une boucle, un chat ou un petit outil. La documentation couvre le reste de l'API.