Multimodal-Embedding API详情

多模态向量模型将文本、图像或视频转换成一组由浮点数组成的向量,适用于视频分类、图像分类、图文检索等。

模型介绍、选型建议和使用方法请参考Embedding

模型概

模型名称

数据类型

向量维度

单价

免费额度(注)

限流

multimodal-embedding-v1

float(32)

1,024

免费试用,并将于202511日转为付费制

无加权条目数限制

有效期至:202511

每分钟调用限制(RPM):120

通用多模态向量API使用过程中存在以下输入类型与格式限制

输入类型

语言/格式限制

长度/大小限制

文本

中/英文

512Token, 超过512 token长度的文本内容将会被截断

图片

JPG、PNG、BMP

支持以Base64格式或URL形式输入。接受的图片大小上限为 3MB

视频

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

接受的视频大小上限为 10MB

前提条件

您需要已获取API Key配置API Key到环境变量。如果通过SDK调用,还需要安装DashScope SDK

SDK使用

代码示例

生成图片embedding示例

import dashscope
import json
from http import HTTPStatus

image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
resp = dashscope.MultiModalEmbedding.call(
    model="multimodal-embedding-v1",
    input=input
)

if resp.status_code == HTTPStatus.OK:
    print(json.dumps(resp.output, ensure_ascii=False, indent=4))

生成文本embedding示例

import dashscope
import json
from http import HTTPStatus

text = "通用多模态表征模型示例"
input = [{'text': text}]
resp = dashscope.MultiModalEmbedding.call(
    model="multimodal-embedding-v1",
    input=input
)

if resp.status_code == HTTPStatus.OK:
    print(json.dumps(resp.output, ensure_ascii=False, indent=4))

输出示例

{
    "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_count": 0,
        "duration": 0
    }
}

参数详解

  1. 请求参数

    参数名称

    必选

    类型

    描述

    model

    String

    • 取值:"multimodal-embedding-v1",该值是固定值,无需更改

    • 说明:代表模型的英文名称

    input

    Array[dict]

    /Array[str]

    • 多模态表征输入的具体内容

    • 其中text embedidng相关的输入可直接传入string字段,不需要通过dict进行类型传入

    • 多模态类型支持text、image、video类型, 不同类型的参数值均为String类型,格式参考如下{"模态类型": "输入字符串或图像、视频url"}

    • 图片使用BASE64数据:将编码后的BASE64数据传递给image_url参数,格式为data:image/{format};base64,{base64_image},其中:

      image/{format}:本地图像的格式。请根据实际的图像格式,例如图片为jpg格式,则设置为image/jpeg

      base64_image:图像的BASE64数据

  2. 响应参数

    字段

    类型

    描述

    示例值

    status_code

    Integer

    本次结果http相应码,200对应请求成功。

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

    code

    String

    仅请求失败时展示错误码。

    message

    String

    仅请求失败时展示详细错误信息。

    output.embedding

    Array[Dict]

    本次请求的算法输出内容,是一个由结构体组成的数组。该结构主要包含3个不同的字段:

    • index: 本结构中的算法结果对应的输入在输入数组中的索引值。

    • embedding: 对应输入下算法输出的embedding

    • type: 表示该embedding的类型,目前支持text/image/video

    usage.[text|image|audio]

    dict

    对应各模态计量信息。

    • input_tokens: 本次请求输入文本内容的token数量

    • image_count: 本次请求输入的图片张数

    • duration: 本次请求的视频帧长

    "usage": {
            "input_tokens": 12,
            "image_count": 0,
            "duration": 0
        }

    request_id

    String

    本次请求的系统唯一码

    7574ee8f-38a3-4b1e-9280-11c33ab46e51

HTTP调用

作业提交接口调用

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

参数详解

请求参数

传参方式

字段

类型

必选

描述

示例值

Header

Content-Type

String

请求类型:application/json 或者text/event-stream(开启 SSE 响应)

application/json

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

X-DashScope-WorkSpace

String

指明本次调用需要使用的workspace;需要注意的是,对于子账号Apikey调用,此参数为必选项,子账号必须归属于某个workspace才能调用;对于主账号Apikey此项为可选项,添加则使用对应的workspace身份,不添加则使用主账号身份。

ws_QTggmeAxxxxx

Body

model

String

指明需要调用的模型,此处使用multimodal-embedding-v1

multimodal-embedding-v1

input.contents[list]

Array

contents 列表中包含本次需要进行向量计算的所有内容列表,每一个列表可以分别是图像(image),文本(text)或者视频(video)。

{
        "contents": [ 
            {"text": "通用多模态表征模型"},
            {"image": "https://xxxx.com/xxx/images/xxx.jpg"},
            {"vedio": "https://xxx.com/xxx/video/xxx.mp4"}
        ]
    }

响应参数

字段

类型

描述

示例值

output.embedding[]

Array

本次请求的算法输出内容。

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

output.embeddings.index

Integer

本结构中的算法结果对应的输入在输入数组中的索引值

output.embeddings.embedding

Array

对应输入下算法输出embedding

output.embeddings.type

String

表示该embedding的类型, text/image/video

usage.input_tokens

Integer

本次请求输入内容的 token 数目

"usage": {
        "input_tokens": 10,
        "image_count": 1,
        "duration": 3.34563
    }

usage.image_count

Integer

本次请求输入的图片张数

usage.duration

Integer

本次请求输入的视频帧长

request_id

String

本次请求的系统唯一码

7574ee8f-38a3-4b1e-9280-11c33ab46e51

Curl示例

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": "multimodal-embedding-v1",
    "input": {
        "contents": [ 
            {"text": "通用多模态表征模型"},
            {"image": "https://mitalinlp.oss-cn-hangzhou.aliyuncs.com/dingkun/images/1712648554702.jpg"},
            {"vedio": "https://mitalinlp.oss-cn-hangzhou.aliyuncs.com/dingkun/multimodel-test/video/24i4ncHuf6A.mp4"}
        ]
    },
    "parameters": {
    }
}'

响应示例

调用成功示例

{
    "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_count": 1,
        "duration": 3.34563
    },
    "request_id": "1fff9502-a6c5-9472-9ee1-73930fdd04c5"
}

调用异常示例

在访问请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因。

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

错误码

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