diff --git a/docs/experiments/00-provider-quirks.md b/docs/experiments/00-provider-quirks.md index 48f725ee..bcb7bc15 100644 --- a/docs/experiments/00-provider-quirks.md +++ b/docs/experiments/00-provider-quirks.md @@ -241,6 +241,7 @@ - **Grok 4.1 Fast retired 15.05.2026** → слаги молча редиректят на `grok-4.3` (цена ×9). Ретайрнулся дешёвый тир, НЕ сам xAI: grok-4.3 остаётся основным пермиссивным тиром канала B. - **Аудит /models 04.07.2026 (воркфлоу) — с поправкой на перепроверку:** и `deepseek-chat`, и `grok-4-fast` НЕ в списках /models (там v4-flash/v4-pro у DeepSeek; версионные слаги у xAI), НО **оба работают как алиасы** (перепроверено вживую: HTTP 200, переводят). Агент-аудитор написал «сняты» — это была неточность: «нет в /models» ≠ «не работает». deepseek-chat депрекируется 24.07.2026. У xAI есть мигрированные слаги-обёртки (`grok-4.20-0309-non-reasoning` / `-reasoning` / `-multi-agent`, ретайр 15.05.2026), но **для перевода/редактуры берём `grok-4.3` + явный `reasoning_effort:"none"`** (слаг не меняем; non-reasoning вариант = grok-4.3+`none` под капотом — см. thinking-таблицу). xAI `usage` отдаёт нестандартные `cost_in_usd_ticks`/`num_sources_used` — игнорировать. **Урок: имя модели проверять не только `/models`, но и пробным вызовом — алиас может работать, даже если его нет в списке; и наоборот.** Реальная причина сменить deepseek на v4-flash — не «chat умер», а ЭХО на zh (лечится thinking-on), см. раздел thinking. - Claude Sonnet 5 промо $2/$10 до **31.08.2026** (не закладывать в долгий прайс). +- ⭐ **ПИК DEEPSEEK — ЕЩЁ И ТОЛЬКО ПО БУДНЯМ (живое чтение `api-docs.deepseek.com/quick_start/pricing`, 30.08.2026). У нас этой оговорки не было.** Дословно: *«Peak hours are 01:00 - 04:00 and 06:00 - 10:00 UTC, **Monday through Friday** (all other hours are off-peak)»*. Часы у нас совпадали, **день недели — нет**: сводка рига звала воскресное утро пиком (починено, `zakhod.py`, правка ТОЛЬКО печати). ⇒ **Все субботы и воскресенья целиком идут по офф-пику, то есть вдвое дешевле.** Практическое следствие: длинные прогоны планируются на выходные и на не-пиковые часы буднего дня — это ×2 по цене без единой правки архитектуры. ⚠ Ледждер по-прежнему пишет ПИКОВУЮ цену осознанно (D39.136: потолок обязан срабатывать раньше, а не позже) ⇒ **записанная стоимость прогонов, сделанных в офф-пик, вдвое завышена против реального счёта** — это консерватизм, а не ошибка, но при сверке с вендорским счётом (открытый долг Д32.11) разницу надо ждать именно отсюда. **Таблица (за 1M, кэш-хит / кэш-промах / выход):** `v4-pro` офф-пик $0.022 / $0.66 / $1.98 · пик $0.044 / $1.32 / $3.96 — **пины ростера верны и суть ПИКОВАЯ колонка**. `v4-flash` офф-пик $0.007 / $0.22 / $0.66 · пик $0.014 / $0.44 / $1.32. ⚠⚠ **МЕТОДИЧЕСКАЯ ЗАМЕТКА, ЦЕННЕЕ САМОЙ ЦЕНЫ:** первая выжимка страницы дала кэш-хит `$0.44` вместо `$0.044` — десятикратная ошибка на ровном месте, и по ней уже готовилась запись «наш пин занижен в 10 раз». Спасло ПОВТОРНОЕ чтение той же страницы с требованием привести строки дословно. ⇒ **одно чтение вендорской страницы автоматическим извлекателем — НЕ факт; цифра, на которой стоит денежный вывод, читается дважды и разными запросами.** - ⛔⛔ **ЖИВОЙ ПЕРЕ-СНЯТЫЙ ПРАЙС GEMINI 2026-08-30 (полигон, вопрос владельца «какая цена у гемини»): ОДИН НАШ ПИН ВДВОЕ ЗАВЫШЕН, И НА СТРАНИЦЕ ЕСТЬ МОДЕЛЬ ДЕШЕВЛЕ ВСЕГО НАШЕГО РОСТЕРА.** Источник — `ai.google.dev/gemini-api/docs/pricing`, за 1M токенов, платный тир. **(1) `gemini-3.1-flash-lite` — пин ВЕРЕН:** $0.25 вход / $0.025 кэш / $1.50 выход (аудио дороже: $0.50/$0.05). **(2) ⛔ `gemini-3.6-flash` — ПИН $1.50/$0.15/$7.50 ВДВОЕ ВЫШЕ ДЕЙСТВУЮЩЕЙ ЦЕНЫ:** вендор дословно — *«$0.75 through December 31, 2026. $1.50 starting January 1, 2027»* (выход соответственно **$3.75** до конца 2026 и $7.50 после). То есть в ростере стоит ПОСЛЕ-промо цена, и все сметы на этой модели завышены ×2. ⚠ **Пин НЕ правлен сессией сознательно:** `roster.cost()` считает цену клеток ИЗ ПИНА, и правка задним числом переписала бы стоимость **8 уже купленных клеток** этой модели (норма Д32.11 — леджер фазы есть оценка). Решение о правке — владельца, вместе с ценой пере-счёта. **(3) `gemini-3.1-pro-preview` — пин верен для промтов ≤200k** ($2.00/$0.20/$12.00); у вендора есть НЕ записанный у нас второй тир **>200k: $4.00/$0.40/$18.00** — наши чанки в него не попадают, но при смене нарезки попадут. **(4) ⭐ НЕ В РОСТЕРЕ И ДЕШЕВЛЕ ВСЕГО, ЧТО В НЁМ ЕСТЬ: `gemini-2.5-flash-lite` — $0.10 / $0.01 / $0.40 выход**, то есть выход втрое дешевле самой дешёвой нашей модели (`gpt-5.6-luna`, $1.20). ⛔ Брать в смету НЕЛЬЗЯ без двух проверок: 2.5-серия имеет **shutdown 16.10.2026** (строка выше) и уже даёт интермиттентный 404 при живом слаге, а качество/эхо на нашем материале не мерены ни разу. **(5) Прочее живьём:** `gemini-3.7 Flash` (у нас нет) — те же промо-$0.75/$3.75 до конца 2026; `gemini-3.5 Flash` $1.50/$0.15/$9.00; `gemini-3.5 Flash-Lite` $0.30/$0.03/$2.50. ⚠ **Общий урок тот же, что с DeepSeek:** промо-цены с датой окончания в пин попадают как постоянные и тихо завышают или занижают смету — у пина обязана быть дата И оговорка о промо. - **ПОПРАВКА (04.07, владелец): удалён только Anthropic (за дороговизну). OpenAI ОСТАЁТСЯ** (ключ есть — GPT-5 nano/mini). Живой набор ключей у бэкенда и полигона: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL (добавлен 09.07, 6ab92b5). Источник истины по стеку — `architecture/05-decisions-log.md` (D3) и Р4. Ранее эта строка ошибочно исключала OpenAI — исправлено оркестратором. diff --git a/eval/dovodka/zakhod.py b/eval/dovodka/zakhod.py index 9bf4d3c7..7807e66f 100644 --- a/eval/dovodka/zakhod.py +++ b/eval/dovodka/zakhod.py @@ -569,7 +569,15 @@ def cmd_dry() -> None: print(f" ИТОГО ${sub:.4f} · потолок {ph} ${ceil:.2f} · потрачено ${sp:.4f} → {mark}") tot += sub now = dt.datetime.now(dt.timezone.utc) - peak = now.hour in tuple(range(1, 4)) + tuple(range(6, 10)) + # ⚠ ПОПРАВКА 30.08: у вендора пик — ЕЩЁ И ТОЛЬКО ПО БУДНЯМ, а у нас этой оговорки не было. + # Дословно (`api-docs.deepseek.com/quick_start/pricing`, живое чтение 30.08.2026): «Peak hours + # are 01:00 - 04:00 and 06:00 - 10:00 UTC, Monday through Friday (all other hours are off-peak)». + # Поймано разведкой ландшафта: Bloomberg 23.08 писал о снятии пиковой цены на выходных, вендорская + # страница это подтверждает формулировкой. Без `weekday() < 5` риг звал воскресное утро ПИКОМ. + # ⚠ Это правка ТОЛЬКО ПЕЧАТИ: `peak` нигде, кроме этой сводки, не используется — цена клеток + # считается из пина ростера, а он ПИКОВЫЙ сознательно (D39.136: потолок обязан срабатывать + # раньше, а не позже). Ледждер не трогается. + peak = now.weekday() < 5 and now.hour in tuple(range(1, 4)) + tuple(range(6, 10)) print(f"\nВЕСЬ ЗАХОД: ${tot:.4f} по ТЕКУЩЕМУ пину ростера (пик).") print(f" Сейчас {now:%H:%M} UTC — {'ПИК' if peak else 'ОФФ-ПИК'}; вендорский офф-пик ровно " f"вдвое дешевле, то есть фактически спишется около ${tot if peak else tot / 2:.4f}.")