多模态向量模型将文本、图像或视频转换为统一的高维浮点数向量(维度可自定义),适用于跨模态检索、图文检索、视频分类、图像分类等场景。
核心能力
跨模态检索:实现以文搜图、以图搜视频、以图搜图等跨模态的语义搜索。
语义相似度计算:在统一的向量空间中,衡量不同模态内容之间的语义相似性。
内容分类与聚类:基于内容的语义向量进行智能分组、打标和聚类分析。
关键特性:所有模态(文本、图片、视频)生成的向量都位于同一语义空间,可直接通过计算余弦相似度等方法进行跨模态匹配与比较。关于模型选型和应用方法的更多介绍,参考文本与多模态向量化。
此模型服务仅在“华北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。
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 调用与原生 HTTP 调用的请求体结构不一致。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格式后调用multimodal-embedding-v1模型进行向量化处理。
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))
输出示例
{
"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
}
}错误码
如果模型调用失败并返回报错信息,请参见错误信息进行解决。