Powrót do bloga

Optymalizacja kosztówAnaliza

Ile tokenów zużywa żądanie API? Zmierzone na 3 zadaniach

Prawdziwe liczby zużycia z DeepSeek-V4-Flash: krótkie pytanie, streszczenie akapitu i e-mail do JSON, z kosztem 1 000 żądań i skryptem do własnych promptów.

Autor: CheapTokens TeamOpublikowano Zaktualizowano 5 min czytania

Karta pokazująca pole zużycia w odpowiedzi API: prompt_tokens 23, completion_tokens 87, total_tokens 110
Na tej stronie
  1. Szybkie pytanie
  2. Streszczenie i tokeny, których nie czytasz
  3. E-mail na wejściu, czysty JSON na wyjściu
  4. Wszystkie trzy obok siebie
  5. Wypróbuj na własnych promptach
  6. Od czego zacząć

Zapytaj, ile kosztuje jedno żądanie do API AI, a zwykle usłyszysz „to zależy”. Zależy, ale nie da się na tym oprzeć budżetu. Wzięliśmy więc trzy codzienne zadania, wysłaliśmy je do DeepSeek-V4-Flash przez API CheapTokens 23 października 2026 i zapisaliśmy, co za każdym razem mówiło pole usage.

W skrócie: szybkie pytanie wyszło 110 tokenów, streszczenie akapitu 396, a zamiana e-maila w JSON 299. Poniżej opis każdego żądania, co wróciło i ile to kosztuje.

Szybkie pytanie#

Zaczęliśmy od czegoś, o co ludzie pytają asystentów czatu bez przerwy: różnica między git merge a git rebase, w dwóch lub trzech zdaniach.

Animacja: pytanie o git merge i git rebase trafia do DeepSeek-V4-Flash, pojawia się odpowiedź w trzech zdaniach, a potem wiersz zużycia: 23 tokeny promptu, 87 tokenów uzupełnienia, łącznie 110
Prawdziwe żądanie i odpowiedź, 23 października 2026

Pytanie zajęło 23 tokeny, odpowiedź 87. To pierwsza rzecz warta uwagi: odpowiedź jest prawie cztery razy dłuższa niż pytanie, a to strona wyjściowa kosztuje więcej — w MiniMax-M2.7 obecnie $0.15 za 1 mln tokenów wyjściowych wobec $0.05 za wejściowe. Przy tych stawkach jedno takie żądanie kosztuje $0.000014. Tysiąc takich: $0.0142.

Oto dokładnie to żądanie, jeśli chcesz zobaczyć liczby na własnym ekranie:

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "user", "content": "What is the difference between git merge and git rebase? Answer in two or three sentences."}
    ],
    "max_tokens": 2048,
    "temperature": 0.2
  }'

Liczby siedzą w bloku usage na końcu odpowiedzi: prompt_tokens to to, co wysłałeś, completion_tokens to to, co napisał model, total_tokens to oba razem.

Streszczenie i tokeny, których nie czytasz#

Drugie zadanie: sprowadzić krótki raport o incydencie do dwóch zdań. Zespoły przepuszczają przez model takie rzeczy przez cały dzień: zgłoszenia, raporty, długie wątki e-mailowe. Oto prompt:

text
Summarize this incident report in two sentences.

On Tuesday between 14:05 and 14:50 UTC the checkout API returned errors for about 6% of requests. The cause was a configuration change deployed at 13:58 that lowered the database connection pool from 50 to 5 connections per instance. Under normal load nobody noticed, but when the afternoon traffic peak arrived, requests queued for a free connection and timed out after 30 seconds. The on-call engineer saw the growing p99 latency at 14:12, found the change in the deploy log at 14:31 and rolled it back at 14:44. To prevent a repeat, the pool size is now validated in CI against a minimum value, and an alert fires when more than 20 requests wait for a connection for two minutes.

A odpowiedź:

We wtorek zmiana konfiguracji, która zmniejszyła pulę połączeń do bazy z 50 do 5, spowodowała błędy API płatności dla około 6% żądań w szczycie popołudniowym, dopóki nie została wycofana o 14:44. Aby zapobiec nawrotom, rozmiar puli jest teraz walidowany w CI, a alert uruchamia się, gdy czasy oczekiwania na połączenie przekroczą progi.

Dwa zdania, 331 znaków i 146 tokenów wyjściowych. To wyglądało na dużo przy tak krótkim tekście, a odpowiedź wyjaśniła dlaczego: usage miało jeszcze jedno pole, reasoning_tokens: 76. Przed odpowiedzią model zużył 76 tokenów na przemyślenie tego. Są częścią tych 146 (250 we + 146 wy = 396 łącznie), więc około połowa wyjścia poszła na rozumowanie, które nie jest częścią tekstu odpowiedzi, a jest rozliczane jak każdy inny token wyjściowy.

Warto o tym wiedzieć, planując budżet: w zadaniach, w których model zatrzymuje się, by pomyśleć, wyjście może być zauważalnie większe niż tekst, który dostajesz z powrotem. Tysiąc takich streszczeń kosztuje $0.0344.

E-mail na wejściu, czysty JSON na wyjściu#

Trzecie zadanie: potwierdzenie zamówienia, które musi stać się rekordem w bazie danych.

