Проблема: рост счетов за токены
Стоимость входных токенов (input tokens) часто становится скрытой статьей расходов, которая растет вместе с увеличением контекста. Шум, повторяющиеся инструкции и избыточные детали не только увеличивают объем входных данных, но и провоцируют модель генерировать более длинные, дорогие ответы. ContextPress решает эту проблему, сжимая контекст до его отправки в LLM, не требуя дополнительных API-ключей или вызовов сторонних моделей. Это чистая, детерминированная Python-логика, которая работает бесплатно.
Как это работает: 5 новых этапов сжатия
Библиотека использует набор правил для удаления шума и оптимизации текста. С момента первого релиза добавлено пять новых этапов обработки:
- Lexical swaps: замена дорогих слов на дешевые синонимы (например, utilisation → use).
- Abbrev: сокращение ~300 распространенных длинных форм (например, application programming interface → API).
- Alias: если фраза повторяется 3+ раза, она раскрывается один раз, а затем заменяется на псевдоним.
- Structure: минификация встроенного JSON в инструментах и чанках RAG.
- Trim: (только в режиме High) удаление середины длинных диалогов с сохранением начала, последних сообщений и пар вызовов инструментов.
Пример сжатия текста
Разница между исходным текстом и сжатым вариантом (preset: low) демонстрирует эффективность удаления «воды»:
| Режим | Текст |
|---|---|
| Before | In order to utilize the API effectively, due to the fact that rate limits apply, we should implement caching for the application programming interface calls we make on a daily basis. |
| After (low) | To use the API effectively, because rate limits apply, we should implement caching for the API calls we make daily. |
Бенчмарки: 666 запусков на реальных данных
Для оценки эффективности использовались метрики saved tokens (сохраненные токены) и critical information loss (потеря критической информации). Тестирование проводилось на 222 реальных объектах (чаты, потоки инструментов, контексты RAG) в трех режимах (low, medium, high), что дало 666 запусков. Оценка качества проводилась детерминированно: проверялось сохранение URL, дат и ID, так как использование LLM в качестве судьи добавляло бы шум и стоимость, что противоречит цели экономии.
Быстрый старт
Интеграция занимает минимум времени. Библиотека устанавливается через pip и требует всего несколько строк кода для инициализации менеджера контекста:
pip install contextpress- Инициализация:
cm = ContextManager(type="chat") - Сжатие:
compressed = cm.compress(messages, token_budget=2000)
Каждый удаленный ContextPress токен — это сэкономленные деньги без дополнительных накладных расходов на инфраструктуру.
Источник: Towards AI pub ↗
