как получить вопросы и ответы от QnAMaker, используя REST API в Javascript коде - PullRequest
2 голосов
/ 22 января 2020

Я работаю над платформой MS Bot V4, я хочу создать такую ​​функциональность, как когда пользователь начинает вводить вопрос, бот должен заполнить и дать точные фразы вопроса, чтобы пользователь мог нажимать на предложения дается ботом. Следовательно, уменьшается пользовательское усилие и уменьшается вероятность ошибок.

Так что я пишу функцию на стороне клиента (используя обычный JavaScript), которая вызывается при нажатии клавиши.

Я использовал следующий код для создания этой функции.

            $( "[aria-label='Sendbox']" ).keypress(function() {

            if($( "[aria-label='Sendbox']" )[0].defaultValue.length >3){

                getquestion(this.value);
            }
        });

Внутри функции я хочу создать вызов REST API и получить вопросы, связанные с ключевым словом, введенным пользователем.

function getquestion(value)
{
    var params = value;

        $.ajax({
            url: "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0/knowledgebases/create?" + $.param(params),
            beforeSend: function(xhrObj){
            // Request headers
            xhrObj.setRequestHeader("Content-Type","application/json");
            xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","<key>");
        },
        type: "GET",
        // Request body
        //data: "{body}",
    })
    .done(function(data) {
        alert("success");
    })
    .fail(function(data) {
        alert("error");
    });
}

Используя эту функцию, я могу работать только со своей базой знаний, но не могу сузить круг вопросов, связанных с ключевыми словами.

Может кто-нибудь помочь мне выполнить мое требование. Спасибо в advacne

1 Ответ

2 голосов
/ 22 января 2020

Вы можете попробовать следующий фрагмент кода для запроса конечной точки QnA maker и получить оттуда ответ.

Правильный формат запроса в Jquery:

  $("#btnQnAMakerAnswer").click(function () {
        var question = {
            question: "will you marry me"
        }
        $.ajax({
            type: "POST",
            url: "https://YourEndPointURL/qnamaker/knowledgebases/eb895acb-e034-4f7c-asda7c-1955458ecec6/generateAnswer",
            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);   
            }
        });


    });

Ответ от конечной точки QnA:

enter image description here

Надеюсь, это решит вашу проблему проблема.

Для более подробной информации вы можете обратиться к официальным документам

...