Dify adalah platform sumber terbuka untuk pengembangan Aplikasi LLM, yang mengintegrasikan Backend as a Service dengan LLMOps untuk memungkinkan pengembangan cepat aplikasi AI Generatif siap produksi. Topik ini menjelaskan langkah-langkah untuk membuat aplikasi Tanya Jawab Cerdas menggunakan ApsaraDB RDS for PostgreSQL dan platform Dify.
Langkah 1: Buat instans ApsaraDB RDS for PostgreSQL
-
Buat akun dan database untuk instans RDS. Untuk informasi lebih lanjut, lihat Buat Akun dan Database.
Termasuk di antaranya:
-
Saat membuat akun, pilih Account Type sebagai Privileged Account.
-
Saat membuat database, pilih akun istimewa yang telah dibuat untuk Authorized Account.
-
-
Ajukan titik akhir publik untuk instans ApsaraDB RDS for PostgreSQL. Untuk operasi spesifik, lihat Aktifkan atau Nonaktifkan Titik Akhir Publik.
Tambahkan alamat IP publik dari instans ECS ke daftar putih ApsaraDB RDS for PostgreSQL. Untuk operasi spesifik, lihat Atur Daftar Putih.
-
Aktifkan plugin vektor untuk database target ApsaraDB RDS for PostgreSQL. Untuk operasi terperinci, lihat Kelola Plugin.
Langkah 2: deploy Dify
-
Buat Instance ECS. Untuk informasi lebih lanjut, lihat Pembelian Kustom Instance ECS.
-
Versi CPU dari Instance ECS mendukung penambahan model AI besar secara online.
-
Versi GPU dari Instance ECS mendukung penambahan model AI besar baik secara online maupun lokal di ECS.
Penting-
Topik ini menggunakan Alibaba Cloud Linux 3 sebagai contoh.
-
Jika Anda membeli versi GPU dari Instance ECS, Anda perlu menginstal Driver GPU yang sesuai saat mengonfigurasi citra. Dengan menggunakan versi GPU dari Instance ECS, Anda dapat menerapkan model besar pada ECS menggunakan Ollama.
-
-
Instal Docker di ECS. Untuk informasi lebih lanjut, lihat Instal Docker.
-
(Opsional) Jika Anda membeli versi GPU dari Instance ECS, jalankan perintah berikut untuk menginstal komponen container-toolkit.
-
Jalankan perintah berikut untuk mendapatkan kode sumber Dify.
git clone https://github.com/langgenius/dify.gitAnda dapat menentukan cabang versi menggunakan parameter
branchuntuk menginstal versi tertentu. Sebagai contoh, untuk menginstal versi v1.0.0, gunakan perintah berikut. Untuk versi cabang Dify, lihat dify.git clone https://github.com/langgenius/dify.git --branch 1.0.0CatatanJika perintah Git belum diinstal, jalankan
sudo yum install git -yuntuk menginstalnya. -
Konfigurasikan variabel lingkungan untuk menetapkan ApsaraDB RDS for PostgreSQL sebagai database dan penyimpanan vektor default.
-
Tetapkan ApsaraDB 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 parameter dalam kode sesuai dengan situasi sebenarnya.
Parameter
Deskripsi
DB_USERNAME
Akun istimewa dari instance ApsaraDB RDS for PostgreSQL.
DB_PASSWORD
Kata sandi akun istimewa dari instance ApsaraDB RDS for PostgreSQL.
DB_HOST
Titik akhir publik dari instance ApsaraDB RDS for PostgreSQL.
DB_PORT
Port publik dari instance ApsaraDB RDS for PostgreSQL. Default adalah 5432.
DB_DATABASE
Nama database dalam instance ApsaraDB RDS for PostgreSQL.
-
Tetapkan ApsaraDB RDS for PostgreSQL sebagai penyimpanan vektor default.
export VECTOR_STORE=pgvector export PGVECTOR_HOST=pgm-****.pg.rds.aliyuncs.com export PGVECTOR_PORT=5432 export PGVECTOR_USER=testdbuser export PGVECTOR_PASSWORD=dbPassword export PGVECTOR_DATABASE=testdb01Ganti nilai parameter dalam kode sesuai dengan situasi sebenarnya.
Parameter
Deskripsi
VECTOR_STORE
Gunakan plugin vektor.
PGVECTOR_USERNAME
Akun istimewa dari instance ApsaraDB RDS for PostgreSQL.
PGVECTOR_PASSWORD
Kata sandi akun istimewa dari instance ApsaraDB RDS for PostgreSQL.
PGVECTOR_HOST
Titik akhir publik dari instance ApsaraDB RDS for PostgreSQL.
PGVECTOR_PORT
Port publik dari instance ApsaraDB RDS for PostgreSQL. Default adalah 5432.
PGVECTOR_DATABASE
Nama database dalam instance ApsaraDB RDS for PostgreSQL.
Anda juga dapat mengonfigurasi ApsaraDB RDS for PostgreSQL sebagai database dan penyimpanan vektor default melalui file
.env. -
-
(Opsional) Jika Anda ingin menghindari menjalankan kontainer database default dan Weaviate di ECS untuk menghemat lalu lintas dan ruang penyimpanan, edit file
.envdandocker-compose.yamluntuk menonaktifkan kontainer database default dan Weaviate. -
-
Jalankan perintah berikut untuk memulai citra Dify.
cd /root/dify/docker docker compose -f docker-compose.yaml up -d
Langkah 3: akses layanan Dify
-
Akses
http://<ECS public IP address>/installdi browser Anda untuk mengakses layanan Dify.CatatanJika akses gagal, segarkan halaman beberapa kali. Dify sedang menginisialisasi struktur tabel penyimpanan dan informasi terkait.
-
Ikuti petunjuk di halaman untuk Set Administrator Account (yaitu, alamat email, nama pengguna, dan kata sandi) untuk mendaftar di platform Dify dan menggunakan layanan tersebut.
Langkah 4: tambahkan dan konfigurasikan model AI
Topik ini menggunakan Tongyi Qianwen sebagai contoh.
-
Masuk ke platform Dify.
-
Di pojok kanan atas, klik User Name > Settings.
-
Di halaman Settings, pilih Model Provider > Tongyi Qianwen > (settings).
-
Di halaman Settings Tongyi Qianwen, klik tautan untuk mengambil API Key Alibaba Cloud Bailian.
-
Setelah memasukkan API Key yang diperoleh, klik Save.

