Перейти к содержанию

Вопросы пользователю во время работы

Хороший помощник не должен выдумывать недостающие исходные данные. В 0.3.66 помощник может приостановить выполнение, задать пользователю уточняющие вопросы и затем продолжить тот же запуск.

Эта возможность называется в интерфейсе «Спросить пользователя».


Что вы сделаете

Вы научитесь:

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

Когда это нужно

Например, пользователь просит:

Подготовь план миграции нашей базы.

Для нормального плана не хватает:

  • версии базы;
  • размера;
  • допустимого простоя;
  • целевой платформы.

Вместо догадки помощник может остановиться и спросить это у пользователя.


До четырёх связанных вопросов

Один шаг может содержать до четырёх связанных вопросов.

Интерфейс показывает их последовательно, а ответы собираются в один набор и передаются помощнику после завершения формы.

Вопрос может использовать:

  • свободный текст;
  • одиночный выбор;
  • множественный выбор.

Пошагово

Когда помощник остановился на вопросе:

  1. прочитайте заголовок и пояснение;
  2. ответьте на текущий вопрос;
  3. перейдите дальше;
  4. проверьте ответы перед отправкой;
  5. нажмите отправку на последнем шаге;
  6. дождитесь продолжения того же выполнения.

Ответы сохраняются как часть возобновления запуска.


Вопрос и подтверждение — не одно и то же

Механизм Зачем
Спросить пользователя получить недостающую информацию
Подтверждение операции разрешить или отклонить действие сервиса

Пример вопроса:

Какой период расходов анализировать: 7, 30 или 90 дней?

Пример подтверждения:

Разрешить выполнение операции X над объектом Y?

Не заменяйте подтверждение опасного действия обычным вопросом модели.


Если вы не хотите отвечать

Форма может позволять пропустить набор вопросов.

После пропуска помощник должен:

  • либо продолжить только с имеющимися данными и явно указать ограничение;
  • либо объяснить, что без ответа корректное выполнение невозможно.

Он не должен тихо придумывать критически важные параметры.


Проектирование помощника

В инструкции полезно задать правило:

Если для ответа не хватает критически важных исходных данных,
не делай предположение молча.
Сначала запроси у пользователя минимально необходимое уточнение.

Но не заставляйте помощника спрашивать всё подряд.

Хороший вопрос должен существенно менять результат.


Плановое задание

У планового задания нет человека, который гарантированно смотрит на экран в момент запуска.

Если запланированный помощник дошёл до вопроса пользователю, выполнение может перейти в состояние ожидания вмешательства.

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


Вопрос во время сервисной работы

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

Например:

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

Это лучше, чем произвольный выбор первого объекта.


Безопасность

Не вводите в ответ на вопрос:

  • пароль;
  • закрытый ключ;
  • IAM-токен;
  • секрет приложения;
  • одноразовый код;
  • другую информацию, которую нельзя передавать модели.

Если помощник просит секрет, это повод остановить выполнение и проверить его инструкцию.


Как проверить функцию

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

Проверьте:

  1. появление формы вопроса;
  2. возможность ответить;
  3. продолжение того же разговора;
  4. использование ответа в результате;
  5. отсутствие повторного вопроса без причины.

Что дальше