Este tutorial é uma contribuição da comunidade e não é suportado pela equipe Nullcore. Serve apenas como uma demonstração sobre como personalizar o Nullcore para o seu caso de uso específico. Quer contribuir? Confira o tutorial contribuinte.
[!AVISO]
Esta documentação foi criada com base na versão atual (0.5.11) e está sendo atualizada constantemente.
Banco de dados SQLite interno de Webui-Webui
Para o Open-Webui, o banco de dados SQLite serve como backbone para gerenciamento de usuários, histórico de bate-papo, armazenamento de arquivos e várias outras funcionalidades principais. Compreender essa estrutura é essencial para quem deseja contribuir ou manter o projeto de maneira eficaz.
Localização interna do sqlite
Você pode encontrar o banco de dados SQLite emroot
data
webui.db
📁 Raiz (/)
├── 📁 Dados
│ ├── 📁 cache
│ ├── 📁 uploads
│ ├── 📁 Vector_db
│ └── 📄 webui.db
├── 📄 Dev.sh
├── 📁 Open_webui
├── 📄 requisitos.txt
├── 📄 start.sh
└── 📄 start_windows.bat
Copie o banco de dados localmente
Se você deseja copiar o banco de dados Sqlite Open-Webui em execução no contêiner na sua máquina local, você pode usar:
Docker CP Open-Webui: /pp/backend/data/webui.db ./webui.db
Como alternativa, você pode acessar o banco de dados dentro do contêiner usando:
Docker Exec -It Open -Webui /Bin /Sh
Visão geral da tabela
Aqui está uma lista completa de tabelas no banco de dados SQLITE do Open-Webui. As tabelas são listadas em ordem alfabética e numeradas por conveniência.
Não. | Nome da tabela | Descrição |
---|
01 | Auth | Armazena credenciais de autenticação do usuário e informações de login |
02 | canal | Gerencia canais de bate -papo e suas configurações |
03 | canal_member | Rastreia a associação e as permissões do usuário dentro dos canais |
04 | bater papo | Lojas sessões de bate -papo e seus metadados |
05 | chatidtag | Mapas relacionamentos entre bate -papos e suas tags associadas |
06 | Config | Mantém as configurações de configuração em todo o sistema |
07 | documento | Armazena documentos e seus metadados para gerenciamento de conhecimento |
08 | opinião | Captura feedback e classificações do usuário |
09 | arquivo | Gerencia arquivos enviados e seus metadados |
10 | pasta | Organiza arquivos e conteúdo em estruturas hierárquicas |
11 | função | Armazena funções personalizadas e suas configurações |
12 | grupo | Gerencia grupos de usuários e suas permissões |
13 | conhecimento | Armazena entradas da base de conhecimento e informações relacionadas |
14 | memória | Mantém o histórico de bate -papo e a memória de contexto |
15 | mensagem | Armazena mensagens de bate -papo individuais e seu conteúdo |
16 | message_reation | Registra reações do usuário (emojis/respostas) a mensagens |
17 | migrate_history | Rastreia a versão do esquema do banco de dados e os registros de migração |
18 | modelo | Gerencia configurações e configurações de modelo de IA |
19 | incitar | Modelos e configurações de armazenamento para solicitações de IA |
20 | marcação | Gerencia tags/etiquetas para categorização de conteúdo |
21 | ferramenta | Armazenamentos configurações para ferramentas e integrações do sistema |
22 | usuário | Mantém perfis de usuário e informações da conta |
Nota: Existem duas tabelas adicionais no banco de dados SQLite do Webui, que não estão relacionados à funcionalidade principal do Webui, que foram excluídos:
- Tabela de versão Alembic
- Migrar a tabela de história
Agora que temos todas as tabelas, vamos entender a estrutura de cada tabela.
Tabela de autenticação
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo |
e-mail | Corda | | Email do usuário |
senha | Texto | | Senha com hash |
ativo | Booleano | | Status da conta |
Coisas a saber sobre a tabela de autenticação:
- Usa uuid para chave primária
- Relacionamento individual com
users
Tabela (ID compartilhada)
Tabela de canal
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Proprietário/criador do canal |
tipo | Texto | Nulível | Tipo de canal |
nome | Texto | | Nome do canal |
descrição | Texto | Nulível | Descrição do canal |
dados | JSON | Nulível | Armazenamento de dados flexíveis |
Meta | JSON | Nulível | Metadados do canal |
access_control | JSON | Nulível | Configurações de permissão |
criado_at | Biginteger | | Timestamp de criação (nanossegundos) |
atualizado_at | Biginteger | | Última atualização Timestamp (nanossegundos) |
Coisas a saber sobre a tabela de autenticação:
- Usa uuid para chave primária
- Nomes de canais insensíveis a maiúsculas (minúsculas armazenadas)
Tabela de membros do canal
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | TEXTO | Não nulo | Identificador exclusivo para a associação ao canal |
canal_id | TEXTO | Não nulo | Referência ao canal |
ID do usuário | TEXTO | Não nulo | Referência ao usuário |
criado_at | Bigint | | Timestamp quando a associação foi criada |
Tabela de bate -papo
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Corda | | Proprietário do bate -papo |
título | Texto | | Título de bate -papo |
bater papo | JSON | | Conteúdo e história do bate -papo |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
share_id | Texto | Único, anulável | Compartilhando Identificador |
arquivado | Booleano | padrão = false | Status do arquivo |
preso | Booleano | padrão = false, anulado | Status do pino |
Meta | JSON | server_default = " | Metadados, incluindo tags |
pasro_id | Texto | Nulível | ID da pasta pai |
Tabela de etiqueta de identificação de bate -papo
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Varchar (255) | Não nulo | Identificador exclusivo |
tag_name | Varchar (255) | Não nulo | Nome da tag |
chat_id | Varchar (255) | Não nulo | Referência ao bate -papo |
ID do usuário | Varchar (255) | Não nulo | Referência ao usuário |
Timestamp | Inteiro | Não nulo | Timestamp de criação |
Config
Nome da coluna | Tipo de dados | Restrições | Padrão | Descrição |
---|
eu ia | Inteiro | Não nulo | | Identificador -chave primário |
dados | JSON | Não nulo | | Dados de configuração |
versão | Inteiro | Não nulo | | Número da versão de configuração |
criado_at | DateTime | Não nulo | Current_timestamp | Timestamp de criação |
atualizado_at | DateTime | | Current_timestamp | Última atualização Timestamp |
Tabela de feedback
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Usuário que forneceu feedback |
versão | Biginteger | padrão = 0 | Número da versão de feedback |
tipo | Texto | | Tipo de feedback |
dados | JSON | Nulível | Dados de feedback, incluindo classificações |
Meta | JSON | Nulível | Metadados (arena, chat_id, etc) |
instantâneo | JSON | Nulível | Instantâneo de bate -papo associado |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Tabela de arquivos
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo |
ID do usuário | Corda | | Proprietário do arquivo |
Hash | Texto | Nulível | Arquivo Hash/ChecksUm |
nome do arquivo | Texto | | Nome do arquivo |
caminho | Texto | Nulível | Caminho do sistema de arquivos |
dados | JSON | Nulível | Dados relacionados a arquivos |
Meta | JSON | Nulível | Metadados do arquivo |
access_control | JSON | Nulível | Configurações de permissão |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Ometa
Estrutura esperada do campo:
{
"nome"corda, Assim,
"Content_type"corda, Assim,
"tamanho"Inteiro, Assim,
Tabela de pastas
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador exclusivo (UUID) |
parent_id | Texto | Nulível | ID da pasta pai para hierarquia |
ID do usuário | Texto | | Proprietário da pasta |
nome | Texto | | Nome da pasta |
Unid | JSON | Nulível | Conteúdo da pasta |
Meta | JSON | Nulível | Metadados da pasta |
is_expand | Booleano | padrão = false | Estado de expansão da interface do usuário |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Coisas para saber sobre a tabela de pastas:
- Pastas podem ser aninhadas (referência parent_id)
- Pastas de raiz têm nulo pai_id
- Os nomes das pastas devem ser únicos dentro do mesmo pai
Tabela de funções
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo |
ID do usuário | Corda | | Proprietário da função |
nome | Texto | | Nome da função |
tipo | Texto | | Tipo de função |
contente | Texto | | Função Conteúdo/Código |
Meta | JSON | | Metadados da função |
válvulas | JSON | | Configurações de controle da função |
is_active | Booleano | | Função status ativo |
IS_GLOBAL | Booleano | | Sinalizador de disponibilidade global |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Coisas para saber sobre a tabela de pastas:
type
só pode ser: ["filtro", "ação"]
Tabela de grupo
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária, única | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Proprietário/criador do grupo |
nome | Texto | | Nome do grupo |
descrição | Texto | | Descrição do grupo |
dados | JSON | Nulível | Dados de grupo adicionais |
Meta | JSON | Nulível | Metadados do grupo |
permissões | JSON | Nulível | Configuração de permissão |
user_ids | JSON | Nulível | Lista de IDs de usuário de membros |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Tabela de conhecimento
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária, única | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Proprietário da base de conhecimento |
nome | Texto | | Nome da base do conhecimento |
descrição | Texto | | Descrição da base de conhecimento |
dados | JSON | Nulível | Conteúdo da base de conhecimento |
Meta | JSON | Nulível | Metadados adicionais |
access_control | JSON | Nulível | Regras de controle de acesso |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Oaccess_control
Campos Estrutura esperada:
{
"ler" {
"Group_ids" [["group_id1", Assim, "group_id2", Assim,
"User_ids" [["user_id1", Assim, "user_id2"
, Assim,
"escrever" {
"Group_ids" [["group_id1", Assim, "group_id2", Assim,
"User_ids" [["user_id1", Assim, "user_id2"
Tabela de memória
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Corda | | Proprietário da memória |
contente | Texto | | Conteúdo de memória |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Tabela de mensagens
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Autor de mensagens |
canal_id | Texto | Nulível | Canal associado |
parent_id | Texto | Nulível | Mensagem pai para tópicos |
contente | Texto | | Conteúdo de mensagem |
dados | JSON | Nulível | Dados de mensagens adicionais |
Meta | JSON | Nulível | Metadados da mensagem |
criado_at | Biginteger | | Timestamp de criação (nanossegundos) |
atualizado_at | Biginteger | | Última atualização Timestamp (nanossegundos) |
Tabela de reação da mensagem
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador exclusivo (UUID) |
ID do usuário | Texto | | Usuário que reagiu |
message_id | Texto | | Mensagem associada |
nome | Texto | | Nome da reação/emoji |
criado_at | Biginteger | | Timestamp de reação |
Tabela modelo
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Texto | Chave primária | Identificador de modelo |
ID do usuário | Texto | | Proprietário de modelo |
base_model_id | Texto | Nulível | Referência do modelo pai |
nome | Texto | | Nome de exibição |
params | JSON | | Parâmetros do modelo |
Meta | JSON | | Modelo Metadados |
access_control | JSON | Nulível | Permissões de acesso |
is_active | Booleano | padrão = true | Status ativo |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Tabela imediata
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
comando | Corda | Chave primária | Identificador de comando exclusivo |
ID do usuário | Corda | | Proprietário rápido |
título | Texto | | Título imediato |
contente | Texto | | Conteúdo/modelo imediato |
Timestamp | Biginteger | | Última atualização Timestamp |
access_control | JSON | Nulível | Permissões de acesso |
Tabela de tags
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | PK (composto) | Identificador de tag normalizado |
nome | Corda | | Nome de exibição |
ID do usuário | Corda | PK (composto) | Proprietário de etiqueta |
Meta | JSON | Nulível | Tag metadados |
Coisas para saber sobre a tabela de tags:
- A chave primária é composta (id, user_id)
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo |
ID do usuário | Corda | | Proprietário da ferramenta |
nome | Texto | | Nome da ferramenta |
contente | Texto | | Conteúdo/código da ferramenta |
especificações | JSON | | Especificações da ferramenta |
Meta | JSON | | Metadados da ferramenta |
válvulas | JSON | | Configurações de controle de ferramentas |
access_control | JSON | Nulível | Permissões de acesso |
criado_at | Biginteger | | Timestamp de criação |
atualizado_at | Biginteger | | Última atualização Timestamp |
Tabela de usuários
Nome da coluna | Tipo de dados | Restrições | Descrição |
---|
eu ia | Corda | Chave primária | Identificador exclusivo |
nome | Corda | | Nome do usuário |
e-mail | Corda | | Email do usuário |
papel | Corda | | Função do usuário |
perfil_image_url | Texto | | Caminho da imagem do perfil |
last_active_at | Biginteger | | Última atividade registro de data e hora |
atualizado_at | Biginteger | | Última atualização Timestamp |
criado_at | Biginteger | | Timestamp de criação |
api_key | Corda | Único, anulável | Chave de autenticação da API |
configurações | JSON | Nulível | Preferências do usuário |
informações | JSON | Nulível | Informações adicionais do usuário |
OAuth_sub | Texto | EXCLUSIVO | OAuth Identificador de sujeitos |
Diagrama de relacionamento de entidade
Para ajudar a visualizar a relação entre as tabelas, consulte o diagrama de relacionamento com entidade abaixo (ERD) gerado com sereia.