私は LuisDialog を構築しており、LUIS 統合がうまく機能しています。
必要なすべてのギャップが LUIS で埋められない場合、曖昧さをなくすための最善の方法は何ですか?
現在、私は PromptDialog コールバックを使用しています - そのため、Dialog メソッド (LuisIntent 属性で装飾されています) 内で、詳細を取得したり曖昧さをなくしたりする必要がある場合は、次のようにします。
PromptDialog.Choice<string>(context, EnsureTimeOfDayChosen, new[] { "Morning (AM)", "Afternoon (PM)", "Any" }, "What time of day would you like us to book the appointment? (AM/PM/Any)", "Please choose AM or PM. Alternatively, if you don't mind which, just say Any.");
デリゲートの本体 (EnsureTimeOfDayChosen):
string AmPmOrAny = await result;
context.PerUserInConversationData.SetValue<string>("TimeOfDay", AmPmOrAny);
BookAppointment(context);
このアプローチの問題点は、デリゲートの最後の行です。正しくないと感じます。最初に呼び出された、LuisIntent で装飾されたメソッドとレジュームにいた場所に簡単にコールバックすることはできません。
代わりに、前もって LUIS 情報を処理し、さらに情報を収集して PerUserInConversationData に格納した後で BookAppointment メソッドを呼び出す必要があります。
私はそれを間違っていますか?
どんな助けでも大歓迎です-よろしく、マット。