СЕРГЕЙ РЕВИН
← Все работы

Решение · боты и AI-функции

Даты без галлюцинаций: правила отвечают за даты, AI — за смысл

Языковые модели уверенно путают даты: «в пятницу после обеда», «через неделю в это же время». Когда мы отдали всё модели целиком, она совпала с эталоном лишь в 42 фразах из 65. Решение — гибрид: даты разбирает детерминированный парсер на правилах для трёх языков, а модель отвечает только за смысл и формулировку.

Как это выглядит

Макеты на демо-данных, без реальных данных

🗓️Фраза → разбор

ФразаДата (правила)Смысл (AI)
«созвон в пятницу после обеда»пт, 14:00Событие
«через неделю в это же время»+7 дн, то же времяЗадача
«с 14 до 15 завтра встреча»завтра 14:00–15:00Событие
«перенеси на час позже»—Перенос +1 ч
Кто что разбирает

Коротко

В проде
В боте hey, nooka; тот же подход — в его iOS-версии (в разработке)
Подходит
Любым ботам и ассистентам, которые создают задачи и события из живой речи
Нужно
Ничего особенного: парсер работает как отдельный сервис

Результат у клиента

  • 42 из 65

    фраз модель разобрала верно в одиночку — 64,6%, поэтому даты отданы правилам

  • 128

    шаблонов дат на русском, английском и испанском

  • 65

    фраз в эталонном корпусе — 100% прохождения как условие выпуска

Совпадение с эталонным корпусом из 65 фраз

Модель делает всё сама64,6%
Порог выпуска для гибрида100%

Как было

  • Модель путает дни недели, «следующую пятницу» и «эту», годы на стыке декабря и января.
  • Ошибка в дате незаметна, пока задача не всплывёт не в тот день.
  • Промптом это не лечится: модель вероятностная, а дата должна быть точной.

Что построено

Парсер на правилах

Отдельный сервис разбирает даты, диапазоны и время на трёх языках с учётом часового пояса пользователя, сезонов и смены года.

Чёткое разделение

Если парсер нашёл дату — используется она, а даты от модели игнорируются. Модель отвечает за тип сообщения, заголовок и цель переноса.

Эталонный корпус

65 живых фраз с ожидаемым результатом прогоняются перед каждым изменением. Пока не 100% — изменение не выходит.

Стек

  • Node.js
  • chrono-node
  • Регулярные выражения
  • Swift (iOS-порт)
  • AI-модели через API

Где это работает

Вопросы

Почему бы не улучшить промпт?

Мы пробовали: модель, которой отдали всё, совпала с эталоном в 64,6% фраз. Для дат нужна детерминированность — один и тот же ввод должен давать один и тот же результат.

А если фраза не подходит ни под одно правило?

Тогда используется дата от модели, но это редкий случай: большинство живых фраз покрывается правилами.

Похожая задача? Напишите — начнём с разбора процессов.

Написать в Telegram