Повторное использование переменных в темах
Важно
Возможности и функции Power Virtual Agents теперь являются частью Microsoft Copilot Studio после значительных инвестиций в генеративный искусственный интеллект и расширенную интеграцию с Microsoft Copilot.
Некоторые статьи и снимки экрана могут ссылаться на Power Virtual Agents, пока мы обновляем документацию и учебные материалы.
Переменные хранят ответы ваших клиентов на вопросы помощника. Например, вы можете сохранить имя клиента в переменной с именем UserName
. Затем помощник может обратиться к клиенту по имени, поскольку разговор продолжается.
По умолчанию значение переменной может использоваться только в теме, в которой эта переменная создана. Однако можно повторно использовать одно и то же значение в разных темах. Например, в теме "Добро пожаловать" запрашивается имя клиента и адрес электронной почты. В теме «Резервирование встречи» нужно, чтобы помощник запомнил, что ввел клиент, и не переспрашивал.
Одним из способов повторного использования переменной является передача переменной между темами. Другой способ — сделать переменную глобальной в области действия, и это то, что рассматривается в этой статье. Глобальные переменные называются так, потому что они доступны во всех темах всего помощника.
Переменные помощника применяются во время одного сеанса пользователя. Вы указываете, какие переменные следует рассматривать как переменные помощника, чтобы отличать их от переменных уровня темы.
Создание глобальной переменной
Вы создаете глобальную переменную, изменяя область действия переменной темы.
Создайте переменную или используйте панель Переменные, чтобы открыть существующую переменную.
На панели Свойства переменной выберите Глобальная (любая тема может получить доступ).
Имя переменной получает префикс
Global.
, чтобы отличить ее от переменных уровня темы. Например, переменнаяUserName
отображается какGlobal.UserName
.Сохраните тему.
Имя глобальной переменной должно быть уникальным во всех темах. В случае конфликта вам необходимо переименовать переменную перед сохранением темы.
Использование глобальных переменных
При составлении сообщения помощника в узле «Сообщение» или узле «Вопрос» выберите значок {x} для просмотра переменных, доступных теме. Глобальные переменные отображаются на вкладке Пользовательские вместе с любыми переменными темы. Переменные перечислены в алфавитном порядке.
Поиск всех тем, использующих глобальную переменную
Вы можете найти, где глобальная переменная определена и какие другие темы ее используют. Это может быть полезно, если вы работаете над новым помощником или если у вас есть несколько переменных и сложное ветвление тем.
Выберите глобальную переменную на холсте разработки или откройте панель Переменные и выберите глобальную переменную.
На панели Свойства переменной в разделе Ссылка выберите любую из тем, где используется переменная, чтобы перейти напрямую к этой теме и узлу.
Жизненный цикл глобальных переменных
По умолчанию значение глобальной переменной сохраняется до тех пор, пока сеанс не завершится. Узел Очистить значения переменных сбрасывает значения глобальных переменных и используется в системной теме сброса разговора. Эта тема может запускаться либо путем перенаправления, либо когда пользователь вводит триггерную фразу, например «Начать сначала». В этом случае все глобальные переменные сбрасываются.
Установка значения глобальной переменной из внешних источников
Если вы хотите быть уверенным, что помощник начнет разговор с некоторым контекстом, вы можете инициализировать глобальную переменную с помощью внешнего источника. Допустим, ваш сайт требует от пользователей входа в систему. Поскольку ваш помощник уже знает имя пользователя, он может приветствовать клиентов по имени, прежде чем они начнут вводить свой первый вопрос.
Выберите глобальную переменную.
На панели Свойства переменных выберите Внешние источники могут задавать значения.
Установите глобальные переменные во встроенном помощнике
Если вы встраиваете свой помощник в простую веб-страницу, вы можете добавить переменные и их определения к URL-адресу помощника. Или, если вы хотите немного больше контроля, вы можете использовать блок кода <script>
для программного вызова и использования переменных.
Имя переменной в строке запроса URL-адреса должно совпадать с именем глобальной переменной, без префикса Global.
. Например, глобальная переменная Global.UserName
в запросе будет указываться как UserName
.
В приведенных ниже примерах представлено простое объявление для переменных. В производственном сценарии вы можете передать в качестве параметра запроса или определения переменной другую переменную, в которой уже сохранено имя пользователя (например, если у вас есть имя пользователя из сценария входа).
Добавьте переменные и их определения в URL-адрес помощника как параметры строки запроса (в формате botURL?variableName1=variableDefinition1&variableName2=variableDefinition2
).
Например:
- У вас есть глобальная переменная с именем
Global.UserName
. - URL-адрес вашего помощника — https://web.powerva.microsoft.com/webchat/bots/12345.
- Чтобы передать имя пользователя при запуске разговора помощника на веб-сайте, прикрепите строку запроса
UserName=
как: https://web.powerva.microsoft.com/webchat/bots/12345?UserName=Renata.
Имя параметра не зависит от регистра. username=Renata
также будет работать в этом примере.
Добавление глобальных переменных на пользовательский холст
Вы также можете добавить переменную на пользовательский холст.
В разделе
<script>
на странице, где у вас есть помощник, определите переменные следующим образом, подставивvariableName1
для имени переменной без префиксаGlobal.
иvariableDefinition1
для определения. Разделите несколько переменных запятыми (,
).const store = WebChat.createStore({}, ({ dispatch }) => next => action => { if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') { dispatch({ type: "WEB_CHAT/SEND_EVENT", payload: { name: "pvaSetContext", value: { "variableName1": "variableDefinition1", "variableName2": "variableDefinition2" } }, }); } return next(action); });
Внутри вашего раздела
<script>
вызовитеstore
, когда вы встраиваете своего помощника, как в следующем примере, гдеstore
вызывается чуть выше, где вызываетсяstyleOptions
(вам нужно заменитьBOT_ID
идентификатором помощника):const BOT_ID = "12345-5678"; const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID; fetch(theURL) .then(response => response.json()) .then(conversationInfo => { window.WebChat.renderWebChat( { directLine: window.WebChat.createDirectLine({ token: conversationInfo.token, }), store, styleOptions }, document.getElementById('webchat') ); }) .catch(err => console.error("An error occurred: " + err));
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по