javascript - 如何在 REST API 查询上添加过滤器以查看 QnAmaker 的答案?

标签 javascript jquery botframework azure-qna-maker

我在聊天机器人中使用以下代码(使用 v4 azure MS 机器人框架)来查询问题和答案(客户端代码 - 使用纯 JavaScript 和 J Query),

  function generateAnswer() 
  {
        var question = {
            question: "will you marry me"
        }
        $.ajax({
            type: "POST",
            url: "https://YourEndPointURL/qnamaker/knowledgebases/eb895acb-e034-4f7c-asda7c-1955458ecec6/generateAnswer&$filter=source eq 'Editorial'",
            data: JSON.stringify(question),
            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization','EndpointKey c44444_Your_Endpoint_Key_4556');
            },
            dataType: "json",
            contentType: "application/json",
            success: function (data) {
                console.log(data);
                console.log(data.answers[0].answer);   
            }
        });
    }

使用此代码时,我收到以下错误响应

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

因此,请帮助我使用正确的语法来为我的查询应用过滤器。

最佳答案

根据https://learn.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/metadata-generateanswer-usage ,您需要在正文中指定过滤器(data 属性)

function generateAnswer() 
  {
        var data = {
            question: "will you marry me",
            strictFilters: [
            {
              "name": "source",
              "value": "Editorial"
            }],
        }
        $.ajax({
            type: "POST",
            url: "https://YourEndPointURL/qnamaker/knowledgebases/eb895acb-e034-4f7c-asda7c-1955458ecec6/generateAnswer",
            data: JSON.stringify(data),
            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization','EndpointKey c44444_Your_Endpoint_Key_4556');
            },
            dataType: "json",
            contentType: "application/json",
            success: function (data) {
                console.log(data);
                console.log(data.answers[0].answer);   
            }
        });
    }

此外,您还缺少两件事:

  1. 您的主机名,替换 YourEndPointURL
  2. 端点 key ,用于替换 c44444_Your_Endpoint_Key_4556

关于javascript - 如何在 REST API 查询上添加过滤器以查看 QnAmaker 的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59875337/

相关文章:

javascript - 单击上一个按钮后如何停止出现我的空白 div?

javascript - 使用jquery查找div的索引

javascript - jQuery Mobile 延迟加载列表项

botframework - 在调用 LUIS 之前调用 Microsoft Translate 之前使用 Bing 拼写检查

speech-recognition - 如何在 Microsoft BOT 中测试语音输入?

c# - 如何使用直线 API 将机器人集成到网站

javascript - Google Analytics 自定义维度页面 View

javascript - JS/无法读取未定义的属性 'push'

javascript - 如何删除字符串的一部分并保存到变量中?

javascript - 如何为表格中的单元格元素设置动画?