Назад до блогу

Початок роботиПосібник

Перший запит із Google Colab: зберігайте ключ API в Secrets

Надішліть свій перший chat completion із блокнота Colab із ключем, збереженим у Colab Secrets, а потім прочитайте відповідь і використання токенів.

Автор: CheapTokens TeamОпубліковано 4 хв читання

Комірка блокнота Google Colab читає ключ із Colab Secrets і викликає API CheapTokens
На цій сторінці
  1. Що вам потрібно
  2. Розмістіть ключ у Colab Secrets
  3. Виконайте перший запит
  4. Скільки коштує запит
  5. Коли комірка не працює
  6. Поширення та ротація

Ви можете виконати свій перший запит у блокноті Colab, нічого не встановлюючи на комп'ютер. Збережіть ключ у Colab Secrets, прочитайте його за допомогою userdata.get(...), налаштуйте пакет openai на https://api.cheaptokens.dev/v1 та виведіть choices[0].message.content і usage. Ключ ніколи не зберігається в комірці, тож поширення блокнота не поширює ваш ключ.

Саме останнє і є причиною цим займатися. Уявіть, що ви завершили блокнот і надіслали посилання однокурснику. Якщо ключ вставлено в комірку, тепер він є і в них. Якщо він зберігається в Secrets, вони отримують код і більше нічого.

Цей посібник розвиває перший запит із звичайним requests. Тут єдине нове — це те, де зберігається ключ і як блокнот його читає. Для тієї ж ідеї на ноутбуці дивіться зберігання ключа у змінній середовища.

Що вам потрібно#

  • Обліковий запис Google і новий блокнот на colab.research.google.com.
  • Ключ API CheapTokens і поповнений баланс. Ключі та баланс — у вашому обліковому записі; документація показує точні кроки.
  • П'ять хвилин.

API сумісний з OpenAI Chat Completions, тому стандартний Python-пакет openai працює з іншим base_url. README openai-python (перевірено 5 листопада 2026 року) вказує Python 3.10 або вище та pip install openai.

Розмістіть ключ у Colab Secrets#

У лівій бічній панелі блокнота є значок ключа, який відкриває панель Secrets. Додайте новий секрет, назвіть його CHEAPTOKENS_KEY, вставте свій ключ як значення та увімкніть доступ для блокнота, у якому працюєте. Формулювання кнопок може змінюватися, тому шукайте значок ключа, а не шлях у меню.

Виберіть назву зараз: це рядок, який ви передасте в код. Неправильна назва — легка помилка, і розділ про помилки показує, як це виглядає.

До і після: ключ, вставлений у комірку, проти userdata.get
Ліворуч: ключ лежить у комірці й подорожує разом із блокнотом. Праворуч: комірка лише називає секрет.

Виконайте перший запит#

Colab читає секрети за допомогою google.colab.userdata.get(name), функції з модуля colabtools від Google (рядки документації перевірено 5 листопада 2026 року). Встановіть SDK, прочитайте секрет, надішліть один запит.

Крок за кроком

Ваш перший запит у трьох комірках

Встановіть пакет

Виконайте це в першій комірці. Прапорець -q робить вивід коротким, і це працює незалежно від того, чи пакет уже є в середовищі виконання.

python
!pip install -q openai

Прочитайте ключ і створіть клієнт

Ключ надходить із Secrets. Тут нічого не вставлено.

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

Надішліть один запит і виведіть результат

Використовуйте повний ідентифікатор моделі з префіксом розробника. Скорочені ідентифікатори не приймаються.

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)

Перший print показує відповідь моделі. Другий виводить два числа: токени, які ви надіслали, і токени, які написала модель. Це весь рахунок за запит, тому ми виводимо його щоразу.

Скільки коштує запит#

Ви платите за токени, тому дивіться на другий рядок виводу. Скажімо, коротке запитання, як наведене вище, використовує близько 40 токенів на вході, а відповідь — 150 токенів на виході. Цей запит коштує $0.000016 за поточною ціною, а тисяча таких коштує $0.0156. Замініть 40 і 150 на два числа, які вивев ваш блокнот.

DeepSeek-V4-Flash тут за замовчуванням недарма: контекст 380K, до 32 768 вихідних токенів на відповідь і одна ціна в будь-який час доби, без пікових годин. Один баланс покриває всі моделі, тож ви можете змінити модель у цій комірці, не змінюючи нічого іншого. Спробуйте zai-org/GLM-5.3-Flash (контекст 390K, до 8 192 вихідних токенів) і виконайте комірку знову. Дивіться усі моделі та ціни для повного списку.

Спробуйте саміСпробуйте: що таке resp.choices[0].finish_reason?Показати відповідь

Додайте print(resp.choices[0].finish_reason) під іншими виводами. Якщо відповідь завершилася природно, ви побачите stop. Встановіть max_tokens=5 і виконайте знову: відповідь обірвана, і ви побачите length, що означає, що її зупинив ліміт, а не модель.

Коли комірка не працює#

Помилки з боку секретів з'являються першими, ще до того, як будь-який запит залишить Colab. Вихідний код colabtools (перевірено 5 листопада 2026 року) каже, що userdata.get може викликати три помилки.

Помилка Colab: SecretNotFoundError
SecretNotFoundError означає, що назва в коді не збігається з жодним секретом.
  • SecretNotFoundError: немає секрету з такою назвою. Порівняйте рядок у userdata.get('...') з назвою на панелі Secrets, літера за літерою. Регістр має значення.
  • NotebookAccessError: секрет існує, але цей блокнот не має до нього доступу. Увімкніть перемикач доступу на панелі Secrets і повторно виконайте комірку.
  • TimeoutException: Colab не відповів на запит секрету. Повідомлення про помилку каже, що секрети можна отримувати лише тоді, коли код виконується з інтерфейсу Colab, тому виконуйте комірку в самому блокноті Colab, а не в експортованому скрипті.

Якщо секрет завантажується, а запит усе одно не вдається, проблема на боці API. 401 означає, що ключ неправильний або відсутній; 404 зазвичай вказує на неправильну базову URL-адресу або ідентифікатор моделі. API 401 або 404: ключ, базова URL-адреса, ідентифікатор моделі розбирає обидва випадки, а перелік моделей за допомогою GET /v1/models показує, як скопіювати точний ідентифікатор.

Поширення та ротація#

Поділіться блокнотом — і код, що викликає userdata.get, піде разом із ним; ключа немає в жодній комірці чи виводі, тож нічого не витече. Той, хто відкриє блокнот, потребує власного секрету з тією ж назвою, інакше отримає SecretNotFoundError (дивіться вище).

Якщо ви створите новий ключ, оновіть значення на панелі Secrets; код залишається тим самим, бо він лише називає секрет.

Одна звичка все ще важлива: ніколи не виводьте ключ. Комірка на кшталт print(userdata.get('CHEAPTOKENS_KEY')) поміщає його у вивід, а виводи зберігаються разом із блокнотом.

Швидка перевірка

Де має зберігатися ключ API у спільному блокноті Colab?

Показати відповідь

Відповідь: У Colab Secrets, читається за допомогою userdata.get

Комірка та її вивід зберігаються разом із блокнотом і поширюються з ним; код лише називає секрет.

Наступний крок: помістіть відповідь у цикл, чат або невеликий інструмент. Документація охоплює решту API.