Все статьи
Статья
11 июля 2026 г.6 мин

Боты поддержки: дёшево и быстро на Flash-моделях

Как собрать бота первой линии, который отвечает за доли секунды и не разоряет. Flash/Mini модели, стриминг, эскалация на человека.

Анна Величко


Боты поддержки: дёшево и быстро на Flash-моделях

Бот поддержки — это не место для флагманской модели. 90% обращений — это «как сбросить пароль», «где мой заказ», «какие способы оплаты». На таких вопросах разницы между тяжёлой и лёгкой моделью пользователь не заметит, а разница в счёте — на порядок.

Ставка на Flash/Mini

deepseek-flash, qwen-flash, gemini-flash — модели для массового дешёвого инференса. Отвечают за доли секунды, стоят копейки за 1M токенов. Их сильная сторона — не глубина рассуждений, а скорость и стабильность на типовых запросах, а именно это и нужно первой линии.

Стриминг обязателен

Пользователь в чате не должен смотреть на «бот печатает…» три секунды. Включайте stream=True — ответ пойдёт по мере генерации, воспринимается как мгновенный:

stream = client.chat.completions.create(
model="deepseek-flash",
messages=messages,
stream=True,
temperature=0.3,
)
async for chunk in stream:
token = chunk.choices[0].delta.content
if token:
await ws.send(token)

Низкая temperature (0.2–0.4) держит бота в рамках: меньше фантазий, больше предсказуемости. Для поддержки это то, что нужно.

RAG вместо памяти

Не заставляйте модель знать вашу базу знаний наизусть — она этого не умеет и начнёт выдумывать. Подкладывайте релевантные статьи из документации через эмбеддинги (bge-m3) и жёстко ограничивайте: «отвечай только по этим материалам, иначе передай человеку».

Эскалация на человека

Бот должен уметь сказать «не знаю» и позвать оператора. Оформите это как инструмент:

tools = [{"type": "function", "function": {
"name": "escalate_to_human",
"description": "Передать диалог живому оператору, когда бот не может помочь",
"parameters": {"type": "object", "properties": {
"reason": {"type": "string"}}, "required": ["reason"]},
}}]

Триггеры эскалации: три неудачных ответа подряд, упоминание возврата денег/жалобы, прямая просьба «дайте человека». Дешёвая модель отлично распознаёт такие сигналы — просто опишите их в system-промпте.

Грабли

  • Бот извиняется на каждую реплику. Пропишите в system: «не извиняйся без причины, отвечай по делу».
  • Забывает контекст диалога. Flash-модели с коротким контекстом теряют начало длинной переписки. Держите историю обрезанной до последних 8–10 реплик плюс краткое саммари.
  • Выдаёт цены и условия из головы. Всё, что меняется (тарифы, сроки), — только через RAG или инструмент, никогда из весов модели.

Сколько это стоит

Прикиньте: средний диалог — 5 реплик по ~300 токенов ответа. На Flash-модели это доли рубля за диалог. Даже 10 000 обращений в месяц обойдутся в сумму, которую окупает один несостоявшийся звонок живому оператору. 1 кредит = 1 ₽ — считайте прямо в рублях по логам.

Соберите MVP на одной Flash-модели с RAG и эскалацией, снимите метрику «доля диалогов, закрытых без человека», и оптимизируйте промпт под неё. Модель тут вторична — решает качество базы знаний и правил эскалации.