我正在尝试准确了解您要达到的目标。我是否正确总结如下?
- 您开始一个主对话框。在该对话框中,您需要一些用户输入。
- 您翻译输入,并手动将翻译后的文本发送到 LUIS 以进行意图识别。
- 根据识别的意图,您想要启动特定的子对话。
我不相信您可以“调用意图”。意图是 LUIS 或 Regex 识别器的结果,由 Bot Framework 自动处理。在每次用户输入时都会处理识别器。无需自己调用 LUIS 作为 HTTP 请求。识别器(LUIS 或 RegEx)在 Bot Framework Composer 的主对话框属性中配置:
尽管在这种情况下,您看起来像是在手动进行 LUIS 意图识别,因为您想预先进行翻译。要使用内置识别器实现该场景,您需要一个翻译中间件。Github上有一个关于 Bot Framework Composer 的翻译中间件的简短讨论,尽管示例代码还没有准备好。
虽然目前还没有翻译中间件的代码示例,但我相信今天可以帮助您的是根据已识别的意图启动一个子对话框,类似于您在屏幕截图中已经显示的内容。基本上不是在对话结束时“发送响应”,而是如下所示:
我在这里的示例使用用户输入而不是公认的意图。您可以用您的意图变量替换用户输入。根据识别的意图,您将能够启动一个特定的对话框来处理该识别的意图。
结果看起来像:
关于触发器,您当前在屏幕截图中配置的内容显示“没有 null 编辑器”。我相信这可能会导致“对象引用”问题。通常它应该显示一个触发短语。例如,下面的意思是:
- 如果用户输入文本“触发短语”
- 并且对话框变量“topintent”之前设置为“test”,然后运行此触发器。