Получение аналитических данных о базе знаний

QnA Maker сохраняет все журналы чатов и другие данные телеметрии, если во время создания службы QnA Maker вы включили Application Insights. Чтобы получить журналы чатов из Application Insights, воспользуйтесь приведенными здесь примерами запросов.

Примечание

Поддержка службы QnA Maker будет прекращена 31 марта 2025 г. Новая версия возможности вопросов и ответов теперь доступна в составе языка ИИ Azure. Сведения о возможностях ответов на вопросы в службе Языка см. в статье с ответами на вопросы. С 1 октября 2022 г. вы не сможете создавать ресурсы QnA Maker. Сведения о переносе существующих баз знаний QnA Maker в функцию вопросов и ответов см. в руководстве по миграции.

  1. Откройте ресурс Application Insights.

    Выбор ресурса Application Insights

  2. Выберите Log (Analytics) . Откроется новое окно, в котором можно запросить данные телеметрии QnA Maker.

  3. Вставьте следующий запрос и выполните его.

    requests
    | where url endswith "generateAnswer"
    | project timestamp, id, url, resultCode, duration, performanceBucket
    | parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
    | join kind= inner (
    traces | extend id = operation_ParentId
    ) on id
    | where message == "QnAMaker GenerateAnswer"
    | extend question = tostring(customDimensions['Question'])
    | extend answer = tostring(customDimensions['Answer'])
    | extend score = tostring(customDimensions['Score'])
    | project timestamp, resultCode, duration, id, question, answer, score, performanceBucket,KbId
    

    Щелкните Запуск, чтобы выполнить запрос.

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

Выполнение запросов для получения других аналитических данных о базе знаний QnA Maker

Общий трафик за 90 дней

//Total Traffic
requests
| where url endswith "generateAnswer" and name startswith "POST"
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| summarize ChatCount=count() by bin(timestamp, 1d), KbId

Общий трафик вопросов за определенный период времени

//Total Question Traffic in a given time period
let startDate = todatetime('2019-01-01');
let endDate = todatetime('2020-12-31');
requests
| where timestamp <= endDate and timestamp >=startDate
| where url endswith "generateAnswer" and name startswith "POST"
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| summarize ChatCount=count() by KbId

Трафик пользователя

//User Traffic
requests
| where url endswith "generateAnswer"
| project timestamp, id, url, resultCode, duration
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| join kind= inner (
traces | extend id = operation_ParentId
) on id
| extend UserId = tostring(customDimensions['UserId'])
| summarize ChatCount=count() by bin(timestamp, 1d), UserId, KbId

Распределение задержки вопросов

//Latency distribution of questions
requests
| where url endswith "generateAnswer" and name startswith "POST"
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| project timestamp, id, name, resultCode, performanceBucket, KbId
| summarize count() by performanceBucket, KbId

Вопросы без ответов

// Unanswered questions
requests
| where url endswith "generateAnswer"
| project timestamp, id, url
| parse kind = regex url with *"(?i)knowledgebases/"KbId"/generateAnswer"
| join kind= inner (
traces | extend id = operation_ParentId
) on id
| extend question = tostring(customDimensions['Question'])
| extend answer = tostring(customDimensions['Answer'])
| extend score = tostring(customDimensions['Score'])
| where  score  == "0" and message == "QnAMaker GenerateAnswer"
| project timestamp, KbId, question, answer, score
| order  by timestamp  desc

ПРИМЕЧАНИЕ.
Если вы не можете получить журнал правильно с помощью Application Insights, проверьте параметры Application Insights в ресурсе Служба приложений. Откройте ресурс Служба приложений и перейдите в Application Insights. Затем проверьте, включена ли эта служба или отключена. Если она отключена, включите ее, а затем примените.

Дальнейшие действия