Botframework-solutions: Power Bi 报告中未显示对话上下文

创建于 2020-08-10  ·  22评论  ·  资料来源: microsoft/botframework-solutions

什么项目受到影响?

虚拟助手和技能的 Power Bi 报告

这是什么语言?

打字稿

发生什么了?

我们无法在 Power Bi 仪表板中显示任何对话上下文。 我们已更新遥测记录器以记录 PII,但仍未在报告中获得任何对话上下文。 所有其他选项卡都正确填充,我们只是无法在对话框选项卡上看到任何输出

重现此问题的步骤是什么?

创建虚拟助手,
将布尔值“true”添加到遥测记录器
const telemetryLoggerMiddleware = new TelemetryLoggerMiddleware(telemetryClient, true);
const telemetryInitializerMiddleware = new TelemetryInitializerMiddleware(telemetryLoggerMiddleware, true);
检查 Power Bi 报告中的“所有对话框概览”和“对话框概览”选项卡

你期待发生什么?

要在报告中填充的对话信息

你能分享任何日志、错误输出等吗?

不存在错误

任何屏幕截图或其他上下文?

image

Bot Services Kobuk bug customer-replied-to customer-reported in-progress stale

最有用的评论

谢谢@VictorGrycuk我做了你上面概述的更改,现在所有技能对话框都显示在 Power Bi 报告中。 将技能中的应用洞察键设置为与 VA 相同后,我们将填充技能和 VA 中使用的所有对话框。

所有22条评论

感谢@tomSauret847 - 我们将审查这个问题,我们会尽快回复您!

@tomSauret847 ,只是为了提供更新,我们正在积极调查此问题并努力重现此问题。 一旦我们能够这样做,我们就可以从那里提供下一步。 感谢您的耐心等待,并为延迟道歉!

@tomSauret847 - 我们成功地重现了这个问题。

此外,我们试图重现此问题的打字稿技能,以及在C#虚拟助理/技能,但他们工作正常,所以这似乎是相关的只有打字稿虚拟助理。

我们想与您一起验证我们为实现此目的而遵循的重现步骤:

重现步骤

  1. 安装Power BI Desktop
  2. 下载虚拟助手分析 Power BI 模板
  3. 部署 TypeScript 虚拟助手
  4. 修改index文件,添加 true 以下两个构造函数,如图所示:
    image

  5. 在 Power BI 应用程序中打开虚拟助手分析模板文件

  6. 从您的 Application Insights 资源中获取 Application Insights id
  7. 在 Power BI 配置中添加之前的数据
  8. 启动机器人
  9. 检查 Power BI 是否正确接收指标
  10. 验证所有对话框概览页面未收到任何类型的信息

我们使用Power BI文档作为指南来配置和获取 Virtual Assistant Insights 指标。

一旦有任何更新,我们会尽快回复您😊。

_使用 TypeScript 虚拟助手重现的问题_
image

感谢@Batta32 对此进行调查。 我确实按照您上面列出的步骤操作并收到了相同的结果。 这似乎是在升级到已发布的 NPM 包之后开始的,因为我们在发布之前构建的第一个版本 GA 正在填充 Power BI 报告中的对话框上下文。

@tomSauret847 - 我们成功解决了即将发布的 TypeScript Virtual Assistant 1.0 版本中的问题,在 PR #3584 中添加了这些更改,特别是此提交

作为让 TypeScript 虚拟助手工作的解决方法,请在这些文件中进行以下更改:

  1. 更新对话框的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;
        });
    }
    
  2. 发送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
    );
    
  3. 完成此操作后,请按照以下步骤使用 Power BI 在虚拟助手中设置指标
  4. 检查 Power BI 是否正确接收指标
  5. 验证所有对话框概述页面是否正在接收机器人信息

如果您有任何问题或更改,请随时向我们提问。

_使用更改的虚拟助手指标_
image

谢谢@Batta32! 这确实解决了问题,我们现在看到 Power Bi 报告中显示的对话上下文。

@Batta32我确实有一个问题。 我们现在在报告中看到对话框,但所有技能都显示在“切换技能对话框”下,而不是技能。 我们确实在所有技能上启用了遥测,并将其传递到与 VA 相同的构造函数中。 我是否缺少技能对话框构造函数中的设置?

感谢@tomSauret847的回复! 我们将审查这种情况,一旦有任何更新,我们会尽快回复您😊!

再次感谢@Batta32 ,我还注意到用于 QNA 制造商的 QNAMakerDialog 没有传入遥测客户端。 这也可以防止 QNA 制造商在报告中填充。

