全部产品
Search
文档中心

ApsaraDB RDS:Membangun Aplikasi AI Berbasis ApsaraDB RDS for PostgreSQL dan Platform Dify

更新时间:Nov 10, 2025

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

  1. Buat instans ApsaraDB RDS for PostgreSQL dengan cepat.

  2. 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.

  3. 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.

  4. Aktifkan plugin vektor untuk database target ApsaraDB RDS for PostgreSQL. Untuk operasi terperinci, lihat Kelola Plugin.

Langkah 2: deploy Dify

  1. 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.

  2. Instal Docker di ECS. Untuk informasi lebih lanjut, lihat Instal Docker.

  3. (Opsional) Jika Anda membeli versi GPU dari Instance ECS, jalankan perintah berikut untuk menginstal komponen container-toolkit.

    Instal Komponen Container-Toolkit

    curl -s -L https://nvidia.github.io/nvidia-container-runtime/centos8/nvidia-container-runtime.repo | \
    sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
    
    sudo yum install -y nvidia-container-toolkit
    
    # Mulai ulang Docker
    sudo systemctl restart docker
  4. Jalankan perintah berikut untuk mendapatkan kode sumber Dify.

    git clone https://github.com/langgenius/dify.git

    Anda dapat menentukan cabang versi menggunakan parameter branch untuk 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.0
    Catatan

    Jika perintah Git belum diinstal, jalankan sudo yum install git -y untuk menginstalnya.

  5. Konfigurasikan variabel lingkungan untuk menetapkan ApsaraDB RDS for PostgreSQL sebagai database dan penyimpanan vektor default.

    1. 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=testdb01

      Ganti 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.

    2. 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=testdb01

      Ganti 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.

    Konfigurasikan ApsaraDB RDS for PostgreSQL sebagai Database dan Penyimpanan Vektor Default Melalui .env

    1. Jalankan perintah berikut untuk menggunakan file contoh Dify .env.example untuk menimpa file .env yang ada.

      cd /root/dify/docker
      cp .env.example .env
      Catatan

      Setelah mendapatkan kode sumber Dify, direktori /root/dify/docker akan otomatis berisi file .env.example dan .env.

    2. Edit file .env untuk mengonfigurasi parameter berikut sebagai informasi relevan dari instance ApsaraDB RDS for PostgreSQL.

      # Informasi konfigurasi database default
      DB_USERNAME=testdbuser
      DB_PASSWORD=dbPassword
      DB_HOST=pgm-****.pg.rds.aliyuncs.com
      DB_PORT=5432
      DB_DATABASE=testdb01
      
      # Informasi konfigurasi penyimpanan vektor default
      VECTOR_STORE=pgvector
      PGVECTOR_HOST=pgm-****.pg.rds.aliyuncs.com
      PGVECTOR_PORT=5432
      PGVECTOR_USER=testdbuser
      PGVECTOR_PASSWORD=dbPassword
      PGVECTOR_DATABASE=testdb01
  6. (Opsional) Jika Anda ingin menghindari menjalankan kontainer database default dan Weaviate di ECS untuk menghemat lalu lintas dan ruang penyimpanan, edit file .env dan docker-compose.yaml untuk menonaktifkan kontainer database default dan Weaviate.

    • Edit File .env

      1. (Opsional) Jalankan perintah berikut untuk menggunakan file contoh Dify .env.example untuk menimpa file .env yang ada.

        Penting

        Jika Anda sudah menyelesaikan operasi ini saat mengonfigurasi ApsaraDB RDS for PostgreSQL sebagai database dan penyimpanan vektor default, lewati langkah ini.

        cd /root/dify/docker
        cp .env.example .env
      2. Edit file .env untuk memberi komentar pada konfigurasi berikut guna menonaktifkan item konfigurasi.

        #COMPOSE_PROFILES=${VECTOR_STORE:-weaviate}
    • Edit File docker-compose.yaml

      1. Jalankan perintah berikut untuk mencadangkan file docker-compose.yaml.

        cd /root/dify/docker
        cp docker-compose.yaml docker-compose.yaml.bak
      2. Edit file docker-compose.yaml untuk memberi komentar pada konfigurasi terkait database default guna menonaktifkan item konfigurasi.

        • Beri komentar pada - db di bawah depends_on: dalam layanan API untuk menonaktifkan item konfigurasi.

          # Layanan API
          api:
            ......
            depends_on:
              #- db          
              - redis  
        • Beri komentar pada - db di bawah depends_on: dalam layanan worker untuk menonaktifkan item konfigurasi.

          # Layanan worker
          # Celery worker untuk memproses antrian.
          worker:
            ......
            depends_on:
              #- db
              - redis
        • Tambahkan item konfigurasi profiles: -pg di database postgres.

          # Database postgres.
          db:
            image: postgres:15-alpine
            profiles:
              - pg 
        • Beri komentar pada - '' di bawah profiles: di Penyimpanan Vektor Weaviate untuk menonaktifkan item konfigurasi.

          # Penyimpanan Vektor Weaviate.    
          weaviate:
             image: semitechnologies/weaviate:1.19.0
             profiles:
               #- ''
               - weaviate
  7. Jalankan perintah berikut untuk memulai citra Dify.

    cd /root/dify/docker
    docker compose -f docker-compose.yaml up -d

