Повторное использование переменных в темах

Важно

Возможности и функции Power Virtual Agents теперь являются частью Microsoft Copilot Studio после значительных инвестиций в генеративный искусственный интеллект и расширенную интеграцию с Microsoft Copilot.

Некоторые статьи и снимки экрана могут ссылаться на Power Virtual Agents, пока мы обновляем документацию и учебные материалы.

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

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

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

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

Создание глобальной переменной

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

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

  2. На панели Свойства переменной выберите Глобальная (любая тема может получить доступ).

    Имя переменной получает префикс Global., чтобы отличить ее от переменных уровня темы. Например, переменная UserName отображается как Global.UserName.

    Снимок экрана, показывающий область «Свойства переменной» с выделенным параметром «Глобальный».

  3. Сохраните тему.

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

Использование глобальных переменных

При составлении сообщения помощника в узле «Сообщение» или узле «Вопрос» выберите значок {x} для просмотра переменных, доступных теме. Глобальные переменные отображаются на вкладке Пользовательские вместе с любыми переменными темы. Переменные перечислены в алфавитном порядке.

Снимок экрана, показывающий выбор глобальной переменной.

Поиск всех тем, использующих глобальную переменную

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

  1. Выберите глобальную переменную на холсте разработки или откройте панель Переменные и выберите глобальную переменную.

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

    Снимок экрана: список тем, используемых переменной, в области «Свойства переменной».

Жизненный цикл глобальных переменных

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

Установка значения глобальной переменной из внешних источников

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

  1. Выберите глобальную переменную.

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

Установите глобальные переменные во встроенном помощнике

Если вы встраиваете свой помощник в простую веб-страницу, вы можете добавить переменные и их определения к URL-адресу помощника. Или, если вы хотите немного больше контроля, вы можете использовать блок кода <script> для программного вызова и использования переменных.

Имя переменной в строке запроса URL-адреса должно совпадать с именем глобальной переменной, без префикса Global.. Например, глобальная переменная Global.UserName в запросе будет указываться как UserName.

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

Добавьте переменные и их определения в URL-адрес помощника как параметры строки запроса (в формате botURL?variableName1=variableDefinition1&variableName2=variableDefinition2).

Например:

Имя параметра не зависит от регистра. username=Renata также будет работать в этом примере.

Добавление глобальных переменных на пользовательский холст

Вы также можете добавить переменную на пользовательский холст.

  1. В разделе <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);
        });
    
  2. Внутри вашего раздела <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));