метаданные в запросе insight для журналов QnAMaker

#azure #azure-application-insights #qnamaker

Вопрос:

Пожалуйста, дайте мне знать, как включить метаданные в запрос insight для QnAMaker регистрирует что-то вроде этого, здесь поле meatadata пустое

 | 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
| extend question = tostring(customDimensions['traces'])
| extend answer = tostring(customDimensions['Answer'])
| extend score = tostring(customDimensions['Score'])
| extend metadata = tostring(customDimensions['qnaMakerOptions'])
| project answer,['metadata']
 

Комментарии:

1. Похоже, вы уже открыли это обсуждение на MS Qamp;A и GitHub, добавив ссылки, чтобы помочь другим членам сообщества. Вы можете обратиться к метаданным в запросе insight для журналов QnAMaker и узнать, как включить метаданные в запрос insight для журналов QnAMaker

Ответ №1:

Чтобы помочь другим членам сообщества опубликовать предложение с GITHUB, где обсуждается этот вопрос.

Если вы посмотрите в таблице customEvents, вы можете найти событие с именем «QnAMessage» — это событие, которое создается базовой службой QnAMaker в пакете SDK Bot Framework и предоставляет дополнительную информацию, выходящую за рамки определенного вами события трассировки. Соответствующий класс-Microsoft.Bot.Builder.AI.QnA.QnAMaker, расположенный в репозитории microsoft/botbuilder-dotnet.

С помощью этого класса можно предоставлять пользовательские свойства событий и показатели, которые могут быть записаны в Application Insights. Для этого рекомендуется создать пользовательский диалог, который наследуется от QnAMakerDialog, и добавить логику, соответствующую для предоставления любых дополнительных свойств и показателей телеметрии.

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

Общий подход, который вы бы выбрали, заключается в написании пользовательского диалога, расширяющегося из QnAMakerDialog, возможно, переопределяющего защищенный метод getQnaMakerClient (…), чтобы вернуть пользовательскую реализацию QnAMaker, которая включает в себя метаданные, которые вас интересуют в методе on QnaResults. Ниже приведен некоторый псевдокод, иллюстрирующий пример

 class CustomQnAMakerDialog extends QnAMakerDialog {
  async getQnaMakerClient(dialogContext) {
    const client = await super.getQnAMakerClient(dialogContext);

    const onQnaResults = client.onQnaResults.bind(client);
    client.onQnaResults = (qnaResults, turnContext, properties = {}, metrics = {}) => {
      properties = { ...properties, custom: 'property' };
      metrics = { ...metrics, custom: 1.0 };

      return onQnaResults(qnaResults, turnContext, properties, metrics);
    }
  }
}
 

Для получения дополнительной информации о регистрации метаданных в службе app insights для qna maker см. ссылку git hub ниже с полным кодом

QnaMakerDialog amp; QnAMaker

Комментарии:

1. не могли бы вы, пожалуйста, поделиться кодом C# для вышеупомянутого псевдокода javascript, которым поделились выше