Multimodal-Embedding API详情

更新时间:
复制 MD 格式

多模态向量模型将文本、图像和视频转换为同一语义空间中的向量表示,支持跨模态检索、内容分类和语义相似度计算。

核心能力

  • 跨模态检索:以文搜图、以图搜视频、以图搜图等跨模态语义搜索。
  • 语义相似度计算:在统一向量空间中衡量不同模态内容之间的语义相似性。
  • 内容分类与聚类:基于语义向量进行智能分组、打标和聚类分析。

关键特性 :所有模态(文本、图片、视频)的向量均位于同一语义空间,可通过余弦相似度等方法直接进行跨模态匹配与比较。模型选型和使用方法详见 文本与多模态向量化

向量类型说明

多模态向量模型支持两种向量生成方式:

  • 多模态独立向量:为 contents 中的每个输入(文本、图片、视频、多图)分别生成独立向量。例如,输入 1 段文本和 1 张图片,返回 2 个独立向量。适用于逐项对比不同内容的场景,如以图搜图、以文搜图。

  • 多模态融合向量:将 contents 中的所有输入融合为 1 个向量,实现跨模态综合语义表征。适用于需要整体理解多模态内容的场景,如将商品图片和描述文本融合为统一表征进行检索。qwen3-vl-embedding 通过设置 enable_fusion=true 开启融合模式;tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 通过将 text、image、video 放在同一个 content 对象中实现融合。融合向量支持以下组合:

    • 文本 + 图片融合
    • 文本 + 视频融合
    • 多图 + 文本融合(传入多个 image 条目)
    • 图片 + 视频 + 文本混合融合

qwen2.5-vl-embedding 仅支持融合向量,不支持独立向量。 tongyi-embedding-vision-plustongyi-embedding-vision-flash 仅支持独立向量。 tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 同时支持独立向量和融合向量,融合向量通过将 text、image、video 放在同一个 content 对象中实现。

模型介绍、选型建议和使用方法,请参考文本与多模态向量化

模型概览

北京

模型名称

向量维度

文本长度限制

图片大小限制

视频大小限制

单价(每千输入Token)

免费额度(注)

qwen3-vl-embedding

2560(默认), 2048, 1536, 1024, 768, 512, 256

32,000 Token

单张大小不超过10 MB

视频文件大小不超过 50 MB

图片/视频:0.0018

文本:0.0007

100Token

有效期:自开通百炼/模型发布/申请通过之日起90天(以较晚者为准)

qwen2.5-vl-embedding

2048, 1024(默认), 768, 512

单张大小不超过5 MB

tongyi-embedding-vision-plus-2026-03-06

1152(默认), 1024, 512, 256, 128, 64

1,024 Token

建议单张大小不超过5 MB,最大10 MB。支持多图,最多支持输入64

视频文件大小不超过 50 MB

且编码类型为H.264/H.265

0.0005

tongyi-embedding-vision-flash-2026-03-06

768(默认), 512, 256, 128, 64

0.00015

tongyi-embedding-vision-plus

1152

单张大小不超过3 MB。支持多图,最多支持输入8

视频文件大小不超过 10 MB

0.0005

tongyi-embedding-vision-flash

768

0.00015

multimodal-embedding-v1

1,024

512 Token

单张大小不超过3 MB

视频文件大小不超过 10 MB

图片/视频:0.0009 元

文本:0.0007 元

新加坡

模型名称

向量维度

文本长度限制

图片大小限制

视频大小限制

单价(每千输入Token)

tongyi-embedding-vision-plus

1152

1,024 Token

最多 8 张且单张大小不超过3 MB

视频文件大小不超过 10 MB

0.0005

tongyi-embedding-vision-flash

768

1,024 Token

0.00015

输入格式与语种限制:

多模态融合向量模型
模型文本图片视频单次请求条数

qwen3-vl-embedding

支持中、英、日、韩、法、德等33种主流语言

所有支持语言

中文、日语、韩语、印尼语、越南语、泰语、英语、法语、德语、俄语、葡萄牙语、西班牙语、意大利语、瑞典语、丹麦语、捷克语、挪威语、荷兰语、芬兰语、土耳其语、波兰语、斯瓦希里语、罗马尼亚语、塞尔维亚语、希腊语、哈萨克语、乌兹别克语、宿务语、阿拉伯语、乌尔都语、波斯语、印地语 / 天城语、希伯来语。

JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS, SGI(支持URLBase64)

MP4, AVI, MOV(仅支持URL)

一次请求中传入内容元素总数不超过 20。图片数量不超过10,视频数量不超过1。

qwen2.5-vl-embedding

支持中、英、日、韩、法、德等11种主流语言

所有支持语言

中文、英语、日语、韩语、法语、德语、俄语、葡萄牙语、西班牙语、意大利语、印尼语

