All Products
Search
Document Center

Alibaba Cloud Model Studio:API embedding multimodal

Last Updated:Mar 27, 2026

Model embedding multimodal mengubah teks, gambar, atau video menjadi representasi vektor terpadu yang cocok untuk tugas seperti klasifikasi video, klasifikasi gambar, dan pencarian teks-ke-gambar.

Kemampuan inti

  • Pengambilan lintas-modalitas: Lakukan pencarian lintas jenis konten, seperti teks-ke-gambar, gambar-ke-video, atau image search.

  • Kesamaan semantik: Hitung kesamaan antara berbagai jenis konten dalam ruang vektor terpadu.

  • Klasifikasi dan pengelompokan konten: Kelompokkan, beri tag, dan kelompokkan konten berdasarkan embedding semantik.

Atribut utama: Semua modalitas (teks, gambar, video) menghasilkan embedding dalam ruang semantik yang sama, memungkinkan pencocokan dan perbandingan lintas-modalitas secara langsung menggunakan metode seperti cosine similarity. Untuk informasi lebih lanjut mengenai pemilihan model dan metode penerapan, lihat embedding teks dan multimodal.
Penting

Layanan model ini hanya tersedia di wilayah China (Beijing). Gunakan API key dari wilayah ini untuk memanggil layanan.

Jenis vektor

Model embedding multimodal mendukung dua metode pembuatan vektor:

  • Vektor independen multimodal: Model menghasilkan vektor independen untuk setiap input (seperti teks, gambar, video, atau beberapa gambar) dalam array contents. Misalnya, jika Anda memberikan satu potong teks dan satu gambar, model akan mengembalikan dua vektor independen. Metode ini cocok untuk skenario yang memerlukan perbandingan berbagai jenis konten secara individual, seperti pencarian gambar-ke-gambar atau teks-ke-gambar.

  • Embedding fusi multimodal: Menggabungkan semua input dalam contents menjadi satu embedding tunggal untuk representasi semantik lintas-modalitas. Ideal untuk skenario yang memerlukan pemahaman komprehensif terhadap konten multimodal, seperti menggabungkan gambar produk dan teks deskriptif menjadi representasi terpadu untuk pengambilan. Untuk qwen3-vl-embedding, aktifkan mode fusi dengan menyetel enable_fusion=true. Embedding fusi mendukung kombinasi berikut:

    • Teks dan gambar

    • Teks dan video

    • Beberapa gambar dan teks (dengan meneruskan beberapa entri image)

    • Gambar, video, dan teks

qwen2.5-vl-embedding hanya mendukung embedding fusi, bukan embedding independen. tongyi-embedding-vision-plus dan tongyi-embedding-vision-flash hanya mendukung embedding independen.

Untuk deskripsi model, panduan pemilihan, dan penggunaan, lihat Embedding teks dan multimodal.

Ikhtisar model

Singapura

Nama 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

China (Beijing)

Nama 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 batasan bahasa

Model multimodal fusi

Model

Teks

Gambar

Video

Batas permintaan

qwen3-vl-embedding

Mendukung 33 bahasa utama, termasuk Mandarin, 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

Tiongkok dan Inggris

JPG, PNG, BMP (URL atau Base64 didukung)

MP4, MPEG, MOV, MPG, WEBM, AVI, FLV, MKV (hanya URL)

Tidak ada batasan jumlah elemen konten. Total jumlah 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 mendukung input teks, gambar, dan video, baik secara individual maupun kombinasi. Model tongyi-embedding-vision-plus, tongyi-embedding-vision-flash juga mendukung input multi_images untuk urutan gambar.

Kemampuan model

Model

Dimensi default

Jenis

Input yang didukung

Deskripsi

qwen3-vl-embedding

2.560

Independen / Fusi

teks, gambar, video, multi_images

Mode fusi, diaktifkan dengan parameter enable_fusion, menggabungkan input multimodal menjadi satu vektor.

tongyi-embedding-vision-plus

1.152

Hanya independen

teks, gambar, video, multi_images

Mendukung urutan multi_images dengan hingga 8 gambar.

tongyi-embedding-vision-flash

768

multimodal-embedding-v1

1.024

teks, gambar, video

Parameter dimensi tidak didukung. Dimensi tetap pada 1024.

Prasyarat

Dapatkan API key dan ekspor API key sebagai variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, instal DashScope SDK.

Panggilan HTTP

POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding

Permintaan

Embedding independen multimodal