Animacja: e-mail z zamówieniem po lewej, a po prawej JSON, który wyodrębnił z niego DeepSeek-V4-Flash: identyfikator zamówienia, pozycje, ceny, wysyłka, suma, przewoźnik, numer śledzenia i data dostawy; zużycie: 199 tokenów promptu i 100 tokenów uzupełnienia
E-mail, który wysłaliśmy, i JSON, który wrócił, sformatowany do czytania

Model zwrócił dokładnie te klucze, o które prosiliśmy, i nic wokół nich, żadnego „Oto twój JSON”. Suma zgadza się z e-mailem, a data dostawy wróciła jako 2026-11-03, już w formacie, o który prosiliśmy. 199 tokenów na wejściu, 100 na wyjściu.

Rzuca się w oczy gęstość: 100 tokenów na 276 znaków JSON, podczas gdy odpowiedź o git zajęła 87 tokenów na 421 znaków zwykłego tekstu. Cudzysłowy, nawiasy klamrowe i przecinki też są tokenami, więc wyjście strukturalne kosztuje więcej na znak niż proza. Tysiąc takich e-maili: $0.025.

Wszystkie trzy obok siebie#

Zadanie Tokeny we Tokeny wy 1 000 żądań
Szybkie pytanie 23 87 $0.0142
Streszczenie 250 146 $0.0344
E-mail do JSON 199 100 $0.025

Koszty są obliczone z tych liczb tokenów przy obecnej cenie MiniMax-M2.7, więc pozostają prawidłowe, gdy ceny się zmienią.

Gdzie idą pieniądze w 1 000 żądań: wejście vs wyjście
  • Streszczenie: wyjście$0.0219
  • E-mail do JSON: wyjście$0.015
  • Szybkie pytanie: wyjście$0.0131
  • Streszczenie: wejście$0.0125
  • E-mail do JSON: wejście$0.01
  • Szybkie pytanie: wejście$0.0012

Wyjście wygrywa w każdym zadaniu, nawet w streszczeniu, gdzie wysłaliśmy więcej, niż dostaliśmy z powrotem. Najłatwiejsza dźwignia na rachunku to więc długość odpowiedzi: „w dwóch lub trzech zdaniach” albo „zwróć tylko JSON” naprawdę działa.

Dla skali: bot wsparcia, który odpowiada na 2 000 szybkich pytań dziennie, każde jak pierwsze, wydaje około $0.852 miesięcznie na MiniMax-M2.7. Prawdziwy czat odsyła swoją historię w każdej turze, więc wejście rośnie z każdą wiadomością, ale przy jednorazowych pytaniach to cały rachunek.

Wypróbuj na własnych promptach#

Twoje prompty trafią na inne liczby, a sprawdzenie zajmuje minutę. Ten skrypt wysyła każdy prompt, pomija odpowiedzi, które zostały ucięte, i wypisuje tokeny oraz koszt 1 000 żądań:

python
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.cheaptokens.dev/v1", api_key=os.environ["CHEAPTOKENS_API_KEY"])

MODEL = "MiniMaxAI/MiniMax-M2.7"
PRICE_IN, PRICE_OUT = 1.00, 4.00  # USD per 1M tokens: example values, use the current ones from the price list

PROMPTS = [
    "What is the difference between git merge and git rebase? Answer in two or three sentences.",
    # add your own prompts here
]

for prompt in PROMPTS:
    r = client.chat.completions.create(
        model=MODEL,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=2048,
        temperature=0.2,
    )
    if r.choices[0].finish_reason != "stop":
        print("cut off at max_tokens, raise the limit:", prompt[:40])
        continue
    tin, tout = r.usage.prompt_tokens, r.usage.completion_tokens
    per_1000 = (tin * PRICE_IN + tout * PRICE_OUT) * 1000 / 1_000_000
    print(f"{tin} in, {tout} out, 1,000 requests = ${per_1000:.4f} | {prompt[:40]}")

Wstaw aktualne ceny do PRICE_IN i PRICE_OUT: dla MiniMax-M2.7 to $0.05 za 1 mln tokenów wejściowych i $0.15 za 1 mln tokenów wyjściowych. Pierwszy prompt to ten z naszego testu; liczby tokenów różnią się nieco między modelami, więc spodziewaj się wartości w podobnym zakresie co 23 we i 87 wy. Będziesz potrzebować pakietu openai (pip install openai) i swojego klucza w CHEAPTOKENS_API_KEY.

Jeśli jakaś liczba wygląda dziwnie: finish_reason: length oznacza, że odpowiedź trafiła w max_tokens (dlaczego odpowiedzi urywają się w połowie zdania); duże reasoning_tokens wyjaśnia wyjście większe niż tekst; a pełny wzór na ceny wejścia i wyjścia jest w tokeny wejściowe vs wyjściowe.

Od czego zacząć#

Łącznie, licząc wejście i wyjście razem, MiniMax-M2.7 w CheapTokens jest tańszy niż cena referencyjna OpenRouter dla wszystkich trzech powyższych zadań. Ma kontekst 180K, odpowiedzi do 8 192 tokenów i jedną cenę o każdej porze. Doładuj saldo, utwórz klucz i wyślij żądanie curl z góry tej strony: dokumentacja opisuje klucz i bazowy URL, strona DeepSeek zawiera katalog modeli, a cennik ma aktualną listę cen.