Этот учебник является вкладом сообщества и не поддерживается командой 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. Таблицы перечислены в алфавитном порядке и пронумерованы для удобства.
№ | Название таблицы | Описание |
---|---|---|
01 | auth | Сохраняет учетные данные аутентификации и информацию о входе |
02 | channel | Управляет каналами чатов и их настройками |
03 | channel_member | Отслеживает членство пользователей и разрешения в каналах |
04 | chat | Сохраняет сеансы чатов и их метаданные |
05 | chatidtag | Отображает связи между чатами и их тегами |
06 | config | Поддерживает настройки конфигурации системы |
07 | document | Сохраняет документы и их метаданные для управления знаниями |
08 | feedback | Фиксирует отзывы пользователей и оценки |
09 | file | Управляет загруженными файлами и их метаданными |
10 | folder | Организует файлы и контент в иерархические структуры |
11 | function | Сохраняет пользовательские функции и их настройки |
12 | group | Управляет группами пользователей и их разрешениями |
13 | knowledge | Сохраняет записи базы знаний и связанную информацию |
14 | memory | Поддерживает историю чатов и оперативную память контекста |
15 | message | Сохраняет отдельные сообщения чатов и их содержимое |
16 | message_reaction | Фиксирует реакции пользователей (эмодзи/ответы) на сообщения |
17 | migrate_history | Отслеживает версии схемы базы данных и записи миграций |
18 | model | Управляет настройками конфигураций и параметров модели ИИ |
19 | prompt | Сохраняет шаблоны и настройки для подсказок ИИ |
20 | tag | Управляет тегами/метками для категоризации содержимого |
21 | tool | Сохраняет настройки для системных инструментов и интеграций |
22 | user | Поддерживает профили пользователей и информацию об учетных записях |
Примечание: в базе данных SQLite Open-WebUI есть две дополнительные таблицы, которые не связаны с основной функцией Open-WebUI, и были исключены:
- Таблица версий Alembic
- Таблица истории миграций
Теперь, когда у нас есть список всех таблиц, давайте разберем их структуру.
Таблица Auth
Название столбца | Тип данных | Ограничения | Описание |
---|---|---|---|
id | String | PRIMARY KEY | Уникальный идентификатор |
String | - | Электронная почта пользователя | |
password | Text | - | Хэшированный пароль |
active | Boolean | - | Статус учетной записи |
Что нужно знать о таблице auth:
- Использует UUID в качестве первичного ключа
- Один-к-одному связь с таблицей
users
(общий идентификатор)
Таблица Channel
Название столбца | Тип данных | Ограничения | Описание |
---|---|---|---|
id | Текст | PRIMARY KEY | Уникальный идентификатор (UUID) |
user_id | Текст | - | Владельц/создатель канала |
type | Текст | допускается NULL | Тип канала |
name | Текст | - | Название канала |
description | Текст | допускается NULL | Описание канала |
data | JSON | допускается NULL | Гибкое хранилище данных |
meta | JSON | допускается NULL | Метаданные канала |
access_control | JSON | допускается NULL | Настройки разрешений |
created_at | BigInteger | - | Метка времени создания (наносекунды) |
updated_at | BigInteger | - | Метка времени последнего обновления (наносекунды) |
Общие сведения о таблице авторизации:
- Использует UUID как первичный ключ
- Названия каналов нечувствительны к регистру (хранятся в нижнем регистре)
Таблица участников канала
Название Столбца | Тип Данных | Ограничения | Описание |
---|---|---|---|
id | Текст | NOT NULL | Уникальный идентификатор членства в канале |
channel_id | Текст | NOT NULL | Ссылка на канал |
user_id | Текст | NOT NULL | Ссылка на пользователя |
created_at | BigInteger | - | Метка времени создания членства |
Таблица чатов
Название Столбца | Тип Данных | Ограничения | Описание |
---|---|---|---|
id | Строка | PRIMARY KEY | Уникальный идентификатор (UUID) |
user_id | Строка | - | Владельц чата |
title | Текст | - | Название чата |
chat | JSON | - | Содержимое и история чата |
created_at | BigInteger | - | Метка времени создания |
updated_at | BigInteger | - | Метка времени последнего обновления |
share_id | Текст | UNIQUE, допускается NULL | Идентификатор общего доступа |
archived | Булево | default=False | Статус архивации |
pinned | Булево | default=False, допускается NULL | Статус закрепления |
meta | JSON | server_default="" | Метаданные, включая теги |
folder_id | Текст | допускается NULL | ID родительской папки |
Таблица тегов ID чата
Название Столбца | Тип Данных | Ограничения | Описание |
---|---|---|---|
id | VARCHAR(255) | NOT NULL | Уникальный идентификатор |
tag_name | VARCHAR(255) | NOT NULL | Название тега |
chat_id | VARCHAR(255) | NOT NULL | Ссылка на чат |
user_id | VARCHAR(255) | NOT NULL | Ссылка на пользователя |
timestamp | Целое число | NOT NULL | Метка времени создания |
Конфиг
Название Столбца | Тип Данных | Ограничения | По умолчанию | Описание |
---|---|---|---|---|
id | Целое число | NOT NULL | - | Идентификатор первичного ключа |
data | JSON | NOT NULL | - | Данные конфигурации |
version | Целое число | NOT NULL | - | Номер версии конфигурации |
created_at | DATETIME | NOT NULL | CURRENT_TIMESTAMP | Метка времени создания |
updated_at | DATETIME | - | CURRENT_TIMESTAMP | Метка времени последнего обновления |
Таблица обратной связи
Название Столбца | Тип Данных | Ограничения | Описание |
---|---|---|---|
id | Текст | PRIMARY KEY | Уникальный идентификатор (UUID) |
user_id | Текст | - | Пользователь, предоставивший отзыв |
version | BigInteger | default=0 | Номер версии обратной связи |
type | Текст | - | Тип обратной связи |
data | JSON | допускается NULL | Данные обратной связи, включая рейтинги |
meta | JSON | допускается NULL | Метаданные (арена, chat_id и т.д.) |
snapshot | JSON | допускается NULL | Связанный снимок чата |
created_at | BigInteger | - | Метка времени создания |
updated_at | BigInteger | - | Метка времени последнего обновления |
Таблица Файлов
Имя колонки | Тип данных | Ограничения | Описание |
---|---|---|---|
id | String | PRIMARY KEY | Уникальный идентификатор |
user_id | String | - | Владелец файла |
hash | Text | nullable | Хэш/проверочная сумма файла |
filename | Text | - | Имя файла |
path | Text | nullable | Путь в файловой системе |
data | JSON | nullable | Данные, связанные с файлом |
meta | JSON | nullable | Метаданные файла |
access_control | JSON | nullable | Настройки разрешений |
created_at | BigInteger | - | Метка времени создания |
updated_at | BigInteger | - | Метка времени последнего обновления |
Ожидаемая структура поля meta
:
{
"name": string, # Дополнительное отображаемое имя
"content_type": string, # MIME-тип
"size": integer, # Размер файла в байтах
# Дополнительные метаданные, поддерживаемые через ConfigDict(extra="allow")
}
Таблица Папок
Имя колонки | Тип данных | Ограничения | Описание |
---|---|---|---|
id | Text | PRIMARY KEY | Уникальный идентификатор (UUID) |
parent_id | Text | nullable | ID родительской папки для иерархии |
user_id | Text | - | Владелец папки |
name | Text | - | Имя папки |
items | JSON | nullable | Содержимое папки |
meta | JSON | nullable | Метаданные папки |
is_expanded | Boolean | default=False | Состояние раскрытия в UI |
created_at | BigInteger | - | Метка времени создания |
updated_at | BigInteger | - | Метка времени последнего обновления |
Примечания о таблице папок:
- Папки могут быть вложенными (ссылка на parent_id)
- Корневые папки имеют значение null в parent_id
- Имена папок должны быть уникальными в пределах одного родителя