0
私はdelegateでResumeAfterを必要とする(IDialogContextコンテキスト、IAwaitable結果)Microsoft.Bot.Builder.Dialog.Promptoptionsクラスを使用しています私はIAwaitableをLuisResult(Microsoft BotフレームワークのLUIS)に変換しようとしています
しかし、私は呼びたいデリゲートは、「(ないタスクテスト(IDialogContextコンテキスト、IAwaitable結果)
が、以下の
[LuisIntentを持っているというLUISデリゲートの非同期プライベート のですテスト ") タスクテスト(IDialogContextコンテキスト、LuisResult結果)非同期プライベート
非常LUISが何をしようとする方法
private async Task ProductChoice(IDialogContext context, IAwaitable<string> result)
{
PromptDialog.Choice<string>(
context,
ProductOverview,
this.productOptions,
"Which plaform are you interested in?",
"Ooops, what you wrote is not a valid option, please try again",
3,
PromptStyle.PerLine);
await context.PostAsync(context.MakeMessage());
}
[LuisIntent ("Products")]
public async Task ProductOverview(IDialogContext context, LuisResult result)
{
string product = "";
EntityRecommendation rec;
Activity activity = (Activity)context.MakeMessage();
Attachment attachment;
if (result.TryFindEntity("ProductName", out rec))
{
//Here you could include other rich cards
attachment = CreateNewHeroCard(product = rec.Entity);
activity.Attachments.Add(attachment);
await context.PostAsync(activity);
}
else
{
await context.PostAsync("Sorry, their is no product by that name");
}
}
。そのPromptOptionsの使い方は、なぜ 'LuisResult'があなたのコールバックに返されると思いますか? – Evk
いくつかのコードのリファクタリングと抽出が必要な場合があります.Luis resultとResumeAfterで使用される一般的な方法にTestメソッドで行われた内容を抽出します –
これを行うことはできません。しかし、コードをリファクタリングする方が簡単ですが、一般的な方法を使用してください。 –