Сцены

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

Некоторые особенности сцен включают в себя:

  • Зацикленное выполнение . Сцены выполняются в цикле до тех пор, пока не будут выполнены заданные вами критерии перехода. Это позволяет более эффективно создавать логические потоки управления в рамках одной сцены.
  • Разделение диалогов . В сочетании с намерениями сцены позволяют группировать диалоги в логические фрагменты, предоставляя вам простые способы создания пар запросов пользователя и ответов действий.
  • Масштаб совпадения намерений . Поскольку одновременно может быть активна только одна сцена, вы можете ограничить сопоставление намерений сценами по вашему выбору и сделать так, чтобы они совпадали только тогда, когда эти сцены активны.
  • Заполнение слотов . Вы можете использовать заполнение слотов в сцене для сбора нескольких частей введенного пользователем ввода без необходимости создавать несколько намерений.
  • Условия в сцене . Вы можете проверить слоты, сеанс, пользователя и домашнее хранилище, чтобы выполнить простую условную логику без запуска веб-перехватчика.

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

Пользовательские сцены

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

  • Активация . Прежде чем сцена сможет выполняться, вы должны активировать ее с помощью глобального совпадения намерений или перехода сцены.
  • Выполнение . Когда сцена активна, она выполняется в четко определенном жизненном цикле, что позволяет выполнять различные задачи, такие как заполнение слотов, условная проверка, генерация подсказок и запуск событий веб-перехватчиков.
  • Переход . Когда сцена соответствует определенным вами критериям, таким как соответствие замыслу или завершение заполнения слота, вы можете перейти к другой сцене, чтобы выполнить еще больше логики. Кроме того, вы можете перейти к системной сцене «Завершить разговор» , которая завершает разговор с пользователем.
Рис. 1. Обычный переход сцены. Глобальное намерение активирует сцену во время вызова, сцена использует пользовательский ввод и соответствует намерению, которое переходит и активирует другую сцену.

Активация

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

  • Вызов . Когда пользовательский ввод соответствует языковой модели глобального намерения, вы можете активировать сцену для обработки вызова.
  • Статический переход сцены . Когда сцена соответствует критериям перехода, вы можете определить переход к другой сцене.
  • Динамический переход сцены . В обработчике веб-перехватчика можно программно перейти к другой сцене .

Жизненный цикл выполнения

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

  1. При входе — этот этап запускается только один раз при активации сцены. Вы можете активировать веб-перехватчик или предложить пользователю выполнить однократную настройку вашей сцены.

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

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

  4. Подсказки — помощник доставляет очередь подсказок пользователю и очищает очередь. Очередь подсказок — это объединенная коллекция подсказок, которые были объединены с момента последней очистки очереди на этом этапе.

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

Рисунок 2. Жизненный цикл выполнения сцены

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

При входе

При входе — это единственный этап, который не выполняется в цикле выполнения сцены. Он выполняет однократную инициализацию вашей сцены в следующем порядке:

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

Условия

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

  • Среда выполнения Assistant оценивает каждое условие в указанном порядке. Первое условие, которое оценивается как true , выполняет связанный обработчик и останавливает оценку условий.
  • Условие else if scene.slots.status = "FINAL" автоматически добавляется в список условий, если вы выполняете заполнение слота. Это необязательное условие проверяет завершение заполнения слота и может запускать веб-перехватчик или добавлять подсказки в очередь подсказок.

После оценки условия, если сцена не определяет переход, она продолжает заполнять слот.

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

На этом этапе добавляется запрос слота для одного незаполненного и необходимого слота. Если вы не определяете слоты в сцене, этот этап ничего не делает.

  • Среда выполнения Assistant выбирает первый незаполненный слот и добавляет соответствующее приглашение в очередь приглашений. Поскольку циклы выполнения сцены, дополнительные незаполненные слоты обрабатываются позже, когда цикл выполнения возвращается к этому этапу.
  • Текущий активный слот может иметь подсказки обработки ошибок, которые переопределяют те, которые определены на этапе ввода сцены.
  • Когда пользователь заполняет слот, вы можете проверить его в веб-службе, активировав веб-перехватчик.

Подсказки

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

Вход

Среда выполнения Assistant пытается сопоставить ввод с намерением или слотом:

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

    • no_match_1
    • no_match_2
    • no_match_final

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

Переход

Переходы могут происходить на следующих этапах:

  • Условия . Вы можете перейти к другой сцене на основе заданных вами условий. Обычным условием для проверки является полное заполнение слота.
  • Ввод (совпадение намерений пользователя) — если намерение совпадает, это может вызвать переход к другой сцене.
  • Ввод (соответствие намерений системы) — вы можете запускать веб-перехватчики во время любого события совпадения намерений системы. При отсутствии совпадений и входных событий сцена по умолчанию переходит к сцене «Конец разговора» после трех повторений.

Системные сцены

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

В следующем списке описаны поддерживаемые системные сцены и способы их использования:

  • Завершить разговор — закрывает микрофон и завершает разговор с пользователем. Помощник возвращает контроль над взаимодействием с пользователем после выполнения этой сцены.
  • Связывание учетной записи — проводит пользователя через процесс связывания учетной записи и предоставляет вашим действиям необходимую информацию для связывания учетной записи пользователя на ваших внутренних серверах с учетной записью пользователя Google. См. документацию по привязке учетных записей для получения дополнительной информации о том, как использовать эту сцену.
  • Ежедневные обновления — направляет пользователя через процесс подтверждения, чтобы добавить ваши действия к ежедневным обновлениям пользователя. См. документацию по ежедневным обновлениям для получения дополнительной информации о том, как использовать эту сцену.
  • Уведомления — направляет пользователя через процесс подтверждения, чтобы получать уведомления от ваших действий. См. документацию по push-уведомлениям для получения дополнительной информации о том, как использовать эту сцену.