Contoh berikut menggunakan model tongyi-embedding-vision-plus untuk menghasilkan embedding independen (satu embedding untuk setiap input). Anda dapat menggantinya dengan nama model lain. Jenis multi_images hanya didukung oleh tongyi-embedding-vision-plus dan tongyi-embedding-vision-flash. Model qwen3-vl-embedding juga mendukung mode embedding fusi, yang diaktifkan dengan menyetel enable_fusion=true. Untuk detailnya, lihat tab "Embedding fusi multimodal".
curl --silent --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "tongyi-embedding-vision-plus",
    "input": {
        "contents": [ 
            {"text": "Multimodal embedding model"},
            {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
            {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"},
            {"multi_images": [
                "https://img.alicdn.com/imgextra/i2/O1CN019eO00F1HDdlU4Syj5_!!6000000000724-2-tps-2476-1158.png",
                "https://img.alicdn.com/imgextra/i2/O1CN01dSYhpw1nSoamp31CD_!!6000000005089-2-tps-1765-1639.png"
                ]
              }
        ]
    }
}'

Embedding fusi multimodal

Model qwen3-vl-embedding mendukung pembuatan embedding fusi. Setel enable_fusion=true untuk menggabungkan semua input menjadi satu embedding. Ini mendukung berbagai kombinasi, seperti teks dengan gambar, teks dengan video, beberapa gambar dengan teks, dan campuran gambar, video, serta teks. Contoh berikut menunjukkan fusi campuran beberapa gambar, video, dan teks.
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen3-vl-embedding",
    "input": {
        "contents": [
            {"text": "Product description text"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"},
            {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
            {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"}
        ]
    },
    "parameters": {
        "enable_fusion": true
    }
}'

Header permintaan

Content-Type string (Wajib)

Tipe konten permintaan. Harus berupa application/json.

Authorization string (Wajib)

Kredensial autentikasi menggunakan Kunci API Model Studio.

Contoh: Bearer sk-xxxx

Isi permintaan

model string(Wajib)

Nama model. Tetapkan ke nama model dari Ikhtisar model.

input objek(Wajib)

Konten input.

Properti

contents array(Wajib)

Daftar konten untuk diproses. Setiap elemen adalah kamus atau string yang menentukan tipe dan nilai konten: {"modality_type": "input_string_or_image/video_url"}. Jenis yang didukung: text, image, video, multi_images.

Model qwen3-vl-embedding mendukung pembuatan embedding independen maupun fusi. Untuk menghasilkan embedding fusi, tambahkan bidang boolean enable_fusion dan atur ke true. Model qwen2.5-vl-embedding hanya mendukung embedding fusi.
  • Teks: Kunci adalah text, nilai adalah string. Anda dapat meneruskan string langsung tanpa kamus.

  • Gambar: Kunci adalah image. Nilai dapat berupa URL publik atau URI Data Base64 (data:image/{format};base64,{data}), di mana {format} adalah format gambar (seperti jpeg atau png) dan {data} adalah string Base64.

  • Beberapa gambar: Didukung hanya oleh tongyi-embedding-vision-plus dan tongyi-embedding-vision-flash. Kunci adalah multi_images, nilai adalah daftar gambar (hingga 8) sesuai format di atas.

  • Video: Kunci adalah video. Nilai harus berupa URL publik.

parameters objek (Opsional)

Parameter untuk pemrosesan vektor. Bungkus dalam objek parameters untuk panggilan HTTP; gunakan langsung untuk panggilan SDK.

Properti

output_type string Opsional

Format vektor output. Saat ini hanya dense yang didukung.

dimension integer Opsional

Dimensi vektor output. Nilai yang didukung bervariasi tergantung model:

  • qwen3-vl-embedding: Mendukung 2.560, 2.048, 1.536, 1.024, 768, 512, dan 256. Default adalah 2.560.

  • tongyi-embedding-vision-plus: Tidak mendukung parameter ini. Mengembalikan embedding dengan dimensi tetap 1.152.

  • tongyi-embedding-vision-flash: Tidak mendukung parameter ini. Mengembalikan embedding dengan dimensi tetap 768.

  • multimodal-embedding-v1: Tidak mendukung parameter ini. Mengembalikan embedding dengan dimensi tetap 1.024.

fps float Opsional

Mengontrol laju ekstraksi frame video. Rentang: [0, 1] (lebih rendah = lebih sedikit frame). Default: 1,0.

instruct string Opsional

Deskripsi tugas kustom untuk membantu model memahami maksud kueri. Gunakan bahasa Inggris untuk peningkatan performa 1–5%.

enable_fusion bool Opsional

Menentukan apakah akan menghasilkan embedding fusi. Parameter ini hanya didukung oleh model qwen3-vl-embedding. Jika diatur ke true, semua konten multimodal dalam array contents digabung menjadi satu embedding. Default adalah false, yang menghasilkan embedding independen untuk setiap modalitas. Embedding fusi mendukung kombinasi seperti teks dengan gambar, teks dengan video, beberapa gambar dengan teks (dengan meneruskan beberapa item gambar), dan campuran gambar, video, serta teks. Ini cocok untuk kasus pengambilan yang memerlukan pemahaman komprehensif terhadap konten multimodal.

Tanggapan

Tanggapan sukses

{
    "output": {
        "embeddings": [
            {
                "index": 0,
                "embedding": [
                    -0.026611328125,
                    -0.016571044921875,
                    -0.02227783203125,
                    ...
                ],
                "type": "text"
            },
            {
                "index": 1,
                "embedding": [
                    0.051544189453125,
                    0.007717132568359375,
                    0.026611328125,
                    ...
                ],
                "type": "image"
            },
            {
                "index": 2,
                "embedding": [
                    -0.0217437744140625,
                    -0.016448974609375,
                    0.040679931640625,
                    ...
                ],
                "type": "video"
            }
        ]
    },
    "usage": {
        "input_tokens": 10,
        "image_tokens": 896
    },
    "request_id": "1fff9502-a6c5-9472-9ee1-73930fdd04c5"
}

Tanggapan kesalahan

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

output objek

Hasil embedding.

Properti

embeddings array

Daftar hasil vektor, satu untuk setiap elemen input.

Properti

index int

Indeks dalam daftar input.

embedding array

Vektor embedding.

type string

Jenis input: text, image, video, multi_images, atau vl (hanya dengan qwen3-vl-embedding).

request_id string

Identifikasi unik untuk permintaan. Gunakan untuk pelacakan dan troubleshooting masalah.

code string

Kode kesalahan. Dikembalikan hanya ketika permintaan gagal. Lihat kode kesalahan untuk detailnya.

message string

Pesan kesalahan rinci. Dikembalikan hanya ketika permintaan gagal. Lihat kode kesalahan untuk detailnya.

usage objek

Statistik penggunaan token.

Properti

input_tokens int

Token input untuk permintaan ini.

image_tokens int

Token gambar/video untuk permintaan ini. Untuk video, sistem mengambil sampel frame (maksimum dikontrol oleh konfigurasi) dan menghitung token dari hasilnya.

image_count int

Jumlah gambar untuk permintaan ini.

duration int

Durasi video dalam detik.

Penggunaan SDK

Badan permintaan SDK berbeda dari panggilan HTTP: input dalam SDK sesuai dengan input.contents dalam HTTP.

Contoh kode

Embedding gambar

URL gambar

import dashscope
import json
from http import HTTPStatus
# Ganti ini 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

Konversi gambar lokal ke Base64 dan panggil model untuk embedding:

import dashscope
import base64
import json
from http import HTTPStatus
# Baca gambar dan konversi ke Base64. Ganti xxx.png dengan nama file atau path 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 aktual, seperti jpg atau 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

Input video harus berupa URL. Video lokal tidak didukung.
import dashscope
import json
from http import HTTPStatus
# Ganti ini 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 fusi

import dashscope
import json
import os
from http import HTTPStatus

# Embedding fusi multimodal: Menggabungkan teks, gambar, dan video menjadi satu embedding fusi.
# Ideal untuk aplikasi seperti pengambilan lintas-modalitas dan image search.
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 berisi teks, gambar, dan video. Setel enable_fusion=True untuk menghasilkan satu embedding fusi.
input_data = [
    {"text": text},
    {"image": image},
    {"video": video}
]

# Gunakan qwen3-vl-embedding untuk menghasilkan embedding fusi.
resp = dashscope.MultiModalEmbedding.call(
    # Jika variabel lingkungan tidak disetel, berikan DashScope API Key Anda secara langsung, misalnya api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-vl-embedding",
    input=input_data,
    enable_fusion=True,
    # Parameter opsional: Tentukan dimensi embedding. Nilai yang didukung adalah 2560, 2048, 1536, 1024, 768, 512, dan 256. Default adalah 2560.
    # parameters={"dimension": 1024}
)

print(json.dumps(resp, ensure_ascii=False, indent=4))

Embedding fusi multi-gambar

Contoh ini menunjukkan cara menggunakan model qwen3-vl-embedding untuk menggabungkan beberapa gambar dan teks menjadi satu embedding. Untuk melakukan fusi multi-gambar ini, teruskan beberapa item image. Metode ini ideal untuk pengambilan semantik komprehensif produk menggunakan gambar multi-sudut dan deskripsi teks.

import dashscope
import json
import os
from http import HTTPStatus

# Embedding fusi multi-gambar + teks: Menggabungkan beberapa gambar produk dan teks deskripsi menjadi satu embedding.
# Cocok 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 untuk fusi multi-gambar. `enable_fusion=True` menggabungkan semua input menjadi satu embedding.
input_data = [
    {"text": text},
    {"image": image1},
    {"image": image2}
]

resp = dashscope.MultiModalEmbedding.call(
    # Jika variabel lingkungan tidak disetel, berikan DashScope API Key Anda secara langsung, 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))

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 kesalahan

Jika panggilan model gagal dan mengembalikan pesan kesalahan, lihat Pesan kesalahan untuk penyelesaiannya.