1Задача
Новая витрина ИИ-ассистента отвечала странно. Спрашиваешь «загорелся чек, машина дёргается на разгоне» — отвечает про стук подвески на неровностях. Спрашиваешь «не заводится с утра» — отвечает про изношенные тормозные колодки.
Похоже на то, что модель не читает вопрос, а хватается за первый попавшийся пункт из подсказки. Я полез чинить: переписал промт, поменял модель на более крупную, перезапустил сервис, проверил, что настройки доехали до базы. Ответы оставались такими же нелепыми.
Хуже того, часть ответов приходила вообще из чужой области — про претензионный порядок и суд. Это выглядело как каскад ошибок в коде, и я стал искать их там.
2Действия
Помогла простая мысль: проверить то же самое другим способом. Я задал тот же вопрос напрямую с сервера, минуя свою консоль, — и получил абсолютно верный ответ: «чек» и рывки указывают на зажигание и питание, нужен сканер.
Разница была не в коде, а в дороге. Мои проверочные запросы уходили из консоли на Windows, и русские буквы в них портились по пути: до ассистента доезжал мусор вместо вопроса. Модель честно отвечала на то, что получила, — то есть ни на что, и брала первый пример из своей подсказки.
Обиднее всего, что это уже было записано у нас как известная особенность. Я просто не сверился с собственными записями и потратил час на поиск ошибки, которой не существовало.
Что сделали:
- проверки с кириллицей теперь делаются либо с сервера, либо прямо в браузере, на живой странице; - то, что нашлось за этот час по-настоящему (чужой запасной ответ и слабая модель), починили отдельно — это оказалось единственной реальной добычей.
3Решение
Витрина отвечает верно, и проверена она так, как её увидит человек: нажатием на живой странице, а не запросом из консоли.
Вывод, который дороже конкретной поломки: когда результат выглядит необъяснимо, первым делом проверьте инструмент проверки, а не то, что он проверяет. Ошибка в измерении выглядит точно так же, как ошибка в системе, — только чинится в другом месте.