Powrót do bloga

Pierwsze krokiPrzewodnik

Pierwsze zapytanie z Google Colab: trzymaj klucz API w Secrets

Wyślij pierwsze uzupełnienie czatu z notatnika Colab z kluczem przechowywanym w Colab Secrets, a następnie odczytaj odpowiedź i zużycie tokenów.

Autor: CheapTokens TeamOpublikowano 4 min czytania

Komórka notatnika Google Colab odczytująca klucz z Colab Secrets i wywołująca API CheapTokens
Na tej stronie
  1. Czego potrzebujesz
  2. Umieść klucz w Colab Secrets
  3. Uruchom pierwsze zapytanie
  4. Ile kosztuje zapytanie
  5. Gdy komórka zawiedzie
  6. Udostępnianie i rotacja

Możesz wykonać pierwsze zapytanie w notatniku Colab, nie instalując niczego na komputerze. Zapisz klucz w Colab Secrets, odczytaj go za pomocą userdata.get(...), skieruj pakiet openai na https://api.cheaptokens.dev/v1 i wypisz choices[0].message.content oraz usage. Klucz nigdy nie znajduje się w komórce, więc udostępnienie notatnika nie udostępnia Twojego klucza.

To ostatnie jest powodem, dla którego warto się tym zająć. Załóżmy, że kończysz notatnik i wysyłasz link koledze z klasy. Jeśli klucz jest wklejony do komórki, teraz go ma. Jeśli znajduje się w Secrets, dostaje kod i nic więcej.

Ten przewodnik opiera się na pierwszym zapytaniu ze zwykłym requests. Tutaj jedyną nowością jest to, gdzie znajduje się klucz i jak notatnik go odczytuje. Tę samą ideę na laptopie opisuje przechowywanie klucza w zmiennej środowiskowej.

Czego potrzebujesz#

  • Konta Google i nowego notatnika na colab.research.google.com.
  • Klucza API CheapTokens i doładowanego salda. Klucze i saldo są na Twoim koncie; dokumentacja pokazuje dokładne kroki.
  • Pięciu minut.

API jest zgodne z OpenAI Chat Completions, więc standardowy pakiet Pythona openai działa z innym base_url. README openai-python (sprawdzone 5 listopada 2026) wymienia Python 3.10 lub nowszy oraz pip install openai.

Umieść klucz w Colab Secrets#

Na lewym pasku bocznym notatnika znajduje się ikona klucza, która otwiera panel Secrets. Dodaj nowy sekret, nazwij go CHEAPTOKENS_KEY, wklej swój klucz jako wartość i włącz dostęp dla notatnika, w którym pracujesz. Brzmienie przycisków może się zmieniać, więc szukaj ikony klucza, a nie ścieżki w menu.

Wybierz nazwę teraz: to ciąg znaków, który przekażesz do kodu. Błędna nazwa to łatwy błąd, a sekcja błędów pokazuje, jak to wygląda.

Przed i po: klucz wklejony w komórce versus userdata.get
Po lewej: klucz znajduje się w komórce i podróżuje z notatnikiem. Po prawej: komórka tylko nazywa sekret.

Uruchom pierwsze zapytanie#

Colab odczytuje sekrety za pomocą google.colab.userdata.get(name), funkcji w module colabtools firmy Google (docstringi sprawdzone 5 listopada 2026). Zainstaluj SDK, odczytaj sekret, wyślij jedno zapytanie.

Krok po kroku

Twoje pierwsze zapytanie w trzech komórkach

Zainstaluj pakiet

Uruchom to w pierwszej komórce. Flaga -q skraca dane wyjściowe i działa niezależnie od tego, czy pakiet jest już w środowisku uruchomieniowym.

python
!pip install -q openai

Odczytaj klucz i utwórz klienta

Klucz pochodzi z Secrets. Nic nie jest tutaj wklejane.

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

Wyślij jedno zapytanie i wypisz wynik

Użyj pełnego identyfikatora modelu z prefiksem deweloperskim. Krótkie identyfikatory nie są akceptowane.

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)

Pierwszy print pokazuje odpowiedź modelu. Drugi wypisuje dwie liczby: tokeny, które wysłałeś, i tokeny, które napisał model. To cały rachunek za zapytanie, dlatego wypisujemy go za każdym razem.

Ile kosztuje zapytanie#

