我想在Microsoft Bot框架中连续进行对话聊天。
如果(用户说你好(
{
回复= what u want to listen hi or hello
----- if(用户说嗨(
----- {
--------回复= hi
-----}
----如果(用户说你好(
- {
-------回复= hello
---}
}
意味着bot也应提出问题并相应地回答。
假设这是C#
,并且您使用的是基于IDialog<T>
的对话框,则可以执行以下操作:
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
{
var message = await result;
if (message.Text.Equals("hello", StringComparison.InvariantCultureIgnoreCase))
{
PromptDialog.Text(context, this.ResumeAfterPrompt, "What u want to listen hi or hello");
}
else
{
// do something
context.Wait(this.MessageReceivedAsync);
}
}
private async Task ResumeAfterPrompt(IDialogContext context, IAwaitable<string> result)
{
try
{
var userMessage = await result;
switch (userMessage.ToLowerInvariant())
{
case "hi":
await context.PostAsync("hi");
break;
case "hello":
await context.PostAsync("hello");
break;
default:
// do something;
break;
}
}
catch (TooManyAttemptsException)
{
// do something with the exception
}
context.Wait(this.MessageReceivedAsync);
}