Загрузка расшифровок разговоров в Power Apps

Вы можете просматривать, экспортировать и скачивать расшифровки взаимодействий клиентов с вашим агентом как в Power Apps, так и в Copilot Studio. Информация, которую экспортирует каждое приложение, немного отличается.

В этой статье рассказывается о загрузке расшифровок разговоров в Power Apps и использовании их для создания отчетов Power BI. Чтобы загрузить расшифровки разговоров напрямую в Copilot Studio, см. раздел Загрузка расшифровок разговоров в Copilot Studio.

По умолчанию Power Apps загружает расшифровки разговоров за последние 30 дней. Вы можете изменить период хранения.

Заметка

  • Если у вас больше нет доступа к своей среде, создайте запрос в службу поддержки в центре администрирования Power Platform.

  • Для агентов в личных средах разработки Copilot Studio не регистрирует расшифровки разговоров в таблице ConversationTranscript.

  • Ответы агентов, которые используют SharePoint в качестве источника знаний, не включаются в расшифровки разговоров.

Необходимые условия

Просмотр и экспорт стенограммы разговора с портала Power Apps

  1. Выполните вход в Power Apps.

  2. В боковой области выберите Таблицы, затем выберите Все.

    Снимок экрана: в узле

  3. Введите "разговор" в поле Поиск.

  4. Выберите таблицу ConversationTranscript.

    Откроется страница таблицы ConversationTranscript.

  5. В верхней строке меню выберите Экспорт>Экспорт данных.

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

    Снимок экрана с меню «Экспорт» с параметром «Экспортировать данные».

  6. Подождите пару минут, пока Power Apps подготовит данные к экспорту, затем выберите Загрузить экспортированные данные.

    Файл сохраняется в виде ZIP-архива в папке загрузки по умолчанию браузера.

Общие сведения о расшифровках разговоров

Расшифровка разговора представляет собой файл CSV (значения, разделенные запятыми). Следующие таблицы описывают наиболее важные поля в расшифровках разговоров.