Langkah 3: akses layanan Dify

  1. Akses http://<ECS public IP address>/install di browser Anda untuk mengakses layanan Dify.

    Catatan

    Jika akses gagal, segarkan halaman beberapa kali. Dify sedang menginisialisasi struktur tabel penyimpanan dan informasi terkait.

  2. 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.

  1. Masuk ke platform Dify.

  2. Di pojok kanan atas, klik User Name > Settings.

  3. Di halaman Settings, pilih Model Provider > Tongyi Qianwen > (settings).

  4. Di halaman Settings Tongyi Qianwen, klik tautan untuk mengambil API Key Alibaba Cloud Bailian.

  5. Setelah memasukkan API Key yang diperoleh, klik Save.

image

Jika Anda membeli versi GPU dari ECS, Anda dapat menerapkan layanan LLM Tongyi Qianwen pada ECS.

Terapkan Layanan LLM Tongyi Qianwen pada ECS

  1. Jalankan perintah berikut untuk membuat Kontainer bernama ollama dan pastikan jaringan eksternal dapat mengakses layanan pada port Kontainer melalui port 11434 Host.

    docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

    Kembalikan ID Kontainer:

    a2201932a0c10da50845a85fc8e00c2178d8b4d0936a92f383b284a7ce51****
  2. Masuk ke Kontainer target dan jalankan perintah berikut untuk menerapkan model besar. Topik ini menggunakan model qwen2.5-coder:7b dan rjmalagon/gte-qwen2-7b-instruct:f16 dari Tongyi Qianwen sebagai contoh.

    docker exec -it a2201932a0c10da50845a85fc8e00c2178d8b4d0936a92f383b284a7ce51**** /bin/bash
    
    ollama pull qwen2.5-coder:7b
    
    ollama pull rjmalagon/gte-qwen2-7b-instruct:f16
  3. Konfigurasikan Grup Keamanan ECS untuk menambahkan Port 11434/11434 di Inbound Direction dan berikan kebijakan otorisasi dengan Alamat IP publik ECS sebagai objek otorisasi.

  4. Masuk ke platform Dify.

  5. Pilih User Name > Settings > Model Provider > Ollama > Add Model secara berurutan.

  6. Tambahkan model LLM sebagai qwen2.5-coder:7b dan model Text Embedding sebagai rjmalagon/gte-qwen2-7b-instruct:f16 secara terpisah.

    Untuk masing-masing, Model Name adalah qwen2.5-coder:7b dan rjmalagon/gte-qwen2-7b-instruct:f16. Base URL adalah http://<ECS public IP address>:11434. Gunakan pengaturan default untuk parameter lainnya.

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

  1. Klik Knowledge Base > Create Knowledge Base > Import Existing Text > Select File > Next, secara berurutan, untuk mengunggah file yang telah disiapkan ke basis pengetahuan.

    image

  2. 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.

  1. 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.

  2. Jalankan perintah di bawah ini untuk melihat ID yang sesuai dengan basis pengetahuan.

    SELECT * FROM datasets;
  3. Ganti - dengan _ pada ID target, tambahkan awalan embedding_vector_index_ dan akhiran _nod untuk 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;
  4. 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 m dan ef_construction serta 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.

    1. (Opsional) Hapus indeks yang ada.

      DROP INDEX IF EXISTS embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod;
    2. Buat indeks.

      CREATE INDEX ON embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod 
      USING hnsw (embedding vector_cosine_ops);
      WITH (m = '16', ef_construction = '100');
    Catatan

    embedding_vector_index_6b169753_****_****_be66_9bddc44a4848_nod adalah 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.

  1. Klik Studio > Create From Application Template.

    image

  2. Temukan templat Klasifikasi Pertanyaan + Basis Pengetahuan + Chatbot dan klik Use This Template.

  3. Setelah mengatur nama aplikasi dan ikon, klik Create.

  4. Di halaman Studio, pilih kartu aplikasi yang baru dibuat untuk mengakses halaman orkestrasi aplikasi.

  5. 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.

    image

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

    image

  6. 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.

    image

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

    image

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