Pular para o conteúdo

Modelos de base

Um modelo cria uma base inteira com um clique: suas tabelas e relações, linhas de exemplo, visões, um painel, automações e campos que a própria IA preenche. A galeria de modelos mostra os que o basedb oferece.

Nova base e depois Começar de um modelo ou pedir à IA: a galeria se abre.

A galeria de modelos, no aplicativo

Cada modelo pode ser lido por inteiro antes de ser usado — suas tabelas e seus campos, suas visões, suas automações e a instrução de cada um de seus campos de IA. Criar base pede o rótulo e, se houver campos de IA, o seu consentimento para que os valores que eles citam sejam enviados ao provedor de IA da instância. Sem esse consentimento, eles são campos comuns, preenchidos com seus valores de exemplo.

Carregar os dados de exemplo, marcada por padrão, preenche as tabelas com linhas de exemplo para ver a base em ação. Desmarcada, as tabelas ficam vazias, prontas para os seus próprios dados — visões, painéis e automações são criados do mesmo jeito.

Um projeto vazio também oferece a base de demonstração: uma pequena agência, seus clientes, projetos, tarefas, faturas e avaliações, que mostra todas as facetas do basedb.

Os modelos oficiais são lidos e criados no idioma da tela: tabelas, campos, opções, linhas de exemplo, visões, painéis, automações e instruções da IA. As linhas de exemplo mudam de mundo com o idioma: a “Boulangerie Martin” de Lyon se torna “Padaria Pão Quente” em São Paulo, em português do Brasil.

Um modelo importado na sua instância, ou salvo a partir de uma base, foi escrito por alguém: ele se lê como foi escrito.

No topo da galeria, descreva sua necessidade em uma frase — “o acompanhamento das reclamações dos meus clientes, com uma análise do tom”. A IA propõe uma base completa: tabelas, linhas de exemplo verossímeis, visões, painel e campos de IA quando o uso se presta a isso. Você a lê como um modelo, pode refiná-la (“adicione uma tabela de fornecedores”) e depois criá-la. A IA recebe apenas a sua frase — nenhum dado de nenhuma base — e nada é criado antes do seu clique.

Um modelo é um documento JSON. Este é o esqueleto:

{
"format": 1,
"key": "suivi-tickets",
"label": "Suivi de tickets",
"summary": "Une phrase pour la galerie.",
"category": "Produit et technique",
"icon": "bug",
"color": "#ef4444",
"tables": [
{
"key": "tickets",
"label": "Tickets",
"fields": [
{ "label": "Titre", "kind": "short_text" },
{ "label": "Statut", "kind": "select", "options": ["Nouveau", "En cours", "Résolu"] },
{ "label": "Ouvert le", "kind": "date" },
{ "label": "Description", "kind": "long_text" },
{ "label": "Catégorie", "kind": "select", "options": ["Bug", "Demande"],
"ai": { "prompt": "Classe ce ticket : {{Titre}} — {{Description}}" } },
{ "label": "Âge (jours)", "kind": "formula", "formula": "JOURS(AUJOURDHUI(); [Ouvert le])" }
]
},
{ "key": "produits", "label": "Produits", "fields": [{ "label": "Nom", "kind": "short_text" }] }
],
"links": [{ "from": "tickets", "label": "Produit", "to": "produits" }],
"rows": {
"produits": [{ "$key": "app", "Nom": "Application mobile" }],
"tickets": [{ "Titre": "Crash au démarrage", "Statut": "En cours", "Ouvert le": "-3d", "Produit": "@app" }]
},
"views": [
{ "table": "tickets", "label": "Tableau", "kind": "kanban", "spec": { "group_by": "Statut" } }
],
"dashboards": [
{ "label": "Vue d’ensemble", "blocks": [
{ "kind": "number", "title": "Ouverts", "table": "tickets", "filter": "[Statut] ne \"Résolu\"" },
{ "kind": "chart", "title": "Par catégorie", "table": "tickets", "group_by": "Catégorie", "style": "pie" }
] }
],
"automations": []
}

As regras essenciais:

  • Tudo é citado pelo rótulo: um campo em uma visão, um filtro ([Statut] ne "Résolu"), uma fórmula ([Prix] * [Quantité]), uma instrução de IA ou uma mensagem ({{Titre}}). Uma opção é informada pelo rótulo.
  • O primeiro campo de uma tabela é o seu campo de exibição: um texto, um número, uma data, um e-mail ou um endereço.
  • Uma relação é declarada em links, nunca como um campo; uma linha a referencia por "@clé", a $key de uma linha da tabela de destino.
  • Uma data pode ser relativa ao dia em que o modelo é aplicado: "today", "+3d", "-2w", "+1m"; uma data e hora acrescenta a hora, "+1d 14:30". Uma pessoa é escrita "$moi".
  • Um campo de IA leva "ai": { "prompt": "…" } e pode receber um valor de exemplo, escrito somente quando a IA não é usada.
  • Um modelo nunca contém compartilhamento, permissão, webhook, arquivo ou pessoa além de "$moi": às vezes ele vem de fora e não deve abrir nada.

A referência completa — todos os tipos de campo, todas as chaves de visões, os limites — está no capítulo 20 da documentação de arquitetura, no repositório.

Os modelos da galeria oficial são os arquivos da pasta packages/templates/catalog do repositório, um arquivo por modelo, com o nome da sua key. O site público os transforma na galeria e publica o catálogo inteiro no endereço /basedb/modeles/catalogue.json. Cada instância o lê quando alguém abre a galeria e o guarda por uma hora: alterar um arquivo e republicar o site basta para mudar a galeria de todas as instâncias.

Cada modelo é verificado na construção do site, pelo mesmo validador do servidor: um modelo inválido faz a construção falhar em vez de chegar aos usuários.

Um modelo oficial é escrito uma vez, em francês. Seus textos em outro idioma são um dicionário, packages/templates/i18n/<langue>/<clé>.json — o texto em francês, seguido da sua tradução —, que o site publica ao lado do catálogo (/basedb/modeles/i18n/<langue>.json). A instância passa cada texto por ele e acompanha cada rótulo onde ele é citado — fórmulas, filtros, visões, instruções —, e então relê o resultado: um dicionário que quebrasse o modelo não é servido, o modelo em francês é. Um texto ausente do dicionário permanece em francês.

A instância lê o endereço BASEDB_TEMPLATES_URL — por padrão, o do site público. Aponte-o para um catálogo seu, ou defina off para não ler nenhum: a instância então serve os modelos integrados à sua versão.

Um administrador pode importar um modelo JSON na sua instância, pela galeria (“Importar um JSON”): ele entra na galeria de todos os usuários e substitui um modelo com a mesma chave. Uma proposta da IA pode ser adicionada a ela com um clique.

Qualquer base também pode se tornar um modelo: Salvar como modelo no menu da base, em Outras ações. Suas tabelas, campos, instruções de IA, relações, visões compartilhadas, painéis e automações — e, se você quiser, até 50 linhas por tabela — são baixados em JSON, prontos para entrar no catálogo oficial ou no da instância. Uma automação que busca uma linha, percorre linhas, segue ramificações ou cita uma etapa anterior fica de fora por enquanto, e a tela informa isso.

O basedb é um software livre da Eodia, estúdio de software nativo em IA.