Короткий ответ
Организация истории чатов в Whizi сводится к четырём действиям: переименовать чат, удалить один чат или сразу несколько, найти нужный чат через поле поиска в боковой панели и объединить чаты в проекты, папки переписок, которые также хранят закреплённые файлы и инструкции для конкретного проекта.
Поиск работает в два слоя из одного поля: заголовки чатов фильтруются мгновенно по мере набора, а начиная с трёх символов текст сообщений также ищется на сервере, и такие чаты показываются под заголовком Found in messages. Переименование по прежнему важно, потому что заголовок, это то совпадение, которое вы видите первым, и единственное совпадение, которое может дать запрос из одного или двух символов.
| Инструмент | Где находится | Что делает на самом деле |
|---|---|---|
| Переименование | Список чатов | Задаёт заголовок, от 1 до 120 символов. Заголовки: мгновенный слой поиска |
| Удаление | Список чатов | Удаляет один чат или сразу несколько за одно действие |
| Поиск | Поле поиска над списком чатов в боковой панели | Находит совпадения в заголовках мгновенно и в тексте сообщений начиная с трёх символов, сразу по всем проектам и по списку без группировки |
| Проекты | Боковая панель, отображаются над списком чатов | Папка чатов, а также до 10 закреплённых файлов и инструкции, применяемые к каждому чату внутри неё |
Переименование чата и два разных ограничения по длине
Заголовок переписки должен содержать от 1 до 120 символов. Бэкенд отклоняет всё, что выходит за эти рамки, с ошибкой Conversation titles must be between 1 and 120 characters., HTTP 400, код invalid_title.
Сайт останавливает вас раньше, чем это делает бэкенд. Он отклоняет пустое имя всплывающим уведомлением Chat name cannot be empty. и слишком длинное, уведомлением Chat name is too long (max 100 characters). Поэтому практический предел при переименовании с сайта составляет 100 символов, хотя само поле принимает 120.
Если сам запрос на переименование не выполняется, появляется уведомление Failed to rename chat. Please try again.
Поскольку поиск ищет совпадения в заголовках, хороший заголовок, это поисковый запрос, который вы пишете для себя в будущем. Работают названия, которые содержат существительное, которое вы действительно введёте: имя клиента, номер счёта, имя файла, код проекта. Не работают названия, которые генерирует первое сообщение, ведь они описывают исходный вопрос, а не то, во что превратился разговор.
Что умеет и чего не умеет поле поиска
В боковой панели есть поле поиска над списком чатов. Заголовки сопоставляются мгновенно прямо в браузере, и поиск охватывает сразу все проекты и список без группировки, поэтому чат можно найти по имени независимо от того, в какой папке он находится.
Текст сообщений тоже ищется, как только запрос достигает трёх символов: сервер опрашивается после короткой паузы в наборе текста, и до 20 чатов, в сообщениях которых есть совпадение, показываются под заголовком Found in messages, каждый с фрагментом найденного текста. Более короткий запрос находит совпадения только в заголовках, и это одна из причин, по которой заголовок с нужным существительным всё ещё находит чат быстрее всего остального.
Также нет горячей клавиши, чтобы сразу перейти к нему. В Whizi клавиша Enter отправляет сообщение, а Shift плюс Enter вставляет новую строку, Escape закрывает открытый диалог, и кроме этих двух соглашений в приложении нет ни системы горячих клавиш, ни панели с их списком.
Полный механизм работы, включая ограничения, описан в статье поиск по истории чатов.
Проекты: папки с файлами и инструкциями
Проект, это папка переписок, которая также хранит закреплённые файлы и собственные пользовательские инструкции. Проекты отображаются в боковой панели над списком чатов и доступны любому вошедшему в аккаунт пользователю, включая бесплатный тариф. Ограничения на проект существуют для защиты от злоупотреблений, а не как платный барьер.
Чат может принадлежать не более чем одному проекту. Всё, что не входит ни в один проект, остаётся в обычном списке чатов, поэтому боковая панель может одновременно показывать проекты и представление со всем остальным.
| Ограничение | Значение |
|---|---|
| Проектов на аккаунт | 50 |
| Название проекта | 120 символов |
| Инструкции проекта | 32,000 символов |
| Закреплённых файлов на проект | 10 |
| Размер одного закреплённого файла | 10 МБ |
| Извлечённый текст из одного закреплённого файла | 32,000 символов |
| Весь блок промпта проекта | 120,000 символов |
| Создание или редактирование проекта | 20 в минуту |
| Загрузка файла проекта | 10 в минуту |
Для закрепления принимаются файлы PDF, обычный текст, Markdown, CSV, JSON, .docx и .xlsx. Изображения намеренно исключены, потому что закреплённый файл добавляется как текст в промпт на каждом шаге, а не просматривается один раз.
Отсюда следуют два последствия, и именно из-за них проект, это больше, чем просто папка. Первое, стоимость контекста: инструкции проекта и текст закреплённых файлов заново собираются в промпт при каждом сообщении в этом проекте, в рамках того же бюджета ввода, что и сама переписка. Подробности о том, на что это расходуется, приведены в статье когда переписка становится слишком длинной. Второе, хранение: байты закреплённых файлов хранятся до тех пор, пока вы их не удалите, и не имеют срока действия, в отличие от вложений в чат, которые настроены на удаление максимум через 30 дней.
Инструкции проекта также единственные постоянные инструкции, написанные пользователем, во всём продукте. Отдельной настройки пользовательских инструкций на уровне аккаунта не существует, поэтому если вы хотите применять один и тот же бриф ко всем чатам по одной задаче, для этого и нужен проект.
Удаление чатов и что на самом деле удаляется
Чат можно удалить из списка чатов, по одному или выбрав сразу несколько. При ошибке удаления одного чата показывается Failed to delete chat. Please try again., а при ошибке массового удаления, Failed to delete some chats, причём во втором случае точка в конце отсутствует.
Удаление переписки не то же самое, что удаление аккаунта. Отдельные переписки можно удалять сами по себе, а отмена подписки ничего не удаляет: она останавливает списание оплаты и прекращает доступ по окончании оплаченного периода, при этом аккаунт и его содержимое сохраняются. Удаление данных, это отдельное действие: удаление аккаунта.
Удалённые строки исчезают не из всех слоёв хранения сразу. Cloudflare D1 хранит защищённую историю восстановления на определённый момент времени, и удалённые записи базы данных могут оставаться в этой истории до 30 дней, прежде чем исчезнуть окончательно. Где хранится каждый вид контента и как долго, описано в статье где Whizi хранит ваши данные.
Есть одна особенность, характерная именно для импортированной истории: удаление импортированного чата и повторный импорт того же экспорта возвращают чат обратно, вместо того чтобы пропустить его как дубликат. Импорт определяется по сочетанию аккаунта, источника и id источника, поэтому повторный запуск импорта обычно безопасен и идемпотентен, но это же единственный способ, которым удалённый вами чат может вернуться. Остальное поведение импорта описано в статье ошибки импорта чатов.
Когда действия по организации не выполняются по причине, не связанной с самой организацией
Одна ошибка встречается во всех этих действиях и не имеет отношения к самому чату. Failed to retrieve session token. появляется на сайте всякий раз, когда запрос токена не возвращает ничего перед вызовом списка чатов, загрузки чата, удаления, переименования или загрузки файла. У неё нет ни HTTP статуса, ни кода ошибки, потому что сайт выбрасывает её до отправки запроса.
Conversation not found., это аналог на стороне бэкенда, HTTP 404, код not_found, возвращается, когда id переписки не существует или не принадлежит вызывающему пользователю. Она появляется одинаково на маршрутах чтения, удаления, переименования, добавления сообщения, переключения версии и общего доступа.
Обе проблемы связаны со входом в систему, а не с данными. Способы решения и полный список строк ошибок сессии приведены в статье вход и доступ к аккаунту.
- Поиск находит совпадения в заголовках мгновенно, а в тексте сообщений, начиная с трёх символов
- Переименование принимает от 1 до 120 символов, хотя сайт отклоняет всё, что длиннее 100
- Поиск сразу охватывает все проекты и список без группировки
- Проекты доступны на любом тарифе, включая бесплатный, до 50 на аккаунт
- Чат может принадлежать не более чем одному проекту
- Закреплённые файлы проекта добавляются к каждому сообщению, поэтому 10 файлов, это не только лимит, но и расход контекста
- Закреплённые файлы проекта не имеют срока действия, в отличие от вложений в чат
- Удаление импортированного чата и повторный импорт того же экспорта возвращают его обратно
- Удаление чата не то же самое, что удаление аккаунта
Частые вопросы
Можно ли искать внутри моих переписок в Whizi?
Да. Заголовки чатов фильтруются мгновенно по мере набора, а начиная с трёх символов текст сообщений также ищется на сервере, и до 20 подходящих чатов показываются под заголовком Found in messages, каждый с фрагментом совпадения. Поиск охватывает сразу и проекты, и список без группировки, поэтому чат можно найти независимо от того, в какой папке он находится.
Как переименовать чат в Whizi?
Переименуйте его из списка чатов. Заголовок должен содержать от 1 до 120 символов, и бэкенд отклоняет всё остальное с ошибкой Conversation titles must be between 1 and 120 characters. Сайт строже и останавливает вас на 100 символах уведомлением Chat name is too long (max 100 characters)., а пустое имя отклоняет уведомлением Chat name cannot be empty.
Есть ли в Whizi папки для чатов?
Да, они называются проектами. Проект, это папка переписок, которая также содержит до 10 закреплённых файлов и собственные инструкции, до 32,000 символов, применяемые к каждой переписке внутри неё. На аккаунт можно создать до 50 проектов, и они доступны любому вошедшему в систему пользователю, включая бесплатный тариф. Чат может принадлежать не более чем одному проекту, а всё, что не помещено в проект, остаётся в обычном списке чатов.
Учитываются ли закреплённые файлы проекта в длине переписки?
Да. Инструкции проекта и извлечённый текст каждого закреплённого файла заново собираются в промпт на каждом шаге в этом проекте, в рамках того же бюджета ввода, что и сама переписка. Каждый файл вносит не более 32,000 символов текста, а весь блок проекта ограничен 120,000 символами. Если чат в проекте теряет нить разговора быстрее, чем обычный чат, причина именно в этом, и решение, открепить то, о чём вы сейчас не спрашиваете.
Если я удалю чат, он действительно исчезнет?
Переписка удаляется из вашего аккаунта, не затрагивая ничего другого, и вам не нужно удалять аккаунт, чтобы убрать один чат. Удалённые строки базы данных могут сохраняться до 30 дней в истории восстановления Cloudflare D1 на определённый момент времени, прежде чем исчезнуть окончательно. Стоит знать об исключении для импортированной истории: удаление импортированного чата и повторный импорт того же экспорта восстанавливают его, вместо того чтобы пропустить как дубликат.
Есть ли горячие клавиши для управления чатами?
Нет. Enter отправляет сообщение, Shift плюс Enter вставляет новую строку, а Escape закрывает открытый диалог. Кроме этих двух соглашений, в Whizi нет ни системы горячих клавиш, ни составных сочетаний, ни справочной панели с их списком.