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


Рекомендации по сущностям и заполнению слотов в Copilot Studio

Что такое заполнение слота?

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

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

Например, когда пользователь спрашивает: Я хочу заказать 3 большие синие футболки

Система распознавания естественной речи (NLU) Copilot Studio может сразу понять:

  • Тема — Заказ
  • Количество равно 3
  • Цвет Синий
  • Тип товара — Футболка

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

Сначала вы определяете, какие сущности вы хотите использовать, и их типы.

Определение сущностей

Copilot Studio предоставляет несколько встроенных сущностей для наиболее распространенных вариантов использования, таких как Электронная почта, Дата и время, Имя человека, Номер телефона, Цвет, Страна, Город, Число, Деньги и так далее.

Встроенные сущности являются мощными, поскольку они могут обрабатывать множество вариантов формы, которую может принимать информация. Например, при использовании сущности Деньги в разговоре пользователь может ввести значение «$100», «сто долларов» или «100 долларов». Модель NLU в Copilot Studio выясняет, что стоимость представляет собой денежную стоимость в 100 долларов.

Совет

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

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

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

Улучшение интерфейса пользователя

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

Рекомендации по сущностям

Использование синонимов

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

Совет

  • Использование синонимов также может помочь в срабатывании триггера темы, поскольку они увеличивают вес триггерной фразы, добавляя связанные слова в качестве синонимов содержащейся в ней сущности. Например, для варианта «Жалоба» добавьте похожие отрицательные слова или словосочетания в качестве синонимов.
  • Модель NLU также обобщает все варианты сущности (то есть, все их значения и их синонимы) в случае, если триггерная фраза темы включает хотя бы одну вариацию этой сущности. Другими словами, авторы агентов должны включить один пример триггерной фразы с одним использованием этой сущности, чтобы NLU мог обобщить другие варианты сущности.

Включить интеллектуальное сопоставление

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

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

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

Будьте изобретательны с регулярными выражениями

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

Например, если пользователь говорит: «можно ли принести 2 полотенца и 1 подушку в номер 101»

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

  • Количество полотенец: [1-9] полотенец
  • Количество подушек: [1-9] подушек
  • Номер комнаты: [0-9]{3}

Альтернативы сущностям для хранения ссылочных данных

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

Затем ваша логика темы может проверить точность результата (или попросить пользователя подтвердить его), прежде чем двигаться дальше в диалоге.

Dataverse является хорошим кандидатом для хранения таких данных, так как имеет встроенную возможность поиска Dataverse, которая поддерживает нечеткое сопоставление для получения наилучших результатов вместе с оценкой достоверности. Даже при поиске по полному предложению она может найти потенциальные совпадения.

Совет

Чтобы ознакомиться с примером реализации, см. раздел Возврат списка результатов.