【问题标题】:How can i use QnAMaker to provide random answers to same query我如何使用 QnAMaker 为同一查询提供随机答案
【发布时间】:2018-06-21 15:06:13
【问题描述】:

我在想机器人有一些通用的问题,比如你好吗?可能我有大约 10 个答案,我希望问答制作者随机选择,而不是每次都选择相同的答案。

或者还有一些问题,比如给我讲个故事

【问题讨论】:

    标签: botframework microsoft-cognitive qnamaker


    【解决方案1】:

    一些一般性的问题,比如你好吗?可能我有大约 10 个答案,我希望问答制作者随机选择,而不是每次都选择相同的答案。

    要达到这个要求,可以试试这个方法:

    1) 添加 QnA 对并使用特殊字符(例如 |)来拆分问题 how are you? 的答案

    2) 重写RespondFromQnAMakerResultAsync 方法,并在该方法中随机拆分响应和检索答案

    protected override async Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)
    {
        // This will only be called if Answers isn't empty
    
        var response = result.Answers.First().Answer;
        var answersforhowareyou = response.Split('|');
    
        if (answersforhowareyou.Count() > 1)
        {
            Random rnd = new Random();
            int index = rnd.Next(answersforhowareyou.Count());
    
            response = answersforhowareyou[index];
        }
    
        await context.PostAsync(response);
    }
    

    测试结果:

    【讨论】:

    • 感谢您提供这个自定义解决方案的想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多