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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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