一次请求内,图片、文本、视频、融合对象每种类型最多出现 1 次。

多模态向量模型
模型文本图片视频单次请求条数

tongyi-embedding-vision-plus-2026-03-06

支持中、英、日、韩等超30种主流语言

所有支持语言

中文、日语、韩语、印尼语、越南语、泰语、英语、法语、德语、俄语、葡萄牙语、西班牙语、意大利语、瑞典语、丹麦语、捷克语、挪威语、荷兰语、芬兰语、土耳其语、波兰语、斯瓦希里语、罗马尼亚语、塞尔维亚语、希腊语、哈萨克语、乌兹别克语、宿务语、阿拉伯语、乌尔都语、波斯语、印地语 / 天城语、希伯来语。

JPEG, PNG, WEBP, BMP, TIFF, ICO, DIB, ICNS, SGI(支持URLBase64)

MP4, MPEG, MOV, MPG, WEBM, AVI, FLV, MKV(仅支持URL)

一次请求中传入内容元素总数不超过 20,单次图片总数不超过64,视频数量不超过8。

tongyi-embedding-vision-flash-2026-03-06

tongyi-embedding-vision-plus

中文与英文

JPG, PNG, BMP (支持URLBase64)

MP4, MPEG, MOV, MPG, WEBM, AVI, FLV, MKV(仅支持URL)

暂无传入内容元素数量限制,输入内容Token数不超过单批次处理Token数量上限即可。

tongyi-embedding-vision-flash

multimodal-embedding-v1

中文与英文

JPG, PNG, BMP (支持URLBase64)

一次请求中传入内容元素总数不超过 20;图片、视频各最多 1 条,文本最多 20 条,共享总条数上限。

所有模型均支持 text、image、video 三种输入类型及其组合。 tongyi-embedding-vision-plustongyi-embedding-vision-flashtongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 额外支持 multi_images 多图序列输入。

模型能力对照

模型

默认维度

向量类型

支持的输入

说明

qwen3-vl-embedding

2560

独立 / 融合

text、image、video、多个 image 条目

通过 enable_fusion 参数开启融合模式,可将多模态输入融合为 1 个向量

qwen2.5-vl-embedding

1024

仅融合

text、image、video

始终返回 1 个融合向量,不支持独立向量,不支持多图输入

tongyi-embedding-vision-plus-2026-03-06

1152

独立 / 融合

text、image、video、multi_images

基于 Qwen3 底座,支持多分辨率、30+ 语言、融合向量

tongyi-embedding-vision-flash-2026-03-06

768

tongyi-embedding-vision-plus

1152

仅独立

支持 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

请求

多模态独立向量

以下示例使用 tongyi-embedding-vision-plus 模型生成独立向量(每个输入各自生成 1 个向量),也可替换为其他模型名称。其中 multi_images 类型仅 tongyi-embedding-vision-plustongyi-embedding-vision-flash 支持。qwen3-vl-embedding 额外支持融合向量模式,通过设置 enable_fusion=true 开启,详见"多模态融合向量"标签页。

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": "多模态向量模型"},
                {"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"
                    ]
                  }
            ]
        }
    }'

多模态融合向量

qwen3-vl-embedding支持融合向量生成,通过设置 enable_fusion=true 将所有输入融合为 1 个向量。支持文本+图片、文本+视频、多图+文本、图片+视频+文本等多种融合组合。以下示例展示多图+视频+文本的混合融合。

curl --location '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": "商品描述文本"},
                {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"},
                {"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"}
            ]
        },
        "parameters": {
            "enable_fusion": true
        }
    }'

2026-03-06 快照版本示例

tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 是基于 Qwen3 底座的新版模型,支持 res_level(多分辨率)和 max_video_frames(视频帧数)参数,同时支持独立向量和融合向量生成。

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-2026-03-06",
        "input": {
            "contents": [
                {"text": "这是1个视觉多模态表征模型"},
                {"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"},
                {"multi_images": [
                    "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png",
                    "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"
                ]}
            ]
        },
        "parameters": {
            "dimension": 1152,
            "res_level": 1,
            "max_video_frames": 64
        }
    }'

