Use o RDS for PostgreSQL como banco de dados relacional e armazenamento vetorial do Dify, plataforma LLM de código aberto, para desenvolver uma aplicação inteligente de perguntas e respostas.
Etapa 1: Criar uma instância RDS for PostgreSQL
-
Criar uma conta e um banco de dados para a instância RDS for PostgreSQL.
Observe o seguinte:
Ao criar a conta, defina Account Type como Privileged Account.
Ao criar o banco de dados, configure Authorized Account com a conta privilegiada criada.
-
Ative um endpoint público para a instância RDS for PostgreSQL. Ativar ou desativar um endpoint público.
Adicione o endereço IP público da sua instância ECS à lista de permissões da instância RDS for PostgreSQL. Configurar uma lista de permissões de endereços IP.
Ative a extensão vetorial no banco de dados de destino. Gerenciar extensões.
Etapa 2: Implantar o Dify
-
Crie uma instância ECS. Criar uma instância usando o assistente.
Instâncias ECS baseadas em CPU suportam LLMs online.
Instâncias ECS aceleradas por GPU suportam LLMs online e implantados localmente.
ImportanteEste artigo usa o Alibaba Cloud Linux 3 como exemplo.
Se usar uma instância ECS acelerada por GPU, instale o driver da GPU durante a configuração da imagem para permitir a implantação de LLMs com o Ollama.
Instalar o Docker na instância ECS.
-
(Opcional) Se estiver usando uma instância ECS acelerada por GPU, execute o comando abaixo para instalar o componente container-toolkit.
-
Clone o código-fonte do Dify.
git clone https://github.com/langgenius/dify.gitPara instalar uma versão específica, use o parâmetro
branch. Versões disponíveis: dify. Exemplo para a v1.0.0:git clone https://github.com/langgenius/dify.git --branch 1.0.0NotaSe o Git não estiver instalado, execute
sudo yum install git -ypara instalá-lo. -
Configure as variáveis de ambiente para definir o RDS for PostgreSQL como banco de dados e armazenamento vetorial padrão.
-
Defina o RDS for PostgreSQL como banco de dados padrão.
export DB_USERNAME=testdbuser export DB_PASSWORD=dbPassword export DB_HOST=pgm-****.pg.rds.aliyuncs.com export DB_PORT=5432 export DB_DATABASE=testdb01Substitua esses valores pelas suas configurações reais.
Parâmetro
Descrição
DB_USERNAME
Conta privilegiada da instância RDS for PostgreSQL.
DB_PASSWORD
Senha da conta privilegiada da instância RDS for PostgreSQL.
DB_HOST
Endpoint público da instância RDS for PostgreSQL.
DB_PORT
Porta pública da instância RDS for PostgreSQL. O valor padrão é 5432.
DB_DATABASE
Nome do banco de dados na instância RDS for PostgreSQL.
-
Configure o RDS for PostgreSQL como banco de dados vetorial padrão.
export VECTOR_STORE=pgvector export PGVECTOR_HOST=pgm-****.pg.rds.aliyuncs.com export PGVECTOR_PORT=5432 export PGVECTOR_USERNAME=testdbuser export PGVECTOR_PASSWORD=dbPassword export PGVECTOR_DATABASE=testdb01Substitua esses valores pelas suas configurações reais.
Parâmetro
Descrição
VECTOR_STORE
Especifica o armazenamento vetorial. Use
pgvectorpara a extensão do PostgreSQL.PGVECTOR_USERNAME
Conta privilegiada da instância RDS for PostgreSQL.
PGVECTOR_PASSWORD
Senha da conta privilegiada da instância RDS for PostgreSQL.
PGVECTOR_HOST
Endpoint público da instância RDS for PostgreSQL.
PGVECTOR_PORT
Porta pública da instância RDS for PostgreSQL. O valor padrão é 5432.
PGVECTOR_DATABASE
Nome do banco de dados na instância RDS for PostgreSQL.
Alternativamente, configure esses parâmetros no arquivo
.env. -
-
(Opcional) Para economizar recursos, desative o banco de dados padrão e os contêineres do Weaviate editando os arquivos
.envedocker-compose.yaml. -
-
Inicie o Dify.
cd /root/dify/docker docker compose -f docker-compose.yaml up -d
Etapa 3: Acessar o serviço Dify
-
Abra
http://<public_IP_address_of_your_ECS_instance>/installem um navegador para iniciar a instalação do Dify.NotaSe a página não carregar, atualize-a. O Dify pode ainda estar inicializando.
Siga as instruções para set up an administrator account (e-mail, nome de usuário e senha).
Etapa 4: Adicionar e configurar um modelo de IA
Este exemplo usa o Qwen.
Faça login no Dify.
Clique em seu username > Settings.
Na página Settings, escolha Model Providers > Qwen > (Set).
Na página Settings do Qwen, clique em link para obter uma chave API no Alibaba Cloud Model Studio.
Cole sua chave API e clique em Save.
Em uma instância ECS acelerada por GPU, você pode implantar o LLM Qwen localmente.
Etapa 5: Criar uma base de conhecimento
Uma base de conhecimento permite que a aplicação de perguntas e respostas responda com precisão a questões específicas de um domínio.
Pré-requisitos
Prepare os arquivos de corpus para a base de conhecimento. Formatos suportados: TXT, MARKDOWN, MDX, PDF, HTML, XLSX, XLS, DOCX, CSV, MD e HTM. Tamanho máximo do arquivo: 15 MB.
Procedimento
-
Clique em Knowledge > Create Knowledge > Import from Text > Select File > Next para enviar seus arquivos.
Formatos suportados: TXT, MARKDOWN, MDX, PDF, HTML, XLSX, XLS, DOCX, CSV, MD e HTM. Tamanho máximo do arquivo: 15 MB.
-
Após clicar em Next, siga as instruções na tela para executar o text chunking and cleaning.
Mantenha as configurações padrão. A base de conhecimento segmentará, limpará e indexará os documentos automaticamente.
Verificar a base de conhecimento e o índice
Valide o conteúdo da base de conhecimento e o índice no RDS for PostgreSQL.
Conectar a uma instância RDS for PostgreSQL usada pelo Dify.
-
Consulte o ID da base de conhecimento.
SELECT * FROM datasets; -
Derive o nome da tabela a partir do ID do dataset: substitua hifens (
-) por underscores (_), adicione o prefixoembedding_vector_index_e o sufixo_nod. Exemplo de consulta:SELECT * FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod; -
Confirme o índice da base de conhecimento.
Por padrão, o Dify cria um índice HNSW para acelerar buscas de similaridade do pgvector. A consulta de busca tem a seguinte estrutura:
SELECT meta, text, embedding <=> $1 AS distance FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod ORDER BY distance LIMIT $2;Verifique se os parâmetros do índice atendem aos seus requisitos de recall. A relação entre
m,ef_constructione recall está documentada em Teste de desempenho do pgvector (baseado em índice HNSW).SELECT * FROM pg_indexes WHERE tablename = 'embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod';Se não existir nenhum índice ou se os parâmetros padrão não atenderem aos seus requisitos de recall, crie um manualmente.
-
(Opcional) Remova o índice existente.
DROP INDEX IF EXISTS embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod; -
Crie o índice.
CREATE INDEX ON embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod USING hnsw (embedding vector_cosine_ops) WITH (m = '16', ef_construction = '100');
Notaembedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nodé apenas um exemplo. Substitua-o pelo nome real da sua tabela. -
Etapa 6: Criar uma aplicação inteligente de perguntas e respostas
Este exemplo usa o modelo Question Classifier + Knowledge + Chatbot.
Clique em Studio > Create from Template.
Localize o modelo Question Classifier + Knowledge + Chatbot e clique em Use this template.
Configure o nome e o ícone da aplicação e clique em Create.
Na página Studio, clique em cartão da nova aplicação para abrir a página de orquestração.
-
Configure o fluxo de trabalho da aplicação: exclua o módulo Answer, mantenha um módulo Knowledge Retrieval e altere o modelo de IA dos módulos Question Classifier e LLM para Qwen.
Ao configurar o modelo Qwen, defina o valor Top P como menor que 1.
Após selecionar o modelo qwen-vl-max-0809, clique em ícone de configurações ao lado do nome do modelo para abrir o painel de configuração de parâmetros e defina Top P como
0.8. -
Edite o módulo Question Classifier para definir as categorias de perguntas. Para uma base de conhecimento PostgreSQL:
Perguntas relacionadas ao PostgreSQL: direcione para a base de conhecimento e para o Qwen para obter uma resposta resumida.
Outras perguntas: direcione diretamente para o Qwen.
-
Adicione a base de conhecimento PostgreSQL ao módulo Knowledge Retrieval.
No nó Knowledge Retrieval, defina Query Variable como
sys.query, selecione pg para a knowledge base e configure o modo de recuperação para High-quality · Vector Retrieval. Clique em Preview para testar a aplicação e, em seguida, clique em Publish para implantá-la.