Перейти к основному содержимому
warning

Этот учебник является вкладом сообщества и не поддерживается командой Open WebUI. Он служит только демонстрацией того, как настроить Open WebUI для вашего конкретного случая. Хотите внести свой вклад? Ознакомьтесь с руководством по вкладам.

[!WARNING]
Эта документация создана на основе текущей версии (0.5.11) и постоянно обновляется.

Внутренняя база данных SQLite в Open-WebUI

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

Расположение внутренней базы данных SQLite

Вы можете найти базу данных SQLite по адресу root -> data -> webui.db

📁 Root (/)
├── 📁 data
│ ├── 📁 cache
│ ├── 📁 uploads
│ ├── 📁 vector_db
│ └── 📄 webui.db
├── 📄 dev.sh
├── 📁 open_webui
├── 📄 requirements.txt
├── 📄 start.sh
└── 📄 start_windows.bat

Копирование базы данных на локальный компьютер

Если вы хотите скопировать базу данных SQLite Open-WebUI из контейнера на ваш локальный компьютер, вы можете использовать:

docker cp open-webui:/app/backend/data/webui.db ./webui.db

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

docker exec -it open-webui /bin/sh

Обзор таблиц

Ниже представлен полный список таблиц базы данных SQLite Open-WebUI. Таблицы перечислены в алфавитном порядке и пронумерованы для удобства.

Название таблицыОписание
01authСохраняет учетные данные аутентификации и информацию о входе
02channelУправляет каналами чатов и их настройками
03channel_memberОтслеживает членство пользователей и разрешения в каналах
04chatСохраняет сеансы чатов и их метаданные
05chatidtagОтображает связи между чатами и их тегами
06configПоддерживает настройки конфигурации системы
07documentСохраняет документы и их метаданные для управления знаниями
08feedbackФиксирует отзывы пользователей и оценки
09fileУправляет загруженными файлами и их метаданными
10folderОрганизует файлы и контент в иерархические структуры
11functionСохраняет пользовательские функции и их настройки
12groupУправляет группами пользователей и их разрешениями
13knowledgeСохраняет записи базы знаний и связанную информацию
14memoryПоддерживает историю чатов и оперативную память контекста
15messageСохраняет отдельные сообщения чатов и их содержимое
16message_reactionФиксирует реакции пользователей (эмодзи/ответы) на сообщения
17migrate_historyОтслеживает версии схемы базы данных и записи миграций
18modelУправляет настройками конфигураций и параметров модели ИИ
19promptСохраняет шаблоны и настройки для подсказок ИИ
20tagУправляет тегами/метками для категоризации содержимого
21toolСохраняет настройки для системных инструментов и интеграций
22userПоддерживает профили пользователей и информацию об учетных записях

Примечание: в базе данных SQLite Open-WebUI есть две дополнительные таблицы, которые не связаны с основной функцией Open-WebUI, и были исключены:

  • Таблица версий Alembic
  • Таблица истории миграций

Теперь, когда у нас есть список всех таблиц, давайте разберем их структуру.

Таблица Auth

Название столбцаТип данныхОграниченияОписание
idStringPRIMARY KEYУникальный идентификатор
emailString-Электронная почта пользователя
passwordText-Хэшированный пароль
activeBoolean-Статус учетной записи

Что нужно знать о таблице auth:

  • Использует UUID в качестве первичного ключа
  • Один-к-одному связь с таблицей users (общий идентификатор)

Таблица Channel

Название столбцаТип данныхОграниченияОписание
idТекстPRIMARY KEYУникальный идентификатор (UUID)
user_idТекст-Владельц/создатель канала
typeТекстдопускается NULLТип канала
nameТекст-Название канала
descriptionТекстдопускается NULLОписание канала
dataJSONдопускается NULLГибкое хранилище данных
metaJSONдопускается NULLМетаданные канала
access_controlJSONдопускается NULLНастройки разрешений
created_atBigInteger-Метка времени создания (наносекунды)
updated_atBigInteger-Метка времени последнего обновления (наносекунды)

Общие сведения о таблице авторизации:

  • Использует UUID как первичный ключ
  • Названия каналов нечувствительны к регистру (хранятся в нижнем регистре)

Таблица участников канала

Название СтолбцаТип ДанныхОграниченияОписание
idТекстNOT NULLУникальный идентификатор членства в канале
channel_idТекстNOT NULLСсылка на канал
user_idТекстNOT NULLСсылка на пользователя
created_atBigInteger-Метка времени создания членства

