Pular para o conteúdo

Inteligência artificial

A IA é opcional. Sem provedor configurado, nada vai a lugar nenhum. O basedb sabe conversar com a OpenAI, a Anthropic e a Mistral, com a sua própria chave — e com qualquer servidor que fale a API da OpenAI: Azure, um gateway corporativo, um modelo hospedado na sua infraestrutura.

Enquanto nenhuma configuração for salva na interface, a API lê o seu ambiente:

Fenêtre de terminal
BASEDB_AI_PROVIDER=mistral # openai, anthropic, mistral ou openai_compatible
BASEDB_AI_MODEL=mistral-small-latest
MISTRAL_API_KEY=… # ou BASEDB_AI_API_KEY

A chave é lida em BASEDB_AI_API_KEY ou, na falta dela, no nome usual do provedor (OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY).

BASEDB_AI_PROVIDER=openai_compatible envia as chamadas, no formato da OpenAI, para o endereço de BASEDB_AI_BASE_URL: o que vem antes de /chat/completions, parâmetros incluídos. BASEDB_AI_HEADERS adiciona a cada chamada os cabeçalhos que esse servidor exige, em um objeto JSON.

Fenêtre de terminal
# Azure OpenAI: o nome da implantação como modelo, a chave no cabeçalho api-key
BASEDB_AI_PROVIDER=openai_compatible
BASEDB_AI_MODEL=mon-deploiement
BASEDB_AI_BASE_URL=https://ma-ressource.openai.azure.com/openai/v1
BASEDB_AI_HEADERS='{"api-key":"…"}'
# A forma antiga do Azure, por implantação: o parâmetro permanece depois do caminho
BASEDB_AI_BASE_URL=https://ma-ressource.openai.azure.com/openai/deployments/mon-deploiement?api-version=2024-10-21
# Um modelo servido pelo Ollama, sem chave
BASEDB_AI_PROVIDER=openai_compatible
BASEDB_AI_MODEL=llama3.1
BASEDB_AI_BASE_URL=http://ollama:11434/v1

Com openai_compatible, a chave é opcional: se BASEDB_AI_API_KEY for informada, ela é enviada em Authorization: Bearer. Um cabeçalho de BASEDB_AI_HEADERS substitui o da chave — um gateway que quer o seu próprio Authorization, por exemplo.

BASEDB_AI_BASE_URL e BASEDB_AI_HEADERS também servem aos outros três provedores, alcançados por meio de um gateway: para anthropic, o endereço é o que vem antes de /messages. Essas duas variáveis acompanham o provedor do ambiente, e somente ele: um tenant que escolheu outro não recebe nem o endereço, nem os cabeçalhos, nem a chave. A inicialização da API registra o provedor adotado e sinaliza um endereço ou um objeto JSON inválidos.

Um gateway interno cujo certificado TLS é autoassinado, ou um proxy corporativo que reassina o tráfego, faz as chamadas falharem: BASEDB_AI_PROVIDER_SSL_VERIFY=false deixa de verificar o certificado somente desse provedor — todas as outras chamadas de saída da instância, e o provedor que um tenant tenha escolhido, continuam verificados. A inicialização sinaliza isso. Como a chave passa em cada chamada, reserve essa opção para uma rede que você controla.

A IA não é um tipo de campo, mas uma opção: o interruptor IA do formulário de um campo — texto, texto longo, URL, número, seleção única, booleano, data — faz com que ele seja preenchido por um modelo, a partir de uma instrução que cita outras colunas:

Resuma {{Notes}} em uma frase.
Categoria de {{Description}} entre as opções da lista.
  • O campo é calculado assim que a linha existe e depois sempre que uma coluna citada muda — e, se você quiser, segundo uma programação (no máximo a cada 15 minutos).
  • A coluna mantém seu tipo: uma resposta em que nada pode ser lido nesse tipo (um número não encontrado, uma opção que não existe) é recusada em vez de escrita.
  • Desativar a opção torna o campo novamente editável à mão, com os valores mantidos.
  • Os valores citados vão para o provedor: a ativação exige um consentimento explícito.

BASEDB_AI_FIELD_QUOTA limita esses cálculos por hora e por tenant (300 por padrão).

Uma automação pode perguntar à IA em uma de suas etapas: uma instrução que cita a linha e as etapas anteriores, uma resposta lida no tipo escolhido, que as etapas seguintes escrevem, enviam ou citam. Mesmas regras de um campo: consentimento ao salvar, só vai o que a instrução cita, cada chamada registrada em log e contada em BASEDB_AI_FIELD_QUOTA.

  • Rascunhos: descrever uma tabela ou uma fórmula em uma frase e receber uma proposta para revisar. Só vão rótulos, tipos e a frase digitada — nenhum valor de célula.
  • Modelos: descrever uma base inteira — “o acompanhamento das reclamações dos meus clientes” — e receber tabelas, linhas de exemplo, visões, painel e automações, para refinar e depois criar. Só a frase é enviada. Veja Modelos de base.
  • Copilot: uma conversa sobre a base exibida. Você pede um filtro, uma consulta, colunas, uma tabela, um conjunto de dados de teste; cada proposta chega como um cartão e se aplica com um clique, pelas mesmas rotas que os formulários.

Por padrão, só a estrutura vai para o provedor. A caixa “Permitir a leitura dos dados” permite que o Copilot, durante a conversa, leia linhas (no máximo 50 por leitura) e responda a partir delas — cada leitura é listada abaixo da resposta.

Na seção Painéis, o Copilot propõe perguntas, alterações no painel e valores para os filtros dele, para aplicar com um clique. Mesmas regras: sem consentimento, só a estrutura é enviada — tabelas e campos, painéis e perguntas da base, definição dos cartões do painel exibido (suas perguntas, seus textos) —, nunca os resultados nem os valores escolhidos nos filtros. A caixa “Permitir a leitura dos dados” adiciona esses valores e os resultados dos cartões sob os filtros exibidos, no máximo 50 linhas por leitura, cada uma listada abaixo da resposta.

Na seção Automações, o Copilot propõe uma automação inteira — a que está na tela, alterada, ou uma nova — que ele aplica ao fluxo do editor, sem nunca salvá-la: você a revisa e depois a salva. Mesmas regras: sem consentimento, só a estrutura é enviada — tabelas e campos, automações da base, a que está na tela, suas últimas execuções sem nenhum valor, pessoas e canais do Slack sob marcadores —, e a caixa “Permitir a leitura dos dados” adiciona linhas lidas, no máximo 50 por leitura.

BASEDB_AI_QUOTA limita as chamadas interativas por hora e por tenant (120 por padrão).

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