Simon Willison обновил ttok до 0.4: счётчик токенов получил --list-models
Simon Willison выпустил ttok 0.4, консольную утилиту для подсчёта токенов на базе открытой библиотеки tiktoken от OpenAI. Это первое обновление проекта за пару лет. В релизе исправлено предупреждение библиотеки Click, обновлён CI и добавлена команда --list-models, которая выводит список доступных моделей. Утилита работает через uvx, так что считать токены можно без установки: cat file.txt | uvx ttok. • Версия 0.4, первое обновление за пару лет • Новая команда --list-models • Запуск без установки через uvx
AI-обработка оригинала Simon Willison; редакция Hamidun News
Simon Willison выпустил ttok 0.4, первое обновление своего консольного счётчика токенов примерно за два года. В релизе три изменения: исправлено предупреждение библиотеки Click, обновлён CI и добавлена команда --list-models, которая выводит список доступных моделей. Под капотом по-прежнему tiktoken, открытая библиотека токенизации от OpenAI. Релиз небольшой, но он возвращает в рабочее состояние один из самых простых инструментов для работы с контекстным окном и бюджетом на запросы.
Что изменилось в 0.4
Обновление в основном техническое. Предупреждение Click появлялось при запуске утилиты и засоряло вывод. Теперь оно исправлено. Автор также привёл в порядок CI, то есть автоматическую сборку и проверку проекта. После двух лет простоя это важно: инструмент снова собирается и тестируется в актуальном окружении, а не зависит от настроек, которые давно устарели.
Единственная новая функция в релизе — флаг --list-models. Он показывает, для каких моделей ttok умеет считать токены. Раньше имя модели приходилось сверять с документацией или кодом tiktoken. Теперь список можно получить прямо из терминала.
Как это запускается
ttok работает с uvx, то есть с запуском Python-утилит через uv во временном изолированном окружении. Устанавливать пакет заранее не нужно. Подсчёт токенов в любом тексте выглядит так:
``` cat file.txt | uvx ttok ```
Текст приходит со стандартного ввода, на выходе число токенов. Такой формат хорошо ложится в unix-конвейеры: в ttok можно направить вывод другой команды, лог, дамп репозитория или результат поиска по документам.
Коротко о релизе
- Версия: ttok 0.4, релиз опубликован на GitHub.
- Автор: Simon Willison.
- Основа: библиотека tiktoken от OpenAI с открытым исходным кодом.
- Новая команда: --list-models, список доступных моделей.
- Исправления: предупреждение Click, обновление CI.
- Запуск без установки: через uvx.
- Предыдущее обновление: около двух лет назад.
Где это пригодится
Токены определяют две практические вещи: сколько текста поместится в контекстное окно модели и сколько будет стоить запрос. Оценка «на глаз» по числу символов или слов часто промахивается. Особенно это заметно на коде, JSON, таблицах и тексте не на английском языке, где токенов обычно больше, чем ожидаешь. Локальный подсчёт на реальном tokenizer даёт точную цифру без обращения к API.
Типовые сценарии простые. Перед отправкой большого файла в модель проверить, влезет ли он в окно. Прикинуть стоимость пакетной обработки набора документов. Сравнить, насколько короче стал промпт после чистки. Встроить проверку длины в скрипт или pre-commit-хук, чтобы слишком длинный контекст не уходил в запрос.
Ограничение следует из основы инструмента. tiktoken описывает токенизаторы OpenAI. Для моделей других разработчиков, у которых свои словари токенов, результат будет приблизительным, и точные цифры лучше брать у провайдера. Для прикидки порядка величин этого обычно хватает.
Если ttok нужен только изредка, ставить его не обязательно: хватит uvx и одной строки в терминале. Если вы пользуетесь им регулярно, команда --list-models избавит от поиска правильного имени модели в документации.
Системное обучение работе с ИИ и AI-агентами
Образовательная платформа Vibe Academy (vibe-academy.ru) — практические курсы, промпт-инжиниринг, автоматизация процессов и прикладные AI-воркфлоу.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.