Jika Anda membeli versi GPU dari ECS, Anda dapat menerapkan layanan LLM Tongyi Qianwen pada ECS.
Langkah 5: Buat Basis Pengetahuan
Basis pengetahuan khusus memungkinkan aplikasi Tanya Jawab Cerdas untuk menjawab pertanyaan dengan akurasi dan profesionalisme yang lebih tinggi.
Prasyarat
Pastikan file korpus untuk basis pengetahuan telah disiapkan. Format file yang didukung meliputi TXT, MARKDOWN, MDX, PDF, HTML, XLSX, XLS, DOCX, CSV, MD, dan HTM, dengan setiap file tidak melebihi 15 MB.
Prosedur
-
Klik Knowledge Base > Create Knowledge Base > Import Existing Text > Select File > Next, secara berurutan, untuk mengunggah file yang telah disiapkan ke basis pengetahuan.

-
Setelah mengklik Next, ikuti panduan halaman untuk melakukan Text Segmentation And Traffic Scrubbing.
Anda dapat menggunakan pengaturan default, yang akan secara otomatis membersihkan, membagi segmen, dan mengindeks dokumen yang diunggah, meningkatkan kemampuan aplikasi Tanya Jawab Cerdas untuk mengambil dan mereferensikan informasi.
Verifikasi basis pengetahuan dan konfirmasi indeks melalui ApsaraDB RDS for PostgreSQL
Setelah menyiapkan basis pengetahuan, verifikasi isi basis pengetahuan dalam database ApsaraDB RDS for PostgreSQL dan konfirmasikan indeks untuk setiap tabel basis pengetahuan.
-
Sambungkan ke database ApsaraDB RDS for PostgreSQL yang digunakan oleh Dify.Untuk instruksi tentang cara menyambungkan ke instans ApsaraDB RDS for PostgreSQL, lihat dokumen referensi.
-
Jalankan perintah di bawah ini untuk melihat ID yang sesuai dengan basis pengetahuan.
SELECT * FROM datasets; -
Ganti
-dengan_pada ID target, tambahkan awalanembedding_vector_index_dan akhiran_noduntuk membentuk nama tabel yang menyimpan basis pengetahuan. Sebagai contoh, jalankan perintah di bawah ini untuk melihat data dalam basis pengetahuan target di dalam ApsaraDB RDS for PostgreSQL.SELECT * FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod; -
Konfirmasikan indeks basis pengetahuan.
Secara default, platform Dify membuat indeks HNSW untuk setiap basis pengetahuan guna meningkatkan kueri kesamaan vektor menggunakan plugin pgvector. Sistem menggunakan pernyataan SQL di bawah ini secara default untuk kueri kesamaan vektor.
SELECT meta, text, embedding <=> $1 AS distance FROM embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod ORDER BY distance LIMIT $2;Untuk memverifikasi apakah indeks tabel basis pengetahuan dan parameter defaultnya memenuhi persyaratan tingkat recall, gunakan pernyataan berikut. Untuk informasi tentang hubungan antara parameter indeks HNSW
mdanef_constructionserta tingkat recall, lihat pengujian performa pgvector (berdasarkan indeks HNSW).SELECT * FROM pg_indexes WHERE tablename = 'embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod';Jika indeks tidak dibuat secara otomatis atau parameter default tidak memenuhi persyaratan tingkat recall, jalankan perintah di bawah ini untuk membuat 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_nodadalah nama tabel indeks. Ganti nama tabel sesuai kebutuhan dalam aplikasi aktual. -
Langkah 6: Buat aplikasi Tanya Jawab Cerdas
Panduan ini menggunakan templat Klasifikasi Pertanyaan + Basis Pengetahuan + Chatbot sebagai contoh dari templat aplikasi.
-
Klik Studio > Create From Application Template.

