Какую нейросеть выбрать для чат-бота: цена диалога, кэш и проверка
Чат-бот платит не за вопрос, а за весь диалог с историей. Разбираем критерии выбора модели, считаем 1 000 диалогов на трёх моделях с кэшем и без и показываем, как самому замерить задержку.
8 мин · · модели · экономия
Вопрос «какую нейросеть выбрать для чат-бота» встаёт у каждого, кто делает бота поддержки, консультанта на сайте или ассистента в Telegram. Сравнивать модели по цене за 1M токенов недостаточно: бот при каждом ответе заново отправляет инструкцию и историю, и счёт растёт с длиной разговора. Ниже — критерии выбора, расчёт стоимости 1 000 диалогов на трёх моделях с кэшем и без и код, которым можно самому замерить задержку.
Какую нейросеть выбрать для чат-бота: пять критериев
1. Цена диалога, а не цена токена
API не помнит прошлые сообщения. Чтобы бот отвечал с учётом контекста, при каждом ходе вы отправляете системный промпт плюс всю историю. Поэтому вход растёт с каждым ходом, и основная часть счёта — это повторно отправленные инструкции и история.
Стоимость одного запроса: (вход × цена входа + выход × цена выхода) / 1 000 000. Стоимость диалога — сумма по всем ходам. Считайте на своём типичном сценарии: длина инструкции, число ходов, длина реплик.
2. Контекст
У всех моделей в каталоге Zukko контекст 1M токенов, кроме glm-5.3 и glm-5.3-flash — у них 128K. Для обычного чата этого хватает с запасом. Контекст становится критерием, если вы подкладываете в промпт большие документы или храните очень длинную историю. Даже когда влезает, длинный контекст стоит денег: обрезайте старую историю или сворачивайте её в краткое резюме.
3. Индекс силы
В каталоге у моделей есть индекс силы — Intelligence Index от Artificial Analysis, сводный балл по бенчмаркам. Значения: Claude Opus 5.5 — 58, Claude Fable 5.1 — 53, GPT-6 Astra — 53, GPT-6.1 Sol — 52, Qwen 3.8 Max — 45, GLM 5.3 — 45, GPT-5.6 Terra — 42, GLM 5.3 Flash — 42, Gemini 3.8 Flash — 41, Qwen 3.8 Flash — 40, DeepSeek V4.1 Flash — 39, GPT-6 Luna — 38, DeepSeek V4 Pro — 36. Для Claude Sonnet 5 значения индекса в каталоге нет.
Индекс усреднён по множеству задач и не отвечает на вопрос, хорошо ли модель ведёт именно ваш диалог. Используйте его для первичного отбора, а решение принимайте по проверке на реальных переписках.
4. Задержка
Для чата важно, как быстро появляется первое слово ответа. Задержка зависит от модели, длины входа и ответа и текущей загрузки у провайдера, поэтому чужим цифрам не доверяйте — замерьте сами (код ниже). Два правила, которые работают всегда:
- Включайте стриминг (
stream: true): пользователь видит, как ответ печатается, а не ждёт его целиком. - Ограничивайте
max_tokens: длинный ответ дольше генерируется и дороже стоит.
5. Картинки на вход
Если пользователи присылают скриншоты или фото, нужна модель с поддержкой изображений. В каталоге картинки на вход принимают, например, claude-sonnet-5, claude-opus-5-5, gpt-6.1-sol, qwen3.8-max, deepseek-v4-pro. Не принимают: deepseek-v4.1-flash, gemini-3.8-flash, gpt-6-luna, glm-5.3, glm-5.3-flash и другие с отметкой «нет» в каталоге.
Кэш системного промпта
Системный промпт бота — инструкции, тон, правила, справка о компании — одинаков в каждом запросе. Провайдеры умеют кэшировать такой повторяющийся префикс, и чтение из кэша стоит дешевле обычного входа. Как это учитывается в Zukko:
- Claude — скидка за кэш работает в Anthropic-формате (
/v1/messages, Anthropic SDK). Запись в кэш стоит дороже входа, чтение — дешевле. Кэш включается разметкойcache_control. По документации Anthropic кэш живёт 5 минут по умолчанию и продлевается при каждом использовании, а минимальная длина кэшируемого префикса для Claude Sonnet 5 — 1 024 токена. В OpenAI-формате весь вход Claude идёт по цене входа. - GPT — кэширование у OpenAI включено по умолчанию; минимальный префикс для GPT-5.6 и новее — 1 024 токена. Попадание видно в
prompt_tokens_details.cached_tokensв обоих форматах. Запись в кэш отдельно не списывается: первый запрос идёт по цене входа. - DeepSeek, GLM и другие — чтение кэша учитывается, если поставщик сообщает его в ответе; запись — нет. У
deepseek-v4.1-flashв каталоге цена чтения кэша равна цене входа ($0.013 за 1M токенов, цены на 7 октября 2026), так что на счёт кэш не влияет.
Пример запроса к Claude с кэшем системного промпта через Anthropic SDK:
from anthropic import Anthropic
client = Anthropic(base_url="https://api.zukko.pro", api_key="fetch_ваш_ключ")
with open("bot_instructions.txt", encoding="utf-8") as f:
SYSTEM_PROMPT = f.read() # около 3 000 токенов
def reply(history):
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=500,
system=[{"type": "text", "text": SYSTEM_PROMPT, "cache_control": {"type": "ephemeral"}}],
messages=history,
)
u = msg.usage
print("вход:", u.input_tokens, "запись кэша:", u.cache_creation_input_tokens,
"чтение кэша:", u.cache_read_input_tokens, "выход:", u.output_tokens)
return msg.content[0].textЕсли оба поля кэша нулевые, промпт не закэшировался — например, он короче минимального префикса. Подробнее о ценах кэша — в документации о лимитах ключей и кэше.
Расчёт: 1 000 диалогов на трёх моделях
Цены на 7 октября 2026, $ за 1M токенов. Модели: deepseek-v4.1-flash (индекс 39), gpt-6.1-sol (52) и claude-sonnet-5 (индекса в каталоге нет).
Сценарий диалога: системный промпт 3 000 токенов, 6 ходов, вопрос пользователя 50 токенов, ответ бота 200 токенов. На ходу k вход = 3 000 + 250 × (k − 1) + 50.
- Вход за диалог: 6 × 3 050 + 250 × (0 + 1 + 2 + 3 + 4 + 5) = 18 300 + 3 750 = 22 050 токенов.
- Выход за диалог: 6 × 200 = 1 200 токенов.
Без кэша, формула на 1 000 диалогов: 1 000 × (22 050 × вход + 1 200 × выход) / 1 000 000.
| Модель | Вход / выход | Расчёт | 1 000 диалогов |
|---|---|---|---|
deepseek-v4.1-flash | 0.013 / 0.038 | 22 050 × 0.013 + 1 200 × 0.038 = 286.65 + 45.6 | $0.33 |
gpt-6.1-sol | 0.27 / 1.32 | 5 953.5 + 1 584 | $7.54 |
claude-sonnet-5 | 0.4 / 2 | 8 820 + 2 400 | $11.22 |
С кэшем системного промпта. Из 22 050 токенов входа 6 × 3 000 = 18 000 — это повторяющийся системный промпт, остальные 4 050 — история и вопросы.
claude-sonnet-5в Anthropic-формате (чтение кэша $0.05, запись $0.5). Если кэш записывается заново в начале каждого диалога: 4 050 × 0.4 + 3 000 × 0.5 + 15 000 × 0.05 + 1 200 × 2 = 1 620 + 1 500 + 750 + 2 400 = 6 270 → $6.27 на 1 000 диалогов. Если диалоги идут плотно и кэш не успевает истечь, все 18 000 токенов читаются из кэша: 1 620 + 900 + 2 400 = 4 920 → $4.92.gpt-6.1-sol(чтение кэша $0.013, запись не списывается). Первый ход по цене входа, следующие пять читают промпт из кэша: (22 050 − 15 000) × 0.27 + 15 000 × 0.013 + 1 584 = 1 903.5 + 195 + 1 584 = 3 682.5 → $3.68. При тёплом кэше: 4 050 × 0.27 + 18 000 × 0.013 + 1 584 = 1 093.5 + 234 + 1 584 = 2 911.5 → $2.91.deepseek-v4.1-flash— цена чтения кэша равна цене входа, остаётся $0.33.
Для сравнения: самая сильная по индексу claude-opus-5-5 (58, $0.8 / $4) в том же сценарии без кэша — 22 050 × 0.8 + 1 200 × 4 = 17 640 + 4 800 = 22 440 → $22.44 на 1 000 диалогов.
Выводы из расчёта:
- Чем длиннее системный промпт и диалог, тем больше доля повторного входа и тем сильнее влияет кэш.
- Для Claude в чат-боте с длинной инструкцией имеет смысл Anthropic-формат — иначе скидки за кэш не будет.
- GPT может кэшировать и историю диалога, тогда реальная стоимость ниже расчёта; проверяйте по
cached_tokens.
Это пример расчёта: цены у поставщиков меняются, пересчитывайте на своих цифрах. Актуальный список и цены — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете.
Как замерить задержку самому
Скрипт отправляет один и тот же вопрос нескольким моделям в режиме стриминга и измеряет время до первого текста и до конца ответа:
import time
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_ваш_ключ")
def measure(model, question):
start = time.perf_counter()
first = None
stream = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": question}],
max_tokens=300,Проверка if chunk.choices обязательна: в конце потока Zukko присылает отдельный фрагмент с usage и пустым choices. Запускайте замер несколько раз и в разное время суток — одиночный замер мало что говорит.
Как выбрать: порядок действий
- Отсейте модели по жёстким требованиям: картинки на вход, длина контекста.
- Посчитайте цену диалога для 2–3 кандидатов на своём сценарии, с кэшем и без.
- Соберите 30–50 реальных диалогов с правильными ответами и прогоните кандидатов с одним и тем же промптом.
- Замерьте задержку скриптом выше.
- Возьмите самую дешёвую модель, которая проходит ваш порог качества. Для сложных вопросов можно добавить эскалацию на более сильную — схема описана в статье о каскаде моделей.
Готовый бэкенд бота со стримингом и лимитами разобран в статье чат-бот для сайта на нейросети. Для такого сравнения хватит одного ключа: все модели вызываются через один эндпоинт, меняется только model. Создать ключ можно на странице API-ключей.
Частые вопросы
Почему диалог стоит дороже, чем сумма вопросов и ответов?
Потому что при каждом ходе модель заново получает системный промпт и всю историю. В расчёте выше пользователь написал 300 токенов, бот — 1 200, а входа набралось 22 050 токенов.
Нужен ли кэш, если системный промпт короткий?
Если промпт короче минимального кэшируемого префикса (1 024 токена для Claude Sonnet 5 и для GPT-5.6 и новее по документации поставщиков), кэш не сработает. Для коротких промптов кэш на счёт почти не влияет.
Можно ли сменить модель бота без переписывания кода?
Да. Через Zukko любую модель можно вызвать в OpenAI- или Anthropic-формате, поэтому для смены достаточно поменять model. Держите имя модели в конфиге и учтите, что для скидки за кэш Claude нужен Anthropic-формат.
Какую модель брать для бота на русском языке?
Данных, которые позволяли бы честно ранжировать модели по русскому языку, у нас нет. Прогоните 30–50 реальных переписок на 2–3 кандидатах и сравните ответы.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Цена Grok API: расчёт для Grok 4.7, 4.6 и 4.5 на примерахСчитаем стоимость запросов к Grok 4.7, 4.6 и 4.5 в Zukko на трёх сценариях и сравниваем с официальными ценами xAI. Формулы видны, арифметика проверяема.
- DeepSeek API бесплатно: есть ли халява и сколько стоит минимумБесплатного доступа мы не обещаем, но минимум очень низкий. Считаем по формуле, сколько запросов помещается в один доллар.
- Цена DeepSeek API: расчёт стоимости V4 Pro и V4.1 Flash на примерахСчитаем, сколько стоят запросы к трём моделям DeepSeek: формула, три типовых сценария на 10 000 запросов, роль кэша и скрипт для подсчёта по usage.
- Агенты opencode: как настроить роли, модели и инструментыСвой агент в opencode — это роль, модель и список разрешений. Показываем конфиг и пример, где рутину делает дешёвая модель, а код правит сильная.