感谢@tomSauret847 提醒我们注意 QnAMakerDialog 问题。 我们发现了一个解决方法是修改tryCreateQnADialog方法并设置telemetryClient在QnAMaker对话框属性(见图像行#201&#214)。

这是因为QnAMakerDialogW aterfallDialog扩展,后者又从具有遥测客户端属性但设置为 NullTelemetryClient 的对话框扩展。

我们在 TypeScript Virtual Assistant 1.0 分支上测试了这个场景,它在那里得到了修复,无需将遥测客户端作为参数传递。 还使用 master 的 C# bots,这按预期工作。

请让我们知道这是否修复了QnAMakerDialog的遥测注册。

我们将继续审查与SwitchSkillDialog相关的问题。

image

感谢@VictorGrycuk提供此信息。 我已经进行了更改,现在我们看到 QNA 制造商对话框出现在报告中,如下所示。 但是 QNA 的表现仍然没有人满为患。 如对话框所示,我们正在打击 QNA 制造商,但报告中并未填充性能。
image

image

感谢@tomSauret847,我们会尽快回复您!

@tomSauret847 ,我们重现了您提到的有关SwitchSkillDialog的问题,并确定这是设计使然,与 C# 中的行为相同。

另一种方法是在技能的 appsettings.json 中为虚拟助手 Application Insights 设置 Instrumentation Key。

  1. 按照步骤激活遥测
  2. 部署虚拟助手后,从其 appsettings 文件中复制instrumentationKey
  3. 部署技能后,替换技能,将它们的instrumentationKey值替换为第 2 步中复制的值
  4. 启动虚拟助手,调用技能
  5. 对技能对话框的调用将开始在 Power BI 中注册

注意:请记住,在多个机器人中具有相同名称的对话框(例如MainDialog将被组合在一起

我们会留意您的回复,我们会审核QnA Performance的问题😊。

image

更多细节

由于在部署时每个机器人都创建了自己的应用程序洞察资源,因此每个机器人的遥测是相互隔离的,因此要解决此问题并在同一 Power BI 仪表板中查看所有机器人的遥测,必须设置在他们的设置中使用相同的仪器键。

我们调查了SwitchSkillDialog在 Power BI 仪表板中注册的原因,发现它注册了对话框的id属性。

考虑到这一点,我们检查了切换时 SwitchSkillDialog 的id是什么,发现它总是有自己的名字作为 id ,无论它切换到什么技能。

image

谢谢@VictorGrycuk我做了你上面概述的更改,现在所有技能对话框都显示在 Power Bi 报告中。 将技能中的应用洞察键设置为与 VA 相同后,我们将填充技能和 VA 中使用的所有对话框。

很棒的@tomSauret847 ,很高兴知道它有效。
我们现在将关注为什么没有填充 QnA 性能,一旦我们有任何更新,我们会通知您。

@tomSauret847 ,我们刚刚重现了您报告的有关 TypeScript 中 QnA 未显示性能的问题。

我们使用 master 分支和 1.0 发布版本使用 Assistant 对此进行了测试,两种情况下的结果相同。

使用环境:

  • 在 index.ts 中启用遥测线的 TS 虚拟助手。 部署到 Azure
  • 连接到智能助理的 App Insights
  • 带有虚拟助手分析模板的 Power BI

使用的步骤:

  1. 使用会触发 QnA 的话语与虚拟助手交谈(例如“什么是虚拟助手”)
  2. 使用连接到它的 App Insights 中的应用程序 ID,从 Power BI 打开虚拟助手分析模板
  3. 检查 QnA 是否未显示性能

我们将在 master 和 1.0 中解决这个问题。 再次感谢您的举报。

image

@tomSauret847 ,我们可以重现QnA Maker 对话框在Power BI 中不显示性能的问题。
不幸的是,这似乎是BotBuilder SDK

为了显示 QnA 性能信息,有必要启用个人身份信息 (PII) 传输,如问题 #3447 的此评论中所述。

不过,我们观察到,引用标志 _logPersonalInformation_ 不存在于 BotBuilder-JS 的QnAMakerDialog 类中,与来自 BotBuilder-Dotnet 的相同类相反
最重要的是,在 getQnAClient 方法中创建 QnAMaker 对象再次省略了通过构造函数传递标志以记录个人信息,如下所示。
image
image

我们通过在本地机器人中手动修改 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 信息
image

感谢@matiasroldan6 对此进行调查。 我已经订阅了这个问题,所以我会在他们实施修复时保持更新。

此问题已过时,因为它已打开 30 天而没有任何活动。 删除陈旧的标签或评论,否则这将在 5 天内关闭

@matiasroldan6我们是否还在等待在 Botbuilder-js 存储库中修复此问题?

是的@tomSauret847 ,最后一个问题是我们在 microsoft/botbuilder-js#2779 中提出的 SDK 中的一个差异。 SDK 团队确认了差异,他们目前正在努力解决这个问题。

如果您同意,我们可以关闭此问题,一旦我们有关于 SDK 团队的任何更新,我们将在此处回复您😊。

谢谢@Batta32我将关闭此问题并观看您提供的问题。

此页面是否有帮助?
0 / 5 - 0 等级