В чем разница между диалогом и беседой в Microsoft Bot Framework?

Лично для меня Диалог и Разговор — это одно и то же. Однако структура различает эти два термина, и я не совсем понимаю, в чем разница. Также я не могу найти точное, понятное определение где-то в документах.


person Mark    schedule 06.07.2016    source источник
comment
Это правильный вопрос о конкретных терминах с новой структурой. Чтобы закрыть это как широкое, необходимо иметь опыт работы с этой структурой и быть уверенным, что эти два термина не являются фактическими техническими терминами или функциями.   -  person Panagiotis Kanavos    schedule 06.07.2016
comment
На самом деле, я думаю, что при естественном языке/обработке речи разговор является открытым, в то время как диалог четко определен, например, раздражающие системы голосового ответа в банках. Я думаю, что различие было явным и в Windows Speech API.   -  person Panagiotis Kanavos    schedule 06.07.2016


Ответы (1)


В обзоре документации по диалоговым окнам C# довольно хорошо объясняются основные понятия:

Диалоги моделируют диалоговый процесс, в котором обмен сообщениями между ботом и пользователем является основным каналом взаимодействия с внешним миром. Каждое диалоговое окно представляет собой абстракцию, которая инкапсулирует свое состояние в классе C#, реализующем IDialog. Диалоги могут быть объединены с другими диалогами, чтобы максимизировать повторное использование, а контекст диалога поддерживает стек диалогов, активных в диалоге. Беседа, состоящая из диалогов, переносима между компьютерами, что позволяет масштабировать реализацию бота. Это состояние диалога (стек активных диалогов и состояние каждого диалога) сохраняется в сообщениях, которыми обмениваются с Bot Connector, что делает реализацию бота без состояния между запросами. (Подобно веб-приложению, которое не сохраняет состояние сеанса в памяти веб-сервера.)

Кроме того, из документации Dialogs Node.js:

Чтобы понять диалоги, проще всего представить их как эквивалент маршрутов для веб-сайта. Все боты будут иметь по крайней мере один корневой диалог «/», точно так же, как все веб-сайты обычно имеют по крайней мере один корневой маршрут «/». Когда платформа получает сообщение от пользователя, оно будет перенаправлено в этот корневой диалог «/» для обработки.

person Ezequiel Jadib    schedule 06.07.2016
comment
1. Получается, что один Диалог всегда представляет одну тему? Например, вопросы об автомобилях будут представлять собой CarDialog. Вопросы по еде будет FoodDialog и все эти диалоги можно комбинировать? 2. Разговор, состоящий из диалогов, переносим между машинами, что позволяет масштабировать реализацию бота => означает ли это, что вы можете использовать его со Skype и т. д.? 3. Это состояние беседы хранится в сообщениях... => поэтому ВСЕ сообщения в одной беседе находятся в этом поле DialogState (какое-то зашифрованное значение??) - person Mark; 07.07.2016
comment
1) Это будет зависеть от того, как вы их кодируете. Ничто не мешает вам вести диалог о машине и еде. Диалог — это просто интерфейс (docs.botframework.com/sdkreference/csharp /dd/d5e/), которые вы должны реализовать. 3) Да, это состояние диалога (стек активных диалогов и состояние каждого диалога) сохраняется в сообщениях, которыми обмениваются с Bot Connector, что делает реализацию бота без состояния между запросами. (Подобно веб-приложению, которое не сохраняет состояние сеанса в памяти веб-сервера.) - person Ezequiel Jadib; 07.07.2016
comment
Что касается 2) я бы сказал, что это утверждение относится к тому, что диалоги являются сериализуемыми, тогда они переносимы и позволяют масштабировать - person Ezequiel Jadib; 07.07.2016
comment
Спасибо за Ваш ответ. Однако я все еще не совсем понимаю, когда создавать разные диалоги. Документы мне не помогают в этом случае. Мне нужен пример, например... foreach Entity на диаграмме классов вы создаете новый класс в .NET для Entity Framework. - person Mark; 07.07.2016
comment
Правильно, нет такого правила, как в EF. Ваш диалог получает сообщение, и вы делаете что-то с полученным сообщением. Ваш корневой диалог может запускать дочерние диалоги, если это сообщение не может быть обработано им. Самым простым примером может быть диалоговое окно, которое делает что-то, но требует аутентификации пользователя. Таким образом, корневой диалог проверит, есть ли у пользователя токен, и, если нет, запустит диалог авторизации. Сделаем по другому. Что вы хотите, чтобы ваш бот делал? - person Ezequiel Jadib; 07.07.2016
comment
Наш бот на самом деле довольно прост. Мы хотим создать интернет-магазин. Сначала бот запрашивает товар, затем запрашивает адрес доставки, который нужно извлечь через LUIS. Мы думали, что диалоговые цепочки — это ключ к успеху, но, к сожалению, мы не нашли подходящего решения. То же самое относится и к формам. Также мы не нашли способа использовать LuisIntents с указанными выше параметрами. - person Mark; 07.07.2016
comment
Давайте продолжим обсуждение в чате. - person Ezequiel Jadib; 07.07.2016