Как использовать библиотеку Python Transitions?
Переходы в ожидании состояния | Python
1. Chatbots 101 Free
В этой главе вы узнаете, как создать своего первого чатбота. Получив немного исторического контекста, вы настроите основную структуру для приема текста и ответа на пользователей, а затем узнаете, как добавить основные элементы индивидуальности. Затем вы построите базирующиеся на правилах системы для разбора текста. Подробнее о главе.
2. Понимание естественного языка
Здесь вы будете использовать машинное обучение для преобразования естественного языка в структурированные данные с помощью spaCy, scikit-learn и rasa NLU. Вы начнете с краткого повторения теоретических основ, а затем перейдете к созданию моделей, используя набор данных ATIS, который содержит тысячи предложений от реальных людей, взаимодействующих с системой бронирования авиабилетов. Подробнее о главе.
3. Создание виртуального помощника
В этой главе вы построите личного помощника, чтобы помочь вам спланировать поездку. Он сможет отвечать на вопросы вроде “есть ли дешевые отели на севере города?” путем поиска соответствующих результатов в базе данных отелей. Подробнее о главе.
4. Диалог
Все, что вы построили до сих пор, связывало намерения с действиями и ответами. Удивительно, как далеко вы продвинулись! Однако, чтобы создавать более сложные боты, всегда стоит добавлять некоторую состоятельность. Вы это сделаете здесь, создавая чатбота, который помогает пользователям заказывать кофе. Подробнее о главе.
Переходы в ожидании состояния
Часто вам может потребоваться временно отклониться от потока разговора, например, для проверки подлинности пользователя, прежде чем вернуться к теме обсуждения. В таких случаях часто проще и легче отлаживать сохранение некоторых действий/состояний в ожидании, а не добавлять все более сложные правила. Здесь вы будете определять словарь policy_rules
, где ключи - это кортежи текущего состояния и полученного намерения, а значения - кортежи следующего состояния, ответа чатбота и состояния, для которого нужно установить ожидаемый переход.
Здесь мы определяем правила для перехода из текущего состояния в следующие состояния, основываясь на полученных намерениях пользователя. Например, если пользователь находится в состоянии INIT и пытается сделать заказ, мы запрашиваем его номер и создаем ожидающий переход в состояние AUTHED.
Мы создали функцию send_message
, которая принимает текущее состояние, ожидание и сообщение пользователя. Затем мы проверяем, существует ли ожидание, и в зависимости от этого выбираем следующие состояние, ответ чатбота и состояние для ожидаемого перехода.
Выполнив этот код, вы увидите ответ чатбота и информацию о следующем состоянии и состоянии ожидания.
Мы можем вызвать функцию send_message
снова, передав вводные значения state
, response
и pending
до получения окончательного ответа от чатбота.
Поздравляем!
Вы успешно научились использовать переходы в ожидании состояния в Python! Теперь вы можете более эффективно управлять разговорными ботами и создавать более сложные диалоги с пользователями.