독립 실행형 Q&시각적 개체 포함
팁
Q&A를 포함하거나 Power BI Embedded Analytics 플레이그라운드의 API 탐색 섹션에서 클라이언트 API를 실험해 보세요.
이 문서에서는 애플리케이션에 독립 실행형 Q&시각적 개체를 포함하는 단계를 설명합니다.
이 기능은 사용자가 질문을 할 수 있는 방법을 제공합니다. 그런 다음 차트 또는 그래프와 같은 시각적 개체 형식으로 즉각적인 답변을 받습니다. Power BI에서 Q&시각적 개체 만들기에서 이 기능에 대해 자세히 알아봅니다.
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를 포함하는 HTMLiframe
요소의 원본이 됩니다. 특히 API는 의 특성에 URL을src
할당합니다iframe
. 데이터 세트 API를 사용하여 이 URL을 가져올 수 있습니다. 다음과 같은 두 가지 예가 있습니다.question
- API가 표시하는 시각화를 결정하는 질문입니다. 이 속성은 결과 모드에서만 사용됩니다.tokenType
- 포함하는 Power BI 데이터에 대한 액세스 권한을 제공하는 토큰의 종류입니다.- organization 포함하는 경우 를 사용합니다
models.TokenType.Aad
(사용자가 데이터를 소유). - 고객을 위해 포함하는 경우 를 사용합니다
models.TokenType.Embed
(앱이 데이터를 소유).
자세한 내용은 다양한 포함 솔루션 이해를 참조하세요 .
- organization 포함하는 경우 를 사용합니다
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
. 앱이 이러한 유형의 이벤트를 수신 대기하는 경우 코드가 새 쿼리에 응답할 수 있습니다.
instance 경우 사용자가 입력한 질문을 기록할 수 있습니다. 나중에 AI 또는 원격 분석을 위해 이러한 질문을 사용할 수 있습니다.
다음 줄과 같은 코드를 사용하여 이벤트를 수신 대기합니다 visualRendered
.
qna.on("visualRendered", function(event) {
...
});
이벤트 수신 대기에 대한 자세한 내용은 이벤트를 처리하는 방법을 참조하세요.
제한 사항
포함된 Q&A는 데이터 스키마를 사용합니다. 현재는 여러 스키마가 아닌 하나의 스키마만 구성할 수 있습니다.