Возобновляемые ответы¶
Длинный ответ не должен пропадать только потому, что браузер кратковременно потерял сеть или страницу пришлось обновить. В выпуске 0.3.66 ИИ Студия использует Redis и возобновляемые потоки ответа.
Функция работает автоматически и не требует отдельной кнопки пользователя.
Что вы сделаете¶
Вы узнаете:
- что происходит при временном разрыве связи;
- когда можно просто обновить страницу;
- как синхронизируется один разговор в нескольких вкладках;
- что сохраняется во время возобновления;
- какие сбои всё же могут прервать выполнение окончательно.
Типовая ситуация¶
помощник формирует ответ
↓
браузер потерял соединение
↓
соединение восстановлено
↓
Студия получает уже сформированные части ответа
↓
поток продолжается
Не нужно автоматически отправлять исходный вопрос второй раз.
Что восстанавливается¶
Механизм может восстанавливать:
- уже сформированный текст;
- сведения о сервисных вызовах;
- цитаты;
- состояние шага помощника;
- промежуточные данные, необходимые для отображения выполняющегося ответа.
Redis в 0.3.66¶
В поставке Студии:
Redis работает во внутренней контейнерной сети, защищён паролем и использует отдельный постоянный том.
Это значит, что возобновление не ограничено только памятью процесса веб-приложения.
Обновление страницы¶
Если ответ идёт слишком долго и интерфейс выглядит зависшим:
- сначала подождите несколько секунд;
- проверьте состояние сети;
- при необходимости обновите страницу;
- откройте тот же разговор;
- дождитесь синхронизации текущего выполнения.
Не нажимайте «Отправить» повторно до проверки истории.
Несколько вкладок¶
Если один и тот же разговор открыт в нескольких вкладках, возобновляемый поток помогает синхронизировать изменения между ними.
Это не означает, что полезно активно управлять одним ответом сразу из двух вкладок.
Для корректировок и подтверждений используйте одну основную вкладку, чтобы не создавать гонку пользовательских действий.
Переход на другое устройство¶
Технологически сохранённое выполнение может быть продолжено после повторного открытия того же разговора на другом клиенте, если:
- пользователь вошёл в ту же учётную запись;
- серверное выполнение ещё существует;
- разговор доступен этому пользователю;
- инфраструктурное состояние не было потеряно.
Не используйте эту возможность как замену штатной отказоустойчивости сервера.
Фоновое выполнение и возобновление — разные вещи¶
Возобновляемый ответ сохраняет и синхронизирует поток уже выполняющегося модельного ответа.
Фоновая операция позволяет помощнику запустить подходящую сервисную операцию и продолжать другую работу, пока она выполняется.
Подробнее: Фоновые операции.
Что может не восстановиться¶
Функция не является магическим восстановлением после любого отказа.
Выполнение может быть потеряно или завершиться ошибкой при:
- аварийном уничтожении состояния Redis;
- удалении постоянного тома;
- несовместимом обновлении во время активной генерации;
- остановке нужной модели;
- ошибке внешнего сервиса;
- ручной остановке пользователем;
- превышении внутреннего срока хранения состояния выполнения.
Не повторяйте запрос автоматически¶
Самая частая ошибка после сетевого сбоя:
пользователь не видит ответ две секунды и отправляет тот же запрос повторно.
В результате могут появиться два параллельных выполнения, а для сервисных действий — два обращения к внешней системе.
Правильный порядок:
проверить сеть
↓
открыть тот же разговор
↓
проверить, продолжается ли выполнение
↓
только потом повторять запрос
Безопасность¶
Возобновление не расширяет права пользователя.
Если пользователь потерял доступ к разговору или помощнику, наличие состояния выполнения не должно позволить обойти проверку доступа.
Redis не публикуется наружу как пользовательский сервис.
Для администратора¶
При проблемах проверьте:
и состояние контейнера Redis.
В поставке 0.3.66 Redis использует appendonly yes и постоянный том nicesoft-ai-studio-redis-data.
Не удаляйте этот том при обычном обновлении.
Как проверить функцию¶
На испытательном разговоре:
- запустите длинный ответ;
- дождитесь появления текста;
- обновите страницу браузера;
- снова откройте разговор;
- убедитесь, что уже сформированный текст не исчез;
- дождитесь завершения ответа.
Отдельно можно проверить две вкладки одного разговора.