1Задача
Мы собирали демо ИИ-ассистента под нишу, в которой раньше не работали, — автосервис. Способ обычный: берём готовую витрину (ассистент юриста), меняем тексты, промт и значки, выкладываем.
Витрина заработала: на вопрос про стук в подвеске ассистент отвечал по делу. А потом ферма оказалась занята, сработал запасной ответ, и клиент автосервиса прочитал следующее:
> «Такие ситуации обычно решаются в претензионном порядке, а затем через суд > или надзорный орган. Сейчас: зафиксируйте факты письменно, сохраните договор, > переписку и платёжные документы…»
Это текст юридической витрины. Он лежал в спецификации, которую мы копировали, и мы его не заметили: запасной ответ не виден, пока всё работает.
Рядом нашлись и другие следы чужой ниши: в шапке страницы стояла лапка 🐾 от помощника для питомцев, а в пяти шагах — собака, дом и стетоскоп. На витрине автосервиса это видно сразу и говорит клиенту ровно одно: страницу собрали не для него.
2Действия
Разобрались, почему свой текст не встал на место чужого. В сборщике спецификации наши ключи перечислялись первыми, а распаковка образца стояла после них — и молча перекрывала всё, что мы задали. Ошибка тихая: программа не падает, тесты не краснеют, а витрина отвечает чужими словами.
Что сделали:
- перевернули порядок: из образца берётся только то, чего мы не задали сами; - написали свой запасной ответ — про приёмку машины, а не про суд: что описать мастеру, что проверить до приезда, и честную оговорку, что при горящем «чеке» причину без сканера не назовёт никто; - значки шагов вынесли в спецификацию ниши: теперь витрина задаёт их сама, а не наследует от прототипа; - закрыли это двумя тестами: проверяют, что от чужой ниши не осталось ни лапки, ни собаки, ни стетоскопа.
Заодно всплыла вещь важнее косметики. Промт под нишу был написан правильным тоном и оказался бесполезным по существу: на «горит чек, машина дёргается» ассистент уверенно рассказывал про подвеску. Пришлось добавить в промт опору — короткий список «симптом → узел»: стук на неровностях это подвеска, хруст в повороте ШРУС, чек с рывками зажигание и питание. После этого ответы стали по делу.
И третье: маленькая модель на технической нише отвечает быстро и неправильно. Крупная отвечает верно и медленнее — пять-шестнадцать секунд вместо трёх. Сделали так, чтобы модель выбиралась под нишу, а не одна на все витрины сразу.
3Решение
Витрина живая: demo.smittmediagroup.ru/avtoservis/. Стук в подвеске — подвеска и что смотреть первым; «чек» с рывками — зажигание и питание, нужен сканер; ТО на 90 тысячах — масло, четыре фильтра, свечи, осмотр тормозов.
Все 242 теста кабинета зелёные, добавлено три новых.
Общий вывод короче всей истории: при копировании готового решения проверять надо не то, что видно, а то, что показывается при отказе. Витрину смотрят, когда всё работает. Клиент увидит её в тот момент, когда что-то сломалось.