🌐 Переведено: все языки
Зачем он нужен: гейт прибыльности безопасен только в том случае, если оценка стоимости точна. Формула, ошибающаяся хоть немного, будет конвертировать блоки, которые на самом деле стоят дороже. Поэтому этот sweep привязывает формулу к реальным цифрам API перед тем, как она попадёт в продакшн — до нулевой невязки.
what the sweep decides, visually:
patch model ⌈w/28⌉ × ⌈h/28⌉ + overhead ← current docs
retired /750 (w · h) / 750 ← old formula
│
▼ probe geometries chosen to separate the two by 25–180 tokens/row
measured 1568×728 page = 1,460 tokens
patch predicts 1,456 ✅ (residual ~0)
/750 predicts 1,522 ✗ (off by 62)
Бесплатный sweep count_tokens, который решает два открытых вопроса
геометрии:
- Формула — тарифицирует ли API патчами
ceil(w/28) × ceil(h/28)(текущая документация) или устаревшейw·h/750? Набор проб разделяет два варианта на 25–180 токенов в строке. - Тир — получает ли
claude-fable-5лимиты высокого разрешения (длинная сторона ≤ 2576 px, ≤ 4784 визуальных токена)? Строкаpage-old-1928x1928— решающая: ≈ 4761 измеренных означает high-res WYSIWYG (старая большая страница несёт ~в 3.3× больше символов на изображение, чем сегодняшняя 1568×728, при том же символов/токен); ≈ 1521 означает ресемпл стандартного тира, и 1568×728 остаётся верной.
Контекст: sweep от 2026-07-01, лежащий в основе текущей страницы 1568×728
(аудит читаемости, 2026-07-01), был измерен на claude-sonnet-4-5 —
модели стандартного тира — тогда как продакшн нацелен на Fable 5, которую
документация по vision помещает в тир высокого разрешения. Тот же аудит
также измерил текущую страницу в 1460 токенов: ближе к формуле патчей
(1456), чем к /750 (1522), что намекает, что API уже перешёл на биллинг
по патчам.
pnpm run build # dist/ — предпосылка (как и для всех eval)
node benchmarks/billing-sweep/run.mjs --dry-run # только прогнозы, без ключа, $0
ANTHROPIC_API_KEY=sk-... node benchmarks/billing-sweep/run.mjs \
--models claude-fable-5,claude-sonnet-4-5 --probe-multi --probe-20plusДолжен обращаться к API напрямую — никогда через прокси OmniGlyph,
который бы трансформировал тело запроса. count_tokens бесплатен; полный
sweep делает ~25 запросов.
По каждой модели каждая строка пробы показывает измеренные токены изображения
(с изображением минус текстовая базовая линия) против всех четырёх прогнозов
(patch/legacy750 × standard/highres); сводка ранжирует гипотезы по
среднему абсолютному отклонению. --probe-multi проверяет лимит на
изображение (2×1092² ≈ 2×1521); --probe-20plus проверяет правило >20
изображений (сторона >2000 px должна быть отклонена, а не ресемплирована).
Строки попадают в results/*.jsonl; математика прогнозов лежит в
formulas.mjs, закреплена в tests/billing-sweep-formulas.test.ts.
- Формула патчей подтверждена → портировать PR #27 OmniGlyph (точный перевод
ресайза) и синхронизировать математику гейта
ANTHROPIC_PIXELS_PER_TOKENвsrc/core/transform.ts. - Тир high-res подтверждён на Fable → вернуть геометрию страницы по тиру
(страницы класса 1928×1928 для Fable/Opus 4.8/Sonnet 5, 1568×728 для
standard), по аналогии с тем, как путь GPT уже держит свой собственный
GPT_MAX_HEIGHT_PX.