#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, которым поделились выше