Model embedding multimodal mengonversi teks, gambar, dan video menjadi embedding dalam ruang semantik bersama untuk memungkinkan pengambilan lintas-modalitas (cross-modal retrieval), klasifikasi konten, dan pencarian kemiripan.
Kemampuan inti
-
Pengambilan lintas-modalitas (Cross-modal retrieval): Lakukan pencarian semantik lintas jenis konten, seperti teks-ke-gambar, gambar-ke-video, atau gambar-ke-gambar.
-
Kemiripan semantik: Ukur kemiripan semantik antara berbagai jenis konten dalam ruang embedding terpadu.
-
Klasifikasi dan pengelompokan konten: Kelompokkan, beri label, dan klasterkan konten berdasarkan embedding semantik.
Fitur utama: Embedding untuk semua modalitas (teks, gambar, dan video) berbagi ruang semantik yang sama, memungkinkan pencocokan dan perbandingan lintas-modalitas secara langsung menggunakan metode seperti cosine similarity. Lihat embedding teks dan multimodal untuk detail pemilihan dan penggunaan model.
Layanan model ini hanya tersedia di wilayah Tiongkok (Beijing). Untuk memanggil layanan ini, gunakan Kunci API dari wilayah tersebut.
Jenis embedding
Model embedding multimodal mendukung dua metode untuk menghasilkan embedding:
-
Embedding multimodal independen: Menghasilkan embedding terpisah untuk setiap input, seperti teks, gambar, video, atau beberapa gambar, dalam
contents. Misalnya, input berupa satu string teks dan satu gambar menghasilkan dua embedding independen. Ini ideal untuk membandingkan item individual, seperti dalam pencarian gambar-ke-gambar atau teks-ke-gambar. -
Embedding multimodal terpadu (fused): Menggabungkan semua input dalam contents menjadi satu embedding tunggal untuk mencapai representasi semantik lintas-modalitas yang terpadu. Ini cocok untuk skenario yang memerlukan pemahaman holistik terhadap konten multimodal, seperti menggabungkan gambar produk dan deskripsi teksnya menjadi representasi terpadu untuk pengambilan. Untuk
qwen3-vl-embedding, Anda mengaktifkan fusi dengan mengaturenable_fusion=true. Embedding terpadu mendukung kombinasi berikut:-
Fusi teks dan gambar
-
Fusi teks dan video
-
Menggabungkan beberapa gambar dengan teks (dengan meneruskan beberapa entri
image) -
Fusi gambar, video, dan teks
-
qwen2.5-vl-embeddinghanya mendukung embedding terpadu, bukan embedding independen.tongyi-embedding-vision-plusdantongyi-embedding-vision-flashhanya mendukung embedding independen.
Untuk pengenalan model, panduan pemilihan, dan instruksi penggunaan, lihat Embedding teks dan multimodal.
Ikhtisar model
Singapura
|
Model |
Dimensi embedding |
Batas panjang teks |
Batas ukuran gambar |
Batas ukuran video |
Harga (per 1 juta token input) |
Kuota gratis (Catatan) |
|
tongyi-embedding-vision-plus |
1152 |
1.024 token |
Hingga 3 MB per gambar. Mendukung hingga 8 gambar. |
Hingga 10 MB per file video |
Gambar/Video: $0,09 Teks: $0,09 |
1 juta token Berlaku selama 90 hari setelah mengaktifkan Model Studio |
|
tongyi-embedding-vision-flash |
768 |
Gambar/Video: $0,03 Teks: $0,09 |
Tiongkok (Beijing)
|
Model |
Dimensi embedding |
Batas panjang teks |
Batas ukuran gambar |
Batas ukuran video |
Harga (per 1 juta token input) |
|
qwen3-vl-embedding |
2560 (default), 2048, 1536, 1024, 768, 512, 256 |
32.000 token |
Hingga 5 gambar, masing-masing hingga 5 MB |
Hingga 50 MB per file video |
Gambar/Video: $0,258 Teks: $0,1 |
|
multimodal-embedding-v1 |
1024 |
512 token |
Hingga 8 gambar, masing-masing 3 MB |
Hingga 10 MB per file video |
Uji coba gratis |
Format input dan batas penggunaan
|
Model multimodal terpadu |
||||
|
Model |
Teks |
Gambar |
Video |
Batas permintaan |
|
qwen3-vl-embedding |
Mendukung 33 bahasa utama, termasuk Tionghoa, Inggris, Jepang, Korea, Prancis, dan Jerman. |
JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS, SGI (URL atau Base64 didukung) |
MP4, AVI, MOV (hanya URL) |
Hingga 20 elemen konten per permintaan, dengan maksimal 5 gambar dan 1 video. |
|
Model multimodal independen |
||||
|
Model |
Teks |
Gambar |
Video |
Batas permintaan |
|
tongyi-embedding-vision-plus |
Tionghoa dan Inggris |
JPG, PNG, BMP (URL atau Base64 didukung) |
MP4, MPEG, MOV, MPG, WEBM, AVI, FLV, MKV (hanya URL) |
Tidak ada batas jumlah elemen konten. Jumlah total token input tidak boleh melebihi batas token pemrosesan batch. |
|
tongyi-embedding-vision-flash |
||||
|
multimodal-embedding-v1 |
JPG, PNG, BMP (URL atau Base64 didukung) |
Hingga 20 elemen konten per permintaan, dengan maksimal 20 segmen teks, 1 gambar, dan 1 video. |
||
Semua model menerima input teks, gambar, dan video, baik secara individual maupun kombinasi. Modeltongyi-embedding-vision-plus,tongyi-embedding-vision-flashjuga mendukungmulti_imagesuntuk urutan gambar.
Kemampuan model
|
Model |
Dimensi default |
Tipe vektor |
Input yang didukung |
Deskripsi |
|
qwen3-vl-embedding |
2560 |
Independen / Terpadu |
teks, gambar, video, beberapa gambar |
Mode terpadu, diaktifkan dengan parameter |
|
tongyi-embedding-vision-plus |
1152 |
Hanya independen |
teks, gambar, video, multi_images |
Mendukung urutan |
|
tongyi-embedding-vision-flash |
768 |
|||
|
multimodal-embedding-v1 |
1024 |
teks, gambar, video |
Dimensi vektor tetap pada 1.024 dan tidak dapat dikonfigurasi. |
Prasyarat
Dapatkan Kunci API dan ekspor Kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, instal SDK DashScope.
Panggilan HTTP
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
Permintaan |
Embedding multimodal independenContoh berikut menggunakan model
Embedding multimodal terpaduModel
|
Header permintaan |
|
|
Content-Type Tipe konten permintaan. Harus berupa |
|
|
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. |
|
Isi permintaan |
|
|
model Nama model. Pilih model dari Ikhtisar model. |
|
|
input Konten input. parameters Parameter pemrosesan embedding. Untuk panggilan HTTP, Anda harus membungkus parameter ini dalam objek parameters. Untuk panggilan SDK, Anda dapat menggunakan parameter ini secara langsung. |
Tanggapan |
Tanggapan sukses
Catatan
Bidang
Catatan
Tanggapan error
|
|
output Output tugas. |
|
|
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. |
|
|
code Kode error. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode error. |
|
|
message Pesan error detail. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode error. |
|
|
usage Statistik tentang penggunaan token. |
Penggunaan SDK
ParameterinputSDK dipetakan keinput.contentsdalam badan permintaan HTTP, tetapi strukturnya berbeda.
Contoh kode
Embedding gambar
URL gambar
import dashscope
import json
from http import HTTPStatus
# Ganti dengan URL gambar Anda.
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
# Panggil API model.
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Gambar lokal
Untuk menghasilkan embedding dari gambar lokal, konversi gambar menjadi string Base64:
import dashscope
import base64
import json
from http import HTTPStatus
# Baca gambar dan konversi ke Base64. Ganti xxx.png dengan file gambar Anda.
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
# Baca file dan konversi ke Base64.
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# Atur format gambar.
image_format = "png" # Ubah ini sesuai format gambar Anda (misalnya, jpg, bmp).
image_data = f"data:image/{image_format};base64,{base64_image}"
# Data input
input = [{'image': image_data}]
# Panggil API model.
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Embedding video
Saat ini, model hanya mendukung input video melalui URL. File video lokal tidak didukung.
import dashscope
import json
from http import HTTPStatus
# Ganti dengan URL video Anda.
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
# Panggil API model.
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Embedding teks
import dashscope
import json
from http import HTTPStatus
text = "General multimodal representation model example"
input = [{'text': text}]
# Panggil API model.
resp = dashscope.MultiModalEmbedding.call(
model="tongyi-embedding-vision-plus",
input=input
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"code": getattr(resp, "code", ""),
"message": getattr(resp, "message", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Embedding terpadu
import dashscope
import json
import os
from http import HTTPStatus
# Menggabungkan teks, gambar, dan video menjadi satu embedding terpadu.
# Ideal untuk kasus penggunaan seperti pengambilan lintas-modalitas dan pencarian gambar.
text = "This is a test text for generating a multimodal fused embedding."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
# Input mencakup teks, gambar, dan video. Atur enable_fusion=True untuk menghasilkan embedding terpadu.
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
resp = dashscope.MultiModalEmbedding.call(
# Jika variabel lingkungan tidak diatur, berikan Kunci API Model Studio Anda, misalnya api_key="sk-xxx".
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True,
# Opsional: Tentukan dimensi embedding. Nilai valid: 2560, 2048, 1536, 1024, 768, 512, dan 256. Default: 2560.
# parameters={"dimension": 1024}
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
Embedding terpadu multi-gambar
Gunakan qwen3-vl-embedding untuk menggabungkan beberapa gambar dan teks menjadi satu embedding. Untuk menggabungkan beberapa gambar, teruskan beberapa item image. Ini ideal untuk pengambilan semantik menggunakan gambar produk multi-sudut dan deskripsi teks.
import dashscope
import json
import os
from http import HTTPStatus
# Menggabungkan beberapa gambar produk dan deskripsi menjadi satu embedding.
# Ideal untuk pengambilan semantik komprehensif menggunakan gambar produk multi-sudut dan deskripsi teks.
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image1 = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
image2 = "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"
# Teruskan beberapa item gambar dan atur enable_fusion=True untuk menggabungkan semua input menjadi satu embedding.
input_data = [
{"text": text},
{"image": image1},
{"image": image2}
]
resp = dashscope.MultiModalEmbedding.call(
# Jika variabel lingkungan tidak diatur, berikan Kunci API Model Studio Anda, misalnya api_key="sk-xxx".
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
Versi snapshot 2026-03-06
Contoh ini menunjukkan cara menggunakan modeltongyi-embedding-vision-plus-2026-03-06dan parameterres_level(resolusi) sertamax_video_frames(frame video). Dibangun di atas model dasar Qwen3, model ini mendukung 30+ bahasa dan menghasilkan embedding independen maupun terpadu.
import dashscope
import json
import os
from http import HTTPStatus
# Menunjukkan penggunaan parameter res_level (resolusi) dan max_video_frames (frame video).
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
text = "This is a visual multimodal representation model."
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152, # Nilai valid: 1152, 1024, 512, 256, 128, 64
res_level=1, # Tingkat resolusi: 0, 1, 2, atau 3. Default: 1.
max_video_frames=64 # Jumlah maksimum frame video yang diambil. Default: 8. Maksimum: 64.
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Untuk menghasilkan embedding terpadu dengan versi 2026-03-06, tempatkan teks, gambar, dan video dalam objek konten yang sama. Model menggabungkan semua input menjadi satu embedding bertipe fused.
import dashscope
import json
import os
from http import HTTPStatus
# Untuk membuat embedding terpadu, tempatkan teks dan gambar dalam objek konten yang sama.
# Model menggabungkan semua input menjadi satu embedding bertipe `fused`.
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input_data = [
{"text": text, "image": image}
]
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
Contoh output
{
"status_code": 200,
"request_id": "40532987-ba72-42aa-a178-bb58b52fb7f3",
"code": "",
"message": "",
"output": {
"embeddings": [
{
"index": 0,
"embedding": [
-0.009490966796875,
-0.024871826171875,
-0.031280517578125,
...
],
"type": "text"
}
]
},
"usage": {
"input_tokens": 10,
"input_tokens_details": {
"image_tokens": 0,
"text_tokens": 10
},
"output_tokens": 1,
"total_tokens": 11
}
}Kode error
Jika panggilan model gagal dan mengembalikan pesan error, lihat Kode error untuk penyelesaian.