全部产品
Search
文档中心

Alibaba Cloud Model Studio:Detail API penyematan multimodal

更新时间:Feb 06, 2026

Model penyematan multimodal mengubah teks, gambar, atau video menjadi vektor floating-point terpadu berdimensi 1.024. Model ini cocok untuk tugas seperti klasifikasi video, klasifikasi gambar, dan pencarian teks-ke-gambar.

Kemampuan inti

  • Pengambilan lintas-modalitas: Lakukan pencarian semantik lintas-modalitas, seperti pencarian teks-ke-gambar, pencarian gambar-ke-video, dan pencarian berdasarkan gambar.

  • Perhitungan kemiripan semantik: Ukur kemiripan semantik antar konten dari modalitas berbeda dalam ruang vektor terpadu.

  • Klasifikasi dan pengelompokan konten: Lakukan analisis pengelompokan, penandaan, dan pengelompokan cerdas berdasarkan penyematan semantik konten.

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

Layanan model ini hanya tersedia di wilayah Tiongkok (Beijing). Anda harus menggunakan Kunci API dari wilayah ini untuk memanggil layanan.

Untuk pengenalan model, rekomendasi pemilihan, dan metode penggunaan, lihat Penyematan teks dan multimodal.

Ikhtisar model

Singapura

Model

Dimensi penyematan

Batas panjang teks

Batas ukuran gambar

Batas ukuran video

Harga (per 1 juta token input)

Kuota gratis(Catatan)

tongyi-embedding-vision-plus

1152, 1024, 512, 256, 128, 64

1.024 token

Satu file tidak boleh lebih besar dari 3 MB.

Ukuran file video hingga 10 MB

Gambar/Video: $0,09

Teks: $0,09

1 juta token

Berlaku: 90 hari setelah mengaktifkan Model Studio

tongyi-embedding-vision-flash

768, 512, 256, 128, 64

Gambar/Video: $0,03

Teks: $0,09

Beijing

Model

Dimensi penyematan

Batas panjang teks

Batas ukuran gambar

Batas ukuran video

Harga (per 1 juta token input)

qwen3-vl-embedding

2560, 2048, 1536, 1024, 768, 512, 256

32.000 token

Maksimal 1 gambar, hingga 5 MB

Ukuran file video hingga 50 MB

Gambar/Video: $0,258

Teks: $0,1

multimodal-embedding-v1

1024

512 token

Maksimal 8 gambar, masing-masing hingga 3 MB

Ukuran file video hingga 10 MB

Uji coba gratis

Format input dan batasan bahasa

Model penyematan multimodal terpadu

Model

Teks

Gambar

Video

Elemen maks per 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)

Total elemen konten per permintaan tidak boleh melebihi 20. Gambar, teks, dan video berbagi batas ini.

Model penyematan multimodal independen

Model

Teks

Gambar

Video

Elemen maks per permintaan

tongyi-embedding-vision-plus

Tionghoa/Inggris

JPG, PNG, BMP (URL atau Base64 didukung)

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

Tidak ada batasan jumlah elemen konten. Total jumlah token tidak boleh melebihi batas token.

tongyi-embedding-vision-flash

multimodal-embedding-v1

Total elemen konten per permintaan tidak boleh melebihi 20. Maksimal 1 gambar, 1 video, dan 20 entri teks, berbagi batas total tersebut.

API mendukung pengunggahan satu segmen teks, satu gambar, atau satu file video. API juga memungkinkan kombinasi jenis berbeda, seperti teks dan gambar. Beberapa model mendukung beberapa input dengan jenis konten yang sama, seperti beberapa gambar. Untuk informasi lebih lanjut, lihat batasan untuk model tertentu.

Prasyarat

Anda harus mendapatkan Kunci API dan menetapkan Kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, Anda juga harus menginstal SDK DashScope.

Panggilan HTTP

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

Permintaan

Penyematan multimodal independen

qwen3-vl-embedding dapat digunakan dengan dua cara: jika Anda memasukkan teks, gambar, dan video bersamaan, model akan menghasilkan satu penyematan terpadu. Jika Anda memasukkannya secara terpisah (seperti pada contoh kode di bawah), model akan menghasilkan penyematan independen untuk setiap item.
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"
                ]
              }
        ]
    }
}'

Penyematan multimodal terpadu

qwen3-vl-embedding dapat digunakan dengan dua cara: jika Anda memasukkan teks, gambar, dan video bersamaan (seperti pada contoh kode di bawah), model akan menghasilkan satu penyematan terpadu. Jika Anda memasukkannya secara terpisah, model akan menghasilkan penyematan independen untuk setiap item.
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": "qwen3-vl-embedding",
    "input": {
        "contents": [
            {"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"
            }
        ]
    },
    "parameters": {
        "dimension": 1024,
        "output_type": "dense",
        "fps": 0.5
    }
}'

Header permintaan

Content-Type string (Wajib)

Tipe konten permintaan. Tetapkan ke application/json atau text/event-stream (untuk mengaktifkan tanggapan Server-Sent Events (SSE)).

Content-Type string (Wajib)

Tipe konten permintaan. Harus application/json.

Authorization string (Wajib)

Kredensial otentikasi menggunakan Kunci API Model Studio.

Contoh: Bearer sk-xxxx

Badan permintaan

model string (Wajib)

Nama model. Tetapkan ke nama model dari Ikhtisar model.

input object (Wajib)

Konten input.

Properti

contents array (Wajib)

Daftar konten yang akan diproses. Setiap elemen adalah kamus atau string yang menentukan jenis dan nilai konten. Formatnya adalah `{"modality_type": "input_string_or_image/video_url"}`. Jenis modalitas textimagevideo, dan multi_images didukung.

