Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

Guia da Dify para criação manual de locatários: banco de dados de back-end e configuração de chave em detalhes

Prefácio: Por que você precisa criar manualmente um espaço de trabalho da Dify?

Normalmente.Dify Os espaços de trabalho (ou "locatários") são criados por meio de sua interface gráfica. No entanto, em determinados cenários, como implementações automatizadas, criação de locatários em massa, migração de dados ou gerenciamento em um ambiente de servidor sem uma interface de front-end, a criação manual de espaços de trabalho diretamente do banco de dados e da linha de comando torna-se uma solução eficiente.

Este guia detalhará como criar manualmente e passo a passo Dify Espaço de trabalho. Antes de começar, verifique se você tem os seguintes itens:

  • direito Dify O sistema de arquivos do servidor back-end tem permissões de leitura e gravação.
  • acessível Dify (usado em uma expressão nominal) PostgreSQL Banco de dados.
  • instalado no sistema OpenSSL Ferramentas de linha de comando.

Etapa 1: Preparar e inserir registros no banco de dados

A essência da criação de um novo espaço de trabalho é adicionar dois registros-chave ao banco de dados: um no tenants para definir o novo locatário, e outra entrada na tabela tenant_account_joins A tabela associa um locatário a uma conta existente.

1. acesso account_id

Primeiro, você precisa de uma conta de usuário para ser o proprietário do novo espaço de trabalho. O ID dessa conta, o account_idque é a base para as operações subsequentes. Você pode fazer isso consultando o accounts para obter o ID de um usuário existente.

Por exemplo, para localizar a caixa de correio de um usuário por meio do account_id::

SELECT id FROM accounts WHERE email = 'user@example.com';

Anotar a consulta UUID formal account_id.

2. inserção de locatários e registros associados

ganho account_id Depois disso, faça o seguinte SQL para criar um novo locatário e estabelecer uma associação. Substitua os espaços reservados na declaração por seus valores reais.

  • tenants um medidor (que mede algo)Espaço de trabalho: Define informações básicas sobre o espaço de trabalho.
  • tenant_account_joins um medidor (que mede algo)Conta de usuário: Define a conta especificada como "PROPRIETÁRIO" desse espaço de trabalho.
-- 向 tenants 表插入新工作空间记录,将 'My New Workspace' 替换为你的工作空间名称
INSERT INTO tenants (id, name, plan, status, created_at, updated_at) 
VALUES (uuid_generate_v4(), 'My New Workspace', 'professional', 'active', now(), now())
RETURNING id; -- 执行后会返回新生成的 tenant_id,请务必记下它
-- 向 tenant_account_joins 表插入关联记录
-- 将 '<the_tenant_id_from_above>' 替换为上一步返回的 tenant_id
-- 将 '<your_account_id>' 替换为你在 1.1 节获取的 account_id
INSERT INTO tenant_account_joins (tenant_id, account_id, role, created_at, updated_at) 
VALUES ('<the_tenant_id_from_above>', '<your_account_id>', 'owner', now(), now());

Implementação do artigo 1 INSERT o banco de dados retornará um arquivo tenant_id. Isso. ID Ela é vital, portanto, certifique-se de copiá-la e salvá-la, pois todas as etapas subsequentes girarão em torno dela.

Anexo: Referência da estrutura da folha de dados

estrutura da tabela de locatários

Estrutura da tabela tenant_account_joins

P.S. Descrições de funções e status

Função de Conta do Locatário (role)

caráter conta para
OWNER Proprietário com o privilégio mais alto para gerenciar todos os recursos e usuários.
ADMIN Administrador com menos privilégios do que o proprietário.
EDITOR Editor com privilégios de edição de conteúdo.
NORMAL Usuários comuns com direitos de acesso básicos.
DATASET_OPERATOR Operador de conjunto de dados, especializado em gerenciamento de conjunto de dados.

Status da conta (status)

estado das coisas valor enumerado instruções
PENDING "pendente" Uma conta foi criada, mas a verificação não foi concluída.
UNINITIALIZED "uninitialized" (não inicializado) Uma conta foi criada, mas a configuração inicial não foi concluída.
ACTIVE "ativo" A conta está normalmente ativa.
BANNED "banido" Conta desativada.
CLOSED "fechado" A conta foi encerrada.

Etapa 2: Gerar pares de chaves RSA

Todo espaço de trabalho precisa de um par de RSA As chaves são usadas para criptografia de dados. Isso inclui uma chave privada e uma chave pública.

1. geração de chaves privadas

Execute o seguinte OpenSSL para gerar um comando 2048 local RSA chave privada e salve-a como private.pem Documentação.genpkey é o comando moderno recomendado que passa o -algorithm O parâmetro especifica que o algoritmo é RSAe através de -pkeyopt Defina o comprimento da chave.

openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048

2. extração de chaves públicas

Em seguida, a partir da chave privada que acabou de ser gerada private.pem A chave pública correspondente é extraída e salva no public.pem Documentação.rsa coordenação do subcomando -pubout é usada exclusivamente para essa finalidade.

openssl rsa -pubout -in private.pem -out public.pem

Após a execução, você obterá private.pem(chave privada) e public.pem(chave pública) dois arquivos.

Etapa 3: Atualize a chave pública no banco de dados

show (um ingresso) public.pem copie o arquivo -----BEGIN PUBLIC KEY----- responder cantando -----END PUBLIC KEY----- todo o conteúdo entre eles. Em seguida, use essa string de chave pública para atualizar o tenants Tabela correspondente à tabela de encrypt_public_key Campos.

Execute o seguinte SQL lembre-se de substituir os espaços reservados:

-- 将 '<the_tenant_id_from_step_1>' 替换为第一步中记下的 tenant_id
-- 将 '<your_public_key_string>' 替换为你复制的公钥内容
UPDATE tenants 
SET encrypt_public_key = '<your_public_key_string>' 
WHERE id = '<the_tenant_id_from_step_1>';

Etapa 4: implantar o arquivo de chave privada

A etapa final é pegar o arquivo de chave privada gerado private.pem colocar Dify na estrutura de diretório esperada pelo aplicativo back-end.Dify Ele se baseará nos seguintes dados do locatário ID Carregue dinamicamente a chave privada correspondente.

comandante-em-chefe (militar) private.pem O arquivo é movido ou copiado para o seguinte caminho:

dify/api/privkeys/{tenant_id}/private.pem

favor incluir {tenant_id} Substitua-o pelo atual que você obteve na etapa 1 tenant_id. Se privkeys não existe em um diretório que começa com o seu tenant_id você precisa criá-la manualmente.

Por motivos de segurança, é altamente recomendável definir os direitos de acesso ao arquivo de chave privada para garantir que somente aqueles que executam o Dify Os usuários do serviço podem lê-lo:

chmod 600 dify/api/privkeys/{tenant_id}/private.pem

Após a conclusão de todas as etapas acima, o novo espaço de trabalho foi criado e configurado com sucesso.

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

caixa de entrada

Entre em contato conosco

voltar ao topo

pt_BRPortuguês do Brasil