Multimodal-Embedding API詳情
多模態向量模型將文本、映像和視頻轉換為同一語義空間中的向量表示,支援跨模態檢索、內容分類和語義相似性計算。
核心能力
-
跨模態檢索:以文搜圖、以圖搜視頻、以圖搜圖等跨模態語義搜尋。
-
語義相似性計算:在統一向量空間中衡量不同模態內容之間的語義相似性。
-
內容分類與聚類:基於語義向量進行智能分組、打標和群集。
關鍵特性 :所有模態(文本、圖片、視頻)的向量均位於同一語義空間,可通過餘弦相似性等方法直接進行跨模態匹配與比較。模型選型和使用方法詳見 文本與多模態向量化 。
此模型服務僅在“華北2(北京)”地區提供,調用時必須使用該地區的API Key。
向量類型說明
多模態向量模型支援兩種向量產生方式:
-
多模態獨立向量:為 contents 中的每個輸入(文本、圖片、視頻、多圖)分別產生獨立向量。例如,輸入 1 段文本和 1 張圖片,返回 2 個獨立向量。適用於逐項對比不同內容的情境,如以圖搜圖、以文搜圖。
-
多模態融合向量:將 contents 中的所有輸入融合為 1 個向量,實現跨模態綜合語義表徵。適用於需要整體理解多模態內容的情境,如將商品圖片和描述文本融合為統一表徵進行檢索。
qwen3-vl-embedding通過設定enable_fusion=true開啟融合模式。融合向量支援以下組合:-
文本 + 圖片融合
-
文本 + 視頻融合
-
多圖 + 文本融合(傳入多個 image 條目)
-
圖片 + 視頻 + 文本混合融合
-
qwen2.5-vl-embedding僅支援融合向量,不支援獨立向量。tongyi-embedding-vision-plus和tongyi-embedding-vision-flash僅支援獨立向量。
模型介紹、選型建議和使用方法,請參考文本與多模態向量化。
模型概覽
新加坡
模型名稱 | 向量維度 | 文本長度限制 | 圖片大小限制 | 視頻大小限制 | 單價(每百萬輸入Token) | 免費額度(注) |
tongyi-embedding-vision-plus | 1152 | 1,024 Token | 單張大小不超過3 MB。支援多圖,最多支援輸入8張 | 視頻檔案大小不超過 10 MB | 圖片/視頻:$0.09 文本:$0.09 | 100萬Token 有效期間:百鍊開通後90天內 |
tongyi-embedding-vision-flash | 768 | 圖片/視頻:$0.03 文本:$0.09 |
北京
模型名稱 | 向量維度 | 文本長度限制 | 圖片大小限制 | 視頻大小限制 | 單價(每百萬輸入Token) |
qwen3-vl-embedding | 2560(預設), 2048, 1536, 1024, 768, 512, 256 | 32,000 Token | 最多 1 張且單張大小不超過5 MB | 視頻檔案大小不超過 50 MB | 圖片/視頻:$0.258 文本:$0.1 |
multimodal-embedding-v1 | 1024 | 512 Token | 最多 8 張且單張大小不超過3 MB | 視頻檔案大小不超過 10 MB | 免費試用 |
輸入格式與語種限制:
多模態融合向量模型 | ||||
模型 | 文本 | 圖片 | 視頻 | 單次請求條數 |
qwen3-vl-embedding | 支援中、英、日、韓、法、德等33種主流語言 | JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS, SGI(支援URL或Base64) | MP4, AVI, MOV(僅支援URL) | 一次請求中傳入內容元素總數不超過 20;圖片數量不超過5;圖片、文本、視頻共用該上限。 |
多模態獨立向量模型 | ||||
模型 | 文本 | 圖片 | 視頻 | 單次請求條數 |
tongyi-embedding-vision-plus | 中/英文 | JPG, PNG, BMP (支援URL或Base64) | MP4, MPEG, AVI, MOV, MPG, WEBM, FLV, MKV(僅支援URL) | 暫無傳入內容元素數量限制,輸入內容總Token數不超過Token數量上限即可。 |
tongyi-embedding-vision-flash | ||||
multimodal-embedding-v1 | 一次請求中傳入內容元素總數不超過 20;圖片、視頻各最多 1 條,文本最多 20 條,共用總條數上限。 | |||
所有模型均支援 text、image、video 三種輸入類型及其組合。tongyi-embedding-vision-plus、tongyi-embedding-vision-flash額外支援multi_images多圖序列輸入。
模型能力對照
|
模型 |
預設維度 |
向量類型 |
支援的輸入 |
說明 |
|
qwen3-vl-embedding |
2560 |
獨立 / 融合 |
text、image、video、多個 image 條目 |
通過 |
|
tongyi-embedding-vision-plus |
1152 |
僅獨立 |
text、image、video、multi_images |
支援 multi_images 多圖序列(最多 8 張) |
|
tongyi-embedding-vision-flash |
768 |
|||
|
multimodal-embedding-v1 |
1024 |
text、image、video |
不支援 dimension 參數,固定 1024 維 |
前提條件
您需要已擷取API Key並配置API Key到環境變數。如果通過SDK調用,還需要安裝DashScope SDK。請將範例程式碼中的 DASHSCOPE_API_HOST 替換為擷取的 API Host。
HTTP調用
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
請求 |
多模態獨立向量以下樣本使用
多模態融合向量
|
要求標頭(Headers) |
|
|
Content-Type 請求內容類型。此參數必須設定為 |
|
|
Authorization 請求身份認證。介面使用阿里雲百鍊API Key進行身份認證。樣本值:Bearer sk-xxxx。 |
|
請求體(Request Body) |
|
|
model 模型名稱。設定為模型概覽中的模型名稱。 |
|
|
input 輸入內容。 parameters 向量處理參數。HTTP調用需封裝在parameters對象中,SDK調用可直接使用以下參數。 |
響應 |
成功響應
說明
不同模型返回的
說明
異常響應
|
|
output 任務輸出資訊。 |
|
|
request_id 請求唯一標識。可用於請求明細溯源和問題排查。 |
|
|
code 請求失敗的錯誤碼。請求成功時不會返回此參數,詳情請參見錯誤碼。 |
|
|
message 請求失敗的詳細資料。請求成功時不會返回此參數,詳情請參見錯誤碼。 |
|
|
usage 輸出資訊統計。 |
SDK使用
SDK 的 input 參數對應HTTP請求體中的 input.contents,兩者結構 不一致 。
程式碼範例
圖片向量化樣本
使用圖片URL
import dashscope
import json
from http import HTTPStatus
# 實際使用中請將url地址替換為您的圖片url地址
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
# 調用模型介面
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))
使用本地圖片
將本地圖片轉換為 Base64 格式後進行向量化:
import dashscope
import base64
import json
from http import HTTPStatus
# 讀取圖片並轉換為Base64,實際使用中請將xxx.png替換為您的圖片檔案名稱或路徑
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
# 讀取檔案並轉換為Base64
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# 設定映像格式
image_format = "png" # 根據實際情況修改,比如jpg、bmp 等
image_data = f"data:image/{image_format};base64,{base64_image}"
# 輸入資料
input = [{'image': image_data}]
# 調用模型介面
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))
視頻向量化樣本
多模態向量化模型目前僅支援以URL形式輸入視頻檔案,暫不支援直接傳入本地視頻。
import dashscope
import json
from http import HTTPStatus
# 實際使用中請將url地址替換為您的視頻url地址
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
# 調用模型介面
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))
文本向量化樣本
import dashscope
import json
from http import HTTPStatus
text = "通用多模態表徵模型樣本"
input = [{'text': text}]
# 調用模型介面
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))
融合向量化樣本
import dashscope
import json
import os
from http import HTTPStatus
# 多模態融合向量:將文本、圖片、視頻融合成一個融合向量
# 適用於跨模態檢索、圖搜等情境
text = "這是一段測試文本,用於產生多模態融合向量"
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"
# 輸入包含文本、圖片、視頻,通過 enable_fusion 參數產生融合向量
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
# 使用 qwen3-vl-embedding 產生融合向量
resp = dashscope.MultiModalEmbedding.call(
# 若沒有配置環境變數,請用百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-embedding",
input=input_data,
enable_fusion=True,
# 選擇性參數:指定向量維度(支援 2560、2048、1536、1024、768、512、256,預設 2560)
# parameters={"dimension": 1024}
)
print(json.dumps(resp, ensure_ascii=False, indent=4))
多圖融合向量化樣本
使用 qwen3-vl-embedding 將多張圖片與文本融合為 1 個向量。傳入多個 image 條目即可實現多圖融合,適用於商品多角度圖片與描述文本的綜合語義檢索。
import dashscope
import json
import os
from http import HTTPStatus
# 多圖+文本融合向量:將多張商品圖片和描述文本融合為 1 個向量
# 適用於商品多角度圖片+描述文本的綜合語義檢索
text = "白色運動鞋,輕量透氣,適合跑步和日常穿著"
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"
# 傳入多個 image 條目實現多圖融合,enable_fusion=True 將所有輸入融合為 1 個向量
input_data = [
{"text": text},
{"image": image1},
{"image": image2}
]
resp = dashscope.MultiModalEmbedding.call(
# 若沒有配置環境變數,請用百鍊API Key將下行替換為: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))
2026-03-06 快照版本樣本
以下樣本展示如何使用tongyi-embedding-vision-plus-2026-03-06模型,示範res_level(多解析度)和max_video_frames(視訊框架數)參數的使用。該模型基於 Qwen3 底座,支援 30+ 種語言,同時支援獨立向量和融合向量產生。
import dashscope
import json
import os
from http import HTTPStatus
# tongyi-embedding-vision-plus-2026-03-06 樣本
# 支援 res_level(多解析度)和 max_video_frames(視訊框架數)參數
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 = "這是1個視覺多模態表徵模型"
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
# 調用 2026-03-06 快照版本模型
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152, # 支援 1152/1024/512/256/128/64
res_level=1, # 解析度檔位:0/1/2/3,預設 1
max_video_frames=64 # 視頻最大採樣幀數,預設 8,最大 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))
2026-03-06 版本的融合向量用法:將 text、image、video 放在同一個 content 對象中,模型將所有輸入融合為 1 個向量(type 為 fused)。
import dashscope
import json
import os
from http import HTTPStatus
# 融合向量:將 text/image/video 放在同一個 content 對象中
# 模型會將所有輸入融合編碼為 1 個向量,type 為 "fused"
text = "白色運動鞋,輕量透氣,適合跑步和日常穿著"
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
# 同一對象中的多模態內容會被融合為 1 個向量
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))
輸出樣本
{
"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
}
}錯誤碼
如果模型調用失敗並返回報錯資訊,請參見錯誤碼進行解決。