Короткий ответ
Нет. У Whizi нет офлайн режима. Чтобы сформировать ответ, Whizi отправляет разумно необходимую для запроса информацию в OpenRouter и подключённому провайдеру модели, либо другому провайдеру, используемому выбранной функцией, поэтому ответ всегда представляет собой сетевой запрос к компании, отличной от Whizi. Хостинг, синхронизированные чаты, медиафайлы, состояние аккаунта, лимиты использования, отчёты, а также обработка безопасности и операционных процессов работают на Cloudflare Workers, D1, R2 и Durable Objects, а значит беседа, которую вы печатаете, тоже хранится на сервере.
По той же причине список моделей формируется на сервере. Селектор моделей обслуживается бэкендом Whizi по адресу GET /api/models, а списки моделей, жёстко прописанные в веб и мобильном клиентах, служат лишь запасным вариантом на случай, если этот запрос недоступен. Запасной список лишь отображает селектор: если название видно при отсутствии сети, это не значит, что за ним есть модель, способная ответить.
| Что требует подключения | Что происходит на вашем устройстве |
|---|---|
| Каждый ответ модели, на любом тарифе | Выбранная вами тема, сохранённая в локальном хранилище и восстановленная при следующем визите |
| Загрузка списка чатов и любой беседы | Разбор файла экспорта ChatGPT или Claude, который браузер читает до отправки чего либо |
| Отправка сообщения, его редактирование, переключение версий | Сборка .xlsx или .docx из карточки файла в ответе |
| Веб поиск, голос, генерация изображений | Кэш мобильного приложения с недавними беседами, описанный ниже |
| Загрузка файла и просмотр сохранённых медиафайлов по его подписанной ссылке |
Что мобильное приложение хранит на устройстве
Политика конфиденциальности говорит об этом прямо. Мобильное приложение может хранить локальный кэш до 40 последних бесед на устройстве с входом в аккаунт или в гостевом режиме, и этот кэш не является отдельной облачной резервной копией. О том, как он очищается и где хранится всё остальное на аккаунте, рассказано в статье где Whizi хранит данные.
Кэш недавних бесед это не офлайн режим чтения, и он никак не меняет того, где происходит работа. Беседы и сообщения хранятся на аккаунте, пока вы их не удалите или не удалите сам аккаунт, а новый ответ всё равно должен дойти до провайдера по сети.
Ваш тариф также определяется на сервере. Оплата привязана к отдельному аккаунту, и уровень тарифа определяется ровно в одном месте на основе подписки этого аккаунта. О том, как обе платформы используют один аккаунт, читайте в статье Whizi на мобильных устройствах.
Соединение обрывается посреди ответа
Генерация выполняется на сервере в Durable Object, отдельном для каждой беседы, поэтому закрытие вкладки посреди потока не убивает ответ, и он всё равно сохраняется. Заново открытая вкладка или второе устройство могут подключиться к уже идущей генерации через GET /api/conversations/:id/generate/active. Вернитесь, перезагрузите беседу и прочитайте то, что было сохранено.
Есть одно узкое окно в самом начале, где это не работает. Если клиент отключается до завершения подключения к вышестоящему серверу, сервер записывает Generation aborted before it started. и отвечает HTTP 408 с пустым телом, а значит до модели ничего не дошло.
Остановка определяется сервером, а не клиентом: координатор отменяет чтение от провайдера, сохраняет частичный ответ, снимает блокировку и возвращает недоставленный ход. Полный набор строк, появляющихся посреди потока, и их значение указаны в статье сообщение не отправляется.
Строки, которые вы видите, когда запрос не может завершиться
Whizi показывает ошибку именно того запроса, который выполнялся, а не одно общее сообщение, поэтому конкретная строка зависит от того, что вы делали. Каждая приведена дословно, вместе с условием, для которого она задокументирована.
| Строка | Задокументированное условие | Где это описано |
|---|---|---|
Failed to send message. | Запасное всплывающее уведомление на сайте, когда отправка не удалась и бэкенд не передал сообщение об ошибке | сообщение не отправляется |
Could not load your chats. Please refresh to try again. | Уведомление, показываемое, когда не удаётся загрузить список чатов | сообщение не отправляется |
Failed to retrieve session token. | Возникает, когда запрос токена ничего не возвращает перед вызовом списка чатов, загрузки чата, удаления, переименования или загрузки файла | вход и доступ к аккаунту |
The import could not be finished. Check your connection and try again. | Любая другая ошибка загрузки во время импорта | ошибки импорта чатов |
Something went wrong. Please close and try again. | Общая ошибка диалога "Поделиться", показываемая только когда сбой не несёт собственного сообщения, например при обрыве соединения или странице с HTML ошибкой | поделиться беседой |
The realtime voice connection failed. | Показывается при событии ошибки websocket | голосовой режим не работает |
The realtime voice connection was closed. | Показывается, когда websocket закрывается после завершения настройки | голосовой режим не работает |
Connection error | Метка состояния голосового оверлея при неудачной голосовой сессии | голосовой режим не работает |
That didn't send. Check your connection and try again. | Запасной вариант обратной связи для всех остальных сбоев | устранение неполадок |
Голос заслуживает отдельного пояснения, потому что его архитектура выглядит независимой, но это не так. Воркер выпускает недолговечный токен, и браузер открывает WebSocket напрямую к Google, поэтому аудио никогда не проходит через серверы бэкенда Whizi. Это свойство конфиденциальности, а не офлайн режима: сокет к Google остаётся сокетом, а сессионный токен, который его открывает, выпускается воркером.
Что делать, пока у вас ещё есть сигнал
Ничто из этого не даёт рабочую модель без подключения. Речь о том, чтобы не остаться без доступа к своим материалам.
Заберите свои данные с собой. GET /api/account/export возвращает данные аккаунта в виде одного скачиваемого JSON файла, доступного как Export Data (Экспорт данных) в разделе Account (Аккаунт) настроек. Важная оговорка для офлайн работы: медиафайлы экспортируются как метаданные плюс подписанная ссылка, а не как встроенные байты, поэтому JSON хранит запись, а само изображение всё равно нужно будет загрузить отдельно. Что именно хранится на аккаунте, описано в статье где Whizi хранит данные.
Сохраните ответ в файл, пока есть сигнал. Ответ чата может содержать блок кода, который сайт отображает как карточку файла и превращает в настоящий .xlsx или .docx прямо в браузере. Сборка файла происходит локально, но сам ответ, породивший его, локальным не был.
Импортируйте после посадки, а не в пути. Выбор файла экспорта это локальная работа, а загрузка нет, хотя обрыв соединения во время неё ничего не стоит, поскольку каждая беседа привязана к сочетанию аккаунта, источника и идентификатора источника и попадает в систему только один раз. Строки ошибок описаны в статье ошибки импорта чатов.
- В Whizi нет офлайн режима и нет пути формирования ответа на устройстве
- Каждый ответ это сетевой запрос к подключённому провайдеру модели
- Селектор моделей обслуживается бэкендом, а встроенные списки это лишь запасной вариант
- Мобильное приложение может кэшировать до 40 последних бесед, и этот кэш не является отдельной облачной резервной копией
- Ваш тариф определяется на сервере на основе подписки вашего собственного аккаунта
- Ответ переживает обрыв клиента: генерация продолжается в Durable Object
- Экспортируйте свой аккаунт в JSON из раздела Account (Аккаунт) настроек перед поездкой
- Медиафайлы в экспорте представлены подписанной ссылкой, поэтому их всё равно нужно будет загрузить позже
Частые вопросы
Работает ли Whizi в самолёте без wifi?
Нет. Каждый ответ создаётся провайдером модели, до которого нужно достучаться по сети, поэтому без подключения нет пути ни к модели, ни к вашему списку чатов.
У меня на телефоне пропал сигнал посреди генерации. Могу ли я сразу начать новую на ноутбуке?
Не обязательно, потому что на аккаунт одновременно может выполняться только одна генерация. Вторая попытка при удерживаемой пользовательской блокировке отклоняется с сообщением "Generation already in progress. Please stop it or wait for it to finish." Блокировка не постоянна: она становится доступной для перехвата, как только держатель признаётся осиротевшим или зависшим, а просроченные блокировки снимаются по расписанию.
Могу ли я пролистать старую беседу на телефоне в режиме полёта?
Только в пределах того, что закэшировало мобильное приложение, и изображения это отдельный случай даже здесь. Сгенерированные изображения хранятся на сервере и отдаются обратно через подписанные ссылки, поэтому картинка в старом треде загружается в момент, когда вы на неё смотрите, а не хранится на устройстве.
Меняет ли что-то гостевой аккаунт на мобильном устройстве?
Нет. Локальный кэш, описанный в политике конфиденциальности, действует одинаково и для устройства с входом в аккаунт, и для гостевого устройства. Сам гостевой идентификатор хранится на устройстве, но Whizi хранит его односторонне вычисленный производный идентификатор, чтобы распознавать гостевой профиль, синхронизировать данные, проверять доступ по подписке и позже связать эти данные с аккаунтом, а всё это серверные операции. Экспорт аккаунта работает и для гостевых сессий, ведь у гостей есть реальные чаты и память, которые они могут захотеть забрать до того, как устройство исчезнет.
Как долго работают ссылки на медиафайлы внутри экспорта?
Загруженные вложения и сгенерированные медиафайлы настроены на истечение срока действия максимум через 30 дней, а могут быть удалены и раньше вами самими или при удалении аккаунта. Как только объект выходит за пределы срока хранения, запрос отвечает "Media has expired.", HTTP 404 media_expired, вместо возврата самих байтов. Загрузите всё, что хотите сохранить, пока у вас ещё есть подключение.