Volver al blog

Primeros pasosGuía

Primera solicitud desde Google Colab: guarda la clave de API en Secrets

Envía tu primera finalización de chat desde un cuaderno de Colab con la clave guardada en Colab Secrets y luego lee la respuesta y el uso de tokens.

Por CheapTokens TeamPublicado el 6 min de lectura

Celda de un cuaderno de Google Colab que lee la clave de Colab Secrets y llama a la API de CheapTokens
En esta página
  1. Lo que necesitas
  2. Pon la clave en Colab Secrets
  3. Ejecuta la primera solicitud
  4. Cuánto cuesta la solicitud
  5. Cuando falla una celda
  6. Compartir y rotar

Puedes ejecutar tu primera solicitud en un cuaderno de Colab sin instalar nada en tu ordenador. Guarda la clave en Colab Secrets, léela con userdata.get(...), apunta el paquete openai a https://api.cheaptokens.dev/v1 e imprime choices[0].message.content y usage. La clave nunca está en una celda, así que compartir el cuaderno no comparte tu clave.

Esa última parte es la razón para tomarte la molestia. Supón que terminas el cuaderno y envías el enlace a un compañero de clase. Si la clave está pegada en una celda, ahora la tiene él. Si vive en Secrets, recibe el código y nada más.

Esta guía se basa en la primera solicitud con requests simple. Aquí lo único nuevo es dónde vive la clave y cómo la lee un cuaderno. Para la misma idea en un portátil, consulta guardar una clave en una variable de entorno.

Lo que necesitas#

  • Una cuenta de Google y un cuaderno nuevo en colab.research.google.com.
  • Una clave de API de CheapTokens y un saldo recargado. Las claves y el saldo están en tu cuenta; la documentación muestra los pasos exactos.
  • Cinco minutos.

La API es compatible con OpenAI Chat Completions, así que el paquete estándar de Python openai funciona con un base_url distinto. El README de openai-python (consultado el 5 de noviembre de 2026) indica Python 3.10 o superior y pip install openai.

Pon la clave en Colab Secrets#

En la barra lateral izquierda del cuaderno hay un icono de llave, que abre el panel de Secrets. Añade un secreto nuevo, llámalo CHEAPTOKENS_KEY, pega tu clave como valor y activa el acceso al cuaderno para el cuaderno en el que estás trabajando. El texto de los botones puede cambiar, así que busca el icono de llave en lugar de una ruta de menú.

Elige ahora el nombre que quieras: es la cadena que pasarás al código. Un nombre incorrecto es un error fácil de cometer, y la sección de errores muestra cómo se ve.

Antes y después: una clave pegada en la celda frente a userdata.get
Izquierda: la clave está en la celda y viaja con el cuaderno. Derecha: la celda solo nombra el secreto.

Ejecuta la primera solicitud#

Colab lee los secretos con google.colab.userdata.get(name), una función del módulo colabtools de Google (docstrings consultados el 5 de noviembre de 2026). Instala el SDK, lee el secreto, envía una solicitud.

Paso a paso

Tu primera solicitud en tres celdas

Instala el paquete

Ejecuta esto en la primera celda. El indicador -q mantiene la salida corta, y funciona tanto si el paquete ya está en el entorno de ejecución como si no.

python
!pip install -q openai

Lee la clave y crea el cliente

La clave viene de Secrets. Aquí no se pega nada.

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',
)

Envía una solicitud e imprime el resultado

Usa el id de modelo completo con el prefijo del desarrollador. Los ids cortos no se aceptan.

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)

El primer print muestra la respuesta del modelo. El segundo imprime dos números: los tokens que enviaste y los tokens que escribió el modelo. Esa es toda la factura de la solicitud, por eso la imprimimos cada vez.

Cuánto cuesta la solicitud#

Los tokens son lo que pagas, así que fíjate en la segunda línea de la salida. Supón que una pregunta corta como la anterior usa unos 40 tokens de entrada y la respuesta son 150 tokens de salida. Esa solicitud cuesta $0.000016 al precio actual, y mil de ellas cuestan $0.0156. Sustituye 40 y 150 por los dos números que imprimió tu cuaderno.

DeepSeek-V4-Flash es el predeterminado aquí por una razón: contexto de 380K, hasta 32.768 tokens de salida por respuesta y un único precio a cualquier hora del día, sin horas punta. Un saldo cubre todos los modelos, así que puedes cambiar el modelo en esta celda sin cambiar nada más. Prueba zai-org/GLM-5.3-Flash (contexto de 390K, hasta 8.192 tokens de salida) y vuelve a ejecutar la celda. Consulta todos los modelos y precios para ver la lista completa.

Pruébalo tú mismoPruébalo: ¿cuánto es resp.choices[0].finish_reason?Mostrar respuesta

Añade print(resp.choices[0].finish_reason) debajo de los otros prints. Si la respuesta terminó de forma natural verás stop. Establece max_tokens=5 y vuelve a ejecutar: la respuesta se corta y ves length, lo que significa que la detuvo el límite, no el modelo.

Cuando falla una celda#

Los errores del lado de los secretos llegan primero, antes de que ninguna solicitud salga de Colab. El código fuente de colabtools (consultado el 5 de noviembre de 2026) indica que userdata.get puede lanzar tres errores.

Error de Colab: SecretNotFoundError
SecretNotFoundError significa que el nombre del código no coincide con ningún secreto.
  • SecretNotFoundError: no hay ningún secreto con ese nombre. Compara la cadena de userdata.get('...') con el nombre del panel de Secrets, letra por letra. Distingue mayúsculas y minúsculas.
  • NotebookAccessError: el secreto existe, pero este cuaderno no tiene acceso a él. Activa el interruptor de acceso en el panel de Secrets y vuelve a ejecutar la celda.
  • TimeoutException: Colab no respondió a la solicitud del secreto. El mensaje de error dice que los secretos solo se pueden obtener cuando el código se ejecuta desde la interfaz de Colab, así que ejecuta la celda en el propio cuaderno de Colab, no en un script exportado.

Si el secreto se carga y la solicitud sigue fallando, el problema está en el lado de la API. Un 401 significa que la clave es incorrecta o falta; un 404 suele indicar una URL base o un id de modelo incorrectos. API 401 o 404: clave, URL base, id de modelo repasa ambos casos, y listar modelos con GET /v1/models muestra cómo copiar el id exacto.

Compartir y rotar#

Comparte el cuaderno y el código que llama a userdata.get va con él; la clave no está en ninguna celda ni salida, así que no hay nada que filtrar. Quien abra el cuaderno necesita su propio secreto con el mismo nombre; de lo contrario obtendrá SecretNotFoundError (ver arriba).

Si creas una clave nueva, actualiza el valor en el panel de Secrets; el código sigue igual porque solo nombra el secreto.

Un hábito sigue importando: nunca imprimas la clave. Una celda como print(userdata.get('CHEAPTOKENS_KEY')) la pone en la salida, y las salidas se guardan con el cuaderno.

Verificación rápida

¿Dónde debería estar la clave de API en un cuaderno de Colab compartido?

Mostrar respuesta

Respuesta: En Colab Secrets, leída con userdata.get

Una celda y su salida se guardan con el cuaderno y se comparten con él; el código solo nombra el secreto.

Siguiente paso: pon la respuesta en un bucle, un chat o una pequeña herramienta. La documentación cubre el resto de la API.