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


Использование сущностей и заполнение слотов в помощниках

Существенная часть разговоров помощников в Copilot Studio — это понимание естественного языка, то есть способность ИИ понимать намерения пользователя. Например, пользователь может сказать: "Я пытался использовать свою подарочную карту, но она не работает", и помощник знает, что пользователя нужно направить на тему, связанную с неработающими подарочными картами, даже если эта точная фраза не указана в качестве триггерной.

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

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

Готовые сущности

Сущности в помощниках позволяют хранить информацию в похожих группах.

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

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

Чтобы помочь понять это понятие, сущность Деньги может быть использована в качестве примера.

  1. Откройте свой помощник в Copilot Studio и выберите Настройки вверху страницы, затем Сущности в меню.

    Перейдите на вкладку сущностей.

    Отображается список доступных готовых сущностей.

    Панель сущностей.

  2. Выберите сущность Деньги, чтобы открыть панель сведений для сущности.

    Описание сущности

Здесь вы можете увидеть объяснение этой сущности и способы ее использования для поиска информации, связанной с деньгами или валютой, во входных данных пользователя.

Например, когда пользователь вводит "Это стоит 1000 долларов", используя эту денежную единицу, помощник знает, что "1000 долларов" представляет информацию типа деньги. Когда помощник извлекает эту сущность и сохраняет ее в переменной, он сохраняет "1000" как число, даже ходя окружающая информация была текстовой.

Настраиваемые сущности

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

Например, допустим, вы хотите построить помощника для магазина на отдыха на открытом воздухе. В этом случае вам нужно научить помощника распознавать категорию "снаряжение для отдыха на открытом воздухе" в диалоге.

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

  1. Откройте свой помощник в Copilot Studio и выберите Настройки вверху страницы, затем Сущности в меню.

  2. Выберите Добавить сущность>Создать сущность.

    Выберите создать сущность.

  3. Откроется новая панель, где вы можете выбрать тип сущности: либо сущность Закрытый список, либо сущность Регулярное выражение.

Сущности закрытого списка

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

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

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

Снимок экрана панели списка сущностей.

При вводе элементов вы можете:

  • Выберите каждый элемент и измените его имя.
  • Щелкните значок корзины, чтобы удалить элемент из списка.
  • Выберите + Синонимы (или выберите перечисленные синонимы, если они уже добавлены), чтобы открыть область Изменить синонимы.

Вы можете добавить синонимы, чтобы вручную расширить логику сопоставления для каждого элемента в списке сущностей. Например, в пункте «пеший туризм» вы можете добавить «треккинг» и «альпинизм» как синонимы.

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

Для каждой сущности вы также можете включить Интеллектуальное сопоставление.

Интеллектуальное сопоставление — это часть системы интеллекта, поддерживаемая моделью распознавания речи помощника. Если этот параметр включен, помощник будет интерпретировать ввод пользователя с использованием нечеткой логики на основе перечисленных в сущности элементов.

В частности, помощник будет автоматически исправлять орфографические ошибки и семантически расширять логику сопоставления. Например, помощник может автоматически сопоставить «софтбол» и «бейсбол».

Снимок экрана переключения параметра интеллектуального сопоставления.

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

Сущности регулярных выражений

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

Например, вы можете использовать сущность регулярного выражения для идентификации таких элементов, как идентификатор отслеживания, номер лицензии, номер кредитной карты или IP-адрес из строки, которую пользователь вводит в помощника.

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

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

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

Сущности регулярных выражений Copilot Studio используют Синтаксис регулярных выражений .NET.

По умолчанию сопоставление шаблона чувствительно к регистру; чтобы сделать его нечувствительным к регистру, используйте параметр регулярного выражения (?i) в строке шаблона. Некоторые основные примеры включены в панель сущностей регулярных выражений, а дополнительную информацию о синтаксисе и другие примеры можно найти в теме Язык регулярных выражений — краткий справочник.

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

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

Использование сущностей в разговоре

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

  1. Перейдите на страницу Темы для помощника, которого вы хотите редактировать.

  2. Откройте тему для сущности, которую вы хотите получить.

  3. Выберите значок Добавить узел , а затем выберите Задать вопрос.

  4. В разделе Определить выберите сущность, которую вы создали в разделе Пользовательские сущности.

    Узел вопроса с выбором сущности.

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

    Снимок экрана, на котором показан набор значений сущности, которые будут отображаться в виде кнопок во время выполнения.

  6. При необходимости назовите переменную для вывода ответа пользователя.

Заполнение слотов

Заполнение слотов — это концепция понимания естественного языка, которая означает сохранение извлеченной сущности в объект. Однако в Copilot Studio заполнение слота означает помещение извлеченного значения объекта в переменную.

Мы продолжим использовать тему кемпинга в качестве примера, которая запускается путем ввода "Я хочу что-нибудь сделать" в тестовом чате.

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

отслеживание между темами.

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

Дополнительное отслеживание между темами.

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

По сути, заполнение слотов происходит путем вставки извлеченной сущности "Пеший туризм" в переменную VarCampType.

Окно наблюдения за переменными.

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

Например, пользователь написал: "Мне скучно, но я люблю альпинизм". Это сообщение включает в себя как триггерную фразу о том, что пользователю нужна помощь с активным отдыхом, так и вторую часть информации — "альпинизм", который является определяемым сущностью синонимом пешего туризма. В этом случае помощник заполняет как сущность для выбора деятельности на открытом воздухе, так и для типа деятельности.

Множественное и проактивное заполнение слотов.

При отслеживании между темами вы можете видеть, как помощник принимает данные, вводимые пользователем, и интеллектуально пропускает узел вопросов, запрашивающий тип деятельности.

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

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

На этот раз когда задается вопрос о категории продукта, вместо того, чтобы сообщать помощнику только о категории продукта, пользователь может сказать: "Я хочу купить пару походных ботинок дешевле 100 долларов США". В этом примере помощник не только может направить к правильному пути категории продуктов для пеших прогулок, но и активно заполнить слоты, запрашивающие тип походного снаряжения и информацию о целевом диапазоне цен.

отслеживание тем для товаров и ценовых категорий.

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

  1. Выберите значок Дополнительно () узла Вопрос, а затем выберите Свойства. Появится панель Свойства вопроса.

    Откройте панель свойств вопроса.

  2. На панели Свойства вопроса выберите Поведение вопроса.

  3. На панели Поведение вопроса в разделе Пропустить вопрос выберите Спрашивать каждый раз, затем выберите Сохранить в верхней части страницы.

    Пропустить вопрос.