API Multimodal Embedding mengonversi teks, gambar, atau kombinasi keduanya menjadi representasi vektor padat. Gunakan embedding yang dihasilkan untuk pengambilan lintas-modal (teks-ke-gambar, gambar-ke-teks) dan pencarian kemiripan.
Layanan ini didasarkan pada model bahasa besar multimodal (MLLM) Qwen2-VL dan mendukung input baik single-modal maupun multimodal.
Model yang tersedia
| Model | ID Layanan | Dimensi | Bahasa | Deskripsi |
|---|---|---|---|---|
| M2-Encoder-Multimodal Vector Model | ops-m2-encoder | 768 | Bilingual Tionghoa-Inggris | Dilatih pada 6 miliar pasangan gambar-teks (3 miliar Tionghoa, 3 miliar Inggris) berdasarkan BM-6B. Mendukung pengambilan lintas-modal antara teks dan gambar, serta klasifikasi gambar. |
| M2-Encoder-Large-Multimodal Vector Model | ops-m2-encoder-large | 1024 | Bilingual Tionghoa-Inggris | Model yang lebih besar dengan 1 miliar parameter. Memberikan kemampuan ekspresi yang lebih kuat dan performa lebih tinggi dalam tugas multimodal dibandingkan ops-m2-encoder. |
| GME Multimodal Vector-Qwen2-VL-2B | ops-gme-qwen2-vl-2b-instruct | 1536 | - | Dilatih pada MLLM Qwen2-VL. Mendukung kombinasi input single-modal dan multimodal, memproses teks, gambar, dan jenis data gabungan. |
Untuk ops-m2-encoder dan ops-m2-encoder-large, teks dan gambar tidak dapat dimasukkan dalam dokumen yang sama.
Batas laju
Batas permintaan per detik (QPS) berlaku per Akun Alibaba Cloud, termasuk semua Pengguna RAM di bawah akun tersebut.
| Model | QPS |
|---|---|
ops-m2-encoder | 10 |
Untuk meminta batas QPS yang lebih tinggi, kirimkan Tiket.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kunci API dan Titik akhir layanan untuk AI Search Open Platform. Untuk detailnya, lihat Dapatkan titik akhir layanan.
Referensi API
Titik akhir
POST {host}/v3/openapi/workspaces/{workspace_name}/multi-modal-embedding/{service_id}Ganti parameter path dengan nilai aktual:
| Parameter | Deskripsi | Contoh |
|---|---|---|
host | Titik akhir layanan. Mendukung akses Internet dan VPC. | http://ops-cn-hangzhou.opensearch.aliyuncs.com |
workspace_name | Nama ruang kerja. | default |
service_id | ID model penyematan. | ops-m2-encoder |
Permintaan
Ukuran badan permintaan tidak boleh melebihi 8 MB.
Header
| Parameter | Tipe | Wajib | Deskripsi | Contoh |
|---|---|---|---|---|
| Content-Type | String | Ya | Tipe konten permintaan. | application/json |
| Authorization | String | Ya | Kunci API untuk otentikasi. | Bearer OS-d1**2a |
Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
input | List<ContentObject> | Ya | Daftar input. Maksimal 32 entri per permintaan. |
Bidang ContentObject:
| Bidang | Tipe | Wajib | Deskripsi |
|---|---|---|---|
text | String | Tidak | Teks yang akan disematkan. |
image | String | Tidak | Gambar yang akan disematkan. Menerima URL atau data yang dikodekan Base64. |
Untuk ops-m2-encoder dan ops-m2-encoder-large, setiap ContentObject hanya boleh berisi salah satu bidang text atau image. Jika kedua bidang diberikan, gambar akan diabaikan.
Untuk ops-gme-qwen2-vl-2b-instruct, sebuah ContentObject dapat berisi kedua bidang text dan image untuk menghasilkan penyematan multimodal gabungan.
Format input gambar:
URL — Harus dapat diakses.
{ "image": "http://example.com/photo.jpg" }Base64 — Gunakan format
data:image/{format};base64,{base64_image}, di mana{format}adalah tipe gambar aktual (misalnya,jpeg,png) dan{base64_image}adalah data terkode.{ "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHCB..." }
Tanggapan
Tanggapan sukses mencakup bidang-bidang berikut:
| Bidang | Tipe | Deskripsi |
|---|---|---|
request_id | String | Pengidentifikasi unik permintaan. |
latency | Int | Waktu pemrosesan dalam milidetik. |
usage.image | Int | Jumlah gambar yang diproses. |
usage.token_count | Int | Jumlah token yang diproses. |
result.embeddings | List | Array hasil penyematan. Setiap elemen sesuai dengan satu entri input. |
result.embeddings[].index | Int | Posisi input dalam array permintaan (berbasis nol). |
result.embeddings[].embedding | List<Double> | Vektor penyematan. |
Tanggapan kesalahan mencakup bidang code dan message yang menjelaskan kesalahan:
| Bidang | Tipe | Deskripsi |
|---|---|---|
request_id | String | Pengidentifikasi unik permintaan. |
latency | Int | 0 untuk tanggapan kesalahan. |
code | String | Kode kesalahan. |
message | String | Deskripsi kesalahan. |
Untuk daftar lengkap kode kesalahan, lihat Kode status.
Contoh
Hasilkan penyematan gambar
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-api-key>" \
"http://<your-endpoint>/v3/openapi/workspaces/default/multi-modal-embedding/ops-m2-encoder" \
-d '{
"input": [
{
"image": "http://example.com/photo.jpg"
}
]
}'Ganti placeholder berikut dengan nilai aktual:
| Placeholder | Deskripsi | Contoh |
|---|---|---|
<your-api-key> | Kunci API untuk otentikasi | OS-d1xxxxx2a |
<your-endpoint> | Titik akhir layanan | ops-cn-hangzhou.opensearch.aliyuncs.com |
Contoh tanggapan sukses
{
"request_id": "B4AB89C8-B135-****-A6F8-2BAB801A2CE4",
"latency": 38,
"usage": {
"image": 1,
"token_count": 28
},
"result": {
"embeddings": [
{
"index": 0,
"embedding": [
-0.033447265625,
0.10577392578125,
-0.0015211105346679688,
-0.044189453125,
"...",
0.004688262939453125,
-4.5239925384521484E-5
]
}
]
}
}Contoh tanggapan kesalahan
{
"request_id": "651B3087-8A07-****-B931-9C4E7B60F52D",
"latency": 0,
"code": "InvalidParameter",
"message": "JSON parse error: Cannot deserialize value of type `InputType` from String \"xxx\""
}