Создание бота с распознаванием речи
Last updated
Last updated
В данной пошаговой инструкции на примере мы рассмотрим, как создать небольшого Агента для интернет-магазина с распознаванием речи. Агент будет отвечать на часто задаваемые вопросы касательно онлайн-заказа, доставки товара и т.д.
Интент — намерение Собеседника, содержащееся в Реплика, сказанной Агенту.
Реплика — сообщение Собеседника, попавшее в Слот NLU.
Обучающая выборка — это фразы с одинаковым или близким смыслом, с помощью которых человек может высказать конкретное намерение (Интент), и на которых обучается модель NLU с целью распознавания этих и всех прочих вариантов высказывания того же намерения (Интента). От качества Обучающая выборка напрямую зависит качество распознавания в Агенте.
Первым делом необходимо создать Интенты.На Платформа Интенты представлены в виде наборов Обучающая фраза.В процессе создания Интентов вам понадобится таблица с прописанными Интентами и ответами к Интентам — таблица доступна по ссылке.
Зарегистрируйтесь на Платформа или войдите в уже существующий аккаунт по ссылке https://admin.chatme.ai/. Вы окажетесь на странице Папкаов вашей Компания. Подробнее о регистрации и авторизации: .
Создадим Интенты. Для этого перейдите на Вкладка Ресурсов, нажав кнопку Resources на верхней панели.
Вы увидите раздел с Интентами. Подробнее о вкладке: .
Для того чтобы добавить новый Интент, нажмите +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
Перейдите на вкладку Папок, нажав кнопку Dashboard на верхней панели.
Создайте нового Агента, как описано в статье .
Перейдите в БотБилдер, нажав кнопку Design.
Добавьте Слот NLU, нажав + после Слота Start и выбрав нужный тип из выпадающего списка. Слот NLU анализирует смысловое содержание введенного Собеседником сообщения и определяет, к какому Интенту его отнести.
В поле NAME введите название Слота start NLU и проставьте значение CONFIDENCE THRESHOLD равное 30.
При создании Слота NLU автоматически создаются два Подслота intent и один Подслот fallback.
Замените Интенты в этих Подслотах intent на нужные, дважды кликнув по ним и выбрав в поле Intent новые Интенты из выпадающего списка.
Поле Name можно очистить — тогда в Дерево сценария после сохранения Подслота будет отображаться название Интента, таким образом будет легче ориентироваться в Сценарий агента Агента.
После замены Интентов в автоматически созданных Подслотах создайте новый Подслот, нажав на +.
Выберите тип Подслота в выпадающем списке.
Выберите нужный в выпадающем списке в поле Intent и сохраните , нажав на кнопку Create.
Аналогичным образом добавьте все созданные ранее ы в .
В результате будет выглядеть таким образом:
Далее после каждого а нужно добавить ответ а на .
Для этого после каждого из ов необходимо добавить текстовые ы , нажав + и выбрав из выпадающего списка соответствующий тип а.
Добавьте соответствующий ответ из в поле TEXT LIST:
Поле NAME рекомендуем оставлять пустым. Так, при взгляде на , можно будет сразу видеть содержимое текстовых ов.
Если текстовый ответ на получился длинным (длиннее 4 строк), рекомендуем разделить его на несколько ов, ориентируясь на смысловое содержание. Благодаря этому сообщение будет читаться легче. Например, в нашем примере ответ на Отслеживание заказа содержит 7 строк.
Разделим его на два а Text, добавив один сразу за другим.
То же самое проделаем с ом Самовывоз.
По желанию можно добавить несколько вариантов текстового ответа, чтобы каждый раз отвечал по-разному (вариант ответа выбирается ом рандомно). Таким образом будет более «живым» и одушевленным.
Каждый новый вариант ответа заносится в поле TEXT LIST двойным нажатием Enter. Добавьте для а варианты ответа Пожалуйста, задайте вопрос другими словами: я не понял вас. и К сожалению, я не понимаю, о чем вы. Задайте ваш вопрос по-другому.
Таким же способом добавьте несколько вариантов ответа для ов Small Talk.
После добавления ответов на ы необходимо добавить ы — это , ожидающий сообщения от а (). Таким образом, после получения ответа на , может задать еще один вопрос, перейдет в самое начало и вопрос снова попадет в .
После создания а необходимо обучить а и протестировать его .
Обучите а, нажав кнопку TRAIN, расположенную в правом верхнем углу а. После этого начнется процесс , по окончании которого, если соответствует , то будет обучен. В противном случае завершится неудачно и в правом нижнем углу появится текст ошибки. Подробнее:
Если в будут обнаружены ошибки, найдите проблемные места с помощью информации в статье и исправьте ошибки. После этого снова обучите а.
После успешного а откройте , нажав кнопку Debug.
В соответствии с ами, на распознавание которых теперь обучен , зададим ему вопросы. Попробуем сформулировать вопросы разными способами, используя синонимы.
Давайте спросим Есть ли какие-то акции? и Какие распродажи есть сейчас?
При тестировании в подсвечивается , в котором мы в данный момент находимся. Так можно отследить, к какому именно у отнес реплику а.
Для наиболее эффективного тестирования рекомендуем изучить статью .
Для подбора подходящего Confidence threshold воспользуйтесь статьей .
Дообучать а можно непосредственно из вкладки Аналитики. Подробнее:
После редактирования , прежде чем снова тестировать а, его необходимо заново обучить.
После того, как а собран и протестирован, давайте выведем а в Telegram.
Воспользуйтесь статьей для создания а в Telegram и подключения в него нашего тестового а.
Перейдите в вашего только что созданного а в Telegram и протестируйте его работу в мессенджере.
Итак, наш создан, протестирован и готов к общению в Telegram!