问题标签 [azure-language-understanding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
144 浏览

node.js - 聊天机器人维护流程

我使用 socket.io/nodejs/LUIS 开发了一个网络聊天机器人。我没有使用机器人生成器。我是模型新手。

我的流程就像 socket-> luis-> 响应函数。此流程可用于单个请求和响应。但它不能处理复杂的对话,如表单输入、提示对话框。

我怎样才能融入如此复杂的对话?

0 投票
2 回答
336 浏览

msdn - LUIS 附加到松弛

我给你写信是因为我真的不知道我还能做什么。当我在检查“Fullfillment”后尝试选择一个频道时,Action 下拉列表仍然为空,所看到的只是“Select Action ...”--> 没有频道,我不知道如何获得它们。

正如我之前看到的“如果您想尝试频道,请单击此按钮将我们的动作绑定机器人添加到您的 Slack 团队”我认为这与我没有这样做有关,但是在我创建了一个 Slack 帐户并添加了动作之后绑定机器人 没有任何改变!

我认为也许我应该在 Slack 上注册某些频道,但我不知道为什么会这样,而且我找不到公共频道。

所以我被困在那里,请你帮我,以便我可以使用这些频道?

0 投票
1 回答
286 浏览

bots - 如何有选择地断开 Microsoft Bot Connector 的 LUIS?

对于我正在开发的聊天机器人来说,让人类主管随时待命以回答用户查询是一个关键用例。但是我无法弄清楚如何在没有断开 NLP 模式 (LUIS) 的情况下将控制权移交给人工代理。

0 投票
1 回答
545 浏览

c# - 路由 Microsoft LUIS 请求和机器人框架 - 最好在企业参考应用程序中

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

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

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

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

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

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

0 投票
1 回答
1587 浏览

c# - System.Collections.Generic.KeyNotFoundException 与 Microsoft Bot 框架

我正在使用 Microsoft Bot Framework 使用 LuisDialog 创建一个非常简单的机器人。但是我不断收到 System.Collections.Generic.KeyNotFoundException。

这是我的控制器:

这是我的对话框:

如果我使用较旧版本的 Bot Framework,例如 3.0.0,我会收到以下错误:500 InternalServerError { "message": "An error has occurred." }

但是,如果我更新到最新的稳定版本(3.2.1),则会收到以下类型为“System.Collections.Generic.KeyNotFoundException”的错误:

“例外:System.Collections.Generic.KeyNotFoundException:给定的键不在字典中。在 Microsoft.Bot.Builder.Dialogs.LuisDialog 的 System.Collections.Generic.Dictionary2.get_Item(TKey key)”

完整的堆栈跟踪在这里:

http://pastebin.com/uLJF5fcV

我尝试在另一个解决方案上创建一个新项目,但我得到了同样的错误。我尝试通过 nuget 安装不同版本的 Bot Framework,但就像我之前所说的那样,无论如何我仍然会收到错误消息。到目前为止,我对 Bot Framework 的经验非常少,所以我真的不知道还能尝试什么。

0 投票
1 回答
378 浏览

c# - 如何在链式流畅对话框中使用 LuisDialog?

我想使用链式接口作为我的根对话框,通过用户消息切换对话,例如,如果用户编写“帮助”,我可以调用 HelpDialog,并让 LuisDialog 管理其他输入。

我的问题是 LuisDialog 等待来自用户的消息,因此,在链式环境中,用户必须在 Luis 返回他的意图之一之前写入两次输入。

这是我的示例代码:

是否可以将 LuisDialog 与 Chain 一起使用,或者如何将多个对话框一起使用?

谢谢马可

0 投票
1 回答
1366 浏览

botframework - 为什么在创建 LUIS 模型时应该使用复合实体?

我从使用 Bot Framework 和 LUIS 的机器人开始。现在我在理解为什么要使用复合实体时遇到了一些麻烦。到目前为止,我从 LUIS 文档中得到的是复合实体用于将常规实体分组到“类别”下。

例如,如果我的机器人允许用户订购披萨,我将需要三个实体:披萨的数量、大小和披萨的名称。我知道我可以将这些实体分组到一个名为 OrderInformation 的复合实体下。但是我从做这样的事情中得到什么?LUIS 方面的表现?更好的学习?

我问这个是因为这是 LUIS 返回的 JSON。我仍然得到所有常规实体,就像我需要它们一样。

复合实体如何让我在机器人方面的生活更轻松?

0 投票
1 回答
536 浏览

c# - 如何在 LuisIntent 中调用 PromptDialog?

我有一个带有几个 LUIS 意图的 LuisDialog。在其中一些意图中,我可能需要向用户询问更多信息。在这些情况下,我尝试使用 PromptDialog 或 PromptString。

我已经试过这个:

还有这个:

在这两种情况下,用户都不会看到提示,并且 的值userSymbol会为空。当我调试代码AfterUserInputSymbol时,只进入到这部分的时间:result.Entities[0].Entity = userSymbol;

如何在 LuisIntent 中提示更多信息?

0 投票
1 回答
3190 浏览

c# - 将 Bot Framework 与 LUIS 连接起来。我应该使用哪个 AppId 和 AppKey?

我正在尝试将 LUIS 机器人与在 azure 上注册的机器人连接。但是,我对应该使用哪些键和 ID 感到困惑。我有以下“信息”:

在 Azure 上:机器人句柄、Microsoft 应用程序 ID 和 Microsoft 应用程序密码。

在 LUIS 上:应用 ID、应用名称、程序化 API 密钥

编码时,在“LUIS 类”中,我有:

问题 1 - 我应该在这里使用什么 ID 和密钥?

在 web.config 我有:

问题 2 - 我应该在这里使用什么 ID 和密钥?

问题 3- 使用 Microsoft Bot Framework Channel Emulator 时,我应该使用哪个 Bot URl、App Id 和 App Password(本地测试)

问题 4- 使用 Microsoft Bot Framework Channel Emulator 时,我应该使用哪个 Bot URl、App Id 和 App Password(在线测试)

谢谢!

0 投票
1 回答
217 浏览

c# - BotFramework,未收到对第一条消息的响应

我正在使用 Microsoft BotFramework 并创建了一个简单的 Bot。流程类似于,用户打招呼 -> 机器人回复问候用户可以问什么用户问相关问题 -> 机器人回复回答和可能的下一个问题,然后再次流程继续用户提问

在本地模拟器上一切正常。但是,当我使用已发布的 API 应用程序时,它不会显示对用户 "Hi" 的响应,如果用户提出任何其他相关问题,一切正常。

同样在机器人页面上,它也没有显示任何错误,所以它不是错误。

我还添加了 try catch 块并将错误作为消息发送,该消息也没有显示任何消息,再次指向没有错误。

我尝试使用 ngrok 进行调试,并且它还完成了整个块,而不会进入 catch 或任何意外路径。

所以我迷失了它可能出错的地方!

任何指针都会很有用。

谢谢,迪尔库什