与此问题非常类似的问题:How to get PromptDialog.Choice features and still allow other User responses in Bot Framework?
我想扩展PromptChoice以向用户提供许多选项,如下所示:
这是我发现的:
选项1 选项2 备选方案3
您想了解哪些信息?
如果用户以“选项1”响应,我想使用PromptChoice来选择它。但是如果用户用更自然的语言回答,比如“选项1在哪里”?即使开箱即用的PromptChoice没有处理这个问题,我也想回答有关选项1的信息。
我知道我必须覆盖TryParse,但我感到困惑的是如何自己解析消息,然后从选项列表中选择正确的选项。我必须在PromptChoice中覆盖哪些内容才能添加此功能?
答案 0 :(得分:2)
首先查看PromptChoice
实施及其TryParse
方法,here
您将看到它是通过3个识别步骤制作的:
这些步骤将提供topScore
和topEntity
,并返回这3个值中的最佳值(如果topScore
优于minScore
值。)< / p>
请注意,可以在PromptChoice设置中禁用每个识别,并且也可以在那里设置minScore
值。
如何修改行为?
一个想法是将minScore
值设置得相当高,并添加else
语句来执行您的专用代码。
那将是:
if (topScore >= this.minScore && topScore > 0)
{
result = topEntity;
return true;
}
else
{
// Your custom code here
// You have access to your list of options, to your message...
}
我无法在your custom code here
中添加有关该怎么做的详细信息,因为您的问题不够明确。如果它是“已知的固定问题”,那么比理解所有自然语言可能性要容易得多。