我需要安装版本4.0.0的node.js我试过这个:
npm install -g npm@4.0.0
Run Code Online (Sandbox Code Playgroud)
但是我收到了这样的消息:npm不被识别为内部或外部命令,可操作程序或批处理文件
我的机器人有LUIS对话框,有几个意图.我从MessageController调用LUIS对话框.如果检测到意图,我会启动一个子对话框.子对话框完成后,我调用context.Done("response from user").
After该ChlildDialogDone
任务被调用.
在内部ChildDialogDone
任务中我想再次调用LUIS对话框来检测用户消息的意图(来到 ChildDialogDone
).现在ChildDialogDone
我有内容context.Wait(MessageReceived).
当执行这行代码时,没有任何反应,我的机器人正在等待来自用户的下一条消息.
这是代码:
[Serializable]
public partial class DefiningIntentDialog : LuisDialog<object>
{
[LuisIntent("")]
public async Task NoIntent(IDialogContext context, LuisResult result)
{
var dialog = new GreetingsDialog();
dialog.InitialMessage = result.Query;
context.Call(dialog, GreetingDialogDone);
}
[LuisIntent("Email")]
public virtual async Task ConfirmationEmail(IDialogContext context, LuisResult result)
{
await context.Forward(new EmailDialog, EmailDialogDone, "message", CancellationToken.None);
}
private async Task EmailDialogDone(IDialogContext context, IAwaitable<string> argument)
{
var messageHandled = await argument;
context.Wait(MessageReceived);
}
}
Run Code Online (Sandbox Code Playgroud)
所以在EmailDialogDone中我有一些来自用户的消息,我想再次使用此消息执行DefiningIntent对话框.我该怎么做?
任何人都可以解释我什么时候使用Dialogs比FormFlow更好?在我的情况下,我没有提供很多选项供用户选择(比如Sandwich bot示例),但我会有很多逻辑.例如:如果用户说了什么,我正在通过LUIS模型分析他的答案,然后调用一个特定的方法.根据用户说的我需要调用不同的方法.
我正在尝试理解这段代码:
var w = 900;
var h = 200;
var barPadding = 1;
var dataset = [ 5, 10, 13, 19, 21, 25, 22, 18, 15, 13,
11, 12, 15, 20, 18, 17, 16, 18, 23, 25 ];
//Create SVG element
var svg = d3.select("div")
.append("svg")
.attr("width", w)
.attr("height", h);
svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", function(d, i) {
return i * (w / dataset.length);
})
.attr("y", function(d) {
return h - (d * 4);
})
.attr("width", w / dataset.length - …
Run Code Online (Sandbox Code Playgroud) botframework ×2
c# ×2
azure-language-understanding ×1
d3.js ×1
dialog ×1
formflow ×1
installation ×1
javascript ×1
node.js ×1
npm ×1