Pierwsze krokiPrzewodnik
Pierwsze żądanie API w VS Code: plik .http, klucz z .env
Wyślij pierwsze chat completion do CheapTokens z VS Code za pomocą rozszerzenia REST Client, trzymaj klucz poza gitem i znajdź odpowiedź oraz zużycie tokenów.

Na tej stronie
Możesz wysłać pierwsze żądanie do CheapTokens bez wychodzenia z VS Code: zainstaluj rozszerzenie REST Client, napisz plik .http, trzymaj klucz w pliku .env obok niego i naciśnij Ctrl+Alt+R. Odpowiedź otwiera się w panelu obok pliku, a tekst i liczba tokenów to dwa pola, które znajdziesz na pierwszy rzut oka.
Jeśli masz już otwarty edytor, to lepsze niż instalowanie kolejnej aplikacji tylko po to, by powiedzieć modelowi „Hello”. A żądanie pozostaje w zwykłym pliku tekstowym, więc możesz uruchomić je ponownie jutro lub zacommitować (bez klucza) dla kolegi z zespołu. Inne sposoby wysłania tego samego żądania opisano w Pierwsze żądanie z HTTPie i Twoje pierwsze żądanie API z CheapTokens.
Zainstaluj rozszerzenie i umieść klucz w .env#
REST Client to rozszerzenie humao.. W VS Code naciśnij F1, wpisz ext install, wyszukaj rest-client i zainstaluj je. (Sprawdzone z README rozszerzenia 9 listopada 2026 r.)
Teraz klucz. README opisuje {{$dotenv NAME}}: odczytuje wartość z pliku .env, który znajduje się w tym samym katalogu co plik .http. Dokładnie tego chcemy, ponieważ klucz nigdy nie pojawia się w pliku żądania. Utwórz folder na eksperyment i umieść w nim dwa pliki.
.env:
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore:
.envUtwórz klucz na swoim koncie CheapTokens i wklej go w miejsce placeholdera. Dlaczego linia ignorowania ma znaczenie i co zrobić, jeśli klucz kiedykolwiek trafi do commita, opisano w Bezpieczne przechowywanie klucza API.
Ustaw w kolejności
Ustaw konfigurację we właściwej kolejności
Przeciągnij elementy lub użyj strzałek
- Zainstaluj rozszerzenie REST Client
- Dodaj .env do .gitignore
- Umieść klucz w .env obok pliku .http
- Naciśnij Ctrl+Alt+R na żądaniu
Napisz plik .http#
Utwórz first.http w tym samym folderze. Składnia jest krótka: linia żądania (POST URL HTTP/, metoda jest opcjonalna i domyślnie przyjmuje GET), linie nagłówków Name: value do pierwszej pustej linii, a następnie treść po pustej linii. Żądania oddziela linia trzech lub więcej #.
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json
{
"model": "zai-org/GLM-5.3-Flash",
"messages": [{ "role": "user", "content": "Hello" }]
}Trzy rzeczy do zauważenia. Adres to baza API CheapTokens, https:/, plus /. Model jest zapisany pełnym identyfikatorem, zai-: model z kontekstem 390K, który może napisać do 8 192 tokenów na odpowiedź. A klucz to tylko placeholder {{$dotenv …}}, więc ten plik można bezpiecznie commitować.

Jeśli Twoja konfiguracja nie odczytuje pliku .env, README opisuje również {{$processEnv NAME}}, który odczytuje zmienną ze środowiska Twojej maszyny.
Wyślij żądanie i znajdź odpowiedź#
Kliknij „Send Request” nad linią żądania lub naciśnij Ctrl+Alt+R (Cmd+Alt+R na macOS). Możesz też kliknąć prawym przyciskiem myszy lub użyć F1. Odpowiedź otwiera się w osobnym panelu. Jeśli wolisz zwykłą kartę edytora, w której możesz wyszukiwać i zwijać, ustaw rest- na true w ustawieniach.
Odpowiedź to standardowy JSON chat-completions. Dwa miejsca mają znaczenie od pierwszego dnia:
choices[0].to tekst odpowiedzi. Obok niegomessage. content finish_reasonmówi, dlaczego model się zatrzymał.lengthoznacza, że odpowiedź została ucięta przez limit tokenów.usagezawiera liczby tokenów dla tego żądania: tokeny, które wysłałeś, i tokeny, które napisał model. Za to płacisz, więc zaglądaj tam za każdym razem.

Spróbuj samWypróbuj: jak rozpoznać, że odpowiedź została ucięta?Pokaż odpowiedź
Spójrz na finish_reason w odpowiedzi. Jeśli mówi length, model osiągnął limit tokenów, zanim skończył. Dodaj linię "max_tokens" do treści lub zwiększ ją i wyślij ponownie.
Aby wyczuć koszty: powiedzmy, że wysyłasz to żądanie 100 razy z około 1 000 tokenów na wejściu i 300 na wyjściu (założenie do przykładu, nie pomiar).
| Model | Wejście $/1M | Wyjście $/1M | Za żądanie | 100 żądań | OpenRouter, 100 żądań |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000032 | $0.0032 | $0.0058 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0045 | $0.0112 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000095 | $0.0095 | $0.114 |
1000 tokenów wejściowych i 300 tokenów wyjściowych na żądanie. Ceny za 1 mln tokenów są aktualne i zmieniają się wraz z naszymi taryfami; kolumna OpenRouter pokazuje ceny referencyjne dla tego samego obciążenia.
Tabela pokazuje aktualną cenę tego obciążenia na każdym modelu, z kolumną OpenRouter do porównania. Drobne „Hello” kosztuje znacznie mniej.
Zmień model w jednej linii#
Wygodna część zwykłego pliku tekstowego: zmień jedną linię i wyślij ponownie. Zastąp identyfikator modelu przez deepseek- (kontekst 380K, do 32 768 tokenów na odpowiedź, jedna cena o każdej porze dnia, w sumie taniej niż OpenRouter przy liczeniu wejścia i wyjścia razem) i naciśnij Ctrl+Alt+R jeszcze raz. Ta sama treść, ten sam klucz, inna odpowiedź i inne usage.
Chcesz zachować oba? Wklej drugie żądanie poniżej linii ### z innym identyfikatorem modelu. Każde żądanie ma własny link Send Request, więc możesz uruchomić je jedno po drugim i porównać. Nie jesteś pewien identyfikatora? Wyświetl modele za pomocą GET /v1/models pokazuje dokładne ciągi.
Jeśli to nie działa#
Dopasuj pary
Dopasuj objaw do przyczyny
Dotknij element po lewej, a następnie jego parę
- 401 UnauthorizedKlucz jest pusty lub błędny, często dlatego, że .env nie znajduje się w tym samym folderze co plik .http
- 404 Not FoundLiterówka w ścieżce URL lub w identyfikatorze modelu
- Odpowiedź urywa się w połowie zdania, finish_reason to lengthOsiągnięto limit tokenów, zwiększ max_tokens
W przypadku dwóch pierwszych API 401 lub 404: zły klucz, bazowy URL lub identyfikator modelu przeprowadza przez kontrole. Pełne szczegóły żądania są w dokumentacji CheapTokens, a aktualne ceny na stronie z cenami.
To cały przepływ pracy: jeden plik, jeden klucz w .env, jeden skrót. Stąd możesz dodać wiadomość systemową, zmienić max_tokens lub zamienić tę samą treść w kod w dowolnym języku.



