Создание бота с распознаванием речи
Last updated
Last updated
В данной пошаговой инструкции на примере мы рассмотрим, как создать небольшого Агента для интернет-магазина с распознаванием речи. Агент будет отвечать на часто задаваемые вопросы касательно онлайн-заказа, доставки товара и т.д.
Интент — намерение Собеседника, содержащееся в Реплика, сказанной Агенту.
Реплика — сообщение Собеседника, попавшее в Слот NLU.
Обучающая выборка — это фразы с одинаковым или близким смыслом, с помощью которых человек может высказать конкретное намерение (Интент), и на которых обучается модель NLU с целью распознавания этих и всех прочих вариантов высказывания того же намерения (Интента). От качества Обучающая выборка напрямую зависит качество распознавания в Агенте.
Первым делом необходимо создать Интенты.На Платформа Интенты представлены в виде наборов Обучающая фраза.В процессе создания Интентов вам понадобится таблица с прописанными Интентами и ответами к Интентам — таблица доступна по ссылке.
Зарегистрируйтесь на Платформа или войдите в уже существующий аккаунт по ссылке https://admin.chatme.ai/. Вы окажетесь на странице Папкаов вашей Компания. Подробнее о регистрации и авторизации: Регистрация и авторизация на Платформе.
Создадим Интенты. Для этого перейдите на Вкладка Ресурсов, нажав кнопку Resources на верхней панели.
Вы увидите раздел с Интентами. Подробнее о вкладке: Вкладка интентов — Intents.
Для того чтобы добавить новый Интент, нажмите +Create new.
Добавим Интент про акции, распродажи и специальные предложения.
В поле Name укажите название Интента Скидки и акции. Названия Интентов должны кратко и понятно отражать их суть. Все названия вы можете найти в приложенной таблице.
Добавьте Обучающая выборка Интента в поле Requests. Обучающая выборка для каждого Интента нашего тренировочного Агента также содержится в прикрепленной таблице. Вы можете скопировать ее из таблицы и вставить в поле.
При составлении Обучающая выборка необходимо продумать, какими словами Собеседник может сформулировать конкретное намерение — Интент, и сделать Обучающая фраза как можно более разнообразными. Старайтесь сделать фразы ёмкими и хорошо отражающими суть Интента. Важно: Для наиболее успешного распознавания Обучающая выборка должна содержать не менее 10 Обучающая фраза на каждый Интент.
Добавив название Интента и Обучающая выборка , сохраните Интент, нажав на кнопку Create.
Кроме основных Интентов, необходимо также добавить Интенты Small Talk. Small Talk представляет собой отвлеченные от основной тематики Агента Интенты. Это, например, благодарность, приветствие, прощание. Small Talk делает общение с Агентом более оживленным и приятным.
Интенты Small talk также можно найти в таблице.
Аналогично добавьте все остальные Интенты из таблицы. Далее мы приступим к сборке непосредственно Сценарий агента Агента.
Интенты готовы, теперь необходимо создать Агента и его Сценарий агента.
Создайте нового Агента, как описано в статье Создание простого бота-опросника.
Значение Confidence threshold определяет распознавание Реплика Агентом. У каждой Реплика есть значение Confidence (число от 0 до 1), которое характеризует уверенность Агента в том, что Реплика относится к определенному Интенту.
Если значение Confidence при переводе в проценты больше, чем установленный Confidence threshold, то Агент переходит по ветке соответствующего Интента. Если же значение Confidence меньше Confidence threshold, Агент переходит в Слот fallback — в таком случае Собеседнику предлагается перефразировать вопрос.
После Слота NLU необходимо добавить Интенты.
Сохраните Подслоты, нажав на кнопку Save
Аналогичным образом добавьте все созданные ранее Интенты в Сценарий агента.
После создания Сценарий агента Агента необходимо обучить Агента и протестировать его Сценарий агента.
Если в Сценарий агента будут обнаружены ошибки, найдите проблемные места Сценарий агента с помощью информации в статье Требования для успешного обучения Агента и исправьте ошибки. После этого снова обучите Агента.
После успешного Обучение Агента откройте Дебаг виджет, нажав кнопку Debug.
Для наиболее эффективного тестирования рекомендуем изучить статью Тестирование сценария Агента.
Для подбора подходящего Confidence threshold воспользуйтесь статьей Тестирование и улучшение распознавания Агента: подбор Confidence threshold.
Дообучать Агента можно непосредственно из вкладки Аналитики. Подробнее: Дообучение Агента из страницы аналитики
После редактирования Обучающая выборка, прежде чем снова тестировать Агента, его необходимо заново обучить.
После того, как Сценарий агента Агента собран и протестирован, давайте выведем Агента в Telegram.
Итак, наш Агент создан, протестирован и готов к общению в Telegram!
Перейдите на вкладку Папок, нажав кнопку Dashboard на верхней панели.
Перейдите в БотБилдер, нажав кнопку Design.
Добавьте Слот NLU, нажав + после Слота Start и выбрав нужный тип из выпадающего списка. Слот NLU анализирует смысловое содержание введенного Собеседником сообщения и определяет, к какому Интенту его отнести.
В поле NAME введите название Слота start NLU и проставьте значение CONFIDENCE THRESHOLD равное 30.
При создании Слота NLU автоматически создаются два Подслота intent и один Подслот fallback.
Замените Интенты в этих Подслотах intent на нужные, дважды кликнув по ним и выбрав в поле Intent новые Интенты из выпадающего списка.
Поле Name можно очистить — тогда в Дерево сценария после сохранения Подслота будет отображаться название Интента, таким образом будет легче ориентироваться в Сценарий агента Агента.
После замены Интентов в автоматически созданных Подслотах создайте новый Подслот, нажав на +.
Выберите тип Подслота в выпадающем списке.
Выберите нужный Интент в выпадающем списке в поле Intent и сохраните Подслот, нажав на кнопку Create.
В результате Сценарий агента будет выглядеть таким образом:
Для этого после каждого из Подслотов intent необходимо добавить текстовые Слоты Text, нажав + и выбрав из выпадающего списка соответствующий тип Слота.
Добавьте соответствующий ответ из таблицы в поле TEXT LIST:
Поле NAME рекомендуем оставлять пустым. Так, при взгляде на Дерево сценария, можно будет сразу видеть содержимое текстовых Слотов.
Если текстовый ответ на Интент получился длинным (длиннее 4 строк), рекомендуем разделить его на несколько Слотов, ориентируясь на смысловое содержание. Благодаря этому сообщение будет читаться легче. Например, в нашем примере ответ на Интент Отслеживание заказа содержит 7 строк.
То же самое проделаем с Интентом Самовывоз.
Каждый новый вариант ответа заносится в поле TEXT LIST двойным нажатием Enter. Добавьте для Подслота fallback варианты ответа Пожалуйста, задайте вопрос другими словами: я не понял вас. и К сожалению, я не понимаю, о чем вы. Задайте ваш вопрос по-другому.
Таким же способом добавьте несколько вариантов ответа для Интентов Small Talk.
После добавления ответов на Интенты необходимо добавить Слоты Wait For Reaction — это Слот, ожидающий сообщения от Собеседника (Ожидание сообщения Собеседника | Слот Wait for reaction). Таким образом, после получения ответа на Интент, Собеседник может задать еще один вопрос, Общение перейдет в самое начало Сценарий агента и вопрос снова попадет в Слот NLU.
Обучите Агента, нажав кнопку TRAIN, расположенную в правом верхнем углу БотБилдера. После этого начнется процесс Валидация сценария, по окончании которого, если Сценарий агента соответствует требованиям, то Агент будет обучен. В противном случае Валидация сценария завершится неудачно и в правом нижнем углу появится текст ошибки. Подробнее:Требования для успешного обучения Агента
Давайте спросим Есть ли какие-то акции? и Какие распродажи есть сейчас?
При тестировании в Сценарий агента подсвечивается Слот, в котором мы в данный момент находимся. Так можно отследить, к какому именно Интенту Агент отнес реплику Собеседника.
Воспользуйтесь статьей Telegram для создания Бота в Telegram и подключения в него нашего тестового Агента.
Перейдите в вашего только что созданного Бота в Telegram и протестируйте его работу в мессенджере.