381 lines
37 KiB
YAML
381 lines
37 KiB
YAML
# Модели и цены TextMachine (Р4/Р5: состав и цены — ТОЛЬКО здесь, с датой
|
||
# проверки; код не знает ни одной цены).
|
||
#
|
||
# ⚠ ПЕРЕ-ПИН DeepSeek 2026-08-15 (вендор-сессия, строка 172 / D39.136). Вендор ввёл
|
||
# TIME-BASED прайсинг, наша схема цены ПЛОСКАЯ и его НЕ выражает → пишем ПИКОВЫЕ цены:
|
||
# потолок срабатывает раньше, а не позже; переплата резерва в офф-пик — осознанная цена
|
||
# простоты. Сноска (1) прайс-страницы, дословно (факт-чек 2026-08-15):
|
||
# «DeepSeek API pricing will be updated to peak / off-peak billing, with off-peak rates at
|
||
# half the peak rates. Peak hours are 01:00 - 04:00 and 06:00 - 10:00 UTC (all other hours
|
||
# are off-peak). The new prices take effect at 16:00 UTC on August 16, 2026»
|
||
# https://api-docs.deepseek.com/quick_start/pricing (таблица там же) · анонс 13.08
|
||
# https://api-docs.deepseek.com/news/news260813 + вендор-картинка /img/v4_260813_price_en.png
|
||
# ПИК за 1M (в таблицу ниже): flash $0.44 in / $1.32 out / cache-hit $0.014 · pro $1.32 / $3.96 / $0.044
|
||
# ОФФ-ПИК ровно ½ (НЕ пишем): flash $0.22 / $0.66 / $0.007 · pro $0.66 / $1.98 / $0.022
|
||
# Цены ЗАПИСИ в кэш у вендора нет ни на прайс-странице, ни в guides/kv_cache → cache_write_per_m: 0.
|
||
# ⚠ prices_checked бампнут по факт-чеку ТОЛЬКО DeepSeek — у остальных строк проверка
|
||
# 2026-07-10 (ниже), и их 120-дневный счётчик свежести уехал вместе с общим полем (пинг сдан).
|
||
#
|
||
# Источники проверки 2026-07-10 (D3-цепочка/канал B заведены пакетом №3; каждый
|
||
# слаг live-фактчекнут — /models И пробный вызов, правило двух направлений):
|
||
# DeepSeek ↑ СУПЕРСИДНУТО пере-пином 2026-08-15 (было v4-pro $0.435/$0.87, cache-hit $0.003625)
|
||
# Z.AI/GLM https://docs.z.ai/guides/overview/pricing (glm-5.1 $1.4/$4.4, cached $0.26)
|
||
# Kimi https://platform.kimi.ai/docs/pricing/chat-k26
|
||
# xAI https://docs.x.ai/docs/models (Grok 4.1 Fast retired 15.05.2026!)
|
||
# Gemini https://ai.google.dev/gemini-api/docs/pricing (3.1-pro-preview $2/$12 ≤200k, cache $0.20, output incl. thinking)
|
||
# Mistral https://mistral.ai/pricing/api (Large 3 = mistral-large-2512 $0.5/$1.5; FAQ "$2/$6" = legacy Large 2)
|
||
# OpenAI https://developers.openai.com/api/docs/models/gpt-5-mini (gpt-5-mini $0.25/$2.0, cached $0.025)
|
||
# Live-факты пакета №3 (2026-07-10, все HTTP 200 пробным вызовом, кроме отмеченного):
|
||
# • gemini-3.1-pro → 404 NOT_FOUND; callable слаг ТОЛЬКО gemini-3.1-pro-preview (D3-текст назвать -preview — пинг).
|
||
# • Gemini thinking-токены НЕ в completion_tokens (проба: completion=2, total=847 → 823 thinking в total_tokens,
|
||
# поля reasoning_tokens нет) → провайдер gemini reasoning:additive_total (адаптер деривит reasoning=total−prompt−completion,
|
||
# иначе mistral-класс слепоты потолка на mandatory-thinking апексе).
|
||
# • gpt-5-mini жив пробой (→ dated gpt-5-mini-2025-08-07), но снят с прайс-страницы (там gpt-5.4/5.5/5.6); кандидат D3, не в цепочке Ф1.
|
||
prices_checked: "2026-08-15"
|
||
|
||
# Fallback-якорь цены: неизвестная модель (например, фактическая модель после
|
||
# фейловера, которой нет в таблице) книжится по этой цене, никогда по $0.
|
||
default_model: deepseek-v4-flash
|
||
|
||
providers:
|
||
deepseek:
|
||
kind: openai
|
||
base_url: https://api.deepseek.com/v1
|
||
api_key_env: DEEPSEEK_API_KEY
|
||
reasoning: subset # thinking внутри completion_tokens
|
||
# ⚠ ПАРАМЕТРЫ СЭМПЛИНГА У ДУМАЮЩЕЙ МОДЕЛИ ИГНОРИРУЮТСЯ. Вендор-дока, снята живьём 2026-08-30
|
||
# (`curl` HTTP 200, страница 108 336 байт, sha256 `f28c4324…`; запись — `docs/experiments/00-provider-quirks.md`,
|
||
# раздел «Thinking / reasoning», нумерованный пункт 3 — читать ТАМ, а не здесь. ⚠ НЕ раздел
|
||
# «Параметры сэмплинга»: это другая таблица, и этой цитаты в ней нет): «Thinking mode does not support the `temperature`, `top_p`,
|
||
# `presence_penalty`, or `frequency_penalty` parameters… setting these parameters will not trigger an
|
||
# error but will also have no effect». Размышление у обеих моделей включено по умолчанию ⇒
|
||
# `temperature: 0.3`/`0.4` боевого ростера доезжают до провода и не делают НИЧЕГО.
|
||
# Параметр НЕ снят сознательно: `temperature` входит в `RequestHash`, и его удаление пере-купило бы
|
||
# каждую книгу в переводе ради нулевого изменения в ответах. «Настроить температуру редактора» —
|
||
# мёртвая ручка; звать надо ручку эффорта (`stages[].reasoning`).
|
||
# ⚠️ ЭХО-МИНА (трасса 2026-07-04, PROGRESS «Ответ Полигону»): на плотном CJK
|
||
# DeepSeek с thinking ВЫКЛ воспроизводимо возвращает ИСХОДНИК вместо перевода
|
||
# (тихий отказ, HTTP 200). Держится только тем, что reasoning:"off" через
|
||
# ReasoningNone — осознанный no-op (thinking остаётся ON по дефолту). Флаг
|
||
# включает fail-fast (config.echoMineViolation): нельзя завести deepseek
|
||
# capabilities.reasoning.off_extra_body:{thinking:{type:disabled}} — включит
|
||
# эхо в проде. ⚠️ ПОПРАВКА пака-17: оговорка «GLM с thinking:disabled безопасен (вход — русский
|
||
# черновик)» УСТАРЕЛА против D30.1 — редактор БИЛИНГВ, видит плотный CJK. Гейт echoMineViolation
|
||
# по-прежнему не стреляет по zai (флаг стоит только здесь), но экспозиция НЕ измерена: загрузка
|
||
# предупреждает громко (runner.sourceEchoExposure), ловит гейт эха (D19.2). Обобщение D19.1 п.2 на
|
||
# xai в ДАННЫЕ не вносил осознанно — это сняло бы grok-off-выключатель, чья цена (grok думает по
|
||
# дефолту, additive) — решение владельца, а не сессии.
|
||
echoes_when_thinking_off: true
|
||
# ⚠️ attempt_s — ПОЛ дедлайна, а не сам дедлайн: реальный считается от бюджета вызова
|
||
# (queue_slack_s + max_tokens/tok_s_floor, зажатый между attempt_s и attempt_max_s). Прежнее
|
||
# чтение «240 — это дедлайн» было верно ровно для ЧЕРНОВИКА и перенесено на редактора вслепую:
|
||
# 240 с — то, что вендорская формула 128 000 ток/час даёт для ~8.5k, а редактор бюджетируется на
|
||
# 16 000 с удвоением до 32 000, то есть на вызов, который в 240 с не уложится ни на какой скорости.
|
||
#
|
||
# tok_s_floor: 50 — ЗАМЕРЕНО по нашему же request_log, а не назначено. p10 скорости
|
||
# deepseek-v4-pro (самая медленная модель этого провайдера) = 51.40 ток/с на n=1745 строках
|
||
# 162 баз с непустыми completion_tokens и latency_ms; округление ВНИЗ до 50 объявлено здесь.
|
||
# Контроль: deepseek-v4-flash на тех же данных даёт p10 = 88.15 (n=6361), то есть пол держит обе.
|
||
# ⚠️ Замер берёт latency КОНЦА В КОНЕЦ, вместе с ожиданием в очереди, — значит он ЗАНИЖАЕТ
|
||
# реальную скорость генерации, и пол от него консервативен в правильную сторону.
|
||
#
|
||
# queue_slack_s: 600 — число ВЕНДОРА, не наше: DeepSeek документирует ранний 200 с пустыми
|
||
# строками, пока запрос ждёт планирования, и закрытие соединения, если инференс не начался за
|
||
# 10 минут (api-docs.deepseek.com/quick_start/rate_limit). Меньше ставить нельзя — это молча
|
||
# переигрывало бы принятый владельцем размен «ждать до ~20 минут» в сторону обрыва оплаченного.
|
||
#
|
||
# attempt_max_s: 1240 = 600 + 32000/50 — слак плюс максимальный грант С УДВОЕНИЕМ на полу.
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60, tok_s_floor: 50, queue_slack_s: 600, attempt_max_s: 1240 }
|
||
|
||
zai: # GLM, международный контур (docs.z.ai)
|
||
kind: openai
|
||
base_url: https://api.z.ai/api/paas/v4
|
||
api_key_env: ZAI_API_KEY
|
||
reasoning: subset
|
||
# tok_s_floor: 35 — ЗАМЕРЕНО тем же прибором, что и deepseek: p10 скорости glm-5 = 37.51 ток/с на
|
||
# n=647 строках request_log (≥100, как требует правило вывода), округление ВНИЗ до 35 объявлено
|
||
# здесь. Ниже вендорского дефолта 35.5, то есть ставит вызову чуть БОЛЬШЕ времени, а не меньше.
|
||
# queue_slack_s НЕ ставится: документированного z.ai числа ожидания до инференса у меня нет, а
|
||
# гадать правило запрещает — слак остаётся нулевым, как и был.
|
||
# ⚠ ОТСТУПЛЕНИЕ, ОБЪЯВЛЕНО: пол замерен по glm-5, а НЕ по glm-5.1, которая тоже ходит через этого
|
||
# провайдера и наследует то же число без собственного замера. Отступление принято потому, что
|
||
# направление ошибки безопасно: 35 ниже вендорского дефолта 35.5, то есть даже неверный для 5.1 пол
|
||
# даёт вызову БОЛЬШЕ времени, чем дефолт, а не меньше — то есть режет не вызовы, а только запас.
|
||
# Убрать отступление можно одним способом: собрать n≥100 строк request_log по glm-5.1 и объявить её
|
||
# собственный p10 здесь. До тех пор число читать как «пол провайдера по измеренной модели».
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60, tok_s_floor: 35 }
|
||
|
||
kimi: # API-хост — api.moonshot.ai (intl, НЕ .cn). Веб-консоль переехала
|
||
# platform.moonshot.ai → platform.kimi.ai, но API-эндпоинт остаётся
|
||
# api.moonshot.ai: api.kimi.ai НЕ резолвится (DNS fail, live-проба 2026-07-04
|
||
# /models: 000; moonshot.ai → 200 c kimi-k2.6). Прежний base_url был битый.
|
||
kind: openai
|
||
base_url: https://api.moonshot.ai/v1
|
||
api_key_env: KIMI_API_KEY
|
||
reasoning: subset
|
||
# tok_s_floor НЕ ставится: строк этого провайдера в нашем request_log НОЛЬ (замер по 162 базам —
|
||
# deepseek 8106, glm 647, mistral 14, kimi 0), а назначать скорость без замера правило вывода
|
||
# запрещает. Дедлайн считается от вендорского дефолта 128 000 ток/час, который медленнее всего,
|
||
# что мы мерили, и потому только УДЛИНЯЕТ вызов; движок пишет об этом WARN на первом же вызове.
|
||
# attempt_max_s: 1200 — не замер, а ПОЛИТИКА: ратифицированный владельцем предел ожидания ~20 мин.
|
||
# Он ничего не режет — дефолтный пол на удвоенном гранте 16 000 даёт 900 с.
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60, attempt_max_s: 1200 }
|
||
|
||
xai: # Grok — главный тир канала B (18+) + судья 18+; из редакторских ролей СНЯТ (D30.1 — reasoning-off no-op).
|
||
# ⚠️ КЛЮЧЕВАЯ ПОЛИТИКА (D27, супрсидит «чистый ключ» D19.4/D20.3): ЕДИНЫЙ XAI_API_KEY С data-sharing
|
||
# (промо) идёт на ВСЕ тесты И пилот И прод; data-sharing ОТКЛЮЧАЕТСЯ перед релизом (сверить механику
|
||
# с вендор-докой — чек-лист первого боевого прогона). Риски приняты владельцем (копирайт 蛊真人 в обучение —
|
||
# только свои тесты, для клиентских книг НИКОГДА; NSFW-история аккаунта). По ключу не проверяется.
|
||
kind: openai
|
||
base_url: https://api.x.ai/v1
|
||
api_key_env: XAI_API_KEY
|
||
reasoning: additive # xAI биллит reasoning ПОВЕРХ completion (проверено vojo); think-ON заблокирован до резерва в EstimateUSD (D6.2/F3)
|
||
# СПОСОБНОСТЬ ПО КОНТЕНТУ (D39.25/D39.26). Флаг `permissive: true` ОТСТАВЛЕН (падает громко):
|
||
# вместо булева «можно 18+» endpoint объявляет, КАКИЕ лейблы ему разрешено ПОЛУЧАТЬ, и книга
|
||
# маршрутизируется только в модели, чей набор её лейблы покрывает. Значения — ДАННЫЕ; движок не
|
||
# знает ни одного. ВОКАБУЛЯР РЕШЁН владельцем (D39.27): ПАРА `violence` / `sexually-explicit` —
|
||
# она сохраняет ратифицированную развязку D14 п.1 (ToS DeepSeek запрещает sexually explicit, но
|
||
# violence оставляет допустимым), то есть violence-книга не теряет dspro-редактора.
|
||
# ФАКТЫ ДОБЫТЫ полигоном по первоисточникам и ПОДПИСАНЫ владельцем 25.07 (D39.29/D39.30);
|
||
# цитаты — `experiments/00-provider-quirks.md` §«Право по ToS/AUP», вердикты даны ПЕР-ЛЕЙБЛУ.
|
||
# xAI AUP (Effective 2026-06-26) + Enterprise ToS (Last Updated 2026-05-12): в сексуальной семье
|
||
# названы только реальные лица (undressing/nudifying, порнографические подобия) и дети — взрослая
|
||
# художественная эротика НЕ названа ⇒ право есть. `violence` НЕ выдан: слов violen* в AUP 0 вхождений
|
||
# (чистое молчание, а молчание права не даёт). Пере-проверка: 2026-10-25 и перед первой explicit-книгой.
|
||
accepts_labels: [sexually-explicit]
|
||
# Эмпирика этого endpoint: главный пермиссив-тир канала B + reasoning-ON эскалация (D3/D19.1),
|
||
# первичный судья эротики (D22.6).
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60 }
|
||
|
||
# Anthropic убран из стека по решению владельца (04.07): дорого, в RU-контуре
|
||
# экономически недоступен (Р5), в eval не валидирован. Судья Р4 — Gemini
|
||
# (нативный адаптер, Фаза 2). Нативный Anthropic-адаптер в коде помечен
|
||
# DEPRECATED, но НЕ удалён — оставлен как референс нативного адаптера под
|
||
# Gemini Фазы 2 (см. provider_anthropic.go). Эскалация — не-Anthropic (Kimi/GLM).
|
||
|
||
gemini: # Google Gemini через OpenAI-совместимый слой (base .../v1beta/openai). Апекс канала A +
|
||
# судья violence/SFW Ф2 + премиум-эскалация редактора ЗА санитайзером (D30.1/30.3 — течёт преамбулой 6/6).
|
||
# ⚠️ Как судья 18+ ЭРОТИКИ НЕПРИГОДЕН (D22.6/exp11: 8× PROHIBITED_CONTENT, фильтр неконфигурируем — native
|
||
# НЕ спасает; первичный судья эротики = Grok). На violence/SFW Gemini-судья остаётся. OpenAI-слой достаточен
|
||
# для перевода/эскалации (фильтры OFF по дефолту у 3.x, кроме неконфигурируемого PROHIBITED_CONTENT — D21.9).
|
||
kind: openai
|
||
base_url: https://generativelanguage.googleapis.com/v1beta/openai
|
||
api_key_env: GEMINI_API_KEY
|
||
# reasoning:additive_total — thinking у Gemini биллится как output, но в OpenAI-слое НЕ попадает в
|
||
# completion_tokens и НЕ отдаётся полем reasoning_tokens (в отличие от xAI); виден ТОЛЬКО как
|
||
# total_tokens−prompt−completion (live-проба 2026-07-10: completion=2, total=847 → 823 thinking).
|
||
# Адаптер деривит их из total и биллит по output — иначе mandatory-thinking апекс слепил бы потолок.
|
||
reasoning: additive_total
|
||
# ⚠️ ОДНО системное сообщение на запрос. Конвейер строит ДВА (базовый промпт + инъекция банка
|
||
# памяти, render.go MessagesWithInjection), и этот слой второе не проносит: инъекция —
|
||
# глоссарий — пропадала БЕЗ ошибки, ответ приходил 200 и выглядел правильным переводом.
|
||
# ВЕНДОР-ОСНОВАНИЕ (ai.google.dev/api/generate-content, страница помечена 2026-08-17, снято
|
||
# 2026-08-28): в нативном GenerateContentRequest поле `systemInstruction` — ОДИН
|
||
# `object (Content)` (в той же таблице `contents[]` и `tools[]` несут суффикс повторяемого
|
||
# поля `[]`), а `Content.role` документирован как «Must be either 'user' or 'model'» ⇒ второму
|
||
# системному ходу в нативном запросе места нет вовсе. Что делает с ним OpenAI-совместимый
|
||
# шим, вендор НЕ документирует нигде (раздел «Current limitations» молчит и в живой странице,
|
||
# и в снимке 2026-08-21). Наша проба ($0, полигон 22.08) устанавливает, что они НЕ
|
||
# склеиваются и что инструкция ПЕРВОГО не исполняется; выживает ли второй — открыто и для
|
||
# решения безразлично: при любом чтении, кроме «склеиваются», два системных теряют текст.
|
||
# Поэтому склеиваем сами — это единственная форма, которая потерять не может.
|
||
capabilities:
|
||
system_messages: single
|
||
# attempt_s 300 — апекс думает дольше; как и везде, это ПОЛ. tok_s_floor не ставится по той же
|
||
# причине, что у kimi: строк gemini в нашем request_log ноль. attempt_max_s — предел ожидания,
|
||
# ратифицированный владельцем (~20 мин); дефолтный пол на удвоенном гранте 16 000 даёт 900 с.
|
||
timeouts: { attempt_s: 300, max_attempts: 3, backoff_cap_s: 60, attempt_max_s: 1200 }
|
||
|
||
openai: # OpenAI прямой ключ (D3: Anthropic убран, OpenAI ОСТАЁТСЯ). gpt-5-nano альт-черновик,
|
||
# gpt-5-mini кандидат-редактор/second-opinion судья — НЕ в дефолтной цепочке Ф1 (слот под Ф2).
|
||
kind: openai
|
||
base_url: https://api.openai.com/v1
|
||
api_key_env: OPENAI_API_KEY
|
||
reasoning: subset # gpt-5: reasoning_tokens ⊆ completion (OpenAI-спека), покрыто maxTokens
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60 }
|
||
|
||
mistral: # Mistral La Plateforme (base api.mistral.ai/v1). Переводчик-дефолт канала B (D19.1):
|
||
# 10/10 чисто на violence, policy 11.06.2026 без запрета adult, НЕ reasoning-модель → эхо-мины нет.
|
||
kind: openai
|
||
base_url: https://api.mistral.ai/v1
|
||
api_key_env: MISTRAL_API_KEY
|
||
reasoning: subset # mistral-large — не thinking-модель; reasoning-токенов нет
|
||
# ФАКТЫ ДОБЫТЫ и ПОДПИСАНЫ 25.07 (D39.29/D39.30; цитаты — `experiments/00-provider-quirks.md`).
|
||
# Mistral Usage Policy (Effective 2026-06-11, хост `legal.mistral.ai`): названы CSAM, NCII
|
||
# («intimate images … without the explicit consent»), sexual services — взрослая художественная
|
||
# эротика НЕ названа ⇒ право есть. `violence` НЕ выдан: §«Violence and threats» регулирует
|
||
# «promotes, incites, threatens, or glorifies» — пропаганду, а не изображение (D39.30 п.1).
|
||
# Эмпирика: переводчик-дефолт канала B (D19 п.1, 10/10 чисто на violence). Пере-проверка 2026-10-25.
|
||
accepts_labels: [sexually-explicit]
|
||
timeouts: { attempt_s: 240, max_attempts: 3, backoff_cap_s: 60 }
|
||
|
||
local: # ollama/llama-server на стенде (боевой env — memory textmachine-local-stand)
|
||
kind: local
|
||
base_url: http://127.0.0.1:11434/v1
|
||
model: huihui_ai/qwen3-abliterated:8b
|
||
max_tokens: 8192 # у ollama лимит покрывает thinking+ответ вместе
|
||
# РЕШЕНИЕ ВЛАДЕЛЬЦА 25.07 (D39.32): к локальному инференсу вендорских контентных политик НЕ
|
||
# применяется — наружу ничего не уходит (стенд), веса Apache-2.0 без контентных ограничений,
|
||
# Ollama ToS §4 признан неприменимым к локальному `ollama serve`. Переводим всё.
|
||
# `violence` сегодня инертен (лейбл книгам не назначается, D39.30 п.1) — стоит для полноты.
|
||
accepts_labels: [violence, sexually-explicit]
|
||
# Эмпирика: abliterated-скрининг / дешёвый фолбэк канала B (D3/D19.1, 8/10 ok) — не несущий редактор.
|
||
timeouts: { attempt_s: 600, max_attempts: 2, backoff_cap_s: 10 } # полигон: чанки 63–278 с
|
||
|
||
models:
|
||
deepseek-v4-flash:
|
||
provider: deepseek
|
||
# ПИК с 16.08.2026 16:00 UTC (пере-пин 15.08, шапка): $0.44 in / $1.32 out / cache-hit $0.014 за 1M.
|
||
# Было $0.14 / $0.28 / $0.0028 — рост ×3.1 / ×4.7 / ×5. Офф-пик ровно ½ — плоская схема его не
|
||
# несёт, держим пик (D39.136). Слаг тот же, версия весов вендора DeepSeek-V4-Flash-0731.
|
||
price: { input_per_m: 0.44, cached_per_m: 0.014, cache_write_per_m: 0, output_per_m: 1.32 }
|
||
capabilities:
|
||
# Floor per quirks (thinking ⊆ completion, subset): <8000 → reasoning eats the
|
||
# budget, content пуст, finish=length (НЕ отказ). Schema, not a comment (D24.3).
|
||
min_max_tokens: 8000
|
||
note: >-
|
||
Черновик (Р4). Автокэш по префиксу, отдельной цены записи нет.
|
||
deepseek-chat/reasoner отключаются 24.07.2026 — сюда не возвращаться.
|
||
|
||
deepseek-v4-pro:
|
||
provider: deepseek
|
||
# ПИК с 16.08.2026 16:00 UTC (пере-пин 15.08, шапка): $1.32 in / $3.96 out / cache-hit $0.044 за 1M.
|
||
# Было $0.435 / $0.87 / $0.003625 — рост ×3.0 / ×4.6 / ×12.1 (кэш-хит дороже всех: эскалация с
|
||
# горячим префиксом перестала быть почти бесплатной). Офф-пик ровно ½, плоская схема его не несёт.
|
||
# ⚠ Слаг тот же, но ВЕСА новые: вендор объявил MODEL VERSION DeepSeek-V4-Pro-0813 («Model names
|
||
# remain unchanged», news260813) — класс D39.61, поведение не сверялось (пинг сдан).
|
||
price: { input_per_m: 1.32, cached_per_m: 0.044, cache_write_per_m: 0, output_per_m: 3.96 }
|
||
capabilities:
|
||
# Floor (D24.3): без него хоп наследовал бюджет праймари (2048/3291 на приёмке этапа A)
|
||
# и вернул finish=length / 0 байт контента — эскалация впустую.
|
||
#
|
||
# 8000 → 16000 ПО ЗАМЕРУ мини-прогона 25.07 (10 глав, 14 edit-единиц): две единицы вернули
|
||
# finish=length на 8000 и прошли на ретрае с 16000 — **$0.0177, то есть 15.5% всего счёта
|
||
# прогона, ушло в две выброшенные генерации**. Размер текста тут ни при чём: единица с
|
||
# черновиком 8189 символов в 8000 УЛОЖИЛАСЬ, а с 6380 — нет; разница в длине РАЗМЫШЛЕНИЯ,
|
||
# которое у DeepSeek (reasoning: subset) считается ВНУТРИ completion_tokens и потому ест тот
|
||
# же бюджет, что и текст. Оценочный множитель max_output_ratio этого не знает и знать не
|
||
# может — на редакторской единице он всё равно даёт меньше флора.
|
||
#
|
||
# Асимметрия цены и решает: перебор бюджета БЕСПЛАТЕН (резервация транзитна, списание идёт по
|
||
# фактическому usage), недобор стоит ЦЕЛОЙ генерации. Поэтому флор ставится с запасом, а не
|
||
# впритык: 16000 против измеренных 10951 максимум.
|
||
# ⚠ Двигает max_tokens ⇒ request_hash ⇒ снапшот: правка = громкий --resnapshot.
|
||
min_max_tokens: 16000
|
||
note: >-
|
||
Эскалация черновика канала A, хоп 1 (D3): deepseek-эхо 25% на приёмочной 蛊真人 (D18) → single-hop
|
||
фолбэк с draft. Наследует deepseek: thinking ON (эхо-мина того же класса — echoes_when_thinking_off),
|
||
reasoning ⊆ completion (subset). Живьём 2026-07-10: /models ✓, chat 200 (reasoning_content, перевёл).
|
||
|
||
glm-5:
|
||
provider: zai
|
||
price: { input_per_m: 1.0, cached_per_m: 0.2, cache_write_per_m: 0, output_per_m: 3.2 }
|
||
# thinking-выключатель переехал из extra_body в capabilities.reasoning (D3.1):
|
||
# тело запроса байт-в-байт то же ({thinking:{type:disabled}} при reasoning=off),
|
||
# но теперь это единая wire-форма — и off_extra_body разблокирует think-ON
|
||
# эскалацию (D6.2) без второй ручки. Смена снапшота осознанная (--resnapshot).
|
||
capabilities:
|
||
reasoning:
|
||
control: extra_body_disable
|
||
off_extra_body: { thinking: { type: disabled } } # эмпирика полигона: thinking GLM — таймауты ×3
|
||
note: Редактор ru-стиля (Р4). Флагманы линейки уже GLM-5.1/5.2 ($1.4/$4.4) — пересмотреть к Фазе 2.
|
||
|
||
glm-5.1:
|
||
provider: zai
|
||
# $1.4/$4.4, cached $0.26 (факт. 2026-07-10, docs.z.ai/guides/overview/pricing).
|
||
price: { input_per_m: 1.4, cached_per_m: 0.26, cache_write_per_m: 0, output_per_m: 4.4 }
|
||
capabilities:
|
||
reasoning:
|
||
control: extra_body_disable
|
||
off_extra_body: { thinking: { type: disabled } } # как glm-5: thinking GLM — таймауты ×3 (полигон)
|
||
note: >-
|
||
Эскалация канала A, хоп 2 (D3), кросс-семейный к deepseek-хопу 1. Живьём 2026-07-10: /models ✓
|
||
(glm-4.5..5.2 листятся), chat 200 (thinking:disabled → reasoning_tokens=0). Флагман линейки vs glm-5.
|
||
|
||
kimi-k2.6:
|
||
provider: kimi
|
||
price: { input_per_m: 0.95, cached_per_m: 0.16, cache_write_per_m: 0, output_per_m: 4.0 }
|
||
# Альт-редактор (bake-off эксп-04, проиграл grok-4.3): принимает ТОЛЬКО temperature:1
|
||
# (иначе 400), ~11k reasoning tok/абзац. capabilities фиксируют квирк, чтобы edit-стадия
|
||
# на temp 0.4 не 400-ла; min_max_tokens закрепляет min-бюджет схемой (был комментарий).
|
||
capabilities:
|
||
temperature: { mode: force, value: 1 }
|
||
# Floor 16000 (D24.3): <16000 → reasoning съедает лимит, content пустой, finish=length.
|
||
min_max_tokens: 16000
|
||
note: Альтернативный редактор (Р4).
|
||
|
||
grok-4.3:
|
||
provider: xai
|
||
# $1.25/$2.50/1M (факт. 2026-07-04, docs.x.ai). cached_per_m=input: кэш-цену xAI
|
||
# не верифицировали, а для редактора (черновик — свежий вход на чанк) cache-hit≈0,
|
||
# поэтому консервативно не моделируем скидку — потолок не слепнет. Уточнит полигон.
|
||
price: { input_per_m: 1.25, cached_per_m: 1.25, cache_write_per_m: 0, output_per_m: 2.50 }
|
||
# Дефолт-редактор (bake-off эксп-04): temperature шлём; reasoning OFF даётся ТОЛЬКО явным
|
||
# reasoning_effort:"none" (control:effort + off_effort:none). Дефолт grok = low → омиссия
|
||
# заставляет думать: проба eval 05.07 (Chat Completions) — omission→444 reasoning-ток., "none"→0.
|
||
# control:none (off-by-omission) молча оставил бы low; control:effort/off_effort шлёт явный none.
|
||
capabilities:
|
||
temperature: { mode: send }
|
||
reasoning: { control: effort, off_effort: none }
|
||
note: >-
|
||
Главный пермиссив-тир канала B + судья 18+ ЭРОТИКИ (первичный для НЕ-grok переводов — D22.6: Gemini
|
||
fail-closed на графичной эротике, native не спасает). Из редакторов СНЯТ (D30.1 — reasoning-off no-op;
|
||
editor теперь glm-5-билингв). reasoning additive: think-ON только после резерва в EstimateUSD (D6.2/техдолг F3).
|
||
Ключ — единый с data-sharing, off перед продом (D27).
|
||
|
||
gemini-3.1-pro-preview: # ⚠️ слаг ИМЕННО -preview: gemini-3.1-pro → HTTP 404 NOT_FOUND (live 2026-07-10)
|
||
provider: gemini
|
||
# $2/$12 за 1M ≤200k (факт. 2026-07-10, ai.google.dev/gemini-api/docs/pricing; >200k тир $4/$18 —
|
||
# не моделируем, чанки книги ≤200k). Output ВКЛЮЧАЕТ thinking-токены (reasoning-as-output, D3.2/D6.3).
|
||
price: { input_per_m: 2.0, cached_per_m: 0.20, cache_write_per_m: 0, output_per_m: 12.0 }
|
||
capabilities:
|
||
# mandatory: thinking обязателен (thinking_budget:0 → HTTP 400, D6.3); адаптер молча глотает
|
||
# reasoning:"off", forced thinking биллится как output. Учёт токенов — provider gemini reasoning:additive_total.
|
||
reasoning: { control: mandatory }
|
||
# Floor 8000 (D24.3): mandatory-thinking съедает бюджет; <8000 → перевод обрезан.
|
||
# Раньше «дать max_tokens ≥8000» — комментарий; теперь схема (thinking ⊆ бюджета, additive_total).
|
||
min_max_tokens: 8000
|
||
note: >-
|
||
Апекс канала A / судья violence/SFW Ф2 / премиум-эскалация редактора за санитайзером (D30.1). min_max_tokens 8000
|
||
держит thinking внутри бюджета (резерв не слепнет; settle биллит thinking через additive_total). Как судья ЭРОТИКИ
|
||
непригоден (D22.6: PROHIBITED_CONTENT неконфигурируем, native не спасает — первичный судья эротики Grok). Живьём 2026-07-10: chat 200.
|
||
|
||
mistral-large-2512:
|
||
provider: mistral
|
||
# $0.5/$1.5 за 1M (факт. 2026-07-10, mistral.ai/pricing/api — Mistral Large 3, релиз дек.2025, Apache 2.0,
|
||
# 262K). ⚠️ Маркетинг-FAQ mistral.ai/pricing даёт generic "$2/$6" = legacy Large 2; per-model /pricing/api
|
||
# = $0.5/$1.5 (OpenRouter согласен) → разрешает D19-подозрение ($0.5/$1.5 при $2/$6 = 4×). cached=input
|
||
# консервативно (cache-read не моделируем; канал B — свежий вход/чанк, hit≈0, потолок не слепнет).
|
||
price: { input_per_m: 0.5, cached_per_m: 0.5, cache_write_per_m: 0, output_per_m: 1.5 }
|
||
# WS1 §1б / WS6 gate №4: mistral-large — агрессивный rate-limiter (~48% retry-fails под N-∥ @1.3s;
|
||
# токен-бакет/конкуренц-кап, тир-зависим — 00-provider-quirks §Транспорт). Пер-модельный семафор
|
||
# конкуренции волнового раннера ограничивает одновременные вызовы (транспорт-ось, НЕ снапшот).
|
||
# Значение — консервативный старт; пере-замерить на прод-тире (правило двух направлений). Свап-арм
|
||
# редактора mistral НЕ идёт через прод-путь без этого guard (ревью-2 F4).
|
||
rate_limit: { max_concurrency: 2, min_interval_ms: 0 }
|
||
note: >-
|
||
Переводчик-дефолт канала B (D19.1): 10/10 чисто на violence, policy 11.06.2026 без запрета adult, не
|
||
reasoning-модель (эхо-мины нет). Свап-арм редактора (WS6, за rate-guard). Полный wiring канала B — Ф2.
|
||
Полигон перепроверяет цену (D19.5б). Живьём 2026-07-10: /models ✓, chat 200.
|
||
|
||
gpt-5-mini: # кандидат-редактор/second-opinion судья (D3) — НЕ в дефолтной цепочке Ф1
|
||
provider: openai
|
||
# $0.25/$2.0, cached $0.025 (факт. 2026-07-10, developers.openai.com/api/docs/models/gpt-5-mini). Слаг жив
|
||
# (chat 200 → dated gpt-5-mini-2025-08-07), но снят с текущей прайс-страницы (там gpt-5.4/5.5/5.6) — пересмотр к Ф2.
|
||
price: { input_per_m: 0.25, cached_per_m: 0.025, cache_write_per_m: 0, output_per_m: 2.0 }
|
||
capabilities:
|
||
budget_field: max_completion_tokens # gpt-5: max_tokens → HTTP 400
|
||
temperature: { mode: omit } # gpt-5: temperature не принимается → HTTP 400
|
||
reasoning: { control: effort, off_effort: minimal } # reasoning ON выжигает бюджет → пустой ответ; шлём minimal
|
||
note: >-
|
||
Кандидат-редактор Р4 / second-opinion судья (D3). Не в дефолтной цепочке Ф1 (слот под Ф2).
|
||
Живьём 2026-07-10 — chat 200.
|
||
|
||
# claude-sonnet-5 / claude-opus-4-8 удалены вместе с провайдером anthropic
|
||
# (см. комментарий у providers выше). Судья Фазы 2 — Gemini: нативный адаптер для
|
||
# safety-off судьи 18+; для перевода/эскалации достаточно OpenAI-слоя (провайдер gemini выше).
|
||
|
||
local-qwen3-8b:
|
||
provider: local
|
||
price: { input_per_m: 0, cached_per_m: 0, cache_write_per_m: 0, output_per_m: 0 }
|
||
note: Скрининг/экстракция (Р4 — «спецслужба, не переводчик»). $0 допустим только для local-провайдера.
|