以下示例展示 2026-03-06 版本的融合向量用法:将 text、image、video 放在同一个 content 对象中,模型会将所有输入融合编码为 1 个向量(type 为 fused)。

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-2026-03-06",
        "input": {
            "contents": [
                {
                    "text": "这是1个视觉多模态表征模型",
                    "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": 1152
        }
    }'

请求头(Headers)

Content-Typestring(必选)

请求内容类型。此参数必须设置为application/json

Authorizationstring(必选)

请求身份认证。接口使用阿里云百炼API Key进行身份认证。示例值:Bearer sk-xxxx。

请求体(Request Body)

modelstring(必选)

模型名称。设置为模型概览中的模型名称。

inputobject(必选)

输入内容。

属性

contentsarray(必选)

待处理的内容列表。每个元素是一个字典或者字符串,用于指定内容的类型和值。格式为{"模态类型": "输入字符串或图像、视频url"}。支持textimagevideomulti_images四种模态类型。

qwen3-vl-embedding 同时支持融合向量和独立向量生成。在多模态独立向量的基础上增加 bool 类型字段 enable_fusion,当 enable_fusion=true 时返回融合向量。qwen2.5-vl-embedding 仅支持融合向量,不支持独立向量。tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 同时支持独立向量和融合向量,通过将 text、image、video 放在同一个 content 对象中生成融合向量(不使用 enable_fusion 参数)。

  • 文本:keytext。value为字符串形式。也可不通过dict直接传入字符串。
  • 图片:keyimage。value可以是公开可访问的URL,或Base64编码的Data URI。Base64格式为 data:image/{format};base64,{data},其中 {format} 是图片格式(如 jpeg, png),{data}Base64编码字符串。
  • 多图片:仅tongyi-embedding-vision-plustongyi-embedding-vision-flashtongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06模型支持此类型。keymulti_images,value是多图序列列表,每条为一个图片,格式要求如上方所示。
  • 视频:keyvideo,value必须是公开可访问的URL。

parameters object (可选)

向量处理参数。HTTP调用需包装在parameters对象中,SDK调用可直接使用以下参数。

属性

output_type string (可选)

用户指定输出向量表示格式,目前仅支持dense。

dimension integer (可选)

用于用户指定输出向量维度。不同模型支持的值不同:

  • qwen3-vl-embedding 支持 2560、2048、1536、1024、768、512、256,默认值为 2560;
  • qwen2.5-vl-embedding 支持 2048、1024、768、512,默认值为 1024;
  • tongyi-embedding-vision-plus 不支持此参数,固定返回 1152 维向量。
  • tongyi-embedding-vision-flash 不支持此参数,固定返回 768 维向量。
  • tongyi-embedding-vision-plus-2026-03-06 支持 64、128、256、512、1024、1152,默认值为 1152;
  • tongyi-embedding-vision-flash-2026-03-06 支持 64、128、256、512、768,默认值为 768;
  • multimodal-embedding-v1 不支持此参数,固定返回 1024 维向量。

fps float (可选)

控制视频的帧数,比例越小,实际抽取的帧数越少,范围为 [0,1]。默认值为1.0。

instruct string (可选)

添加自定义任务说明,可用于指导模型理解查询意图。建议使用英文撰写,通常可带来约 1%–5% 的效果提升。

enable_fusion bool (可选)

是否生成融合向量。仅 qwen3-vl-embedding 模型支持该参数。设置为 true 时,将 contents 中的所有多模态内容融合为 1 个向量;默认为 false,各模态独立生成向量。融合向量支持文本+图片、文本+视频、多图+文本(传入多个 image 条目)、图片+视频+文本等组合,适用于需要综合理解多模态内容的检索场景。

tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 不使用该参数,而是通过将 text、image、video 放在同一个 content 对象中来生成融合向量。

res_level integer (可选)

指定输入分辨率档位,支持设置 0/1/2/3 四档,对应的单图 token 分别是 127/402/578/1026,默认值为 1(402 token)。仅 tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 模型支持该参数。对于 IPC/自驾/视觉文字等图像分辨率敏感的场景,高分辨率(res_level=3)可提升 5%-10% 效果。

max_video_frames integer (可选)

控制视频的最大采样帧数上限,最大不超过 64,默认值为 8。仅 tongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 模型支持该参数。

响应

成功响应

{
    "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": 903,
        "input_tokens_details": {
            "image_tokens": 896,
            "text_tokens": 7
        },
        "output_tokens": 3,
        "total_tokens": 906
    },
    "request_id": "1fff9502-a6c5-9472-9ee1-73930fdd04c5"
}

说明不同模型返回的 usage 字段存在差异,请参考以下说明:

  • tongyi-embedding-vision-* 系列模型:返回 input_tokens(含文本和图片 Token 总和)、input_tokens_details(含 image_tokenstext_tokens)、output_tokenstotal_tokens。以上响应示例对应此类模型。
  • qwen3-vl-embedding:仅返回 input_tokens(仅含文本 Token,包括系统模板 Token)、image_tokenstotal_tokens(= input_tokens + image_tokens)。不返回 input_tokens_detailsoutput_tokens。示例:
{
    "usage": {
        "input_tokens": 43,
        "image_tokens": 1247,
        "total_tokens": 1290
    }
}

说明

  • qwen2.5-vl-embedding:仅返回 input_tokensimage_tokens,不返回 total_tokensinput_tokens_detailsoutput_tokens
  • multimodal-embedding-v1:返回 input_tokensimage_tokensimage_countduration,不返回 total_tokensinput_tokens_detailsoutput_tokens

