C#-使用Bot Framework的聊天机器人中的自动建议

时间:2018-07-09 11:10:45

标签: c# botframework azure-bot-service

我正在尝试使用C#中的Bot Framework在chatbot中实现自动问题提示弹出窗口。如何在单个行中保留多个自动问题建议弹出窗口。当我输入hi(文本字段)时,它会给出多个建议(例如,您好,嘿,嗨,等等),然后单击建议,它将自动完成它,这应该类似于Google的建议。

我用C#实现,但是它给出了多个答案的建议。下面是我的示例代码

[QnAMaker("set yout subscription key here", "set your kbid here", "I don't understand this right now! Try another query!", 0.50, 3)]
    public class QnABotWithCustomAnswer : QnAMakerDialog
    {
        protected override async Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults)
        {
            // responding with the top answer when score is above some threshold
            if (qnaMakerResults.Answers.Count > 0 && qnaMakerResults.Answers.FirstOrDefault().Score > 0.75)
            {
                await context.PostAsync(qnaMakerResults.Answers.FirstOrDefault().Answer);
            }
            else
            {
                await base.QnAFeedbackStepAsync(context, qnaMakerResults);
            }
        }
}

请帮助我。

1 个答案:

答案 0 :(得分:1)

  

给出多个答案的建议

在您的代码中,我们发现您将top属性(要返回的答案数)设置为 3 ,如果您希望QnAMaker对话框返回前1个答案,则可以将top属性设置为 1

[QnAMaker("{subscriptionKey_here}", "{ knowledgebaseId_here}", "I don't understand this right now! Try another query!", 0.50, 1)]

这是QnAMakerAttribute的定义,您可以检查它并了解每个参数的详细信息:

// Summary:
//     Construct the QnA Knowledgebase information.
//
// Parameters:
//   knowledgebaseId:
//     The QnA Knowledgebase ID.
//
//   defaultMessage:
//     The default message returned when no match found.
//
//   scoreThreshold:
//     The threshold for answer score.
//
//   top:
//     The number of answers to return.
public QnAMakerAttribute(string authKey, string knowledgebaseId, string defaultMessage = null, double scoreThreshold = 0.3, int top = 1, string endpointHostName = null);