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 emrootdatawebui.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
usersTabela (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 |
OmetaEstrutura 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:
typesó 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_controlCampos 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.