Привет, Хабр! Меня зовут Элина Тедеева, и я тимлид команды внедрения в команде Just AI.
В идеальном мире разработка бота или голосового ассистента начинается с технического задания — именно оно должно определять все этапы: от идеи до реализации. К сожалению, техническим заданием или даже простым описанием функциональных требований зачастую пренебрегают. А бывает еще хуже – когда техническое задание коллективно пишут люди, которые что-то знают-видели-слышали о ботах. В таком случае ТЗ напоминает письмо родителям от дяди Федора из мультфильма «Трое из Простоквашино» – огромное количество противоречащих друг другу пунктов. О том, почему ТЗ нельзя пренебрегать, как его грамотно составить и какие подводные камни могут встретиться в процессе, я расскажу в этой статье.
![](https://habrastorage.org/getpro/habr/upload_files/77b/e81/456/77be814567580eca18cb8cc7fd77b8e6.jpg)
Что нужно для написания технического задания для разработки ботов?
Цель проекта. Зачем создается этот бот? Чат-боты и голосовые ассистенты могут выполнять различные функции: от ответов на простые вопросы до выполнения сложных задач, таких как заказ товаров или открытие финансовых продуктов. Целью проекта должно быть определение того, что именно заказчик ожидает от бота.
Например, большая корпорация решила сделать автоматизированный онбординг своих сотрудников с помощью чат-бота. Цель такого проекта – сократить время и усилить эффективность процесса приема новых сотрудников, что в итоге приведет к повышению удовлетворенности новых работников, улучшению рабочего процесса HR-команды и увеличению продуктивности компании.
Целевая аудитория проекта. Для кого создается бот? От этого будет сильно зависеть формат коммуникации с пользователями: обращаться на «ТЫ» или на «ВЫ», придерживаться делового стиля коммуникации или позволять себе ироничные реплики, интегрировать ли развлекательный контент и т.п.
Функциональность решения. Необходимо определить, какие возможности должны быть реализованы в чат-боте или голосовом ассистенте. Например, система может обладать способностью отвечать на вопросы, предлагать советы или даже имитировать human-like разговоры. Здесь важно учесть требования к функциональности от заказчика, изучить бриф, который заказчик заполняет на старте, а также результаты встреч и обсуждений, которые нужно проводить не только с ответственным лицом, но и с техническими специалистами.
Часто мы сталкивались с ситуацией, когда после подписания договора и старта активной фазы разработки, ИТ-департаменты заказчиков урезали половину функциональных требований, так как в их инфраструктуре не было технических возможностей для поддержки такого функционала. Самый простой пример – возможность перевода на оператора, для которого в текстовом решении, например, нужно ПО «Рабочее место оператора».Риск-тематики и триггерные слова. В каждом боте должно быть предусмотрено срабатывание определенных реплик при возникновении конфликта. Риск-тематики зависят от области применения бота: где-то триггер-фразой может быть «Я подам на вас в суд», где-то «Я немедленно сменю провайдера». Незамедлительный перевод диалога на оператора нужен и в случае использования нецензурной лексики для того, чтобы сгладить негатив. Такой функционал нужно продумывать на этапе написания технического задания.
Производительность. Например, если чат-бот должен обслуживать большое количество пользователей одновременно, то он должен быть способен быстро и эффективно обрабатывать запросы. Требования к производительности могут включать ограничения по времени ответа или объему данных, поэтому важно помнить, что если заказчик говорит о высокой нагрузке, то неплохо бы учесть в техническом задании проведение нагрузочных тестов для оптимизации системы или увеличения выделенных ресурсов.
Интеграции со сторонними системами. Чат-бот или голосовой ассистент могут быть интегрированы с внешними сервисами, такими как почтовые службы, платежные системы, базы данных или CRM-системы. Требования к интеграциям и передаче данных должны быть четко определены и детально проработаны, так как маленькое несоответствие формата интеграционных данных может полностью поменять этап проектирования будущего бота или привести к срыву сроков и увеличению бюджета проекта.
Используемые технологии. При реализации голосовых ассистентов немаловажную роль играет выбор поставщиков распознавания и синтеза речи. При низком качестве распознавания бот будет получать на вход непонятные для него данные, а следовательно, и давать некорректные ответы. Синтез же влияет на восприятие бота человеком – его голос, интонация, тембр речи. Важно, чтобы заказчик послушал разные варианты синтезированных голосов, а также синтез названия своей компании – обычно на это обращают внимание в первую очередь.
Безопасность решения. Техническое задание должно включать требования к защите данных и конфиденциальности. Например, если бот будет работать с персональными данными пользователей, необходимо предусмотреть соответствующие механизмы шифрования и аутентификации. С проработкой аутентификации может возникнуть огромное количество технических деталей, которые также нужно обговаривать на берегу и фиксировать в документах. Например, поставка в инфраструктуру заказчика, которая потребует закупки «железа», выделение команды эксплуатации после установки, регулярных обновлений системы и ее мониторинга.
Личность чат-бота. Наша практика показывает, что наличие у бота имени, истории, характера повышает его рейтинг среди пользователей и в какой-то момент приводит к тому, что к боту начинают относиться как к полноценному ассистенту, называют его по имени и воспринимают как личность.
Персонализированное общение. Не секрет, что персонализация повышает уровень клиентского опыта. Если системы заказчика предусматривают возможность передавать данные клиента и обращаться к нему по имени, это также важно отразить в техническом задании.
Использование нейросетей и генеративных моделей. Наша новая реальность. Нейросети могут добавить вариативности или развлекательного контента в ваше решение. Почему нужно указывать их использование в техническом задании? Потому что использование нейросетей предполагает множество аспектов, которые нужно учесть и разработчику, и заказчику: наличие данных для дообучения, возможность интеграции с нужным API, ресурсы для тестирования и отладки интеграции нейросетей, вопросы обеспечения защиты данных и т.д.
Критерии успеха. В современном мире важны показатели, и боты не исключение. В техническом задании важно зафиксировать ожидаемые заказчиком показатели, методы их расчета, трактовки, а также пути их достижения. Во всех проектах KPI разный и зависит от множества факторов.
Какие подводные камни могут возникнуть при разработке?
Одним из самых сложных аспектов является обучение и дообучение модели ИИ – качественная предобработка данных, проектирование архитектуры решения, разработка и применение алгоритмов машинного обучения, а также непрерывные тесты для улучшения модели.
На первый взгляд кажется, что внедрение бота и есть финальный результат, но это только начало пути, ведь дальше следует регулярный анализ, дообучение, мониторинг автоматизации и так по кругу. Чем чаще бота дообучать, (желательно это делать на «живых» логах) тем быстрее он будет показывать высокие результаты по автоматизации, а следовательно, и повышать лояльность пользователей бота и разгружать персонал.
Этап анализа логов также поможет выявить новые тематики, которые ранее не были предусмотрены в боте, но при этом часто запрашиваются со стороны пользователей. Такое бывает при реализации ботов для первой линии поддержки как в тексте, так и в голосе. Я рекомендую обязательно предусмотреть этот этап при планировании работ и не бросать работу с ботом после вывода его в прод.
Взаимодействие с пользователем может быть сложным. Не все запросы будут иметь однозначный смысл, и бот должен быть готов к обработке неожиданных сценариев коммуникации: двоякая трактовка, ирония или слишком длинный запрос – все это нужно предусмотреть. Тестирование и отладка являются критическим шагом, поскольку они работают в реальном времени, а значит должны стабильно помогать решать вопросы, с которыми обращаются пользователи.
А как же узнать мнение пользователей о боте? Тут мы вспоминаем про функционал «сбор обратной связи» после диалога с пользователем. Его можно проводить в разных форматах: просто вопрос «Помог ли я вам?», запрос «Оцените качество моего ответа от 1 до 5», выдача смайликов или звездочек на выбор. Все это даст понимание об уровне удовлетворенности целевой аудитории от коммуникации с ботом и поможет выявить проблемные места.
И последнее: храните техническое задание и документацию проекта на «видном»месте для вашей команды, чтобы они всегда могли к нему обратиться.