Płacisz za tokeny, więc spójrz na drugą linię danych wyjściowych. Załóżmy, że krótkie pytanie jak powyższe zużywa około 40 tokenów na wejściu, a odpowiedź to 150 tokenów na wyjściu. To zapytanie kosztuje $0.000016 przy obecnej cenie, a tysiąc takich kosztuje $0.0156. Zastąp 40 i 150 dwiema liczbami, które wypisał Twój notatnik.

DeepSeek-V4-Flash jest tutaj domyślnym modelem nie bez powodu: kontekst 380K, do 32 768 tokenów wyjściowych na odpowiedź i jedna cena o każdej porze dnia, bez godzin szczytu. Jedno saldo obejmuje każdy model, więc możesz podmienić model w tej komórce bez zmiany czegokolwiek innego. Wypróbuj zai-org/GLM-5.3-Flash (kontekst 390K, do 8 192 tokenów wyjściowych) i uruchom komórkę ponownie. Pełną listę znajdziesz w wszystkie modele i ceny.

Spróbuj samWypróbuj: ile to jest resp.choices[0].finish_reason?Pokaż odpowiedź

Dodaj print(resp.choices[0].finish_reason) pod pozostałymi instrukcjami print. Jeśli odpowiedź zakończyła się naturalnie, zobaczysz stop. Ustaw max_tokens=5 i uruchom ponownie: odpowiedź zostanie przerwana i zobaczysz length, co oznacza, że zatrzymał ją limit, a nie model.

Gdy komórka zawiedzie#

Błędy po stronie sekretów pojawiają się najpierw, zanim jakiekolwiek zapytanie opuści Colab. Źródło colabtools (sprawdzone 5 listopada 2026) mówi, że userdata.get może zgłosić trzy błędy.

Błąd Colab: SecretNotFoundError
SecretNotFoundError oznacza, że nazwa w kodzie nie pasuje do żadnego sekretu.
  • SecretNotFoundError: nie ma sekretu o tej nazwie. Porównaj ciąg w userdata.get('...') z nazwą w panelu Secrets, litera po literze. Wielkość liter ma znaczenie.
  • NotebookAccessError: sekret istnieje, ale ten notatnik nie ma do niego dostępu. Włącz przełącznik dostępu w panelu Secrets i uruchom komórkę ponownie.
  • TimeoutException: Colab nie odpowiedział na żądanie sekretu. Komunikat błędu mówi, że sekrety można pobierać tylko wtedy, gdy kod działa z interfejsu Colab, więc uruchom komórkę w samym notatniku Colab, a nie w wyeksportowanym skrypcie.

Jeśli sekret się załaduje, a zapytanie nadal zawodzi, problem leży po stronie API. 401 oznacza, że klucz jest błędny lub go brakuje; 404 zwykle wskazuje na błędny bazowy URL lub identyfikator modelu. API 401 lub 404: klucz, bazowy URL, identyfikator modelu omawia oba przypadki, a wyświetlanie modeli za pomocą GET /v1/models pokazuje, jak skopiować dokładny identyfikator.

Udostępnianie i rotacja#

Udostępnij notatnik, a kod, który wywołuje userdata.get, pójdzie z nim; klucza nie ma w żadnej komórce ani danych wyjściowych, więc nie ma czego wyciekać. Kto otworzy notatnik, potrzebuje własnego sekretu o tej samej nazwie, w przeciwnym razie otrzyma SecretNotFoundError (patrz wyżej).

Jeśli utworzysz nowy klucz, zaktualizuj wartość w panelu Secrets; kod pozostaje ten sam, ponieważ tylko nazywa sekret.

Jeden nawyk nadal ma znaczenie: nigdy nie wypisuj klucza. Komórka taka jak print(userdata.get('CHEAPTOKENS_KEY')) umieszcza go w danych wyjściowych, a dane wyjściowe są zapisywane razem z notatnikiem.

Szybkie sprawdzenie

Gdzie powinien znajdować się klucz API w udostępnianym notatniku Colab?

Pokaż odpowiedź

Odpowiedź: W Colab Secrets, odczytywany za pomocą userdata.get

Komórka i jej dane wyjściowe są zapisywane razem z notatnikiem i udostępniane wraz z nim; kod tylko nazywa sekret.

Następny krok: umieść odpowiedź w pętli, czacie lub małym narzędziu. Dokumentacja opisuje resztę API.