Microsoft Bot вызывает бот или организует несколько ботов
Я хотел бы знать, есть ли способ соединить несколько ботов (сборка с использованием фреймворка ботов Microsoft) так, чтобы был один родительский бот, а другие - дети. Диаграмма, которую я приложил, является моим желаемым состоянием.
1 ответ
Хотите, чтобы родительский бот "разговаривал" с дочерними ботами?
Вы можете сделать это с помощью каналов DirectLine, где получателем является ваш дочерний бот (вы должны установить идентификатор бота в ChannelAccount ID).
Например, вы можете создать клиента, который может отправлять сообщение вашему боту по прямой линии.
См. Это: Прямое тестирование линии
Таким образом, можно делать то, что вы просите, но уровни поддержки, на которые вы надеетесь из BotBuilder SDK, могут не существовать. Я собираюсь интерпретировать ваше последнее утверждение в вашем комментарии как вопрос о маршрутизации высказываний к нескольким моделям NLU; Существует инструмент под названием Dispatch, который можно использовать для соединения нескольких моделей LUIS и QnA Maker вместе.
Диаграмма:
Начнем с того, что этот слой промежуточного программного обеспечения, который вы используете перед принятием решения о маршрутизации на "родительский" бот или "детский", не нужен. Вы можете просто сделать это из "родительского" бота, чтобы удалить движущиеся части. Большинство разработок ботов, которые я видел, делают это, но если у вас есть конкретные мысли о слое "Middleware", вы могли бы объяснить больше. Повторюсь, похоже, что это просто еще один слой маршрутизации, который вместо этого может быть в вашем "родительском" боте.
Следующим пунктом является то, что вам не нужно обязательно создавать несколько ботов для каждой задачи; вместо этого вы можете создать несколько диалогов внутри вашего бота для управления аварийными сигналами, историческим управлением и обратной связью. Если вы пытаетесь использовать несколько ботов для маршрутизации к этим дочерним ботам, тогда имеет больше смысла, почему вы хотите, чтобы дети были отдельными ботами. Однако, если у вас нет 3 ботов с сигналами тревоги, я рекомендую помещать диалоги от каждого бота в ваш "родительский" бот.
Лично говоря, должен быть очень веский аргумент в отношении того, почему каждая из этих тем и дочерних задач должна быть в отдельных ботах, в противном случае я просто собрал бы все это в одном боте.