qwen3-vl-embedding mendukung pembuatan penyematan terpadu maupun independen. Ketika `text`, `image`, dan `video` ditempatkan dalam objek yang sama, penyematan terpadu akan dihasilkan. Ketika dipisahkan menjadi elemen independen, penyematan akan dihasilkan untuk setiap elemen. qwen2.5-vl-embedding hanya mendukung penyematan terpadu dan tidak mendukung penyematan independen.
  • Teks: Kuncinya adalah text. Nilainya adalah string. Anda juga dapat meneruskan string secara langsung tanpa kamus.

  • Gambar: Kuncinya adalah image. Nilainya dapat berupa URL yang dapat diakses publik atau URI Data berkode Base64. Format Base64 adalah data:image/{format};base64,{data}, di mana {format} adalah format gambar (misalnya jpeg atau png) dan {data} adalah string berkode Base64.

  • Beberapa gambar: Hanya model tongyi-embedding-vision-plus dan tongyi-embedding-vision-flash yang mendukung jenis ini. Kuncinya adalah multi_images. Nilainya adalah daftar gambar. Setiap item adalah gambar yang mengikuti format di atas. Anda dapat menyertakan hingga 8 gambar.

  • Video: Kuncinya adalah video. Nilainya harus berupa URL yang dapat diakses publik.

parameters object (Opsional)

Parameter untuk pemrosesan vektor. Untuk panggilan HTTP, parameter ini harus dibungkus dalam objek `parameters`. Untuk panggilan SDK, Anda dapat menggunakan parameter ini secara langsung.

Properti

output_type string Opsional

Menentukan format vektor output. Saat ini, hanya `dense` yang didukung.

dimension integer Opsional

Menentukan 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. Nilai default adalah 2.560.

  • tongyi-embedding-vision-plus mendukung 64, 128, 256, 512, 1.024, dan 1.152. Nilai default adalah 1.152.

  • tongyi-embedding-vision-flash mendukung 64, 128, 256, 512, dan 768. Nilai default adalah 768.

  • multimodal-embedding-v1 tidak mendukung parameter ini. Model mengembalikan vektor berdimensi tetap 1.024.

fps float Opsional

Mengontrol jumlah frame untuk video. Nilai yang lebih kecil berarti lebih sedikit frame yang diekstraksi. Rentangnya [0, 1]. Nilai default adalah 1,0.

instruct string Opsional

Menambahkan deskripsi tugas kustom untuk membantu model memahami maksud kueri. Tulis dalam bahasa Inggris, karena dapat meningkatkan performa sekitar 1% hingga 5%.

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 object

Informasi output tugas.

Properti

embeddings array

Daftar hasil vektor. Setiap objek sesuai dengan elemen dalam daftar input.

Properti

index int

Indeks hasil dalam daftar input.

embedding array

Penyematan yang dihasilkan.

type string

Jenis input yang sesuai dengan hasil: `text`, `image`, `video`, `multi_images`, atau `vl` (jenis ini hanya dikembalikan saat menggunakan qwen3-vl-embedding).

request_id string

Pengidentifikasi 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 detail. Dikembalikan hanya ketika permintaan gagal. Lihat kode kesalahan untuk detailnya.

usage object

Statistik tentang output.

Properti

input_tokens int

Jumlah token dalam input untuk permintaan ini.

image_tokens int

Jumlah token untuk gambar atau video dalam permintaan ini. Sistem mengambil sampel frame dari video input, dengan jumlah maksimum frame dikontrol oleh konfigurasi sistem. Token kemudian dihitung berdasarkan hasil pemrosesan.

image_count int

Jumlah gambar dalam permintaan ini.

duration int

Durasi video dalam permintaan ini (dalam detik).

Penggunaan SDK

Struktur badan permintaan untuk versi SDK saat ini berbeda dari panggilan HTTP native. Parameter `input` dalam SDK sesuai dengan `input.contents` dalam panggilan HTTP.

Contoh kode

Hasilkan penyematan gambar

Gunakan URL gambar

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

Gunakan gambar lokal

Anda dapat menggunakan kode contoh berikut untuk mengonversi gambar lokal ke format Base64, lalu memanggil model multimodal-embedding-v1 untuk penyematan.

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')
# Tetapkan format gambar.
image_format = "png"  # Ubah sesuai format aktual, misalnya 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))

Hasilkan penyematan video

Model penyematan multimodal saat ini hanya mendukung input file video dalam bentuk URL. Pengiriman video lokal secara langsung tidak didukung.
import dashscope
import json
from http import HTTPStatus
# Ganti URL 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))
    

Hasilkan penyematan teks

import dashscope
import json
from http import HTTPStatus

text = "Contoh model representasi multimodal umum"
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))

Hasilkan penyematan terpadu

import dashscope
import json
import os
from http import HTTPStatus

# Penyematan multimodal terpadu: Menggabungkan teks, gambar, dan video menjadi satu penyematan terpadu.
# Cocok untuk skenario seperti pengambilan lintas-modalitas dan pencarian gambar.
text = "Ini adalah teks uji untuk menghasilkan penyematan multimodal terpadu."
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. Model akan menggabungkannya menjadi satu penyematan terpadu.
input_data = [
    {
        "text": text,
        "image": image,
        "video": video
    }
]

# Gunakan qwen3-vl-embedding untuk menghasilkan penyematan terpadu.
resp = dashscope.MultiModalEmbedding.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-vl-embedding",
    input=input_data,
    # Parameter opsional: Tentukan dimensi vektor (nilai yang didukung: 2560, 2048, 1536, 1024, 768, 512, 256; default: 2560)
    # parameters={"dimension": 1024}
)

print(json.dumps(resp, 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 kesalahan

Jika panggilan gagal, lihat Pesan kesalahan untuk troubleshooting.