Таблица чатов

Название СтолбцаТип ДанныхОграниченияОписание
idСтрокаPRIMARY KEYУникальный идентификатор (UUID)
user_idСтрока-Владельц чата
titleТекст-Название чата
chatJSON-Содержимое и история чата
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления
share_idТекстUNIQUE, допускается NULLИдентификатор общего доступа
archivedБулевоdefault=FalseСтатус архивации
pinnedБулевоdefault=False, допускается NULLСтатус закрепления
metaJSONserver_default=""Метаданные, включая теги
folder_idТекстдопускается NULLID родительской папки

Таблица тегов ID чата

Название СтолбцаТип ДанныхОграниченияОписание
idVARCHAR(255)NOT NULLУникальный идентификатор
tag_nameVARCHAR(255)NOT NULLНазвание тега
chat_idVARCHAR(255)NOT NULLСсылка на чат
user_idVARCHAR(255)NOT NULLСсылка на пользователя
timestampЦелое числоNOT NULLМетка времени создания

Конфиг

Название СтолбцаТип ДанныхОграниченияПо умолчаниюОписание
idЦелое числоNOT NULL-Идентификатор первичного ключа
dataJSONNOT NULL-Данные конфигурации
versionЦелое числоNOT NULL-Номер версии конфигурации
created_atDATETIMENOT NULLCURRENT_TIMESTAMPМетка времени создания
updated_atDATETIME-CURRENT_TIMESTAMPМетка времени последнего обновления

Таблица обратной связи

Название СтолбцаТип ДанныхОграниченияОписание
idТекстPRIMARY KEYУникальный идентификатор (UUID)
user_idТекст-Пользователь, предоставивший отзыв
versionBigIntegerdefault=0Номер версии обратной связи
typeТекст-Тип обратной связи
dataJSONдопускается NULLДанные обратной связи, включая рейтинги
metaJSONдопускается NULLМетаданные (арена, chat_id и т.д.)
snapshotJSONдопускается NULLСвязанный снимок чата
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления

Таблица Файлов

Имя колонкиТип данныхОграниченияОписание
idStringPRIMARY KEYУникальный идентификатор
user_idString-Владелец файла
hashTextnullableХэш/проверочная сумма файла
filenameText-Имя файла
pathTextnullableПуть в файловой системе
dataJSONnullableДанные, связанные с файлом
metaJSONnullableМетаданные файла
access_controlJSONnullableНастройки разрешений
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления

Ожидаемая структура поля meta:

{
"name": string, # Дополнительное отображаемое имя
"content_type": string, # MIME-тип
"size": integer, # Размер файла в байтах
# Дополнительные метаданные, поддерживаемые через ConfigDict(extra="allow")
}

Таблица Папок

Имя колонкиТип данныхОграниченияОписание
idTextPRIMARY KEYУникальный идентификатор (UUID)
parent_idTextnullableID родительской папки для иерархии
user_idText-Владелец папки
nameText-Имя папки
itemsJSONnullableСодержимое папки
metaJSONnullableМетаданные папки
is_expandedBooleandefault=FalseСостояние раскрытия в UI
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления

Примечания о таблице папок:

  • Папки могут быть вложенными (ссылка на parent_id)
  • Корневые папки имеют значение null в parent_id
  • Имена папок должны быть уникальными в пределах одного родителя

Таблица Функций

Имя колонкиТип данныхОграниченияОписание
idStringPRIMARY KEYУникальный идентификатор
user_idString-Владелец функции
nameText-Имя функции
typeText-Тип функции
contentText-Содержимое/код функции
metaJSON-Метаданные функции
valvesJSON-Настройки управления функцией
is_activeBoolean-Статус активности функции
is_globalBoolean-Флаг глобальной доступности
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления

Примечания о таблице функций:

  • type может быть только: ["filter", "action"]

Таблица Групп

Имя колонкиТип данныхОграниченияОписание
idTextPRIMARY KEY, UNIQUEУникальный идентификатор (UUID)
user_idText-Владелец/создатель группы
nameText-Имя группы
descriptionText-Описание группы
dataJSONnullableДополнительные данные группы
metaJSONnullableМетаданные группы
permissionsJSONnullableКонфигурация разрешений
user_idsJSONnullableСписок идентификаторов пользователей
created_atBigInteger-Метка времени создания
updated_atBigInteger-Метка времени последнего обновления

