LUIS 인 텐트가있는 LuisDialog가 있습니다. 이러한 의도 중 일부에서는 사용자에게 더 많은 정보를 요구할 수도 있습니다. 이 경우 PromptDialog 또는 PromptString을 사용하려고합니다.LuisIntent에서 PromptDialog를 호출하려면 어떻게해야합니까?
[LuisIntent("MyIntent")]
public async Task MyIntent(IDialogContext context, LuisResult result)
{
if (result.Entities.Count == 0)
{
PromptDialog.Text(context, AfterUserInputSymbol, "Message to the user", "Try again message", 2);
result.Entities[0].Entity = userSymbol;
}
//some other code
context.Wait(MessageReceived);
}
private async Task AfterUserInputSymbol(IDialogContext context, IAwaitable<string> result)
{
userSymbol = await result;
context.Wait(MessageReceived);
}
그리고이 :
[LuisIntent("MyIntent")]
public async Task MyIntent(IDialogContext context, LuisResult result)
{
if (result.Entities.Count == 0)
{
PromptString dialog = new PromptString("Message to the user", "Try again message", 2);
context.Call(dialog, AfterUserInputSymbol);
result.Entities[0].Entity = userSymbol;
}
//some other code
context.Wait(MessageReceived);
}
private async Task AfterUserInputSymbol(IDialogContext context, IAwaitable<string> result)
{
userSymbol = await result;
context.Wait(MessageReceived);
}
프롬프트가 사용자에게 표시되지 않습니다 두 경우 모두
및 userSymbol
의 값이 널 (null)를 얻을 수
AfterUserInputSymbol
인 경우에만 입력됩니다 :
result.Entities[0].Entity = userSymbol;
LuisIntent에 대한 자세한 정보를 묻습니다.
를 (이전 한 당신이 달성하려고하는 내용에 따라 저장해야 할 수도 있습니다) 그것은 나에게 일을 잠시했다 몇 가지 테스트 및 물건, 그러나 그것은 잘 작동했습니다. 고맙습니다. – artie