Share via


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

Q&A를 포함하거나 Power BI Embedded Analytics 플레이그라운드API 탐색 섹션에서 클라이언트 API를 실험해 보세요.

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

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

포함된 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을 src 할당합니다 iframe. 데이터 세트 API를 사용하여 이 URL을 가져올 수 있습니다. 다음과 같은 두 가지 예가 있습니다.

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

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

    • organization 포함하는 경우 를 사용합니다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");

사용자의 질문 캡처

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

instance 경우 사용자가 입력한 질문을 기록할 수 있습니다. 나중에 AI 또는 원격 분석을 위해 이러한 질문을 사용할 수 있습니다.

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

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

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

제한 사항

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

다음 단계