# Ile tokenów zajmuje polski tekst? Pomiar z 29 września 2026

Zbiór danych do artykułu w serwisie ekspertodsztucznejinteligencji.pl. Licencja plików własnych: CC BY 4.0.
Teksty aktów prawnych UE w katalogu `korpus/` pochodzą z EUR-Lex (ponowne wykorzystanie dozwolone, decyzja
Komisji 2011/833/UE).

## Pytanie

Cenniki API podają cenę za milion tokenów, ale każdy dostawca tnie tekst na tokeny inaczej. Ile tokenów
zajmuje ten sam polski tekst u Anthropic i OpenAI i ile więcej niż ta sama treść po angielsku?

## Metoda

- Narzędzia: Claude Code 2.1.284 (`claude -p`) dla modeli Anthropic oraz Codex CLI 0.158 (`codex exec`)
  dla modeli OpenAI, na macOS, 29 września 2026. Oba zwracają liczbę tokenów wejścia zgłoszoną przez API.
- Metoda różnicowa: przybliżone tokeny tekstu = wejście wywołania z tekstem minus wejście wywołania bez tekstu
  z tej samej serii, przy tych samych ustawieniach i instrukcji „odpowiedz wyłącznie słowem OK”. Narzędzia CLI
  dokładają własny kontekst, który zmieniał się między wywołaniami; rozrzut opisano w ograniczeniach.
- W Claude Code narzędzia były wyłączone (`--tools ""`). Codex CLI działał w piaskownicy tylko do odczytu
  (`-s read-only`), z zakazem używania narzędzi w instrukcji; nie były technicznie wyłączone.
- Korpus: art. 4, 50 i 73 rozporządzenia 2024/1689 (AI Act) oraz art. 33 i 34 rozporządzenia 2016/679 (RODO)
  w oficjalnych wersjach polskiej i angielskiej, pobrane z EUR-Lex (`korpus/prawo-PL.txt`, 13 868 znaków;
  `korpus/prawo-EN.txt`, 12 825 znaków). Druga próbka: początki trzech tekstów serwisu o kosztach i wdrożeniach
  AI, tylko po polsku (`korpus/biznes-PL.txt`, 9 005 znaków).
- Modele: Claude Opus 5.5, Claude Sonnet 5.5, Claude Haiku 4.5, GPT-6 Sol, GPT-6 Luna. Każdy wariant dwa razy.
- Skrypt: `mierz.py`. Surowe przebiegi: `przebiegi.json`. Przeliczenie: `tokeny-tekstu.json`.

## Wynik (średnia z dwóch powtórzeń, tokeny na 1000 znaków)

| Model | Proza biznesowa PL | Tekst prawny PL | Tekst prawny EN |
|---|---|---|---|
| Claude Opus 5.5 | 494,2 | 467,8 | 293,2 |
| Claude Sonnet 5.5 | 494,0 | 467,6 | 293,3 |
| Claude Haiku 4.5 | 367,7 | 339,2 | 205,1 |
| GPT-6 Sol | 308,7 | 319,5 | 191,6 |
| GPT-6 Luna | 311,6 | 321,5 | 193,7 |

- Na badanej próbce prawa UE ta sama treść po polsku to 1,72–1,80 raza więcej tokenów niż po angielsku,
  przy 1,08 raza więcej znaków. Wyniku nie sprawdzono na innych tekstach ani dostawcach.
- Na tym korpusie nowszy tokenizer Anthropic (Opus i Sonnet 5.5) daje 1,34–1,43 raza więcej tokenów niż starszy (Haiku 4.5).
- Przy wywołaniach do 272 tys. tokenów wejścia Sonnet 5.5 i GPT-6 Sol mają tę samą cenę za token
  (2 / 10 USD za milion), a Sonnet potrzebuje na badaną polską prozę 1,60 raza więcej tokenów.
- Koszt miliona znaków prozy z artykułu (3,80 zł w Sonnecie i 2,38 zł w Solu) dotyczy tekstu łącznie
  w wywołaniach do 272 tys. tokenów wejścia każde. Do limitu wchodzą też instrukcje i pozostały kontekst.
  W jednym wywołaniu milion znaków o tej gęstości to około 308,7 tys. tokenów w Solu; koszt samego tekstu
  na wejściu wyniósłby około 4,75 zł. [Dokumentacja GPT-6 Sol](https://developers.openai.com/api/docs/models/gpt-6-sol)
  podaje powyżej 272 tys. tokenów wejścia podwójną stawkę wejścia i cache oraz 1,5 stawki wyjścia
  dla całego wywołania. Przeliczenie po kursie NBP z 28.09.2026: 3,8478 zł za USD.

## Ograniczenia

- Pomiar przybliża tokenizację tekstu wejściowego na podstawie różnic zużycia zgłaszanego przez CLI.
  Nie mierzy tokenów rozumowania, długości odpowiedzi ani jakości,
  więc nie mówi, ile kosztuje konkretne zadanie.
- Dwie próbki gatunkowe (prawo UE, proza serwisu), jeden dzień, jeden komputer.
- Prompt systemowy Codeksa zmienia się między wywołaniami, stąd rozrzut do 53 tokenów (2,2% na tekście angielskim,
  1,9% na polskiej prozie i 1,2% na polskim tekście prawnym) między powtórzeniami
  GPT-6 Sol. U Anthropic rozrzut wynosi najwyżej 8 tokenów.
- Pierwsza seria Haiku 4.5 przy zimnej pamięci podręcznej zwróciła raport zużycia bez promptu systemowego w wariancie
  angielskim, więc różnica z bazą nie miała sensu. Seria została powtórzona; odrzucone przebiegi są w
  `przebiegi-odrzucone.json` z opisem powodu.
- Baza Claude Code zmieniała się między seriami (Haiku 4.5: 57 659 tokenów o 09:25 i 57 818 o 09:27), dlatego każdy wariant jest liczony
  wobec bazy zmierzonej w tej samej serii, a nie wobec jednej bazy z całego dnia.
