QNA Maker не возвращает точные совпадения

QNA Maker не возвращает точные совпадения из баз знаний.

Итак, мы использовали библиотеку botbuilder-ai для вызова создателя QNA. Однако QNA Maker не возвращает точное совпадение, которое есть в базе знаний. Однако, если я проверю, что в тестовой функции портала qnamaker.ai, она работает.

Вот код, который я использую для извлечения результатов.

const this.qnaRecognizer = new QnAMaker(
                {
                    knowledgeBaseId: keyvault.QnAMakerSecret.knowledgebaseID,
                    endpointKey: keyvault.QnAMakerSecret.qnaAuthKEY,
                    host: keyvault.QnAMakerSecret.qnaEndPointHost,
                },
                {
                    scoreThreshold: QNA_CONFIDENCE_THRESHOLD,
                    top: QNA_NUM_OF_RESULTS,
                }
            );
const qnaResult = await this.qnaRecognizer.getAnswers(step.context);

Как и ожидалось, он вызовет конечную точку QNA Maker и должен вернуть результаты. Вместо этого он возвращает пустой массив.

Теперь я отслеживал вызовы qnamaker.ai и заметил, что, когда они вызывают API, они передают еще один параметр - isTest = true.

Вот результаты:

Без isTest = true

URL: https://qnamaker-host.azurewebsites.net/qnamaker/knowledgebases/<kbid>/generateAnswer
Method: POST
Result: {
    "answers": [
        {
            "questions": [],
            "answer": "No good match found in KB.",
            "score": 0,
            "id": -1,
            "source": null,
            "metadata": []
        }
    ],
    "debugInfo": null
}

При isTest = true

URL: https://qnamaker-host.azurewebsites.net/qnamaker/knowledgebases/<kbid>/generateAnswer
Method: POST
Result: {
    "answers": [
        {
            "questions": [
                "Who are you?"
            ],
            "answer": "I am an intelligent bot",
            "score": 100,
            "id": 2,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "_id",
                    "value": "<removed>"
                }
            ],
            "context": {
                "isContextOnly": false,
                "prompts": []
            }
        }
    ],
    "debugInfo": null
}

Теперь я должен ожидать такого же поведения без установки isTest = true в этом случае. Кроме того, в каждом API я не могу передать isTest = true, потому что я напрямую использую для этого их библиотеку.

Может кто-нибудь помочь в этом? Заранее спасибо.


person Dhruman Bhadeshiya    schedule 16.05.2019    source источник


Ответы (1)


Наиболее вероятная причина в том, что вы не опубликовать базу знаний.

С "isTest": true вы запрашиваете тестовую базу знаний вместо опубликованной базы знаний. См. Этот документ для более подробной информации.

Обновление:

В QnA Maker существует конструктивное ограничение: когда в ресурсе существует несколько КБ, на тестовую среду влияют другие КБ. Производственная среда изолирована от других КБ. Это связано с тем, что индексы поиска Azure используются совместно с КБ в тестовой среде. Один из способов решения проблемы - иметь только один КБ в ресурсе при использовании тестовой среды.

person Tony Ju    schedule 17.05.2019
comment
@DhrumanBhadeshiya У вас есть несколько КБ для ресурса? Если да, см. Мой обновленный ответ. - person Tony Ju; 17.05.2019
comment
Я здесь немного запутался. Что вы имеете в виду под производственной средой и средой тестирования QNA Maker? Есть ли какой-нибудь переключатель, чтобы это изменить? - person Dhruman Bhadeshiya; 17.05.2019
comment
Кроме того, я не использую тестовую среду внутри своего бота. Мой бот сам вызывает производственную среду. Хотя я не получаю результатов от продакшена КБ. - person Dhruman Bhadeshiya; 17.05.2019
comment
@DhrumanBhadeshiya У вас есть несколько КБ в ресурсе? Да, если вы не использовали IsTest = true, он вызовет производственный env - person Tony Ju; 17.05.2019
comment
Да, у меня в ресурсе несколько КБ. И я не использую isTest = true из своих ботов. Это я просто отлаживал. Но даже после публикации бота без использования isTest = true я не получаю результатов. - person Dhruman Bhadeshiya; 17.05.2019
comment
@DhrumanBhadeshiya Понятно. Это может быть проблемой. Я столкнулся с той же проблемой с несколькими килобайтами в ресурсе. Я подал заявку в службу поддержки инженеру службы поддержки Azure. Обновленный ответ - это ответ от них. Это известная проблема. - person Tony Ju; 17.05.2019
comment
@DhrumanBhadeshiya Результаты в тестовой среде не были успешно опубликованы в среде продукта, даже если мы нажали кнопку публикации. - person Tony Ju; 17.05.2019
comment
Вы хотите сказать, что QNA Maker не может обрабатывать несколько баз знаний? - person Dhruman Bhadeshiya; 17.05.2019
comment
@DhrumanBhadeshiya Да, это может вызвать проблемы с индексом. Это известная проблема, которая будет устранена командой разработчиков продукта. - person Tony Ju; 17.05.2019
comment
Вы уверены, что это так? Я не говорю о тестовом индексе множественной базы знаний. Я говорю о нескольких индексах, опубликованных в базе знаний. QNA Maker по-прежнему не может должным образом обрабатывать опубликованные индексы? - person Dhruman Bhadeshiya; 20.05.2019
comment
@DhrumanBhadeshiya Да, я знаю. Я столкнулся с той же проблемой, что и ваша. Single kb решит эту проблему. - person Tony Ju; 20.05.2019
comment
@DhrumanBhadeshiya Если у вас все еще есть какие-либо другие проблемы по этому поводу, вы можете подать заявку в службу поддержки на портале Azure, перейдя по этой ссылке docs.microsoft.com/en-us/azure/azure-supportability/ - person Tony Ju; 21.05.2019