All Products
Search
Document Center

OpenSearch:Model kustom

Last Updated:Apr 02, 2026

Model kustom memungkinkan Anda menghubungkan layanan penyematan eksternal berbasis HTTP ke OpenSearch Vector Search Edition sehingga platform secara otomatis membuat vektor data Anda saat pengindeksan dan mentransformasi kueri saat pencarian. Setelah didaftarkan, model kustom berfungsi seperti model bawaan—Anda cukup menetapkannya ke bidang tabel, dan OpenSearch akan memanggilnya atas nama Anda.

Empat jenis model didukung:

Nilai jenis modelDeskripsi
text_embeddingModel penyematan teks padat. Memerlukan dimension.
text_sparse_embeddingModel penyematan teks sparse.
image_embeddingModel vektor gambar. Memerlukan dimension.
image_analyzeModel analisis konten gambar.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans OpenSearch Vector Search Edition

  • Layanan penyematan eksternal yang dapat diakses melalui HTTP atau HTTPS (metode PUT atau POST)

  • URL titik akhir, metode HTTP, dan kredensial otentikasi untuk layanan tersebut

Buat model kustom

  1. Di panel navigasi sebelah kiri halaman detail instans OpenSearch Anda, pilih Model Management > Models.

  2. Di tab Custom Models, klik Create Model.

  3. Di panel Create Custom Model, masukkan konfigurasi model sebagai objek JSON.

Format konfigurasi model

Contoh berikut menunjukkan konfigurasi lengkap untuk model penyematan teks padat. Setiap bidang dijelaskan pada bagian Parameter di bawah ini.

{
  "modelName": "custom_model",
  "modelType": "text_embedding",
  "dimension": 1536,
  "url": "http://xxx/api/v2/services/embeddings",
  "method": "POST",
  "request": {
    "header": {
      "Authorization": "fj42091fjlgnlsvu023nva",
      "Content-Type": "application/json"
    },
    "urlParams": {
      "build": {},
      "search": {}
    },
    "requestBody": "{\"input\": [\"%{input}\"],\"input_type\": \"${input_type}\"}",
    "parameters": {
      "build": {
        "input_type": "document"
      },
      "search": {
        "input_type": "query"
      }
    }
  },
  "response": {
    "embeddings": "$.result.embeddings[*].embedding"
  }
}

Parameter

ParameterDeskripsi
modelNameNama model.
modelTypeJenis model. Nilai yang valid: text_embedding, text_sparse_embedding, image_embedding, image_analyze. Lihat tabel di bagian atas halaman ini untuk deskripsinya.
dimensionJumlah dimensi. Diperlukan ketika modelType bernilai text_embedding atau image_embedding.
urlTitik akhir layanan model.
methodMetode HTTP untuk mengakses layanan model. Nilai yang valid: PUT dan POST.
requestKonfigurasi permintaan.
request.headerHeader permintaan HTTP yang diteruskan ke layanan model tanpa modifikasi. Sertakan header otentikasi dan tipe konten di sini.
request.urlParamsParameter kueri URL yang ditambahkan ke URL permintaan (misalnya, ?abc=123).
request.urlParams.buildParameter URL yang digunakan selama pembuatan indeks.
request.urlParams.searchParameter URL yang digunakan selama kueri.
request.requestBodyBadan permintaan dalam bentuk string templat. Gunakan %{parameter_name} untuk menyisipkan variabel. Variabel bawaan: %{input} (teks input) dan %{modal} (modalitas, untuk model multimodal).
request.parametersParameter spesifik fase yang disisipkan ke templat badan permintaan. Gunakan ini jika layanan penyematan Anda memerlukan parameter berbeda untuk pengindeksan dokumen dibandingkan pengkodean kueri—misalnya, model penyematan asimetris yang menggunakan input_type: document saat pengindeksan dan input_type: query saat pencarian.
request.parameters.buildParameter yang digunakan dalam badan permintaan selama pembuatan indeks.
request.parameters.searchParameter yang digunakan dalam badan permintaan selama kueri.
responseEkspresi jalur JSON yang mengekstraksi vektor penyematan dari tanggapan model.

Referensi jalur JSON

OpenSearch menggunakan ekspresi jalur JSON untuk mengekstraksi vektor penyematan dari tanggapan model Anda. Semua jalur harus dimulai dengan $ (elemen root).

Operator

OperatorDeskripsi
$Elemen root. Setiap jalur harus dimulai dengan $.
*Wildcard. Mencocokkan nilai apa pun menggantikan nama atau indeks array.
.<name>Mengakses atribut objek.
[<number>]Mengakses elemen array berdasarkan indeks.

Contoh

Diberikan tanggapan berikut:

{
  "store": {
    "books": [
      { "title": "java", "price": 56 },
      { "title": "c++", "price": 99 }
    ]
  }
}
TujuanJalur JSONHasil
Ekstrak judul semua buku$.store.books[*].title["java", "c++"]
Ekstrak judul buku pertama$.store.books[0].title["java"]

Kelola model

Temukan model Anda di tab Custom Models pada halaman Models, lalu gunakan kolom Actions untuk melakukan salah satu operasi berikut.

OperasiDeskripsi
DebugUji model dengan mengirimkan input contoh dan memeriksa tanggapannya. Pastikan penyematan yang dikembalikan memiliki jumlah dimensi sesuai harapan (sesuai pengaturan dimension) dan nilainya tampak valid.
EditPerbarui konfigurasi model.
DisableHentikan pemrosesan data dan kueri oleh model. Tabel yang menggunakan model ini tidak lagi membuat vektor data baru atau menangani kueri terkait. Lakukan dengan hati-hati.
RestoreAktifkan kembali model yang dinonaktifkan.
DeleteHapus model secara permanen. Hanya model yang dinonaktifkan yang dapat dihapus.

Gunakan model kustom dalam tabel

Untuk menerapkan model kustom ke bidang tabel:

  1. Buka konfigurasi tabel.

  2. Klik Configure untuk bidang yang akan diproses sebelumnya.

  3. Pilih model kustom Anda dari daftar model yang tersedia.

imageimage

Setelah konfigurasi disimpan, OpenSearch secara otomatis memanggil model selama pengindeksan (menggunakan parameter build) dan saat kueri (menggunakan parameter search).