虚拟助手和技能的 Power Bi 报告
打字稿
我们无法在 Power Bi 仪表板中显示任何对话上下文。 我们已更新遥测记录器以记录 PII,但仍未在报告中获得任何对话上下文。 所有其他选项卡都正确填充,我们只是无法在对话框选项卡上看到任何输出
创建虚拟助手,
将布尔值“true”添加到遥测记录器
const telemetryLoggerMiddleware = new TelemetryLoggerMiddleware(telemetryClient, true);
const telemetryInitializerMiddleware = new TelemetryInitializerMiddleware(telemetryLoggerMiddleware, true);
检查 Power Bi 报告中的“所有对话框概览”和“对话框概览”选项卡
要在报告中填充的对话信息
不存在错误
感谢@tomSauret847 - 我们将审查这个问题,我们会尽快回复您!
嗨@tomSauret847 ,只是为了提供更新,我们正在积极调查此问题并努力重现此问题。 一旦我们能够这样做,我们就可以从那里提供下一步。 感谢您的耐心等待,并为延迟道歉!
嗨@tomSauret847 - 我们成功地重现了这个问题。
此外,我们试图重现此问题的打字稿技能,以及在C#虚拟助理/技能,但他们工作正常,所以这似乎是相关的只有打字稿虚拟助理。
我们想与您一起验证我们为实现此目的而遵循的重现步骤:
修改index
文件,添加 true 以下两个构造函数,如图所示:
在 Power BI 应用程序中打开虚拟助手分析模板文件
我们使用Power BI文档作为指南来配置和获取 Virtual Assistant Insights 指标。
一旦有任何更新,我们会尽快回复您😊。
_使用 TypeScript 虚拟助手重现的问题_
感谢@Batta32 对此进行调查。 我确实按照您上面列出的步骤操作并收到了相同的结果。 这似乎是在升级到已发布的 NPM 包之后开始的,因为我们在发布之前构建的第一个版本 GA 正在填充 Power BI 报告中的对话框上下文。
嗨@tomSauret847 - 我们成功解决了即将发布的 TypeScript Virtual Assistant 1.0 版本中的问题,在 PR #3584 中添加了这些更改,特别是此提交。
作为让 TypeScript 虚拟助手工作的解决方法,请在这些文件中进行以下更改:
更新对话框的constructor
添加telemetryClient
对象
//Add the BotTelemetryClient dependency from botbuilder
import {
...
BotTelemetryClient } from 'botbuilder';
// At the constructor parameter list, add telemetryClient as the final parameter
public constructor(
...,
telemetryClient: BotTelemetryClient
) {
// Inside the constructor assign the incoming telemetryClient to the local property
this.telemetryClient = telemetryClient;
});
}
发送telemetryClient
对象中的对话框初始化index.ts
// Add the telemetryClient as the final parameter in the OnboardingDialog constructor
const onboardingDialog: OnboardingDialog = new OnboardingDialog(..., telemetryClient);
// Add the telemetryClient as the final parameter in the MainDialog constructor
const mainDialog: MainDialog = new MainDialog(
...
telemetryClient
);
如果您有任何问题或更改,请随时向我们提问。
_使用更改的虚拟助手指标_
谢谢@Batta32! 这确实解决了问题,我们现在看到 Power Bi 报告中显示的对话上下文。
@Batta32我确实有一个问题。 我们现在在报告中看到对话框,但所有技能都显示在“切换技能对话框”下,而不是技能。 我们确实在所有技能上启用了遥测,并将其传递到与 VA 相同的构造函数中。 我是否缺少技能对话框构造函数中的设置?
感谢@tomSauret847的回复! 我们将审查这种情况,一旦有任何更新,我们会尽快回复您😊!
再次感谢@Batta32 ,我还注意到用于 QNA 制造商的 QNAMakerDialog 没有传入遥测客户端。 这也可以防止 QNA 制造商在报告中填充。
感谢@tomSauret847 提醒我们注意 QnAMakerDialog 问题。 我们发现了一个解决方法是修改tryCreateQnADialog方法并设置telemetryClient
在QnAMaker对话框属性(见图像行#201&#214)。
这是因为QnAMakerDialog从W aterfallDialog扩展,后者又从具有遥测客户端属性但设置为 NullTelemetryClient 的对话框扩展。
我们在 TypeScript Virtual Assistant 1.0 分支上测试了这个场景,它在那里得到了修复,无需将遥测客户端作为参数传递。 还使用 master 的 C# bots,这按预期工作。
请让我们知道这是否修复了QnAMakerDialog
的遥测注册。
我们将继续审查与SwitchSkillDialog
相关的问题。
感谢@VictorGrycuk提供此信息。 我已经进行了更改,现在我们看到 QNA 制造商对话框出现在报告中,如下所示。 但是 QNA 的表现仍然没有人满为患。 如对话框所示,我们正在打击 QNA 制造商,但报告中并未填充性能。
感谢@tomSauret847,我们会尽快回复您!
嗨@tomSauret847 ,我们重现了您提到的有关SwitchSkillDialog的问题,并确定这是设计使然,与 C# 中的行为相同。
另一种方法是在技能的 appsettings.json 中为虚拟助手 Application Insights 设置 Instrumentation Key。
instrumentationKey
值替换为第 2 步中复制的值注意:请记住,在多个机器人中具有相同名称的对话框(例如MainDialog
)将被组合在一起。
我们会留意您的回复,我们会审核QnA Performance的问题😊。
由于在部署时每个机器人都创建了自己的应用程序洞察资源,因此每个机器人的遥测是相互隔离的,因此要解决此问题并在同一 Power BI 仪表板中查看所有机器人的遥测,必须设置在他们的设置中使用相同的仪器键。
我们调查了SwitchSkillDialog
在 Power BI 仪表板中注册的原因,发现它注册了对话框的id
属性。
考虑到这一点,我们检查了切换时 SwitchSkillDialog 的id
是什么,发现它总是有自己的名字作为 id ,无论它切换到什么技能。
谢谢@VictorGrycuk我做了你上面概述的更改,现在所有技能对话框都显示在 Power Bi 报告中。 将技能中的应用洞察键设置为与 VA 相同后,我们将填充技能和 VA 中使用的所有对话框。
很棒的@tomSauret847 ,很高兴知道它有效。
我们现在将关注为什么没有填充 QnA 性能,一旦我们有任何更新,我们会通知您。
嗨@tomSauret847 ,我们刚刚重现了您报告的有关 TypeScript 中 QnA 未显示性能的问题。
我们使用 master 分支和 1.0 发布版本使用 Assistant 对此进行了测试,两种情况下的结果相同。
使用环境:
使用的步骤:
我们将在 master 和 1.0 中解决这个问题。 再次感谢您的举报。
嗨@tomSauret847 ,我们可以重现QnA Maker 对话框在Power BI 中不显示性能的问题。
不幸的是,这似乎是BotBuilder SDK的
为了显示 QnA 性能信息,有必要启用个人身份信息 (PII) 传输,如问题 #3447 的此评论中所述。
不过,我们观察到,引用标志 _logPersonalInformation_ 不存在于 BotBuilder-JS 的QnAMakerDialog 类中,与来自 BotBuilder-Dotnet 的相同类相反。
最重要的是,在 getQnAClient 方法中创建 QnAMaker 对象再次省略了通过构造函数传递标志以记录个人信息,如下所示。
我们通过在本地机器人中手动修改 node_modules 中的 QnAMakerDialog 类,添加强制为 true 的 logPersonalInformation 标志来测试执行这些更改:
public logPersonalInformation: BoolExpression = new BoolExpression(true);
然后在 getQnAClient 方法中将标志移交给 QnAMaker:
/**
* Creates and returns an instance of the QnAMaker class used to query the knowledgebase.
**/
private getQnAClient(): QnAMaker {
const endpoint = {
knowledgeBaseId: this.knowledgeBaseId,
endpointKey: this.endpointKey,
host: this.getHost()
};
const options = this.getQnAMakerOptions();
return new QnAMaker(endpoint, options, this.telemetryClient, this.logPersonalInformation.value);
}
我们可以在 Power BI 中看到 QnA 信息
感谢@matiasroldan6 对此进行调查。 我已经订阅了这个问题,所以我会在他们实施修复时保持更新。
此问题已过时,因为它已打开 30 天而没有任何活动。 删除陈旧的标签或评论,否则这将在 5 天内关闭
@matiasroldan6我们是否还在等待在 Botbuilder-js 存储库中修复此问题?
是的@tomSauret847 ,最后一个问题是我们在 microsoft/botbuilder-js#2779 中提出的 SDK 中的一个差异。 SDK 团队确认了差异,他们目前正在努力解决这个问题。
如果您同意,我们可以关闭此问题,一旦我们有关于 SDK 团队的任何更新,我们将在此处回复您😊。
谢谢@Batta32我将关闭此问题并观看您提供的问题。
最有用的评论
谢谢@VictorGrycuk我做了你上面概述的更改,现在所有技能对话框都显示在 Power Bi 报告中。 将技能中的应用洞察键设置为与 VA 相同后,我们将填充技能和 VA 中使用的所有对话框。