在没有 Azure 机器人服务的情况下使用 BotFramework DirectLine

Using BotFramework DirectLine without Azure Bot Service

我希望创建一个集成了他们提供的 Bot Framework DirectLine API 的 Bot。

但是,我希望该服务与云服务无关。因此,我们的想法是使用 BotFramework 功能来启动对话并使用它生成的对话 ID 保留对话缓存,但业务逻辑可以在任何云服务(AWS/Google/IBM Cluod)等上。

是否可以使用 DirectLine API 设计相同的内容而不必使用 Azure 机器人服务?

https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0

https://docs.microsoft.com/bs-latn-ba/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-receive-activities?view=azure-bot-service-3.0

Bot Framework 可与部署在任何云托管服务上的机器人一起使用,只要您拥有可通过互联网访问的端点和有效的 HTTPS 证书。

  • This 问题解释了如何 运行 IIS 或任何其他机器人托管服务上的机器人。
  • 一个不需要 Azure 的非官方直线实现示例是 offline-directline。此示例设置了一个本地 Web 服务器,该服务器模拟 DirectLine API 并将请求通过隧道传送到您的机器人。
  • 关于在 IIS 或任何其他云服务上托管您的机器人,请记住
    'Bot Framework 要求您的端点公开的 x.509v3 证书是最新且有效的。 "current and valid" 的大部分检查都是服务器证书的标准检查:CN 必须与主机名匹配,不得过期,不得在 CRL 中列出,必须具有正确的 EKU 集,等等。 最重要的是,您的证书必须链接到 Microsoft 信任的根证书颁发机构。这些 CA 的最新列表可用 here.'

注意:offline-directline 是一个非官方的私有包,官方不支持 bot 框架容器支持。 请参考 this 关于使用 Direct Line 本地化版本的回答API 使用机器人框架。 希望这有帮助。