Поле Description Пример
Content Полная расшифровка в формате JSON См. Поле содержимого
ConversationStartTime Время начала разговора (не время записи расшифровки в хранилище данных) 2021-04-19T20:39:09Z
ConversationTranscript Уникальный идентификатор строки в таблице Dataverse 28eccb77-xxxx-4a63-985f-ffaaadd6f391
Metadata JSON, включающий идентификатор агента, идентификатор клиента и имя агента. {"BotId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "AADTenantId": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "BotName": "Test Bot"}
Name Имя настраиваемой строки, созданной из ConversationId, с последующими BotId и batch number. Номер пакета указывает порядок, когда разговор включает несколько аналитических сеансов. Классические боты не содержат номер пакета. 8YYe8iif49ZKkycZLe7HUO-o_198eca5f-xxxx-4ae6-8c08-835d884a8688_0
Bot_ConversationTranscript Идентификатор агента aaaabbbb-0000-cccc-1111-dddd2222eeee
Created on Дата и время создания записи расшифровки 2021-04-20T02:40:13Z

Поле содержимого

Поле Content представляет собой необработанный журнал всех действий, выполненных пользователей с агентом. Общие типы действий включают сообщение и событие:

  • Действия сообщения представляют собой контент, отображаемый в разговоре. Действия сообщения могут содержать текст, речь, интерактивные карточки, а также двоичные или неизвестные вложения.
  • Действия «Событие» передают программную информацию от клиента или канала агенту.

Дополнительные сведения о типах действий см. в разделе Схема действия Bot Framework.

В следующей таблице описаны некоторые ключевые поля в JSON содержимого:

Ключ. Description
ID Уникальный GUID объекта действия
valueType Тип значения, хранящегося в действии; определяет, какую информацию предоставляет действие (Распространенные типы значений действий)
timestamp Отметка времени, когда действие было создано, в формате эпохи (количество секунд с полуночи 1 января 1970 года по всемирному координированному времени)
type Тип действия; например, message, event или trace
replyToId Идентификатор действия, на которое отвечает текущее действие
from Содержит поля id и role:
  • id — ИД вызывающего объекта
  • role — содержит 0 или 1
    • 0 - действие исходит от агента
    • 1 — действие исходит от пользователя, взаимодействующего с агентом
Примечания.
id может использоваться для расчета количества активных пользователей, которые взаимодействуют с агентом, если холст передает уникальный идентификатор пользователя. Если холст не передает идентификатор, передается уникальный идентификатор для каждого разговора.
Из соображений безопасности и конфиденциальности идентификатор хешируется перед записью в расшифровку.
channelId Идентификатор канала, из которого поступило действие; например, directline, msteams или facebook
textFormat Формат текста; например, plain или markdown
attachments Расширенные динамические данные, связанные с действием; например, AdaptiveCards, HeroCards или Carousel data
text Текст для действия message
value Поля, относящиеся к действию, в зависимости от типа значения; именно в этом поле содержится большая часть полезной информации
channeldata Содержит данные канала:
  • для сообщений:
    • DialogTraceDetail
    • DialogErrorDetail
    • VariableDetail (содержит значение, назначенное переменной)
    • CurrentMessageDetail
  • для событий:
    • cci_trace_id
    • traceHistory
    • enableDiagnostics
    • clientTimestamp
    • clientActivityId
name Имя действия события; например, SetPVAContext

Общие типы значений действий

Тип значения действия Description
ConversationInfo Информация о том, ведется ли разговор из панели тестирования приложения Copilot Studio (isDesignMode), и языковый стандарт разговора
CSATSurveyRequest Пользователю предоставляется опрос об удовлетворенности клиента (CSAT)
CSATSurveyResponse Пользователь отвечает на опрос CSAT
DialogRedirect Пользователь перенаправляется на другую тему
ImpliedSuccess Пользователь дошел до узла вопросов в теме, где одно из условий указывает на системную тему CSAT Подтвержденный успех или вызывает системную тему Окончание разговора
IntentRecognition Пользователь инициировал тему
PRRSurveyRequest Пользователя спросили, ответила ли эта тема на его вопрос из темы Конец разговора
PRRSurveyResponse Ответ пользователя на вопрос, ответила ли эта тема на его вопрос из темы Конец разговора
SessionInfo Тип (unengaged или engaged), исход (Escalated, Resolved, Abandon), а также количество ходов сеанса
VariableAssignment Значение назначено переменной

Создание настраиваемых отчетов Power BI из расшифровок разговоров

Полезный подход для создания настраиваемых отчетов из расшифровок разговоров заключается в просмотре количества сообщений, которые необходимо обработать.

Облегченный подход

Подключение Power BI к Dataverse с потоком данных Power BI. Другая инфраструктура не требуется, и при каждом обновлении все записи извлекаются из Dataverse.

Диаграмма, показывающая поток данных из Dataverse в модель Power BI.

Плюсы Минусы
Самая простая реализация. Время обновления может увеличиваться по мере увеличения расшифровок.
Высокая стоимость хранения в Dataverse.

Стандартный подход Azure Data Lake Storage

Экспортируйте данные Dataverse в Azure Data Lake Storage. Для этого метода требуется учетная запись Azure Data Lake Storage, но никакая другая инфраструктура Azure не требуется.

Используйте поток данных Power Platform по расшифровкам для подготовки данных и извлечения данных в структурированную форму.

Power BI обновляет данные из потока данных. Power Platform и Power BI управляют всей вычислительной инфраструктурой. Записи за определенный день извлекаются из Dataverse при каждом обновлении.

Диаграмма, показывающая данные, поступающие из Dataverse в Azure Data Lake Storage и обрабатываемые Power Platform и Power BI.

Плюсы Минусы
Низкая стоимость хранения в Azure Data Lake Storage.
В меру простая реализация.
Вычисления Azure не требуются.
Время обновления может увеличиваться по мере увеличения расшифровок каждый день.

Подход Azure Data Lake Storage + Synapse

Размер данных в стандартном подходе Azure Data Lake Storage может привести к медленным обновлениям или другим проблемам в работе. В этом случае вы можете использовать Azure Synapse Analytics и интегрировать его в Power BI.

Диаграмма данных, поступающих из Dataverse в Azure Data Lake и обрабатываемых Azure Synapse и Power Platform.

Плюсы Минусы
Время обновления постоянно.
В меру простая реализация.
Низкая стоимость хранения в Azure Data Lake Storage.
Стоимость вычислений для Azure Synapse.

Изменение периода хранения по умолчанию

Задание массового удаления Power Apps автоматически удаляет расшифровки агентов, которые старше 30 дней. Чтобы расшифровки сохранялись дольше, отмените существующее задание и создайте новое, которое выполняется по другому расписанию.

Отмена существующего задания массового удаления

  1. В Power Apps выберите Параметры>Дополнительные параметры.

    Снимок экрана: меню параметров Power Apps с выделенным пунктом «Дополнительные параметры».

    Портал Dynamics 365 откроется в новой вкладке.

  2. Выберите значок каретки рядом с пунктом Параметры, затем в разделе Система выберите Управление данными.

    Снимок экрана меню параметров с выделенным пунктом «Управление данными».

  3. Выберите Групповое удаление записей.

  4. В списке Представление выберите Повторяющиеся системные задания массового удаления.

    Снимок экрана списка повторяющихся заданий массового удаления.

  5. Выберите задание Массовое удаление записей расшифровки разговоров старше 1 месяца.

    Снимок экрана списка заданий массового удаления с выделенным первым.

  6. В списке Другие действия выберите Отмена.

    Снимок экрана списка других действий с выделенным пунктом «Отмена».

Создание нового задания массового удаления

  1. Чтобы запустить мастер массового удаления, выберите Создать, затем в мастере выберите Далее.

  2. Задайте следующие условия поиска:

    • В списке Искать выберите ConversationTranscripts.
    • Выберите ConversationStartTime, выберите Старше X мес. и введите "12".
      Этот параметр сохраняет расшифровки в течение 12 месяцев. Выберите другое сравнение и значение, если хотите.
    • Выберите SchemaType, оставьте равно и введите «powervirtualagents».

    Снимок экрана с параметрами критериев поиска задания массового удаления.

  3. Выберите Далее.

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

    Снимок экрана с параметрами имени и выполнения задания массового удаления.

  5. Выберите Далее, затем выберите Отправить.

Советы по максимально эффективному использованию расшифровок разговоров

Переменные можно использовать для хранения данных, относящихся к содержимому вашего агента или пользователя агента. Разбор переменной и ее значения из расшифровки разговора позволяет фильтровать или сегментировать данные по переменной.

Расшифровки разговоров могут ссылаются на контент только по его идентификатору. Например, в узле Перенаправление на целевую тему ссылаются только по ее идентификатору. Чтобы узнать имя этой темы, найдите ее идентификатор в содержимом агента.