全部产品
Search
文档中心

Alibaba Cloud Model Studio:Detail API penyematan multimodal

更新时间:Nov 11, 2025

Model penyematan multimodal mengonversi teks, citra, atau video menjadi vektor, dan cocok untuk tugas-tugas seperti klasifikasi video, klasifikasi citra, serta pengambilan lintas-modalitas.

Kemampuan inti

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

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

  • Klasifikasi dan pengelompokan konten: Memungkinkan pengelompokan cerdas, pemberian tag, serta analisis kluster berdasarkan penyematan vektor semantik.

Atribut utama: Penyematan vektor dari semua modalitas—teks, citra, dan video—berada dalam ruang semantik yang sama. Anda dapat langsung melakukan pencocokan dan perbandingan lintas-modalitas dengan menghitung kemiripan kosinus. Untuk informasi lebih lanjut tentang pemilihan dan penggunaan model, lihat Penyematan teks dan multimodal.
Penting

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

Ikhtisar

Model

Dimensi penyematan

Batas panjang teks

Batas ukuran citra/video

Harga (1.000 token input)

multimodal-embedding-v1

Hanya tersedia di wilayah Tiongkok (Beijing)

1.024

512 token

Ukuran citra: ≤ 3 MB, Jumlah: 1
Video: ≤ 10 MB

Uji coba gratis, tanpa batas kuota token.

Batas jenis dan format input berikut berlaku saat memanggil API penyematan multimodal umum.

Jenis input

Batas bahasa/format

Teks

Bahasa Tiongkok/Inggris

Citra

JPG, PNG, dan BMP. Mendukung input dalam format Base64 atau sebagai URL.

Beberapa citra

Video

MP4, MPEG, MPG, WEBM, AVI, FLV, MKV, MOV

API mendukung satu segmen teks, satu citra, atau satu file video. API juga memungkinkan kombinasi berbagai jenis, seperti teks dan citra. Hanya satu kombinasi yang diizinkan per panggilan, dan file harus memenuhi persyaratan panjang serta ukuran dalam tabel.

Prasyarat

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

HTTP

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

Permintaan

Penyematan 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"
                ]
              }
        ]
    }
}'

Header

Content-Type string (Wajib)

Tipe konten permintaan. Nilai yang didukung adalah `application/json` atau `text/event-stream`. Nilai `text/event-stream` mengaktifkan tanggapan Server-Sent Events (SSE).

Content-Type string (Wajib)

Tipe konten permintaan. Atur parameter ini ke application/json.

Authorization string (Wajib)

Kredensial otentikasi identitas untuk permintaan. API ini menggunakan Kunci API Model Studio untuk otentikasi identitas. Contoh: Bearer sk-xxxx.

Isi permintaan

model string (Wajib)

Nama model, sebagaimana tercantum dalam tabel Ikhtisar.

input object (Wajib)

Konten input.

Properti

contents array (Wajib)

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

  • Teks: Kuncinya adalah text. Nilainya berupa string. Anda juga dapat meneruskan string secara langsung tanpa menggunakan kamus.

  • Citra: Kuncinya adalah image. Nilainya dapat berupa URL publik atau URI Data berbasis Base64. Format URI Data adalah data:image/{format};base64,{data}, di mana {format} adalah format citra, seperti jpeg atau png, dan {data} adalah string Base64.

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

parameters object (Opsional)

Properti

top_n int (Opsional)

Jumlah dokumen yang dikembalikan setelah pengurutan. Jika nilai yang ditentukan melebihi jumlah total dokumen, semua dokumen dikembalikan. Jika parameter ini tidak ditentukan, semua dokumen dikembalikan.

return_documents bool (Opsional)

Menentukan apakah dokumen asli dikembalikan dalam hasil pengurutan. Nilai default adalah false untuk mengurangi beban jaringan.

Tanggapan

Tanggapan berhasil

{
    "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

Keluaran tugas.

Properti

embeddings array

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

Properti

index int

Indeks hasil dalam daftar input.

embedding array

Penyematan berdimensi 1.024 yang dihasilkan.

type string

Jenis input yang sesuai dengan hasil. Nilai yang valid: text, image, video, atau multi_images.

request_id string

ID permintaan unik yang dapat digunakan untuk pelacakan dan pemecahan masalah.

code string

Kode kesalahan untuk permintaan yang gagal. Parameter ini tidak dikembalikan jika permintaan berhasil. Untuk informasi selengkapnya, lihat Pesan kesalahan.

message string

Informasi detail mengenai permintaan yang gagal. Parameter ini tidak dikembalikan jika permintaan berhasil. Untuk informasi selengkapnya, lihat Pesan kesalahan.

usage object

Statistik penggunaan.

Properti

input_tokens int

Jumlah token dalam konten input permintaan.

image_tokens int

Jumlah token dalam citra atau video input. Untuk input video, sistem mengekstraksi sejumlah frame tertentu sesuai konfigurasi sistem, lalu menghitung jumlah token berdasarkan frame yang diproses.

image_count int

Jumlah citra dalam permintaan.

duration int

Durasi video input dalam detik.

Gunakan SDK

Struktur badan permintaan untuk panggilan SDK berbeda dari panggilan HTTP native. Parameter input dalam SDK sesuai dengan parameter input.contents dalam panggilan HTTP.

Kode contoh

Hasilkan penyematan citra

Gunakan URL citra

import dashscope
import json
from http import HTTPStatus
# Dalam praktiknya, ganti URL dengan URL citra 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 citra lokal

Kode contoh berikut menunjukkan cara mengonversi citra lokal ke format Base64 lalu memanggil model untuk menghasilkan penyematan.

import dashscope
import base64
import json
from http import HTTPStatus
# Baca citra dan konversi ke Base64. Dalam praktiknya, ganti xxx.png dengan nama file atau path citra 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 citra.
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))

Hasilkan penyematan video

Model penyematan multimodal hanya mendukung URL file video sebagai input. File video lokal tidak didukung.
import dashscope
import json
from http import HTTPStatus
# Dalam praktiknya, 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 penyematan 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))

Tanggapan contoh

{
    "status_code": 200,
    "request_id": "b5623e99-ea0c-9509-9b25-20bcc99d03e9",
    "code": "",
    "message": "",
    "output": {
        "embeddings": [
            {
                "index": 0,
                "embedding": [
                    -0.020782470703125,
                    -0.01399993896484375,
                    -0.0229949951171875,
                    ...
                ],
                "type": "text"
            }
        ]
    },
    "usage": {
        "input_tokens": 12,
        "image_tokens": 0
    }
}

Kode kesalahan

Jika panggilan gagal, lihat Pesan kesalahan untuk pemecahan masalah.