异常响应

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

本 API 常见的错误码及排查方向如下。完整错误码请参见通用错误码

错误码

HTTP 状态码

触发条件

排查建议

InvalidApiKey

401

API Key 无效或已过期,返回 Invalid API-key provided.

确认 Authorization 请求头为 Bearer sk-xxx 格式,且使用的是当前账号下有效的 API Key。

BadRequest.EmptyModel

400

请求中缺少 model 字段,返回 Required parameter model missing from request.

在请求体中补充 model 字段,取值使用本文模型列表中的模型名称。

InvalidParameter

400

model 取值不存在,返回 Model not exist.

核对 model 拼写,并确认该模型在当前地域的模型列表中已列出。

InvalidParameter

400

input.contents 缺失或为空数组,返回 input can not be empty: input.contentscontents input can not be empty: input.contents

确认 input.contents 存在且为非空数组,数组中每个元素包含有效的 textimagevideo 键。

InvalidParameter

400

dimension 取值不在所选模型支持的向量维度范围内。

按本文模型列表中该模型支持的向量维度取值;multimodal-embedding-v1 不支持 dimension 参数,固定为 1024 维。

InternalError.Algo

500

请求体结构不完整或 input.contents 元素格式异常,导致服务端处理失败。

检查请求体结构,确认 inputinput.contents 字段存在且元素格式符合本文请求参数说明;结构无误仍持续报错时,携带 request_id 联系技术支持。

outputobject

任务输出信息。

属性

embeddingsarray

向量结果列表,每个对象对应输入列表中的一个元素。

属性

indexint

结果在输入列表中的索引。

embeddingarray

生成的向量数组,维度取决于模型及 dimension 参数设置。

typestring

结果对应的输入类型。textimagevideomulti_images 分别对应文本、图片、视频、多图输入。以下为特殊类型: fusedtongyi-embedding-vision-plus-2026-03-06tongyi-embedding-vision-flash-2026-03-06 模型返回的融合向量类型;fusionqwen3-vl-embeddingqwen2.5-vl-embedding模型在融合向量模式下返回的类型;vlqwen3-vl-embedding 模型在独立向量模式下返回的类型。

request_idstring

请求唯一标识。可用于请求明细溯源和问题排查。

codestring

请求失败的错误码。请求成功时不会返回此参数,详情请参见错误码

messagestring

请求失败的详细信息。请求成功时不会返回此参数,详情请参见错误码

usageobject

输出信息统计。

属性

input_tokensint

本次请求输入内容的 Token 数目。对于 qwen3-vl-embeddingqwen2.5-vl-embedding 模型,该值仅包含文本 Token(含系统模板 Token),不包含图片/视频 Token;对于 tongyi-embedding-vision-* 系列模型,该值包含文本和图片/视频 Token 的总和。

input_tokens_detailsobject

输入 Token 的详细分类信息。仅 tongyi-embedding-vision-* 系列模型返回此字段,qwen3-vl-embeddingqwen2.5-vl-embeddingmultimodal-embedding-v1 不返回此字段。

属性

image_tokensint

输入内容中图片或视频等视觉部分消耗的 Token 数量,不包含文本(文本部分见 text_tokens)。图片消耗的 Token 数量与输入图片的分辨率有关,分辨率越高消耗的 Token 越多;若输入为视频,系统会先对视频抽帧,再基于抽帧结果计算 Token。

text_tokensint

输入内容中文本部分消耗的 Token 数量(不包含图片或视频等视觉部分)。

output_tokensint

本次请求输出的 Token 数目。仅 tongyi-embedding-vision-* 系列模型返回此字段,其他模型不返回此字段。

total_tokensint

输入与输出的 Token 总数。对于 qwen3-vl-embedding 模型,total_tokens = input_tokens + image_tokens。仅 qwen3-vl-embeddingtongyi-embedding-vision-* 系列模型返回此字段,qwen2.5-vl-embeddingmultimodal-embedding-v1 不返回此字段。

image_tokensint

本次请求输入的图片或视频等视觉部分消耗的 Token 数量(不包含文本)。图片消耗的 Token 数量与输入图片的分辨率有关;系统会对输入视频进行抽帧处理,帧数上限受系统配置控制,随后基于处理结果计算 Token。仅 qwen3-vl-embeddingqwen2.5-vl-embeddingmultimodal-embedding-v1 返回此字段(作为顶层字段),tongyi-embedding-vision-* 系列模型的图片 Token 包含在 input_tokens_details.image_tokens 中。

image_countint

本次请求输入的图片数量。仅 multimodal-embedding-v1 返回此字段。

durationint

本次请求输入的视频时长(秒)。仅 multimodal-embedding-v1 返回此字段。

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
    }
}

错误码

如果模型调用失败并返回报错信息,请参见错误码进行解决。