다음을 통해 공유


독립 실행형 Q&시각적 개체 포함

Q&A를 포함하거나 Power BI Embedded Analytics PlaygroundAPI 섹션에서 클라이언트 API를 실험해 보세요.

이 문서에서는 애플리케이션에 독립 실행형 Q&시각적 개체를 포함하는 단계를 설명합니다.

이 기능은 사용자가 질문을 할 수 있는 방법을 제공합니다. 그런 다음 차트 또는 그래프와 같은 시각적 개체 형식으로 즉각적인 답변을 받습니다. Power BIQ&시각적 개체 만들기 이 기능에 대해 자세히 알아봅니다.

포함된 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입니다. 데이터 세트 API 사용하여 데이터 세트를 가져올 수 있습니다. 두 가지 예는 다음과 같습니다.

    메모

    현재는 하나의 데이터 세트만 구성할 수 있습니다.

  • embedUrl - 포함하는 Q&A에 대한 데이터 세트의 URL입니다. 이 URL은 포함된 Q&A를 포함하는 HTML iframe 요소의 원본이 됩니다. 특히 API는 url을 iframesrc 특성에 할당합니다. 데이터 세트 API 사용하여 이 URL을 가져올 수 있습니다. 두 가지 예는 다음과 같습니다.

  • question - API가 표시하는 시각화를 결정하는 질문입니다. 이 속성은 결과 모드에서만 사용됩니다.

  • tokenType - 포함하는 Power BI 데이터에 대한 액세스를 제공하는 토큰의 종류입니다.

    • 조직에 포함할 경우(사용자가 데이터를 소유하는 경우) models.TokenType.Aad 사용합니다.
    • 고객을 위해 포함하는 경우 models.TokenType.Embed 사용합니다(앱이 데이터를 소유).

    자세한 내용은 다양한 포함 솔루션 이해를 참조하세요.

  • type - 포함하는 콘텐츠의 종류입니다. Q&A에 'qna' 사용합니다.

  • viewMode - 포함된 Q&A의 모드입니다. 다음 두 가지 모드를 사용할 수 있습니다.

    • 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);

표시된 질문 변경

ResultOnly viewMode 사용하고 질문을 제공하는 경우 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");

사용자의 질문 캡처

Interactive viewMode 사용하는 경우 표시된 시각적 개체가 변경되면 API에서 앱에 알릴 수 있습니다. 업데이트된 입력 쿼리에 대한 응답으로 시각적 개체가 변경되면 포함된 구성 요소는 visualRendered 이벤트를 내보낸다. 앱이 이러한 유형의 이벤트를 수신 대기하는 경우 코드가 새 쿼리에 응답할 수 있습니다.

예를 들어 사용자가 입력한 질문을 기록할 수 있습니다. 나중에 AI 또는 원격 분석 목적으로 이러한 질문을 사용할 수 있습니다.

다음 줄과 같은 코드를 사용하여 visualRendered 이벤트를 수신 대기합니다.

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

이벤트 수신 대기에 대한 자세한 내용은 이벤트 처리하는 방법을 참조하세요.

고려 사항 및 제한 사항

포함된 Q&A는 데이터 스키마를 사용합니다. 현재는 여러 스키마가 아닌 하나의 스키마만 구성할 수 있습니다.