Оригинал: https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/vremennye-chaty-eksport-i-udalenie/

# Как сохранять, экспортировать и удалять чаты в Open WebUI

Как включить временный чат, скачать беседу или историю и удалить нужную запись в Open WebUI. Чем отличаются архив, JSON-копия и другие хранилища данных.

[![Тимофей Ермолаев](https://timofei-ermolaev.ru/_astro/timofei-ermolaev-portrait.s0mCFw-J_Z1x8STQ.webp)](<https://timofei-ermolaev.ru/ob-avtore/>)

[Тимофей Ермолаев](<https://timofei-ermolaev.ru/ob-avtore/>) Директор по информационным технологиям (CIO)

**Опубликовано**

22 октября 2026 г.

**Обновлено**

22 октября 2026 г.

**На урок**

25 мин

**Тема**

[Повседневная работа и контекст](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/>)

## После урока вы сможете

- Выбрать временный или обычный режим для новой беседы
- Различать экспорт одной беседы в JSON, TXT и PDF
- Отделять личную выгрузку истории от резервной копии сервера
- Различать архив, удаление и импорт новой копии

**Проверяемый результат:** По желанию проверяем режим, запись в истории и отдельный JSON на вымышленной беседе; невыполненные шаги отмечаем отдельно.

Допустим, вы хотите превратить короткий перечень вещей для вымышленного пикника в чек-лист из четырёх пунктов и сразу решить, нужна ли эта переписка в боковой панели. Временный режим не создаёт обычную запись в истории, пока вы явно не нажмёте доступную кнопку `Save Chat`; экспорт сохраняет отдельную копию беседы в файл на вашем устройстве; удаление убирает выбранную запись из истории, но не уничтожает данные во всех остальных хранилищах.

Мы опираемся на исходный код и документацию стабильного релиза Open WebUI `v0.12.3` с английским интерфейсом: в вашей установке версия, перевод, права доступа и видимость кнопок могут отличаться. Пример с пикником здесь полностью учебный и вымышленный, а практика в конце урока приведена для добровольной самостоятельной проверки и заранее не выполнялась. Прежде чем вводить первое сообщение, выберем режим будущего разговора.

## Как включить временный чат и распознать режим

Режим работы выбирают в новом чате ещё до отправки первой реплики. Пока у беседы не появился собственный идентификатор, в верхней панели отображается кнопка **`Temporary Chat`** ([верхняя панель чата](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Navbar.svelte#L184-L216>) ). Нажатие на неё включает временный режим: рядом со значком появляется галочка, а адрес страницы получает параметр `?temporary-chat=true`. Когда вы начнёте такой диалог, в верхней части окна будет видна текстовая метка **`Temporary Chat`** ([отображение метки режима](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Navbar.svelte#L276-L280>) ). До создания чата при разрешённом необязательном режиме также можно использовать встроенную команду `/temporary` ([команда /temporary и её ограничения](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/chat-features/index.mdx#L105-L109>) ).

Чтобы выйти из необязательного временного режима без сохранения переписки, начните новый чат, до отправки сообщений проверьте верхнюю панель и выключите доступный переключатель ([сброс истории при новом чате](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L2759-L2765>) ). Проверять кнопку в новом чате важно потому, что временная сессия запускается не только вручную или через `?temporary-chat=true`, но и автоматически, если включена пользовательская настройка по умолчанию (`temporaryChatByDefault`) либо администратор задал принудительный временный режим ([условия включения временного чата](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L2627-L2650>) ). Когда вы открываете любой ранее сохранённый чат из боковой панели, флаг временного режима для открытой страницы выключается ([загрузка существующего чата](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L2872-L2875>) ), однако это просто переход к старой записи, а не сохранение вашего предыдущего временного разговора.

Отсутствие кнопки `Temporary Chat` в верхней панели не означает поломку интерфейса. У обычного пользователя переключатель скрыт в двух противоположных случаях: когда отключено право `temporary` или когда одновременно включён принудительный режим `temporary_enforced` ([условия видимости переключателя](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Navbar.svelte#L184-L218>) ). Если в необязательном режиме вы свободно включаете и выключаете переключатель, то при принудительном режиме обычный пользователь отключить временный чат не может — не пытайтесь обойти это ограничение через адресную строку или команду `/temporary`. Администраторы от этих пользовательских ограничений освобождены.

Когда режим выбран и понятен по признакам на экране, от него напрямую зависит, появится ли беседа в списке чатов и как изменить это решение по ходу разговора.

## Что сохраняется в истории и зачем нужна Save Chat

Для одноразового списка вещей на пикник — плед, две кружки, салфетки и мяч — постоянная запись в боковой панели обычно не нужна. В стандартном режиме Open WebUI при отправке сообщения создаёт запись в базе и дальше обновляет историю и ветки диалога на сервере ([логика сохранения сообщений](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L4686-L4749>) ). Временный чат устроен иначе: он обходит штатную запись в историю, и пока вкладка открыта, реплики держатся только в текущем открытом разговоре.

Из кода `v0.12.3` следует важное ограничение: после закрытия или перезагрузки страницы у такой беседы нет сохранённой серверной записи, из которой интерфейс мог бы штатно восстановить диалог, а переход к новому чату сбрасывает текущую несохранённую историю ([сброс текущей истории](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L2759-L2765>) ). Это именно вывод из исходников о работе штатной истории (отдельный эксперимент с браузером мы не проводили), поэтому исчезновение текста с экрана нельзя приравнивать к полному физическому стиранию следов в памяти браузера или на внешних узлах.

Временный чат нельзя называть «никогда не сохраняемым». Если в вашей установке временный режим необязателен, после появления сообщений в верхней панели становится видна кнопка **`Save Chat`** ([кнопка сохранения временного чата](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Navbar.svelte#L218-L232>) ). Если вы передумали и решили оставить чек-лист пикника в истории, нажатие `Save Chat` явно меняет статус беседы: создаётся обычная сохранённая запись со всеми сообщениями, выбранными моделями и параметрами, временный режим выключается, а браузер открывает постоянный адрес `/c/<saved id>` ([перевод временного чата в постоянный](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L5146-L5182>) ).

Когда у обычного пользователя одновременно действуют `temporary` и принудительный `temporary_enforced`, сервер блокирует создание любых новых сохранённых чатов, хотя ранее сохранённые беседы по-прежнему можно открывать, а администраторы от этого запрета освобождены ([серверная проверка запрета сохранения](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L590-L618>) ). В такой конфигурации ни `Save Chat`, ни импорт не работают как обход. При этом даже без сохранения в историю ваш активный запрос всё равно проходит через сервер Open WebUI и отправляется на настроенный сервер модели, который обрабатывает диалог ([описание временного режима в документации](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/security/chat-data-privacy-and-encryption.mdx#L88-L90>) ), поэтому временный режим уменьшает сохранённую историю, но не даёт анонимности.

Поскольку запись в списке бесед — лишь одно из мест хранения, перед экспортом или удалением важно отделить её от остальных контуров, где могут оставаться данные.

## Какие данные находятся за пределами истории чатов

Отсутствие разговора в левой панели не означает, что никаких связанных данных больше нигде нет. В Open WebUI история диалогов, долговременная память, загруженные файлы, папки и внешние сервисы живут в разных контурах:

- **Долговременная память (`Memory`).** Записи памяти хранятся в отдельной пользовательской таблице независимо от сообщений конкретного диалога ([модель хранения Memory](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/memories.py#L1-L80>) ). Будет ли существующая память подставляться в запрос, зависит от возможностей модели, настроек и прав доступа ([обработка Memory в запросе](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/utils/middleware.py#L2340-L2353>) , [условия работы с памятью](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/utils/memory.py#L285-L320>) ). Фоновое пополнение памяти после ответа подчиняется дополнительным условиям: должна быть включена сама память и её фоновый обзор, должны подходить возможности модели, активная функция в запросе, права пользователя и наступление шага проверки ([дополнительные условия фонового обновления Memory](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/utils/memory.py#L410-L460>) ). Сам по себе временный чат не выключает `Memory`, заметки (`notes`), веб-поиск или подключённые инструменты ([Memory и инструменты во временном чате](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/chat-features/url-params.md#L79-L88>) ), а удаление чата не очищает записи `Memory` ([удаление структур чата в базе](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L2724-L2766>) ). Подробнее этот контур разобран в уроке про [память и персонализацию](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/pamyat-i-personalizaciya/>) .
- **Файлы, папки и вложения.** Оригиналы загруженных файлов и извлечённый из них текст управляются отдельно от истории бесед ([удаление файлов в роутере](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/routers/files.py#L1024-L1054>) ). Когда вы удаляете беседу, файловое хранилище автоматически не очищается; а когда скачиваете чат в JSON, в файле сохраняется структура самой беседы и те ссылки, URL или текстовые фрагменты, которые уже попали внутрь сообщений, но не создаётся отдельный бинарный архив исходных документов. О том, как различать исходный документ и текст в диалоге, мы говорили в материале про [файлы и прошлые разговоры как контекст](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/fayly-i-proshlye-razgovory/>) .
- **Провайдер модели, инструменты, логи и резервные копии.** Организация, которой принадлежит сервер, управляет базой данных, журналами и резервными копиями (`backup`), а при обращении к внешней модели переданные запросы и контекст могут обрабатываться на стороне провайдера ([контуры хранения и внешней обработки](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/security/chat-data-privacy-and-encryption.mdx#L6-L12>) , [сохранение данных в логах и резервных копиях](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/security/chat-data-privacy-and-encryption.mdx#L129-L155>) ). Разрешённые инструменты также могут сохранять или отправлять собственные данные. По официальной документации журнал аудита (`Audit logging`) выключен по умолчанию; если администратор включает уровни `REQUEST` или `REQUEST_RESPONSE`, в лог могут попадать тела запросов и ответов в зависимости от настроенных фильтров, хотя стандартные исключения по умолчанию пропускают сам маршрут чата ([настройки аудита и безопасности](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/getting-started/advanced-topics/hardening.md#L490-L538>) ). Документированное значение по умолчанию не показывает, как именно настроен ваш сервер: реальные сроки хранения, обучение моделей, логи и политика резервного копирования определяются правилами вашего оператора и провайдера.

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

## Как скачать одну беседу и выбрать формат

Когда в беседе уже есть сообщения, а у вашей учётной записи есть право `chat.export` (или вы вошли как администратор), в меню открытого чата в верхней панели доступен пункт **`Download`** ([пункты меню Download](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/layout/Navbar/Menu.svelte#L424-L467>) ). Чтобы осознанно выбрать один из трёх форматов, важно различать полное **дерево сообщений** — все сохранённые варианты и боковые ветки ответов, которые возникали при перегенерации или сравнении моделей, — и **выбранную цепочку**, то есть один линейный путь сообщений, открытый сейчас на экране (устройство таких развилок мы разбирали в уроке про [ветки ответов при сравнении моделей](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/sravnenie-neskolkih-modeley/>) ). Формат JSON сохраняет беседу как текстовую структурированную запись (сериализуемый объект), которую программа может снова прочитать и разобрать по полям, тогда как текстовый и PDF-форматы предназначены для чтения человеком:

| Формат в меню `Download` | Что получаем в файле | Для какой задачи подходит | Главный предел формата |
| --- | --- | --- | --- |
| **`Export chat (.json)`** | Массив из одной структурированной записи беседы, включая полное дерево всех веток сообщений и указатель на текущую выбранную ветку | Сохранить полную структуру диалога со всеми ветками для архива или последующего поддерживаемого импорта | Не упаковывает бинарные оригиналы вложений, не переносит автоматически `Memory`, папки и права доступа, не заменяет резервную копию сервера |
| **`Plain text (.txt)`** | Последовательность ролей и текста только по одной выбранной цепочке сообщений ([сборка текста и генерация PDF](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/layout/Navbar/Menu.svelte#L59-L84>) ) | Быстро прочитать, процитировать или передать линейный текст текущего варианта диалога | Не сохраняет боковые ветки ответов, настройки чата и структуру для обратного импорта |
| **`PDF document (.pdf)`** | Документ отображения текущей беседы для чтения или печати ([сохранение страниц PDF и запасной текстовый вариант](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/layout/Navbar/Menu.svelte#L218-L238>) ) | Показать или отправить оформленный диалог без редактирования структуры | Не является переносимым форматом истории и не восстанавливает дерево сообщений или параметры |

От режима чата зависит и то, откуда берётся запись в момент скачивания ([получение объекта чата при экспорте](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/layout/Navbar/Menu.svelte#L282-L298>) ). Для обычной сохранённой беседы интерфейс заново запрашивает объект с сервера по его идентификатору (`getChatById`). Для временного разговора берётся текущий объект открытого чата прямо из состояния страницы. Это значит, что пока временная беседа о пикнике открыта, содержит сообщения и вам доступен `Download`, вы можете скачать её в `.json`, не нажимая `Save Chat`. Такое скачивание создаёт локальный файл на вашем устройстве, но не добавляет запись в серверную историю; кроме того, временному объекту не стоит заранее приписывать весь набор служебных полей, который бывает у постоянно хранимой в базе записи.

В нашей учебной ситуации с чек-листом для пикника наметим именно `Export chat (.json)`, чтобы сохранить проверяемую структуру разговора. Само нажатие на кнопку ещё не считается проверенным результатом: убедиться, что копия создана, можно только после того, как вы самостоятельно найдёте скачанный файл на устройстве и откроете его. После сохранения на диск этот файл живёт отдельно от Open WebUI и останется у вас, даже если позже вы удалите саму беседу из истории.

Помимо скачивания одного диалога, в настройках предусмотрена выгрузка всей вашей сохранённой истории разом — у неё другой охват и свои ограничения.

## Как выгрузить свою историю через Data Controls

Если нужно сохранить не один черновик, а все свои накопленные диалоги и в вашей установке доступен этот раздел, откройте **`Settings`**, перейдите в группу **`Data`** и выберите вкладку **`Data Controls`** ([вкладка Data Controls в окне настроек](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/SettingsModal.svelte#L150-L154>) , [названия строк и разделов Data Controls](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/i18n/locales/en-US/translation.json#L3250-L3265>) ). При наличии соответствующих прав в разделе чатов располагается строка **`Export Chats`**, а справа от неё — кнопка действия **`Export`** ([разметка строки и кнопки экспорта](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L180-L195>) ).

Нажатие на `Export` сохраняет на устройство файл с именем `chat-export-<timestamp>.json` ([функция сохранения файла экспорта](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L93-L98>) ). Сервер передаёт записи последовательно, а браузерный клиент сам собирает их и записывает на диск обычный JSON-массив ([формирование JSON-массива в клиенте](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/apis/chats/index.ts#L434-L482>) ). В эту выгрузку попадают собственные сохранённые чаты текущего пользователя — как активные из основного списка, так и убранные в архив, — а внутренние служебные записи автоматически исключаются ([маршрут выгрузки чатов пользователя](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/routers/chats.py#L1041-L1077>) , [фильтрация чатов в модели базы данных](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L2057-L2098>) ).

Каждая запись в таком массиве включает саму беседу с деревом сообщений, её метаданные и переменные, ссылку на папку, отметки архива и закрепления, а также временные метки создания и обновления ([состав записи сохранённой беседы](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L277-L296>) ). Оценивая эту выгрузку, учитывайте её границы:

- это персональная выгрузка вашей истории, а не резервная копия всего экземпляра Open WebUI;
- в файл не входят чужие учётные записи, настройки сервера, записи `Memory` и оригиналы файлов из хранилища;
- поведение на очень больших объёмах истории или при параллельных изменениях здесь не тестировалось, а наличие ссылок на папки или вложения внутри записи не гарантирует, что они автоматически восстановятся в другой среде.

Поэтому в добровольной практике в конце урока выгружать всю личную историю не потребуется. Чтобы не принимать скачанный JSON-файл за средство полного возврата прежних объектов, посмотрим, как именно работает импорт.

## Что произойдёт при импорте JSON

Если импорт разрешён в вашей установке, в той же вкладке `Data Controls` над экспортом расположена строка **`Import Chats`** с кнопкой **`Import`**, открывающей выбор файла с расширением `.json` ([выбор JSON и кнопка Import](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L150-L178>) ). Импорт рассчитан не на любой произвольный JSON, а на JSON-массив поддерживаемой структуры: стандартный и старый (`legacy`) формат выгрузки Open WebUI ([распознавание и подготовка форм импорта](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L36-L84>) , [ожидаемые форматы импорта](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/data-controls/import-export.md#L29-L49>) ), а также распознаваемую по ключу `mapping` выгрузку из ChatGPT, которую интерфейс предварительно конвертирует ([распознавание выгрузки ChatGPT](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/data-controls/import-export.md#L177-L179>) ).

Главное правило импорта состоит в том, что он **добавляет новые копии бесед, а не возвращает на место прежний серверный объект**. Каждая импортируемая беседа получает новый уникальный идентификатор, поэтому существующие чаты не перезаписываются, а повторная загрузка того же самого файла создаст в списке дубликаты ([описание добавления чатов в документации](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/data-controls/import-export.md#L41-L45>) ).

У обычного пользователя для этой операции должно быть разрешение `chat.import`, и для его учётной записи не должен действовать запрет на создание сохранённых чатов, который возникает при одновременном включении `temporary` и `temporary_enforced`; администраторы от обоих этих ограничений освобождены ([право импорта и исключение для администратора](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/routers/chats.py#L276-L284>) , [условия запрета сохранения для пользователя](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L590-L618>) ). При проверке ссылки на папку сервер оставляет её только при наличии доступа на запись к существующей папке и сбрасывает недоступные ссылки ([проверка доступа к папке при импорте](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L749-L765>) ). Следовательно, импорт нельзя считать кнопкой безусловного восстановления: после переноса расположение по папкам, права доступа и работоспособность ссылок на вложения нужно проверять отдельно.

Поскольку JSON-файл при импорте создаёт лишь новую копию с новым идентификатором, а не возвращает удалённый объект, мы можем точно сопоставить архивацию и удаление чата.

## Как удалить одну беседу и чем удаление отличается от архива

Прежде чем нажимать кнопку удаления, решите, нужно ли вам стереть запись из базы или достаточно убрать её с глаз из левой панели. Обычную организацию списков мы разбирали в уроке про [историю, поиск и папки](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/istoriya-poisk-papki-i-proekty/>) : если разговор может понадобиться позже, используйте архив. Архивация сохраняет запись чата в базе данных, скрывает её из основного списка и позволяет вернуть беседу обратно через окно **`Archived Chats`** ([работа с архивными чатами в документации](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/data-controls/archived-chats.md#L6-L22>) ).

Удаление устроено иначе. При наличии права `chat.delete` в меню конкретной беседы доступен пункт **`Delete`** ([пункт Delete в меню чата](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/layout/Sidebar/ChatMenu.svelte#L502-L513>) ). Нажатие открывает диалоговое окно **`Delete chat?`**, где выводится название выбранной беседы и две кнопки: **`Cancel`** и **`Confirm`** ([вызов диалога Delete chat?](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Chat.svelte#L5002-L5012>) , [кнопки Cancel и Confirm](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/common/ConfirmDialog.svelte#L201-L220>) ). Перед подтверждением всегда сверяйте название диалога в окне; при малейшем сомнении нажимайте `Cancel`.

Когда вы нажимаете `Confirm`, интерфейс отправляет запрос на удаление (`deleteChatById`), а для обычного пользователя сервер проверяет право `chat.delete` и принадлежность беседы его учётной записи ([проверка права и принадлежности для обычного пользователя](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/routers/chats.py#L1660-L1700>) ). В исследованных маршрутах `v0.12.3` эта операция удаляет записи сообщений и самой беседы в базе данных, а также очищает связанные записи общего доступа и ссылки автоматизаций ([удаление чата и связанных записей в модели](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/models/chats.py#L2724-L2766>) ). Пользовательской «корзины» или кнопки `Undo` в исследованном интерфейсе `v0.12.3` не предусмотрено, и документация прямо предупреждает о необратимости действия ([предупреждение о необратимости удаления](<https://github.com/open-webui/docs/blob/535caeacd5e72fac142e042dcf4928906fd80312/docs/features/chat-conversations/data-controls/archived-chats.md#L26-L36>) ).

Держите в уме обе границы этого действия:

- **Что не вернётся штатно.** Если вы заранее скачали корректный `.json` поддерживаемой структуры и в вашей установке разрешён импорт без запрета сохранения, из файла можно создать новую копию с новым идентификатором, но она не восстановит прежний серверный объект, старые ссылки общего доступа или гарантированную привязку к папкам и файлам.
- **Что не стирается этим нажатием.** Отсутствие кнопки `Undo` у пользователя не означает, что оператор сервера не сможет восстановить базу из системного `backup`, и не доказывает физическое уничтожение копий на вашем диске, в `Memory`, в файловом хранилище, в старых серверных логах или у провайдера модели.

Отдельно в `Settings` → `Data` → `Data Controls` существует строка **`Delete All Chats`** с кнопкой **`Delete All`**, которая открывает запрос `Are you sure you want to delete all chats? This action cannot be undone.` ([подтверждение Delete All Chats](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L134-L142>) , [кнопка Delete All](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/src/lib/components/chat/Settings/DataControls.svelte#L227-L242>) ). При наличии права `chat.delete` она удаляет **всю** историю текущего пользователя, включая беседы, убранные в архив ([маршрут удаления всех чатов пользователя](<https://github.com/open-webui/open-webui/blob/91ea4e3421d1d8069f13d4a463fcb5986d94ea60/backend/open_webui/routers/chats.py#L752-L766>) ). Для учебных целей эта кнопка категорически не нужна: не нажимайте `Delete All` ради проверки.

## Что можно проверить на вымышленной беседе

Эта добровольная проба на несекретном вымышленном диалоге при подготовке урока не выполнялась. Приступайте к ней только в том случае, если у вас есть доступ к обычному аккаунту и разрешённой модели, вы согласны на возможный расход вычислительных ресурсов или токенов, в интерфейсе доступны нужные кнопки, а на устройстве можно найти и открыть скачанный текстовый файл.

Никакие рабочие переписки, реальные персональные сведения, файлы-вложения, `Delete All`, выгрузка всей личной истории, импорт или создание дополнительных веток здесь не используются. Откройте **новый** чат, по желанию выберите временный режим до ввода текста и отправьте ровно один вымышленный запрос с учебным маркером:

> ПИКНИК-ПРОБА-0508. Преврати этот вымышленный перечень вещей для пикника в чек-лист из четырёх пунктов: плед, две кружки, салфетки, мяч. Не добавляй вещи, людей, даты или адреса.

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

1. **Экспорт из временного чата.** Пока страница открыта и в меню доступен `Download` → `Export chat (.json)`, вы можете скачать `.json` без сохранения беседы в историю.
2. **Необязательный перевод в историю (`Save Chat`).** Если временный режим необязателен и вы хотите проверить сохранение в боковую панель (или подготовить отдельную тестовую запись для следующего шага), нажмите доступную кнопку `Save Chat`. Если действует принудительный временный режим и сохранение запрещено, остановитесь на проверке режима и разрешённого экспорта — не пытайтесь обойти запрет сохранения.
3. **Необязательное удаление (`Delete`).** Выполняйте этот шаг **только по желанию и только при одновременном соблюдении трёх условий**: эта специально созданная учебная беседа с маркером `ПИКНИК-ПРОБА-0508` сохранена как отдельная обычная запись в истории, вы уже нашли скачанный `.json` на своём устройстве и проверили маркер внутри файла, и вы действительно хотите удалить именно эту тестовую запись. В окне `Delete chat?` сверьте точное название тестовой беседы; при малейшем сомнении или невыполнении любого из трёх условий нажмите `Cancel` и пропустите шаг.

Запишите результаты в раздельный лист наблюдений, отмечая только то, что вы видели своими глазами (если шаг не делался или кнопка скрыта, так и запишите — «не выполнено» или «недоступно»):

- **Известные сведения об установке:** версия Open WebUI, язык интерфейса и какие права доступа вам известны (что неизвестно — оставьте как неизвестное).
- **Признак режима `Temporary Chat`:** включён / не включён / не проверен; какой именно признак наблюдался (галочка на кнопке, `?temporary-chat=true` в адресе, метка `Temporary Chat` после старта).
- **Запись в боковой панели истории до `Save Chat`:** появилась новая запись или не появилась / не проверено.
- **Явное сохранение `Save Chat`:** не выбрано / недоступно / выполнено; отдельно укажите проверенный признак сохранения (появление записи в списке и переход на постоянный адрес `/c/<saved id>`).
- **Файл `.json` на устройстве:** файл найден / не найден на диске; открыт ли он и проверены ли внутри учебный маркер `ПИКНИК-ПРОБА-0508` и текст диалога (само всплывающее уведомление браузера без открытого файла проверкой не считается).
- **Удаление тестовой записи `Delete`:** пропущено / недоступно / отменено через `Cancel` / выполнено; если выполнено, отдельно отметьте видимое исчезновение тестовой записи из списка истории.
- **Невыполненные шаги и открытые вопросы:** какие действия вы пропустили и почему; состояние внешних логов, резервных копий и данных у провайдера модели в любом случае остаётся неизвестным из пользовательского интерфейса.

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

Работая с чатами в Open WebUI, разделяйте три независимых решения: попадёт ли разговор в серверную историю (временный режим или явный переход в постоянную запись), нужна ли вам собственная копия на устройстве (структурированный `.json` с возможностью последующего поддерживаемого импорта либо документ для чтения) и что делать с уже сохранённой записью в списке — скрыть её в возвращаемый архив или удалить без штатной кнопки `Undo` в исследованном интерфейсе. Когда в следующем несекретном разговоре вам понадобится одноразовый черновик или отдельная копия на диске, выберите подходящий режим до первой реплики, а вопросы о серверных логах, резервных копиях и сроках хранения у провайдера модели решайте по фактической политике оператора вашей установки.

Если беседу нужно показать другому пользователю, разберите [создание ссылки на разговор и отзыв доступа](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/kak-podelitsya-razgovorom/>) .

## Материалы урока

- [Память и персонализация timofei-ermolaev.ru](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/pamyat-i-personalizaciya/>)
- [Файлы и прошлые разговоры timofei-ermolaev.ru](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/fayly-i-proshlye-razgovory/>)
- [История, поиск и папки timofei-ermolaev.ru](<https://timofei-ermolaev.ru/courses/open-webui/povsednevnaya-rabota/istoriya-poisk-papki-i-proekty/>)

## Отметить прохождение

Отметьте урок после того, как получили проверяемый результат из практической части.

Урок пройден

![Тимофей Ермолаев](https://timofei-ermolaev.ru/_astro/timofei-ermolaev-portrait.s0mCFw-J_2r7Nkv.webp)

## Об авторе

### Тимофей Ермолаев

Директор по информационным технологиям (CIO)

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

[Подробнее об авторе](<https://timofei-ermolaev.ru/ob-avtore/>)
