All Products
Search
Document Center

ApsaraDB for MongoDB:Layanan Model MongoDB

Last Updated:Jun 25, 2026

Anda dapat menggunakan Layanan Model untuk ApsaraDB for MongoDB guna melakukan vector search dan memanggil large model secara langsung di dalam database Anda. Layanan ini terintegrasi dengan MongoDB Search, sehingga menghilangkan kebutuhan akan database vektor atau layanan inferensi terpisah. Artikel ini menunjukkan alur kerja lengkap: menulis teks biasa → secara otomatis menghasilkan indeks vektor → melakukan kueri dengan bahasa alami.

Prasyarat

  • Anda telah membuat instans replica set atau sharded cluster ApsaraDB for MongoDB versi 8.3 atau lebih baru. Untuk petunjuknya, lihat Create Instance.

  • Anda telah menginstal mongosh (MongoDB Shell) di mesin lokal Anda.

Aktifkan node Search

  1. Pada panel navigasi kiri halaman detail instans, pilih AI Capabilities > MongoDB Search.

  2. Klik Enable Search Service, pilih spesifikasi dan jumlah node Search, lalu konfirmasi.

  3. Tunggu hingga status node Search berubah menjadi running. Proses ini biasanya memerlukan beberapa menit.

Setelah layanan diaktifkan, instans mendukung tahapan agregasi $search dan $vectorSearch, serta perintah manajemen indeks Search seperti createSearchIndexes.

Aktifkan Layanan Model

  1. Pada panel navigasi kiri halaman detail instans, pilih AI Capabilities > Model Service.

  2. Klik Activate Now. Setelah layanan diaktifkan, sistem akan menetapkan titik akhir khusus untuk instans dan menghasilkan API Key.

    dds-<instance-id>-aigateway.mongodbaiapp.<region>.rds.aliyuncs.com
Penting
  • Kunci API lengkap hanya ditampilkan sekali saat pembuatan. Jika kunci tersebut hilang atau dikompromikan, buat ulang di Konsol.

  • Layanan Model hanya dapat diakses dari jaringan internal. Sebelum melakukan panggilan, pastikan alamat IP klien telah ditambahkan ke daftar putih alamat IP instans. Jika tidak, permintaan akan ditolak. Untuk mengonfigurasi daftar putih, buka Data Security > IP Address Whitelist Settings pada halaman detail instans.

Buat indeks vektor auto-embedding

Hubungkan ke instans. Informasi koneksi dapat ditemukan pada halaman Database Connection di Konsol.

mongosh "mongodb://<user>:<password>@dds-<instance-id>.mongodb.<region>.rds.aliyuncs.com:3717,dds-<instance-id>.mongodb.<region>.rds.aliyuncs.com:3717/admin?replicaSet=mgset-<replica-set-id>"

Setelah terhubung, jalankan skrip berikut:

use("mydb");

// 1. Masukkan dokumen contoh—hanya teks biasa, tidak perlu perhitungan vektor
db.articles.insertMany([
  { title: "Cat",  content: "Cats are small, agile mammals often kept as pets" },
  { title: "Dog",  content: "Dogs are loyal companions known for their trainability" },
  { title: "Bird", content: "Most birds can fly, and many migrate across continents" }
]);

// 2. Buat indeks vektor autoEmbed untuk bidang content
//    MongoDB secara otomatis menghasilkan vektor menggunakan model yang ditentukan
db.runCommand({
  createSearchIndexes: "articles",
  indexes: [{
    name: "vector_index",
    type: "vectorSearch",
    definition: {
      fields: [
        { type: "autoEmbed", modality: "text", path: "content", model: "text-embedding-v4" },
        { type: "filter", path: "title" }
      ]
    }
  }]
});

// 3. Periksa status indeks—indeks siap digunakan ketika queryable bernilai true
db.articles.aggregate([{ $listSearchIndexes: {} }]);

Untuk set data kecil, indeks biasanya dibuat dalam beberapa detik. Indeks siap digunakan ketika nilai queryable pada output bernilai true.

Lakukan pencarian semantik

Setelah indeks siap, Anda dapat melakukan kueri menggunakan bahasa alami. Teks kueri akan secara otomatis diubah menjadi vektor oleh model yang sama.

db.articles.aggregate([
  {
    $vectorSearch: {
      index: "vector_index",
      path: "content",
      query: "which animals can fly",   // Teks biasa, bukan vektor
      numCandidates: 100,
      limit: 3
    }
  },
  { $project: { title: 1, score: { $meta: "vectorSearchScore" } } }
]);

Hasil yang diharapkan: Dokumen dengan judul Bird memiliki skor tertinggi karena kontennya paling dekat secara semantik dengan kueri "which animals can fly".

Panggil model lain (Opsional)

Layanan Model juga mendukung model lain. Model yang tersedia meliputi: qwen3.6-flash, qwen3.6-plus, qwen3.5-flash, qwen3.5-plus, dan deepseek-v4-pro.

Kirim permintaan chat streaming:

curl -X POST \
  http://dds-<instance-id>-aigateway.mongodbaiapp.<region>.rds.aliyuncs.com:8000/v1/chat/completions \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  --no-buffer \
  -d '{
    "model": "qwen3.6-plus",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 100,
    "stream": true
  }'

Ganti placeholder berikut:

Placeholder

Deskripsi

<instance-id>

Halaman detail instans di Konsol

<region>

Wilayah tempat instans dideploy, misalnya cn-beijing

<api-key>

Model Service > Manajemen Kunci API

Langkah selanjutnya

  • Pencarian hibrida: Gabungkan $search (full-text) dan $vectorSearch (semantik) untuk meningkatkan recall.

  • Ganti model: Ubah bidang model dalam definisi indeks autoEmbed untuk mengganti model penyematan tanpa perlu mengelola bidang vektor secara manual.