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


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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана страницы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. В Создать сущность выберите Закрытый список.

  2. На открывшейся панели введите имя новой сущности, например, Туризм.

  3. Если хотите, добавьте описание.

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

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

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

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

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

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

  5. Если нужно, включите Интеллектуальное сопоставление для этой сущности.

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

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

  6. После завершения создания или редактирования сущности выберите Сохранить. Выберите Закрыть, чтобы отбросить изменения.

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

Отправка значений для сущности закрытого списка

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

  1. Подготовьте текстовый файл (не более 3 МБ) со списком всех значений, которые вы хотите добавить для сущности, включая синонимы, если таковые имеются. Используйте следующий формат: одно значение в строке, и используйте вертикальную черту (|) в качестве разделителя синонимов. Например:

    hiking|trekking
    hiking|mountaineering
    yoga
    cycling|bicycling
    cooking
    
  2. В разделе Элементы списка выберите отправить файл.

  3. В разделе Отправить файл выберите нужный вариант:

    • Если вы хотите добавить новые значения и синонимы для сущности, выберите Добавить.
    • Чтобы заменить все существующие значения и синонимы списком из файла, выберите Заменить.
  4. Перетащите файл в окно. Кроме того, можно выбрать нажмите, чтобы просмотреть, перейти к файлу и выбрать его.

  5. Просмотрите отображаемые значения и синонимы и выберите Добавить.

Загрузка значений для сущности закрытого списка

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

  1. В разделе Элементы списка выберите скачать файл.

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

    hiking|trekking
    hiking|mountaineering
    

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

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

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

  1. В разделе Создание сущности выберите Регулярное выражение (regex).

  2. На открывшейся панели введите имя новой сущности.

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

  3. Если хотите, добавьте описание.

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

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

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

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

  5. После завершения создания или редактирования сущности выберите Сохранить. Выберите Закрыть, чтобы отбросить изменения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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