-
Temukan templat Klasifikasi Pertanyaan + Basis Pengetahuan + Chatbot dan klik Use This Template.
-
Setelah mengatur nama aplikasi dan ikon, klik Create.
-
Di halaman Studio, pilih kartu aplikasi yang baru dibuat untuk mengakses halaman orkestrasi aplikasi.
-
Konfigurasikan alur kerja aplikasi dengan menghapus modul Jawaban, menyisakan modul Pengambilan Basis Pengetahuan, dan memperbarui model AI dari modul Klasifikasi Pertanyaan dan LLM ke Tongyi Qianwen.

Saat menyiapkan model Tingkat Tinggi Tongyi Qianwen, pastikan nilai Top P diatur kurang dari 1.

-
Sesuaikan modul Klasifikasi Pertanyaan sesuai kebutuhan Anda. Sebagai contoh, jika basis pengetahuan Anda berisi informasi PostgreSQL, Anda dapat mengonfigurasinya sebagai berikut:
-
Untuk pertanyaan terkait PostgreSQL, gabungkan basis pengetahuan dengan model Tingkat Tinggi Tongyi Qianwen untuk analisis dan ringkasan.
-
Untuk pertanyaan yang tidak terkait dengan PostgreSQL, gunakan model Tingkat Tinggi Tongyi Qianwen untuk memberikan jawaban.

-
-
Perbarui modul Pengambilan Basis Pengetahuan dengan menambahkan basis pengetahuan terkait PostgreSQL yang telah Anda buat sebelumnya.

-
Klik Preview di pojok kanan atas untuk menguji demo Tanya Jawab. Setelah demo bekerja dengan benar, klik Publish untuk merilis aplikasi.