Gunakan RDS for PostgreSQL sebagai database relasional sekaligus penyimpan vektor untuk Dify, platform LLM open-source, guna membangun aplikasi tanya jawab cerdas.
Langkah 1: Buat instans RDS for PostgreSQL
-
Buat akun dan database untuk instans RDS for PostgreSQL.
Perhatikan hal berikut:
-
Saat membuat akun, atur Account Type ke Privileged Account.
-
Saat membuat database, atur Authorized Account ke akun istimewa yang telah Anda buat.
-
-
Aktifkan titik akhir publik untuk instans RDS for PostgreSQL. Aktifkan atau nonaktifkan titik akhir publik.
Tambahkan Alamat IP publik instans ECS Anda ke daftar putih instans RDS for PostgreSQL. Konfigurasikan daftar putih alamat IP.
-
Aktifkan ekstensi vektor untuk database target. Kelola ekstensi.
Langkah 2: Deploy Dify
-
Buat instans ECS. Buat instans menggunakan wizard.
-
Instans ECS berbasis CPU mendukung LLM online.
-
Instans ECS berakselerasi GPU mendukung LLM online maupun LLM yang di-deploy secara lokal.
Penting-
Artikel ini menggunakan Alibaba Cloud Linux 3 sebagai contoh.
-
Jika Anda menggunakan instans ECS berakselerasi GPU, instal Driver GPU saat mengonfigurasi image. Hal ini memungkinkan Anda untuk mendeplai LLM dengan Ollama.
-
-
Instal Docker pada instans ECS.
-
(Opsional) Jika Anda menggunakan instans ECS berakselerasi GPU, jalankan perintah berikut untuk menginstal komponen container-toolkit.
-
Klon kode sumber Dify.
git clone https://github.com/langgenius/dify.gitUntuk menginstal versi tertentu, gunakan parameter
branch. Versi yang tersedia: dify. Contoh untuk v1.0.0:git clone https://github.com/langgenius/dify.git --branch 1.0.0CatatanJika Git belum terinstal, jalankan
sudo yum install git -yuntuk menginstalnya. -
Konfigurasikan Variabel lingkungan untuk menetapkan RDS for PostgreSQL sebagai database dan penyimpan vektor default.
-
Tetapkan RDS for PostgreSQL sebagai database default.
export DB_USERNAME=testdbuser export DB_PASSWORD=dbPassword export DB_HOST=pgm-****.pg.rds.aliyuncs.com export DB_PORT=5432 export DB_DATABASE=testdb01Ganti nilai-nilai tersebut dengan pengaturan aktual Anda.
Parameter
Deskripsi
DB_USERNAME
Akun istimewa dari instans RDS for PostgreSQL.
DB_PASSWORD
Kata sandi akun istimewa untuk instans RDS for PostgreSQL.
DB_HOST
Titik akhir publik dari instans RDS for PostgreSQL.
DB_PORT
Port publik dari instans RDS for PostgreSQL. Nilai default adalah 5432.
DB_DATABASE
Nama database dalam instans RDS for PostgreSQL.
-
Tetapkan RDS for PostgreSQL sebagai database vektor default.
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=testdb01Ganti nilai-nilai tersebut dengan pengaturan aktual Anda.
Parameter
Deskripsi
VECTOR_STORE
Menentukan penyimpan vektor. Gunakan
pgvectoruntuk ekstensi PostgreSQL.PGVECTOR_USERNAME
Akun istimewa dari instans RDS for PostgreSQL.
PGVECTOR_PASSWORD
Kata sandi akun istimewa untuk instans RDS for PostgreSQL.
PGVECTOR_HOST
Titik akhir publik dari instans RDS for PostgreSQL.
PGVECTOR_PORT
Port publik dari instans RDS for PostgreSQL. Nilai default adalah 5432.
PGVECTOR_DATABASE
Nama database dalam instans RDS for PostgreSQL.
Sebagai alternatif, konfigurasikan pengaturan ini dalam file
.env. -
-
(Opsional) Untuk menghemat sumber daya, nonaktifkan kontainer database default dan Weaviate dengan mengedit file
.envdandocker-compose.yaml. -
-
Jalankan Dify.
cd /root/dify/docker docker compose -f docker-compose.yaml up -d
Langkah 3: Akses layanan Dify
-
Buka
http://<public_IP_address_of_your_ECS_instance>/installdi browser untuk memulai instalasi Dify.CatatanJika halaman gagal dimuat, refresh halaman tersebut. Dify mungkin masih dalam proses inisialisasi.
-
Ikuti petunjuk untuk set up an administrator account (email, username, dan password).
Langkah 4: Tambahkan dan konfigurasikan model AI
Contoh ini menggunakan Qwen.
-
Login ke Dify.
-
Klik username > Settings.
-
Pada halaman Settings, pilih Model Providers > Qwen > (Set).
-
Pada halaman Settings untuk Qwen, klik tautan untuk mendapatkan Kunci API dari Alibaba Cloud Model Studio.
-
Tempel Kunci API Anda dan klik Save.
Pada instans ECS berakselerasi GPU, Anda dapat mendeplai LLM Qwen secara lokal.
Langkah 5: Buat basis pengetahuan
Basis pengetahuan memungkinkan aplikasi tanya jawab menjawab pertanyaan spesifik domain secara akurat.
Prasyarat
Siapkan file korpus untuk basis pengetahuan. Format yang didukung: TXT, MARKDOWN, MDX, PDF, HTML, XLSX, XLS, DOCX, CSV, MD, dan HTM. Ukuran maksimum file: 15 MB.
Prosedur
-
Klik Knowledge > Create Knowledge > Import from Text > Select File > Next untuk mengunggah file Anda.
Format yang didukung: TXT, MARKDOWN, MDX, PDF, HTML, XLSX, XLS, DOCX, CSV, MD, dan HTM. Ukuran maksimum file: 15 MB.
-
Setelah Anda mengklik Next, ikuti petunjuk di layar untuk text chunking and cleaning.
Pertahankan pengaturan default. Basis pengetahuan secara otomatis melakukan chunking, pembersihan, dan pengindeksan dokumen.
Verifikasi basis pengetahuan dan indeks
Verifikasi konten basis pengetahuan dan indeks di RDS for PostgreSQL.
-
Sambungkan ke instans RDS for PostgreSQL yang digunakan oleh Dify.
-
Kueri ID basis pengetahuan.
SELECT * FROM datasets; -
Turunkan nama tabel dari ID dataset: ganti tanda hubung (
-) dengan garis bawah (_), tambahkan awalanembedding_vector_index_dan akhiran_nod. Contoh kueri:SELECT * FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod; -
Konfirmasi indeks basis pengetahuan.
Dify secara default membuat indeks HNSW untuk mempercepat pencarian kemiripan pgvector. Kueri pencarian tampak seperti:
SELECT meta, text, embedding <=> $1 AS distance FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod ORDER BY distance LIMIT $2;Verifikasi bahwa parameter indeks memenuhi kebutuhan Recall Anda. Hubungan antara
m,ef_construction, dan recall didokumentasikan dalam pengujian kinerja pgvector (berdasarkan indeks HNSW).SELECT * FROM pg_indexes WHERE tablename = 'embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod';Jika tidak ada indeks atau parameter default tidak memenuhi kebutuhan Recall Anda, buat indeks secara manual.
-
(Opsional) Hapus indeks yang ada.
DROP INDEX IF EXISTS embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod; -
Buat indeks.
CREATE INDEX ON embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod USING hnsw (embedding vector_cosine_ops) WITH (m = '16', ef_construction = '100');
Catatanembedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nodhanyalah contoh. Ganti dengan nama tabel aktual Anda. -
Langkah 6: Buat aplikasi tanya jawab cerdas
Contoh ini menggunakan templat Question Classifier + Knowledge + Chatbot.
-
Klik Studio > Create from Template.
-
Temukan templat Question Classifier + Knowledge + Chatbot dan klik Use this template.
-
Konfigurasikan nama dan ikon aplikasi, lalu klik Create.
-
Pada halaman Studio, klik kartu aplikasi baru untuk membuka halaman orkestrasi aplikasi.
-
Konfigurasikan alur kerja aplikasi: hapus modul Answer, pertahankan satu modul Knowledge Retrieval, dan ubah model AI untuk modul Question Classifier dan LLM menjadi Qwen.
Saat mengonfigurasi model Qwen, atur nilai Top P kurang dari 1.
Setelah Anda memilih model qwen-vl-max-0809, klik ikon pengaturan di samping nama model untuk membuka panel konfigurasi parameter, lalu atur Top P ke
0.8. -
Edit modul Question Classifier untuk menentukan kategori pertanyaan. Untuk basis pengetahuan PostgreSQL:
-
Pertanyaan terkait PostgreSQL: arahkan ke basis pengetahuan dan Qwen untuk jawaban ringkas.
-
Pertanyaan lainnya: arahkan langsung ke Qwen.
-
-
Tambahkan basis pengetahuan PostgreSQL ke modul Knowledge Retrieval.
Pada node Knowledge Retrieval, atur Query Variable ke
sys.query, pilih pg untuk basis pengetahuan, dan atur mode pengambilan ke High-quality · Vector Retrieval. -
Klik Preview untuk menguji aplikasi, lalu klik Publish untuk menerapkan.