API i SDKPrzewodnik
Anthropic Python SDK z CheapTokens: Messages API
Zainstaluj Anthropic Python SDK, ustaw base_url na CheapTokens, wyślij żądanie messages.create i ustaw max_tokens.

Na tej stronie
Jeśli Twój kod korzysta już z Anthropic Python SDK, nie musisz go przepisywać, aby wywołać inny model. CheapTokens obsługuje Anthropic Messages API, więc zmieniasz ustawienia klienta i zostawiasz client. bez zmian. Ten przewodnik prowadzi od pustego folderu do skryptu, który wypisuje odpowiedź.
Czego potrzebujesz#
- Python 3.10 lub nowszy (wymaganie SDK).
- Klucz API CheapTokens. Jeśli go jeszcze nie masz, zobacz „Czym jest klucz API i jak przechowywać go bezpiecznie”.
- Jedno saldo obejmuje wszystkie modele, a godzin szczytu nie ma, więc ten sam skrypt kosztuje tyle samo o każdej porze dnia.
Zainstaluj SDK#
pip install anthropic
export CHEAPTOKENS_API_KEY="your-key"Klucz trzymaj w zmiennej środowiskowej, a nie w pliku źródłowym.
Utwórz klienta#
Dwa ustawienia różnią się od domyślnej konfiguracji Anthropic: klucz i base_url.
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["CHEAPTOKENS_API_KEY"],
base_url="https://api.cheaptokens.dev",
)SDK sam dopisuje ścieżkę /v1/messages, więc base_url to host bez /v1. (Endpoint w stylu OpenAI, https:/, to ten, którego używasz z OpenAI SDK; zobacz „Twoje pierwsze żądanie API z CheapTokens”.)
Pierwsze żądanie#
message = client.messages.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explain what a token is in two sentences."}
],
)
print(message.content[0].text)
print(message.stop_reason, message.usage.input_tokens, message.usage.output_tokens)Identyfikator modelu weź z dokumentacji CheapTokens; identyfikatory różnią się między dostawcami. Tutaj używamy DeepSeek-V4-Flash: okno kontekstu 380K i do 32 768 tokenów w jednej odpowiedzi, co pasuje do długich odpowiedzi i pętli agenta.
Odpowiedź jest w message.content, liście bloków; tekst znajduje się w pierwszym z nich. usage pokazuje, ile tokenów wejściowych i wyjściowych zużyło wywołanie, za co jesteś rozliczany.
max_tokens jest wymagane#
W przeciwieństwie do OpenAI API, messages.create nie zadziała bez max_tokens. Ogranicza długość odpowiedzi:
- Zbyt niska wartość powoduje ucięcie odpowiedzi.
message.ma wtedy wartośćstop_ reason "max_tokens"zamiast"end_turn". - Dla DeepSeek-V4-Flash możesz ustawić do 32 768 dla długich odpowiedzi, takich jak całe pliki lub raporty.
- Płacisz za faktycznie wygenerowane tokeny, a nie za ustawiony limit.
Jeśli odpowiedź urywa się w połowie zdania, przeczytaj „Dlaczego odpowiedź AI urywa się w połowie zdania?”, aby poznać pełne wyjaśnienie.
Przełączanie modeli#
Zmienia się tylko ciąg model; reszta skryptu pozostaje taka sama. Wybieraj według zadania:
- DeepSeek-V4-Flash: długie odpowiedzi i pętle agenta, jedna cena o każdej porze, do 32 768 tokenów wyjściowych.
- GLM-5.3-Flash: tanie codzienne rozmowy i wywołania kodowania, kontekst 390K, do 8 192 tokenów wyjściowych.
- MiniMax-M2.7: niskokosztowa praca agenta i kodowanie, kontekst 180K, do 8 192 tokenów wyjściowych.
Listę dostępnych identyfikatorów zwraca GET https:/, na przykład zai- i MiniMaxAI/.
Aktualne ceny za 1M tokenów dla MiniMax-M2.7 to $0.05 za wejście i $0.15 za wyjście. MiniMax-M2.7 jest tańszy niż OpenRouter łącznie, licząc wejście i wyjście razem. Oto ile kosztuje żądanie z 2000 tokenów wejściowych i 500 wyjściowych na każdym modelu, na żywo z cennika:
| Model | Wejście $/1M | Wyjście $/1M | Koszt | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
2000 tokenów wejściowych i 500 tokenów wyjściowych łącznie. 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.
GLM-5.3-Flash i MiniMax-M2.7 są tańsze niż OpenRouter łącznie, licząc wejście i wyjście razem.
Następny krok#
Utwórz klucz i uruchom skrypt z sekcji Pierwsze żądanie. Gdy wypisze odpowiedź, podmień ciąg model, aby porównać modele na własnym zadaniu.



