スタンドアロンの Q&A ビジュアルを埋め込む

先端

Power BI Embedded Analytics Playgroundの「Api の詳細」セクションで、Q&A を埋め込んだり、クライアント API を試してみてください。

この記事では、スタンドアロンの Q&A ビジュアルをアプリケーションに埋め込む手順について説明します。

この機能は、ユーザーが質問する方法を提供します。 その後、グラフやグラフなどのビジュアルの形式ですぐに回答を受け取ります。 この機能の詳細については、「Power BIで Q&A ビジュアルを作成する」を参照してください。

Q と A の埋め込み機能を示すアニメーション画像。ユーザーが質問を変更すると、ビジュアル データが変更されます。

Q&A を埋め込む方法

Power BI コンテンツをアプリに埋め込む場合は、構成オブジェクトを使用して埋め込むコンテンツを定義し、コンテンツの設定を指定します。 次に、そのオブジェクトを API に渡します。

Q&A を埋め込む場合は、ILoadQnaConfiguration型の構成オブジェクトを使用します。

interface ILoadQnaConfiguration {
    accessToken: string;
    datasetIds: string[];
    embedUrl: string;
    question?: string; 
    tokenType?: models.TokenType;
    type: string;
    viewMode?: models.QnaMode;
}

このインターフェイスには、次のプロパティが含まれています。

  • accessToken - 埋め込む Power BI データへのアクセスを許可するトークン。 アクセス トークンの詳細については、「 さまざまな埋め込みソリューションについて理解する」を参照してください。

  • datasetIds - 埋め込み Q&A が使用するデータ スキーマを定義するデータセットの ID。 Datasets API を使用してデータセットを取得できます。 2 つの例を次に示します。

    手記

    現在、構成できるデータセットは 1 つだけです。

  • embedUrl - 埋め込む Q&A のデータセットの URL。 この URL は、埋め込み Q&A を含む HTML iframe 要素のソースになります。 具体的には、API によって、iframesrc 属性に URL が割り当てられます。 Datasets API を使用して、この URL を取得できます。 2 つの例を次に示します。

  • question - API に表示される視覚化を決定する質問。 このプロパティは、結果モードでのみ使用されます。

  • tokenType - 埋め込む Power BI データへのアクセスを提供するトークンの種類。

    • 組織用に埋め込む場合 (ユーザーがデータを所有している) 場合は、models.TokenType.Aad を使用します。
    • 顧客用に埋め込む場合 (アプリがデータを所有している) 場合は、models.TokenType.Embed を使用します。

    詳細については、「さまざまな埋め込みソリューション を理解する」を参照してください。

  • type - 埋め込むコンテンツの種類。 Q&A の 'qna' を使用します。

  • viewMode - 埋め込み Q&A のモード。 次の 2 つのモードを使用できます。

    • Interactive - ユーザーは質問を入力できます。 API は質問を表示し、それに応じてビジュアルを更新します。
    • ResultOnly 特定の質問を入力します。 API には、その質問とそのビジュアルが表示されます。

この例では、Q&A を埋め込む方法を示します。

// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
    accessToken: anAccessToken,
    datasetIds: [aDatasetID],
    embedUrl: anEmbedUrl,
    question: aTextQuestion,
    tokenType: aTokenType,
    type: 'qna',
    viewMode: QnaMode.ResultOnly
};
 
// Get a reference to the HTML element that contains the embedded Q&A.
let embedContainer = $('#embedContainer')[0];
 
// Embed the Q&A.
let visual = powerbi.embed(embedContainer, embedConfiguration);

表示される質問を変更する

ResultOnlyviewMode を使用して質問を入力する場合は、setQuestion メソッドを使用して表示される質問を変更できます。 その後、API によって表示されるビジュアルが変更されます。

この方法は、よく寄せられる質問の一覧に使用できます。 ユーザーが質問を行うと、埋め込み要素内に回答を表示できます。

PowerBI JavaScript Qna クラス は、setQuestion メソッドを次のように定義します。

setQuestion(question: string): Promise<void>

question パラメーターには、テキスト形式の質問が含まれています。

この例では、このメソッドを使用して表示される質問を変更する方法を示します。

// Get a reference to the embedded Q&A HTML element.
let qnaContainer = $('#qnaContainer')[0];

// Get a reference to the embedded Q&A.
let qna = powerbi.get(qnaContainer);

// Change the displayed question.
await qna.setQuestion("This year sales");

ユーザーの質問をキャプチャする

InteractiveviewMode を使用する場合、API は表示されたビジュアルが変更されたときにアプリに通知できます。 更新された入力クエリに応答してビジュアルが変更されるたびに、埋め込みコンポーネントによって visualRendered イベントが生成されます。 アプリがこの種類のイベントをリッスンする場合、コードは新しいクエリに応答できます。

たとえば、ユーザーが入力した質問を記録できます。 これらの質問は、後で AI またはテレメトリの目的で使用できます。

次のようなコードを使用して、visualRendered イベントをリッスンします。

qna.on("visualRendered", function(event) {
    ...
});

イベントのリッスンの詳細については、「イベント を処理する方法」を参照してください。

考慮事項と制限事項

埋め込み Q&A はデータ スキーマを使用します。 現時点では、複数のスキーマではなく、1 つのスキーマのみを構成できます。