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.
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 | 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 |
Header | |
Content-Type 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 Tipe konten permintaan. Atur parameter ini ke | |
Authorization Kredensial otentikasi identitas untuk permintaan. API ini menggunakan Kunci API Model Studio untuk otentikasi identitas. Contoh: Bearer sk-xxxx. | |
Isi permintaan | |
model Nama model, sebagaimana tercantum dalam tabel Ikhtisar. | |
input Konten input. | |
parameters object (Opsional) |
Tanggapan | Tanggapan berhasilTanggapan kesalahan |
output Keluaran tugas. | |
request_id ID permintaan unik yang dapat digunakan untuk pelacakan dan pemecahan masalah. | |
code Kode kesalahan untuk permintaan yang gagal. Parameter ini tidak dikembalikan jika permintaan berhasil. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
message Informasi detail mengenai permintaan yang gagal. Parameter ini tidak dikembalikan jika permintaan berhasil. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
usage Statistik penggunaan. |
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.