是否有可能使用 Microsoft Azure Bot Services 创建 Java 聊天机器人?

Posted

技术标签:

【中文标题】是否有可能使用 Microsoft Azure Bot Services 创建 Java 聊天机器人?【英文标题】:Is there any possibility to create a java chatbot using Microsoft Azure Bot Services? 【发布时间】:2019-02-26 02:43:54 【问题描述】:

使用 MS Azure 机器人服务,我希望使用 Java 语言创建的聊天机器人托管在 Azure 上。 Azure 提供了三种使用 Bot Service 创建聊天机器人的选项:bot servicefunction botbot 频道注册。前两个允许仅使用模板(c#、node js)创建聊天机器人,但没有可用的 Java。最后一个建议使用 Azure 服务注册聊天机器人,但托管在任何地方。

有什么办法可以做到吗?

我想使用以下技术进行开发:

微软机器人框架 Microsoft Bot Framework REST API Azure 机器人服务 Azure 应用服务 路易斯.ai Java

【问题讨论】:

【参考方案1】:

您必须了解 Bot Framework 的历史和架构,才能了解过去/现在/将可用的内容。

简而言之:

架构

这是一张很好的老照片,但当你理解它时会很有趣:

该框架由几个部分组成:

您的代码(请参阅下面的开发语言)托管在 Web 应用程序中,因为它背后只是一个 API。这部分使用(开源)SDK与Connector进行通信,例如 bot 连接器(未开源,托管在 Microsoft 端),负责处理与“通道”的通信,即您的 bot 将暴露在哪里 频道 根据您的需求提供的其他内容:自定义 API、认知服务(例如,使用 LUIS 进行语言理解等)

这些就是我们所说的组件。这些组件需要在某个地方运行,您还必须提供有关您要使用的通道的详细信息,这就是我们有以下内容的原因:

Azure Bot ServiceAzure Functions bot 是 2 个资源,可让您创建托管代码所需的一切。您使用其中一种,但不能同时用于一个机器人。第一个用于“经典”开发,第二个用于 Azure Functions。 Bot Channel Registration 是用于设置您的机器人的强制性资源:在该资源中,您将指出您的代码端点是什么(因此您将指向您的 Azure 机器人服务或 Azure Functions 机器人端点),您将设置您需要的所有通道.还提供了一个快速测试器。

补充说明Azure Bot ServiceAzure Functions bot 是一种“帮手”:在 v3 框架开始时,它们并不存在,您可以通过直接创建一个应用服务 + 应用服务计划托管您的代码,以及一个机器人频道注册来定义您的频道。

开发语言

在版本 3(截至 2018 年 9 月的稳定版本)之前,Bot Framework SDK 提供 2 种语言版本:C#Node.js

SDK 的第 4 版于 2018 年初公开发布,当时已切换到稳定版(至少对于 C#js)。它允许 4 种开发语言:

C#:https://github.com/microsoft/botbuilder-dotnet JS:https://github.com/microsoft/botbuilder-js Java:https://github.com/microsoft/botbuilder-java 蟒蛇:https://github.com/microsoft/botbuilder-python

因此,对于 Java,请查看仍处于预览状态但可能很快会更改的专用存储库。

【讨论】:

【参考方案2】:

这是一个最近的链接,教你如何使用 Java 创建本地机器人:https://docs.microsoft.com/en-us/azure/bot-service/java/bot-builder-java-quickstart?view=azure-bot-service-4.0

【讨论】:

感谢您的回答,但如何将此本地机器人部署到 MS Azure?是否需要使用 Azure Bot Service? @MishaSavchuk 将本地机器人部署到 MS Azure 时,必须使用 Azure 机器人服务。您可以在 MS Azure 中免费试用一个月。

以上是关于是否有可能使用 Microsoft Azure Bot Services 创建 Java 聊天机器人?的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能为 Azure 托管的 API 管理创建自定义小部件?

为啥学生认证后无法使用azure

Microsoft Azure 网站上的地理服务器

侦听附加端口 Microsoft Azure Nodejs

auth0 是不是支持使用 Microsoft Authenticator App 登录 Azure AD?

Microsoft Azure 是不是有 REST API 来查看有关备份保管库的信息?