Таблица Знаний

Имя колонкиТип данныхОграниченияОписание
idTextPRIMARY KEY, UNIQUEУникальный идентификатор (UUID)
user_idText-Владелец базы знаний
nameText-Название базы знаний
descriptionText-Описание базы знаний
dataJSONnullableСодержимое базы знаний
metaJSONnullableДополнительные метаданные
access_controlJSONnullableПравила управления доступом
created_atBigInteger-Временная метка создания
updated_atBigInteger-Временная метка последнего обновления

Ожидаемая структура поля access_control:

{
"read": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
},
"write": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
}
}

Таблица памяти

Имя столбцаТип данныхОграниченияОписание
idStringPRIMARY KEYУникальный идентификатор (UUID)
user_idString-Владелец памяти
contentText-Содержимое памяти
created_atBigInteger-Временная метка создания
updated_atBigInteger-Временная метка последнего обновления

Таблица сообщений

Имя столбцаТип данныхОграниченияОписание
idTextPRIMARY KEYУникальный идентификатор (UUID)
user_idText-Автор сообщения
channel_idTextnullableСвязанный канал
parent_idTextnullableРодительское сообщение для потоков
contentText-Содержимое сообщения
dataJSONnullableДополнительные данные сообщения
metaJSONnullableМетаданные сообщения
created_atBigInteger-Временная метка создания (наносекунды)
updated_atBigInteger-Временная метка последнего обновления (наносекунды)

Таблица реакций на сообщения

Имя столбцаТип данныхОграниченияОписание
idTextPRIMARY KEYУникальный идентификатор (UUID)
user_idText-Пользователь, оставивший реакцию
message_idText-Связанное сообщение
nameText-Название/эмодзи реакции
created_atBigInteger-Временная метка реакции

Таблица моделей

Имя столбцаТип данныхОграниченияОписание
idTextPRIMARY KEYИдентификатор модели
user_idText-Владелец модели
base_model_idTextnullableСсылка на родительскую модель
nameText-Имя отображения
paramsJSON-Параметры модели
metaJSON-Метаданные модели
access_controlJSONnullableРазрешения на доступ
is_activeBooleandefault=TrueСтатус активности
created_atBigInteger-Временная метка создания
updated_atBigInteger-Временная метка последнего обновления

Таблица подсказок

Имя столбцаТип данныхОграниченияОписание
commandStringPRIMARY KEYУникальный идентификатор команды
user_idString-Владелец подсказки
titleText-Заголовок подсказки
contentText-Содержимое/шаблон подсказки
timestampBigInteger-Временная метка последнего обновления
access_controlJSONnullableРазрешения на доступ

Таблица тегов

Имя СтолбцаТип ДанныхОграниченияОписание
idСтрокаPK (составной)Нормализованный идентификатор тега
nameСтрока-Отображаемое имя
user_idСтрокаPK (составной)Владелец тега
metaJSONnullableМетаданные тега

Важные сведения о таблице тегов:

  • Первичный ключ составной (id, user_id)

Таблица инструментов

Имя СтолбцаТип ДанныхОграниченияОписание
idСтрокаPRIMARY KEYУникальный идентификатор
user_idСтрока-Владелец инструмента
nameТекст-Имя инструмента
contentТекст-Содержимое/код инструмента
specsJSON-Характеристики инструмента
metaJSON-Метаданные инструмента
valvesJSON-Настройки управления инструментом
access_controlJSONnullableРазрешения доступа
created_atBigInteger-Временная метка создания
updated_atBigInteger-Временная метка последнего обновления

Таблица пользователей

Имя СтолбцаТип ДанныхОграниченияОписание
idСтрокаPRIMARY KEYУникальный идентификатор
nameСтрока-Имя пользователя
emailСтрока-Электронная почта пользователя
roleСтрока-Роль пользователя
profile_image_urlТекст-Путь к аватару профиля
last_active_atBigInteger-Временная метка последней активности
updated_atBigInteger-Временная метка последнего обновления
created_atBigInteger-Временная метка создания
api_keyСтрокаUNIQUE, nullableКлюч API для аутентификации
settingsJSONnullableПредпочтения пользователя
infoJSONnullableДополнительная информация о пользователе
oauth_subТекстUNIQUEИдентификатор субъекта OAuth

Диаграмма отношений сущностей

Для визуализации взаимосвязи между таблицами обратитесь к диаграмме отношений сущностей (ERD), созданной с использованием Mermaid.