Поделиться через


Внедрение автономного визуального элемента Q&A

Кончик

Попробуйте внедрить Q&A или поэкспериментировать с нашими клиентскими API в разделе Изучите наши API-интерфейсы раздела игровой площадки Power BI Embedded Analytics.

В этой статье рассматриваются действия по внедрению автономного элемента Q&визуального элемента в приложении.

Эта функция позволяет пользователям задавать вопросы. Затем они получают немедленные ответы в виде визуальных элементов, таких как диаграммы или графы. Дополнительные сведения об этой функции см. в создании визуального элемента Q&A в Power BI.

анимированном изображении, где показана встроенная функция 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. Для получения наборов данных можно использовать API наборов данных. Ниже приведены два примера.

    Заметка

    В настоящее время можно настроить только один набор данных.

  • embedUrl — URL-адрес набора данных для Q&A, который вы внедряете. Этот URL-адрес становится источником элемента HTML-iframe, содержащего внедренный Q&A. В частности, API назначает URL-адрес атрибуту srciframe. Для получения этого URL-адреса можно использовать API наборов данных . Ниже приведены два примера.

  • question — вопрос, определяющий визуализацию, отображаемую API. Это свойство используется только в режиме результатов.

  • tokenType — тип маркера, который предоставляет доступ к внедренным данным Power BI.

    • Используйте models.TokenType.Aad, если вы внедряете данные в организацию (пользователь владеет данными).
    • Используйте models.TokenType.Embed, если вы внедряете данные для клиентов (приложение владеет данными).

    Дополнительные сведения см. в статье Общие сведения о различных решениях внедрения.

  • type — тип содержимого, которое вы внедряете. Используйте 'qna' для Q&A.

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

Изменение отображаемого вопроса

Если вы используете viewModeResultOnly и предоставляете вопрос, можно использовать метод setQuestion для изменения отображаемого вопроса. Затем API изменяет отображаемый визуальный элемент.

Этот метод можно использовать для списка часто задаваемых вопросов. По мере того как пользователь проходит через вопросы, вы можете отобразить ответы внутри внедренного элемента.

Класс Qna для JavaScript PowerBI определяет метод 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");

Захват вопросов пользователей

Если вы используете viewModeInteractive, API может уведомить приложение об изменениях визуального элемента. При каждом изменении визуального элемента в ответ на обновленный входной запрос внедренный компонент выдает событие visualRendered. Если приложение прослушивает это событие, код может ответить на новый запрос.

Например, можно записать вопросы, которые пользователи вводит. Эти вопросы можно использовать позже для целей ИИ или телеметрии.

Используйте код, подобный этим строкам, для прослушивания событий visualRendered:

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

Дополнительные сведения о прослушивании событий см. в статье Обработке событий.

Рекомендации и ограничения

Внедренный Q&A использует схемы данных. В настоящее время можно настроить только одну схему, а не несколько схем.