Удаление аккаунта в обычном сервисе — одна строка в одной таблице. У ассистента с памятью тот же аккаунт связан с чатами, извлечёнными фактами, графом связей, поисковым индексом, векторным индексом и набором служебных ключей, часть из которых лежит в глобальной таблице настроек и не связана с вами внешним ключом вовсе.
Это значит, что кнопка «удалить» может отработать успешно и оставить данные. Не по злому умыслу, а потому что каскад базы данных затрагивает то, что к нему подключено, и не затрагивает то, что не подключено. Ниже — как проверить результат вместо того, чтобы ему верить.
#Что понадобится
- Пять минут до удаления на выгрузку. После удаления выгружать нечего.
- Место, куда положить выгрузку. Файл содержит вашу переписку целиком.
- Знание, где вы работаете — на своём экземпляре или на чужом. Порядок действий разный.
#Шаг 1. Сначала выгрузка, потом удаление
Порядок не меняется никогда. Восстанавливать данные из ротации резервных копий ради того, чтобы получить копию, — плохая идея по всем причинам сразу.
На нашем экземпляре выгрузка делается со страницы «Мои данные» одним файлом: /settings/my-data/export.json или тот же JSON в архиве. В него входят аккаунт, чаты с ассистентом, факты памяти, заметки, настройки, друзья, заявки и ветки личных сообщений.
Что в выгрузку намеренно не входит, и это стоит знать заранее:
- хеш пароля — верификатор, которому не место в файле в папке «Загрузки»;
- значения ключей API и токенов ботов — вместо них отметка о наличии и длина. Причина: право на доступ — это право узнать, какие данные о вас обрабатываются, а действующий ключ провайдера данными о вас не является. Сам ключ вы всегда видите и меняете на странице подключения модели;
- живые токены сессий и устройств — по той же логике;
- чужие адреса электронной почты — маскируются, потому что право на доступ распространяется на ваши данные, а не на адресную книгу экземпляра.
Про форматы и подводные камни переноса в другой продукт — в статье про экспорт и перенос памяти ИИ.
#Шаг 2. Решите, что вы удаляете
Три разные операции, которые часто путают:
Один факт. Точечное удаление записи памяти — работа в интерфейсе, механика разобрана в статье про удаление факта из памяти ИИ.
Один чат. Удаляется отдельно, вместе со своими сообщениями.
Аккаунт целиком. Каскадная операция. Промежуточного варианта «удалить всю переписку, но оставить аккаунт» в продукте нет — это надо знать до того, как вы нажмёте кнопку в поисках такого режима.
#Шаг 3. Чек-лист из шести мест хранения
Это основной артефакт статьи. Проверять надо каждое место отдельно — успешное удаление в первом ничего не говорит про остальные.
| Место | Что там | Как проверить |
|---|---|---|
| Основные таблицы | Сообщения, факты памяти, заметки | Попытка открыть чат по прямой ссылке |
| Полнотекстовый индекс | Зеркало текста для поиска | Поиск по характерной фразе из удалённого |
| Векторный индекс | Числовые представления фрагментов | Смысловой поиск по теме удалённого разговора |
| Производные структуры | Граф связей, датасет обучения, кэши | Поиск по имени сущности в графе |
| Глобальные ключи настроек | Профиль, признаки онбординга, режимы чатов | Проверяется владельцем экземпляра по базе |
| Резервные копии | Всё вышеперечисленное на момент снимка | Не проверяется; считается по глубине ротации |
Две строки заслуживают отдельного пояснения.
Четвёртая. Датасет пар «вопрос — ответ», который некоторые продукты копят для будущего дообучения, обычно не связан с чатом каскадом: у него ссылка настроена так, что при удалении чата она обнуляется, а сама строка с полным текстом остаётся. В Persona это учтено — такие строки удаляются первыми, до чатов, — но проверять эту деталь стоит в любом продукте.
Пятая. Глобальная таблица «ключ — значение» не имеет внешних ключей вообще, и личные ключи живут в ней с суффиксом-идентификатором. Ни один каскад их не заберёт: нужен явный список ключей и явное удаление.
#Шаг 4. Удалите и проверьте
На нашем экземпляре удаление подтверждается вводом собственного адреса электронной почты; идентификатор пользователя нигде не принимается, поэтому удалить чужой аккаунт технически невозможно — личность берётся только из вашей сессии.
Сразу после удаления пройдите проверку в этом порядке:
- Попробуйте войти. Вход не должен проходить, активные сессии — прекратиться на всех устройствах.
- Откройте прямую ссылку на свой прежний чат. Должна быть ошибка, а не содержимое.
- Если у вас есть второй аккаунт — поищите себя в списке людей. Прежний профиль не должен находиться.
- Спросите у собеседника, видна ли ваша переписка. Ветки личных сообщений должны исчезнуть и у него тоже.
- Через сутки повторите поиск. Часть индексов перестраивается по расписанию, и сразу после удаления картина бывает неполной.
#Что переживает нажатие кнопки
Список, который честнее назвать самим.
Резервные копии, сделанные до удаления. Они не переписываются и вымываются по мере ротации у оператора. Это стандартная практика, но она означает, что «удалено» и «физически исчезло отовсюду» — разные моменты. Как устроена ротация и почему у неё должна быть известная глубина — в разборе резервных копий и приватности.
Обезличенная отметка об исполненном удалении. Идентификатор, время и счётчики удалённых строк — без содержимого и без адреса почты. Она нужна оператору, чтобы доказать, что требование было выполнено; без неё удаление недоказуемо, и это работает в вашу же пользу.
Логи провайдера языковой модели. Всё, что уходило в облако вместе с вашими запросами, находится в чужой системе. Удалить это кнопкой в нашем интерфейсе невозможно — только отдельным запросом провайдеру.
Данные, которые ваш собеседник скопировал себе. Очевидно, но регулярно упускается.
#Что может пойти не так
Удалили, не выгрузив. Самая частая и самая необратимая ошибка гайда.
Ждали уведомления собеседнику. Его не будет: уведомление о вашем удалении само стало бы рассылкой факта. Собеседник просто увидит, что ветки больше нет.
Пытались удалить аккаунт владельца экземпляра. Он не удаляется самостоятельно: на нём держится доступ ко всей установке. Закрытие экземпляра делается на сервере.
Проверяли сразу и решили, что осталось лишнее. Часть производных структур обновляется не мгновенно. Повторите проверку через сутки, прежде чем делать выводы.
Работаете на своём экземпляре и удалили только записи. Файл базы, снимки, распознанный текст и копии остаются на диске: там удаление — это операция с файлами, а не с аккаунтом. Техническая сторона — в гайде по резервному копированию и восстановлению SQLite.
#Частые вопросы
#Что происходит с личной перепиской при удалении аккаунта?
Ветки личных сообщений удаляются жёстко и у обеих сторон: собеседник теряет общую переписку целиком, включая собственные реплики, и уведомления не получает. Решение спорное и выбрано сознательно: обезличить отправителя недостаточно — время, частота и содержание сообщений остались бы на месте, а в разговоре один на один собеседник и так знает, с кем говорил. Это было бы видимостью удаления.
#Можно ли удалить всю переписку, но сохранить аккаунт?
Отдельные чаты и отдельные факты памяти удаляются поштучно в интерфейсе. Кнопки «стереть всё, но оставить аккаунт» нет: самостоятельное удаление — это удаление аккаунта целиком. Нужен промежуточный вариант — запрос оператору экземпляра.
#Сколько ждать, пока данные исчезнут из резервных копий?
Ровно столько, какова глубина ротации у оператора. Это единственный честный ответ, и он должен быть у оператора в виде конкретного числа. Формулировка для запроса: «данные удалены из рабочей системы такого-то числа, из резервных копий исчезнут не позднее такого-то».
#Отличается ли процедура, если ассистент стоит у меня?
Существенно: там нет «аккаунта», который можно удалить, — есть файлы на диске. Удаление означает работу с файлом базы, хранилищем снимков и всеми копиями, которые вы делали. Зато и проверять проще: всё в вашей досягаемости. Правовая рамка обеих ситуаций разобрана в статье про GDPR и локальный ИИ.
#Видел ли администратор мои данные до удаления?
Технически — имел полный доступ к базе, включая переписку и факты памяти. Это устройство любого self-hosted сервиса, и удаление не отменяет того, что было доступно раньше. Если такая модель доверия не подходит — единственный выход разворачивать свой экземпляр; что это меняет, разобрано в статье про приватный ИИ и локальное хранение.
#Можно ли восстановить аккаунт после удаления?
Нет. Записи удалены, сессии прекращены, остаётся только обезличенная отметка о факте удаления. Именно поэтому выгрузка делается до, а не после.
#Вывод
Порядок неизменный: выгрузка, проверка что файл читается, удаление, проверка по шести местам, повторная проверка через сутки. Если вы получаете от сервиса ответ «данные удалены» без конкретики про индексы и резервные копии — это не ответ, а формулировка. Спрашивайте глубину ротации: дата, после которой копии перестают содержать ваши данные, — единственная проверяемая часть обещания об удалении.