Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте переменные, чтобы хранить ответы клиентов, чтобы позже использовать их контент в разговоре.
Вы можете также использовать переменные для создания логических выражений, которые динамически направляют клиента по различным путям разговора. Например, сохраняйте имя клиента в переменной с именем customerName, и агент может обращаться к клиенту по имени по мере продолжения разговора.
Вы можете передавать переменные и возвращать их из другие темы и Power Automate потоки.
Создание переменной
Любой узел, который возвращает выход, например узел вопроса , автоматически создаёт выходную переменную соответствующего типа.
Совет
Переименуйте узлы, чтобы их было легче идентифицировать. Выберите поле имени узла для прямого обновления имени или выберите три точки (...) узла и выберите « Переименовать » в меню. Можно также переименовывать узлы в редакторе кода.
Невозможно переименовать узлы Триггер и Перейти на шаг.
Имена узлов могут иметь длину до 500 символов.
Выбор сущности для использования
Узлы вопросов по умолчанию используют варианты с несколькими вариантами ответа. Чтобы использовать другую готовую или пользовательскую сущность, выберите поле «Идентификация », а затем выберите нужный тип информации.
Изменение имени переменной
Чтобы облегчить обслуживание ваших агентов, замените имя каждой переменной по умолчанию на осмысленное имя.
Выберите переменную. Появляется панель свойств переменных .
В названии переменной введите нужное имя для переменной.
Задание переменной
Обычно вы используете узел Question для хранения пользовательского ввода в переменной. Однако, возможно, стоит самостоятельно задать значение переменной. В таких случаях используйте узел Задать значение переменной.
Выберите значок «Добавить»
узла под узлом, после чего хотите добавить узел «Задать значение переменной ».Выберите управление переменными>Установить значение переменной. На холсте появляется узел значения переменной Set .
Выберите поле в разделе Set variable. Появляется панель Select a variable .
Если переменная, которую вы хотите установить, уже существует, выберите её.
В противном случае выберите «Создать новое». Это действие создаёт новую переменную. Ее тип неизвестен, пока вы не присвоите ей значение.
Для значения To присвоите значение, используя один из следующих вариантов:
Введите литеральное значение.
Выберите существующую переменную того же типа.
Используйте формулу Power Fx. Формулы Power Fx полезны для более сложных типов, где нельзя использовать литеральные значения, например для типов "Таблица" и "Запись".
Использование переменных в узлах Action
Когда вы используете переменную в узле Action , если её базовый тип совпадает с типом параметра, указанным для потока, или для навыка Bot Framework, вы можете подать её этому параметру. Выход узлов Action генерирует новые переменные.
Для дополнительного контекста см. примеры сценариев в разделах «Вызов потока агента из темы и использование входных и выходных переменных для передачи информации».
Использование литеральных значений для вводных данных переменных
В узле, где вы устанавливаете значение для входных параметров, можно ввести буквальное значение вместо того, чтобы выбирать другую переменную в качестве значения.
Узел пытается интерпретировать литеральные значения в виде строки, числа или логического значения. Например, 123 интерпретируется как число. Если вы хотите, чтобы значение интерпретировалось как строковое значение, оберните его в двойные кавычки, например: «123».
Для некоторых сценариев, например, с использованием сложных типов, может понадобиться использовать формулу Power Fx для определенного типа.
Использование переменных среды для секретов Azure Key Vault
Переменная среды может ссылаться на секрет в Key Vault. Секретные переменные среды — это частный случай переменных среды с уникальными особенностями.
Чтобы создать секретную переменную среды в Power Apps, необходимо конфигурировать хранилище Key Vault.
Чтобы разрешить Copilot Studio читать это хранилище Key Vault, выполните следующие действия:
Назначьте роль Key Vault User приложению Microsoft Copilot Studio Service.
Чтобы разрешить всем агентам из среды доступ к секрету, создайте тег
AllowedEnvironmentsна секрете и добавьте разрешённые идентификаторы среды, разделённые запятыми.Чтобы разрешить использование этого хранилища только определённым агентам из среды, создайте тег
AllowedAgentsи введите идентификатор агента в формат{envId}/{schemaName}. В случае нескольких значений разделяйте их запятыми.Если вы достигли максимального количества символов, но вам все еще нужно добавить больше агентов, добавьте еще один тег с описательным, но уникальным именем (например:
AllowedAgents2).
Диалоговое время кэширует значение секрета на пять минут. Он кэширует неудачные чтения в течение 30 секунд.
Предупреждение
Добавив секрет в агент, вы можете раскрыть его ценность. Любой, кто может редактировать агент в среде, может добавить узел сообщения и вернуть значение переменных секретной среды в сообщении.
Панель «Переменные»
В панели Variables вы можете просмотреть все доступные переменные для темы, независимо от того, в каких узлах они определены или используются.
Чтобы открыть панель «Переменные », выберите «Переменные » в строке меню темы.
Для каждой переменной темы вы можете выбрать, может ли она получать своё значение от других тем, возвращать значение другим темам или оба варианта. Вы также можете выбрать переменную, чтобы отредактировать ее свойства на панели Свойства переменной.
Панель свойств переменной
В панели свойств переменных вы можете переименовать переменную, увидеть, где агент её использует, или преобразовать в глобальную переменную. Вы не можете преобразовать глобальную переменную обратно в тему. Вы также можете выбрать, может ли переменная темы получать значения из других тем или передавать свое значение в них.
Чтобы открыть панель Свойства переменной для переменной, выберите нужную переменную на панели Переменные. Вы также можете открыть панель свойств переменных из любого узла, использующего переменные, выбрав желаемую переменную.
Передача переменных между темами
При перенаправлении одной темы в другую можно передавать значения переменных из исходной темы в целевую тему, а также возвращать значения из целевой темы в исходную тему. Передача переменных между темами особенно полезна, когда предыдущая тема уже собрала информацию, необходимую для последующей темы. Ваши пользователи определённо ценят, что не нужно отвечать на одни и те же вопросы больше одного раза.
Получение значений из других тем
Когда тема определяет переменную (например, с помощью узла Вопрос), агент задает вопрос пользователю для заполнения значения переменной. Если агент уже получил значение в одной из предыдущих тем, нет причин снова задавать вопрос. Для этих случаев можно установить для переменной значение Получение значений из других тем. Когда другая тема перенаправляет на эту тему, она может передать значение переменной или литеральное значение в эту переменную и пропустить этот вопрос. Это приводит к беспроблемному общению пользователя с агентом.
В этом примере используются две темы: Приветствие и Разговор с клиентом. Обе темы запрашивают имя клиента. Однако, если тема Приветствие запускается первой, тема Разговор с клиентом пропускает свой вопрос. Вместо этого она использует значение переменной, переданной из темы Приветствие.
Вот поток темы Разговор с клиентом:
Как показано в тестовой панели, если эта тема запускается первой, пользователь спрашивает: «Как тебя называть?» Оно хранит значение в строковой переменной под названием customerName.
customerName Переменная также устанавливается так, чтобы получать своё значение из других тем. Тема завершается сообщением: «Я надеюсь, что у вас замечательный день, customerName!»
Вот поток темы Приветствие:
Как показано в тестовой панели, если эта тема запускается первой, пользователь спрашивает: «Как тебя зовут?» Оно хранит значение в строковой переменной под названием customerName. В теме отправляется сообщение: «Рад познакомиться, customerName!» Затем выполняется перенаправление на тему Разговор с клиентом, которая отправляет сообщение: "Я надеюсь, что у вас замечательный день, customerName! Обратите внимание, однако, что в теме Разговор с клиентом имя пользователя повторно не запрашивается. Вместо этого использовалось значение customerName переменной, передаваемой из темы приветствия .
Наконец, вот еще раз этот второй разговор, на этот раз с точки зрения темы Разговор с клиентом:
Пройдитесь по шагам, чтобы настроить тему, чтобы получать ценности из других тем. В этом примере используется заранее определённая тема Greeting в качестве исходной темы, а новая тема Talk to Customer — как целевой тема, но те же шаги работают и для любой темы, которая должна использовать значение из более ранней темы, когда это возможно.
Настройка темы назначения
Целевая тема получает ценности от других тем. В этом примере это «Поговорить с клиентом».
Создайте новую тему и назовите её «Поговорить с клиентом».
Добавьте триггерные фразы, такие как «поговори со мной», «поговори со мной» и «поговори со мной».
Добавьте узел Вопрос и введите «Как мне вас называть?» для сообщения.
В разделе Идентификация выберите предварительно созданную сущность Имя человека.
Выберите имя переменной. Откроется панель Свойства переменной.
Замените имя по умолчанию на
customerName, а затем выберите значения Получить из других тем.
Добавьте узел Сообщение.
В поле сообщения введите "Надеюсь, у вас замечательный день, ".
Выберите значок Вставить переменную ({x}), затем выберите customerName.
Выберите пробел после переменной и введите восклицательный знак (!).
Сохраните тему.
Настройка исходной темы
Исходная тема — это тема, которая перенаправляет на другую тему. Он предоставляет ценность и передаёт её целевой теме. В этом примере это Приветствие.
Перейдите в тему Приветствие и удалите узлы по умолчанию, кроме узла Триггер.
Добавьте узел Вопрос и введите «Как вас зовут?» для сообщения.
В разделе Идентификация выберите предварительно созданную сущность Имя человека.
Замените имя по умолчанию на
customerNameFromGreeting.Добавьте узел Сообщение.
В окне сообщения введите «Рад познакомиться, ».
Выберите значок Вставить переменную ({x}), затем выберите customerNameFromGreeting.
Выберите пробел после переменной и введите восклицательный знак (!).
Добавьте узел Перенаправление и выберите целевую тему Разговор с клиентом.
Выберите Добавить входные данные, затем выберите переменную из темы назначения, в которую вы хотите передать значение.
Выберите значок >, затем выберите переменную, значение которой вы хотите передать, customerNameFromGreeting в этом примере.
Узел Перенаправление должен выглядеть следующим образом:
Сохраните тему.
Возврат значений к исходным темам
В агенте тема собирает определённую информацию. Многие другие субъекты могут вызывать его и ожидать, что он вернёт информацию как переменную. Переменная становится частью исходной темы и может использоваться как любая другая переменная. Благодаря тому, что агент получает информацию, доступную по темам, этот подход снижает потребность в глобальных переменных.
Давайте продолжим пример из предыдущего раздела. Вы задаёте новый вопрос в теме «Поговорите с клиентом », а затем возвращаете ответ в тему «Приветствие ».
Настройте исходную тему для возвращаемой переменной
Когда вы возвращаете переменную в тему, исходная тема — это тема, которая даёт ценность для передачи обратно к исходной теме. В этом примере исходной темой является Разговор с клиентом.
Перейдите в исходную тему.
Добавьте узел Вопрос и введите «В каком городе Вы живете?» для сообщения.
В разделе Идентификация выберите предварительно созданную сущность Город.
Выберите переменную, чтобы открыть панель Свойства переменной. Назовите ,
customerCityзатем выберите значения Return to original topics.
Добавьте узел Сообщение.
Выберите значок Вставить переменную ({x}), затем выберите customerCity.
После переменной в окне сообщения введите «В должно быть красиво в это время года!».
Сохраните тему.
Настройте тему назначения для возвращенной переменной
Когда вы возвращаете переменную в тему, целевой тема получает значения из текущей темы. В следующем примере тема назначения — Приветствие.
Перейдите в тему назначения.
Выбранная переменная в исходной теме отображается на узле перенаправления как выходная переменная.
Сохраните тему.
Значения разбора
Узел значения Parse преобразует значение из одного типа в другой. Распространённый пример использования узла Parse — преобразование сырого JSON. Например, агент вызывает поток, который вызывает API. API возвращает результат. Вам нужен способ разобрать этот результат и вернуть одну или несколько примитивных переменных. Используя узел значения Parse , вы можете отправить весь результат API в виде строки, например, следующего:
{
"Name": "Parker",
"Position": "Product manager",
"Company": "Contoso",
"FormerPositions": [{
"Position": "Customer service representative"
}
]
}
Узел значения Parse преобразует строчную переменную в переменную типа Record. Редактор Power Fx предоставляет дополнение кода IntelliSense и предлагает советы по этому типу.
Помимо разбора JSON-строк, ключевым элементом для узла значения Parse является разбор нетипированных объектов во время выполнения. Самый распространённый случай использования — когда вы получаете событие и вам нужно проанализировать его значение. Или можно проанализировать свойство System.Activity.ChannelData , что меняется в зависимости от времени выполнения по каналу.
Если вам нужно получить информацию из события, исходящего из Teams, обратитесь к документации разработчиков Teams, чтобы найти пример того, как может выглядеть ожидаемое событие. Затем вы можете следовать инструкциям в этом разделе, используя пример события в качестве образца данных.
Чтобы добавить узел значения Parse в тему:
Выберите значок «Добавить»
узла под узлом, после чего хотите проанализировать значение. Укажите на управление переменными и выберите значение разбора.Добавьте узел Анализировать значение и выберите переменную, которую хотите проанализировать.
Для типа данных выберите «Из выборочных данных».
Выберите Get Schema from Sample JSON, введите нужный пример JSON в открывающийся редактор и выберите Подтвердить.
Выберите переменную, которая хранит разбор значения. Обычно вы создаёте новую переменную.
Выходная переменная теперь имеет ожидаемый тип: запись.