Коротко
Автор ChatRail заменил угадывание по самому новому уведомлению на выбор контекста через Jev, когда одновременно открыто несколько уведомлений. В тестах Jev был быстрым и дешёвым, а в симуляции корректно связал 12 из 12 ответов, но результаты пока не подтверждены реальными сообщениями пользователей.
Контекст
Автор — разработчик ChatRail, API для отправки разработчиками WhatsApp-уведомлений с контекстом и получения ответов, уже привязанных к исходному уведомлению. Прежние правила уверенно обрабатывали ответы на конкретное сообщение и случаи с одним ожидающим уведомлением, но при нескольких уведомлениях связывали ответ с самым новым, даже если он относился к более старому.
Главное
- ChatRail связывает входящие ответы WhatsApp с контекстом исходного уведомления, который затем передаётся webhook или AI для подготовки ответа.
- Прежние правила: точная привязка по кнопке ответа; выбор единственного ожидающего уведомления; при нескольких уведомлениях — выбор самого нового; при отсутствии ожидающих — ничего не связывать.
- Сравнивались Jev 1.13, Gemini 2.5 Flash Lite и GPT-5.6 Luna через OpenRouter; использовались 14 подготовленных случаев на нескольких языках, включая prompt injection.
- Точность выбора уведомления у всех трёх моделей составила 93%; во всех пяти случаях с неверным самым новым уведомлением модели выбрали правильно, старое правило — 0 из 5.
- Медианная задержка: Jev около 350 мс, Gemini 640–1000 мс, GPT-5.6 Luna 2,1–2,6 с. Цена на 10 000 сообщений: $0.25, $0.41 и $1.20–1.30 соответственно.
- В тесте на возможность ответить по контексту Jev получил 71%, GPT — 93–100%; эту задачу оставили модели, которая пишет ответ.
- В симуляции через реальные API, workers и код сопоставления Jev дал 12 правильных привязок из 12, все с вероятностью не ниже 0.97; 12 вызовов обошлись в $0.00027.
- Опция «ни одно из уведомлений» позволила Jev не привязывать к уведомлению посторонний вопрос и сообщение с инструкцией одобрить возврат.
- Jev вызывается только при нескольких открытых уведомлениях; при уверенности от 0.8 применяется выбор модели, иначе сохраняется резервная эвристика выбора самого нового уведомления.
- Функция запущена за флагом и доступна только подключениям, уже использующим управляемый AI; автор сообщает, что производственных случаев с несколькими открытыми уведомлениями пока не было.
Как сделано
Автор сравнил Jev 1.13, Gemini 2.5 Flash Lite и GPT-5.6 Luna через OpenRouter. Всем задавал вопрос о выборе подходящего уведомления; LLM работали в JSON-режиме при temperature 0. Тест включал 14 вручную подготовленных случаев на английском, испанском и романизированном урду, включая попытку prompt injection. Отдельно проверил интеграцию симуляцией через API, workers и код сопоставления: 12 контактов получали по два-три уведомления, а затем отвечали без кнопки ответа.
В рабочем процессе Jev поставлен между прежними правилами для единственного ожидающего уведомления и эвристикой «выбрать самое новое». Он может выбрать одно уведомление или ответить «ни одно». При уверенности не ниже 0.8 результат записывается как model_choice с вероятностью в качестве confidence. Если вызов не уверен, длится больше 2 секунд или завершается ошибкой, система использует прежнее правило выбора самого нового уведомления. Для точного ответа на сообщение и единственного ожидающего уведомления модель не вызывается. Функция включена за флагом и применяется только к подключениям, использующим управляемый AI.
Результаты
В тесте из 14 случаев Jev, Gemini и GPT-5.6 Luna правильно выбрали уведомление в 93% случаев; на пяти случаях, где последнее уведомление было неверным, все три модели справились во всех пяти, а старое правило — ни в одном. Медианная сквозная задержка Jev через OpenRouter составила около 350 мс против 640–1000 мс у Gemini и 2,1–2,6 секунды у GPT. Стоимость на 10 000 сообщений: $0.25, $0.41 и $1.20–1.30 соответственно. В симуляции Jev правильно связал 12 из 12 ответов, каждый выбор имел вероятность не ниже 0.97; 12 вызовов стоили суммарно $0.00027. Старое правило правильно связало 3 из 12. Возможность выбрать «ни одно» помогла не привязывать к уведомлению посторонний вопрос и сообщение с prompt injection. В тесте на определение, можно ли ответить по уведомлению, Jev набрал 71%, тогда как GPT — 93–100%.
Ограничения
В производстве пока не было ни одного сообщения, попавшего в сценарий с несколькими ожидающими уведомлениями, поэтому полевых данных нет. Наборы из 14 случаев и 12 контактов составлены автором и не являются независимой или большой выборкой; второй тест повторно использовал тексты из первого. Порог 0.8 выбран без настройки и пока не проверен на реальных низкоуверенных ответах: все тестовые выборы были не ниже 0.97. Задержки измерялись от компьютера автора через OpenRouter и включают сеть; это не чистое время модели. В худшем случае резервный путь может добавить до 2 секунд. Jev заметно уступил GPT в задаче оценки достаточности контекста, поэтому её оставили модели, формирующей ответ.
Что взять себе
- Для решений с фиксированным набором вариантов специализированная модель выбора может быть практичнее большой языковой модели, если важны задержка и цена.
- Сохраняйте детерминированные правила для очевидных случаев, а модель подключайте только там, где эвристика действительно ошибается.
- Предусматривайте вариант «ни один из вариантов» и резервный путь на случай низкой уверенности, задержки или сбоя модели.
- Высокие результаты на небольшом вручную составленном тесте — предварительный сигнал, а не подтверждение надёжности в эксплуатации.
Читать оригинал, если…
Откройте оригинал, если нужны детали тестовых сценариев, реализации интеграции и наблюдений за работой ChatRail после появления реальных случаев с несколькими открытыми уведомлениями.