7

我和我的同事正在使用 Microsoft bot 框架和 Microsoft LUIS 构建一个非常大的应用程序。本质上,我们正在尝试创建一个机器人,让来自整个组织的人们可以向机器人发送消息(通过 slack)并接收相关信息。不同类型的请求涉及不同的主题领域(销售、营销、物流和研发)。如何将多个 LUIS 模型、实体和子实体链接在一起,以便请求在到达正确实体之前不会查询每个实体?

现在,如果用户问“迄今为止我们在研究上花了多少钱?” 它首先查询销售实体,然后是营销实体,然后是物流实体,最后是在得到响应之前查询研发实体。我正在尝试限制 API 请求的数量。我目前知道处理此路由问题的 3 种可能的解决方案,它们似乎都不依赖 LUIS 来路由到适当的实体。

解决方案 1 涉及让机器人为每个域提供一个 UI 选择器。

解决方案 2 涉及连接 NLP 库以从句子中提取主题,然后使用加权字典库匹配主题。

解决方案 3 涉及设置纯正则表达式。由于显而易见的原因,这是我最不喜欢的解决方案。

一个使用 Microsoft bot 框架和 Microsoft LUIS 的企业级参考应用程序的链接将是一个理想的答案。

4

1 回答 1

1

以下是一组新示例,包括一些端到端演示,例如ContosoFlowers,它们应该有助于了解如何构建真正的 BOT 项目。

  • 这些示例以任务为中心,展示了框架的特定功能。
  • 端到端演示将更符合您的要求,因为您将看到依赖注入、IScorable 功能的使用、如何分离组件、如何构建可重用的机器人资产以及项目的组织等概念/建筑师。

另一个公共机器人是Azure 机器人,您可以在其中找到一些真正的实现。一个有趣的重构也在可扩展性分支中进行;您还可以在其中看到架构是如何演变的

从文档:

AzureBot 旨在提高使用 Azure 的任何开发人员、管理员或团队的工作效率。它目前是公开的,您也可以按照我们的开发者设置自行运行它并做出贡献。

第一个实现侧重于对用户的 Azure 订阅进行身份验证、选择和切换订阅、启动和停止基于 RM 的虚拟机,以及列出和启动 Azure 自动化运行手册。

于 2016-10-07T16:03:44.173 回答