Делал ассистента для ветеринарной аптеки. Сценарий простой: на сайт заходит хозяин животного, пишет что случилось, бот советует препарат из ассортимента аптеки.
Первое решение, которое напрашивается — берём GPT-4, скармливаем вопрос, возвращаем ответ. На демо это выглядит красиво: нейросеть бойко рассуждает, советует, добавляет «обратитесь к ветеринару если…». Заказчик доволен, я доволен.
И тут я представил картинку. Хозяйка пишет боту: «у щенка два месяца, понос второй день, что дать?» Бот, опираясь на свои общие медицинские знания, бодро советует препарат. Хозяйка идёт в аптеку, покупает, даёт щенку. У препарата есть противопоказание по возрасту, которое нейросеть не учла. Щенок умирает. Хозяйка идёт в суд. Суд идёт к владельцу аптеки. Владелец идёт ко мне.
После этой картинки я переделал архитектуру. До нейросети теперь стоят два слоя, и они важнее самой нейросети.
Первый слой — поиск только по реальному ассортименту аптеки. Бот не выдумывает препараты из своих обучающих данных. Он берёт прайс конкретной аптеки и ищет в нём — через семантический поиск и обычный текстовый. Если препарата у аптеки нет — нейросеть про него не знает. Это сразу отрезает большую часть рисков.
Второй слой — фиксированные правила безопасности. Их пишет ветврач заказчика, не нейросеть. Например: возраст животного меньше определённого порога — стоп, никаких советов, только «срочно к ветеринару». Беременность — стоп. Симптомы, похожие на отравление — стоп. Правила это просто if-then в коде, никакой магии.
И только после этих двух слоёв подключается GPT. Его роль — взять отобранный список препаратов с инструкциями и красиво всё сформулировать для покупателя. Он не решает что можно, а что нельзя. Он рассказчик, не врач.
Принцип, который я для себя из этого вынес: AI отвечает голосом продукта, но не мозгом. Мозг — это правила, написанные экспертом и подписанные кровью. Если поменять местами, то рано или поздно кто-то пострадает.
