
Всем привет! Если вы работаете с LLM — ChatGPT, Claude, DeepSeek, Qwen или другими — через API, то знаете: токены стоят денег. Контекстное окно у любой модели не резиновое, и чем больше кода вы отправляете, тем дороже каждый запрос. Новые модели с огромными контекстными окнами выходят каждый месяц и дешевеют, но зачем платить за то, что можно не отправлять?
В этой статье я расскажу про TokenCompress.com — прокси-сервис, который сжимает код перед отправкой в LLM. В среднем он убирает ~78% токенов, при этом качество ответов не падает, а в ряде случаев даже растёт — потому что модель получает только релевантный контекст, без шума.
Как это работает
TokenCompress — это не примитивное удаление комментариев или минификация. Внутри двухэтапный пайплайн:
Этап 1 (первоначальная фильтрация): Код разбирается через Tree-Sitter AST-парсер на структурные блоки (функции, классы, методы). Каждый блок ранжируется — насколько этот фрагмент кода снижает неопределённость модели относительно вашего конкретного вопроса. Нерелевантные блоки отсекаются.
Этап 2 (дополнительная фильтрация): Внутри отобранных блоков происходит построчная оптимизация по принципу задачи о рюкзаке — убираются избыточные строки (шаблонный код, неиспользуемые импорты, тестовые фикстуры), при этом логика и сигнатуры функций сохраняются.
Ключевой момент: сжатие контекстно-зависимое. Один и тот же файл сжимается по-разному в зависимости от вашего вопроса. Если вы спрашиваете про функцию post_groups — именно она и её зависимости останутся, а остальное уйдёт. Сжатие срабатывает, если код обернут в тройные кавычки (```) и превышает 500 токенов.
Поддержка языков
Поддерживается 24 языка: Python, Rust, JavaScript, TypeScript, Go, Java, C#, C++, C, PHP, Kotlin, Dart, Swift, Scala, Ruby, Haskell, Erlang, Julia, Bash, HTML, CSS, Markdown, SQL, JSON. Для неподдерживаемых языков используется построчное разбиение.
Начинаем за 3 шага
Шаг 1. Регистрируемся
Заходим на https://tokencompress.com и входим через аккаунт GitHub, Google или Apple.

Шаг 2. Создаем API-ключ
Переходим в админку на страницу API-ключей и создаем новый ключ. Сохраните его — повторно он не отобразится, придётся создавать заново.

Шаг 3. Компонуем ключи
Это главный шаг. Вам нужно объединить два ключа в один — ключ TokenCompress и ключ вашего LLM-провайдера, разделённые двойным двоеточием :: например:
api_key = "ak_live_ВАШ_КЛЮЧ_TC::sk-ВАШ_КЛЮЧ_ПРОВАЙДЕРА"
Также замените base_url на адрес TokenCompress с указанием одного из поддерживаемого провайдера:
Name |
provider |
base_url |
Auth |
Format |
OpenAI |
openai |
Bearer |
openai |
|
Anthropic |
anthropic |
Bearer |
anthropic |
|
DeepSeek |
deepseek |
Bearer |
openai |
|
Google AI (Gemini) |
Bearer |
openai |
||
LM Studio |
lm-studio |
— |
openai |
|
Mistral AI |
mistral |
Bearer |
openai |
|
Qwen (Alibaba) |
qwen |
Bearer |
openai |
|
Ollama (Local) |
ollama |
— |
openai |
|
Ollama (Cloud) |
ollama-cloud |
Bearer |
openai |
|
OpenRouter |
openrouter |
Bearer |
openrouter |
|
Kilo AI |
kilo |
Bearer |
openai |
Вот и всё. Ваш код автоматически проходит через пайплайн сжатия, а затем отправляется в LLM-провайдер. Ответ приходит как обычно — включая streaming. Также имеется полная документация.
Тестируем на реальном примере
Давайте проверим сжатие на реальном файле из опенсорсного проекта Vaultwarden. Возьмём organizations.rs — увесистый файл на Rust.
Скачиваем его:
curl -o organizations.rs https://raw.githubusercontent.com/dani-garcia/vaultwarden/refs/heads/main/src/api/core/organizations.rs
Устанавливаем зависимости. Если у вас Python новее 3.12, langchain может не работать, поэтому скачиваем нужную версию Python и создаем виртуальное окружение:
python3.12 -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # Linux/macOS pip install langchain-openai
Создаём main.py:
from langchain_openai import ChatOpenAI llm = ChatOpenAI( base_url="https://tokencompress.com/v1/anthropic", api_key="ak_live_ВАШ_КЛЮЧ::sk-ant-ВАШ_КЛЮЧ_ANTHROPIC", model="claude-opus-4-5", ) # читаем ВЕСЬ файл with open("organizations.rs", "r", encoding="utf-8") as f: org_rs = f.read() # формируем промпт с содержимым файла prompt = f"""Вот содержимое файла organizations.rs: ```rust {org_rs} ``` Вопрос: what does post_groups do if org_groups_enable() returns false?""" response = llm.invoke(prompt) print(response.content)
Запускаем скрипт:
python main.py

Если мы выполним два запроса: один напрямую, другой с использованием TokenCompress, то мы сможем увидеть точную статистику токенов. Зеленым выделен результат сжатия, красным — без сжатия. Результат — токены сократились почти на 70%. Модель получила только релевантные фрагменты кода и корректно ответила на вопрос. Ответ сжатого варианта также короче и точнее.
За 19 тестовых запросов суммарная экономия составила свыше 70 000 токенов.

Бенчмарки
Мы прогнали TokenCompress на 600 опенсорсных файлах на 22 языках программирования. Результаты:
Метрика |
Значение |
Исходных токенов (суммарно) |
900 556 |
После сжатия |
170 616 |
Экономия токенов |
80.5% |
Средняя задержка на файл |
222 мс |
Максимальная задержка |
431 мс |
Деградация качества ответов |
Не обнаружена |
Распределение степени сжатия: от 60% (p10) до 97% (p90), медиана — 82%.
Почему точность ответов может расти
Звучит контринтуитивно, но вот логика: когда вы отправляете в LLM огромный файл целиком, модель вынуждена «пробираться» через тысячи строк нерелевантного кода. Это создаёт шум, и модель может потерять фокус — особенно в середине длинного контекста (так называемая проблема «lost in the middle»).
TokenCompress отправляет модели только те фрагменты, которые действительно нужны для ответа на ваш вопрос. Меньше шума — точнее ответ.
Сколько можно сэкономить?
Посчитаем при консервативной оценке 60% сжатия (реально обычно выше):
Модель |
Экономия input-токенов в месяц* |
Стоимость подписки |
Чистая выгода |
Claude Opus |
~$1 125 |
$5–10 |
~$1 115 |
GPT-4o |
~$187 |
$5–10 |
~$177 |
DeepSeek V3 |
~$20 |
$5 |
~$15 |
*при объеме ~25 000 запросов/месяц
Даже на самых дешёвых моделях подписка окупается.
Тарифы
План |
Стоимость |
Запросов в месяц |
Starter |
$5 |
25 000 |
Pro |
$10 |
60 000 |
Team |
$20/место |
125 000/место |
Enterprise |
$199 |
1 500 000 |
Agentic |
$299 |
3 000 000 |
Есть бесплатный 3-дневный триал Pro-плана (1 500 запросов) без привязки карты.
А что с безопасностью?
Закономерный вопрос: «Мой код проходит через ваш сервер?»
Да, при использовании облачной версии код проходит через прокси TokenCompress. Вот что важно знать:
Код обрабатывается в памяти и не сохраняется на диск
Содержимое запросов не логируется
Обработка — per-request, без кэширования пользовательского кода
После сжатия к LLM-провайдеру уходит только сжатый фрагмент
Для повышенных требований к безопасности имеется тарифный план Enterprise: есть возможность self-hosted развертывания локально — в этом случае код вообще не покидает вашу инфраструктуру. Полная поддержка LM Studio, Ollama и vLLM.
Интеграция с Continue (VS Code)
Пример конфигурации для Continue:
name: Local Config version: 1.0.0 schema: v1 models: - name: TokenCompress - Deepseek provider: openai model: deepseek-chat apiKey: ak_live_ВАШ_КЛЮЧ::sk-ВАШ_КЛЮЧ_DEEPSEEK apiBase: https://tokencompress.com/v1/deepseek roles: - chat - edit - apply defaultCompletionOptions: stream: true - name: TokenCompress Claude 4.5 Opus provider: openai model: claude-opus-4-5 apiKey: ak_live_ВАШ_КЛЮЧ::sk-ant-api-ВАШ_КЛЮЧ apiBase: https://tokencompress.com/v1/anthropic roles: - chat - edit - apply defaultCompletionOptions: stream: true
Также работает с LangChain, LangGraph, OpenClaw, Codex, Claude Code, Continue и любым инструментом, который поддерживает OpenAI-совместимый API.
Итого
Экономия 60–80% токенов на каждом запросе к LLM
AST-парсинг + ML-ранжирование — это не программная минификация, а интеллектуальное сжатие с учетом вашего вопроса
24 языка, streaming, поддержка всех основных провайдеров
Подключение за 5 минут — меняете base_url и компонуете ключи
От $5/мес — окупается за один рабочий день
Попробовать бесплатно и без банковской карты: https://tokencompress.com/
Если есть вопросы — пишите https://t.me/TokenCompress, отвечу.
neodavinchi
Классная идея. Мой опыт также подтверждает, что при сокращении контента качество ответов растёт.
Но вижу два возражения, ответы на которые не нашёл в статье:
1) на чём основана ваша уверенность, что tokencompress не ошибётся и не удалит из запроса важный контекст, критичный для генерации нужного кода? Есть ли данные тестов качества генерации кода с этой системой и без?
2) Учитывали ли вы цены на кэширование токенов в своей арифметике? Если оригинальные запросы к llm итеративно дописываются - их начало берётся из кэша (скидка 90%). Но tokencompress вероятно собирает запрос каждый раз заново - и тогда запрос пролетает мимо кэша и оплачивается по тарифу 100%? Или всё устроено как-то иначе?