多模态向量

更新时间:
复制 MD 格式

多模态向量(multi-modal-embedding)服务将文本、图片等输入转换为语义向量,支持单一模态及多模态组合输入,适用于跨模态检索等场景。各模型支持的输入类型和参数范围请参见下表及请求参数说明。

模型ID(service_id)

维度

服务描述

API调用QPS限制(含主账号与RAM子账号)

ops-m2-encoder

768维

中英双语多模态服务,基于60亿图文对数据(其中30亿为中文数据,30亿为英文数据)在BM-6B基础上训练而成。该模型支持图文跨模态检索(包括文本搜索图片和图片搜索文本),以及图片分类任务。

说明

不支持同一个doc同时输入text和image

10

说明

如需扩充QPS,请通过工单联系技术支持协助。

ops-m2-encoder-large

1024维

中英双语多模态服务,相比 m2-encoder 模型拥有更大的参数量,达到 1B(10亿参数),从而在多模态任务处理中具备更强的表达能力和性能表现。

说明

不支持同一个doc同时输入text和image

ops-gme-qwen2-vl-2b-instruct

1536维

基于 Qwen2-VL 多模态大型语言模型(MLLMs) 训练的多模态向量服务,支持单一模态及多模态组合输入,能够高效处理文本、图像及组合类型的数据。

ops-mm-embedding-v1-2b

1536维

由阿里云 OpenSearch-AI 团队开发的多模态向量模型,基于 Qwen2-VL 2B Instruct 微调,支持文本、图片及图文组合输入,适用于跨模态检索等任务。

ops-mm-embedding-v1-7b

3584维

由阿里云 OpenSearch-AI 团队开发的多模态向量模型,基于 Qwen2-VL 7B Instruct 微调,支持文本、图片及图文组合输入,适用于跨模态检索等任务。

ops-mm-embedding-face-001

512维

面向人脸检索任务,通过先进的人脸向量模型,支持单张或多张图像输入,将人脸信息统一编码为高维语义向量,助力高效精准的人脸搜索与比对。

qwen3-vl-embedding

默认2560维,可选2048、1536、1024、768、512、256维。

支持文本、图片、视频及多模态组合输入。每次请求的内容元素总数不超过20,图片不超过10张,视频不超过1个。支持通过options.enable_fusion将多个输入融合为一个向量。

ops-mm-embedding-ecom-001

128维

面向电商场景,支持文本、图片及图文组合输入。

前提条件

  • 获取身份鉴权信息

    通过API调用AI搜索开放平台服务时,需要对调用者身份进行鉴权,如何获取鉴权信息请参见获取API-KEY。

  • 获取服务调用地址

    支持通过公网和VPC两种方式调用服务,详情请参见获取服务接入地址。

请求说明

公共说明

请求body最大不能超过8MB。

请求方式

POST

URL

{host}/v3/openapi/workspaces/{workspace_name}/multi-modal-embedding/{service_id} 
  • host:调用服务的地址,支持通过公网和VPC两种方式调用API服务,可参见获取服务接入地址。

    在左侧导航栏选择目标工作空间(如 default(默认空间)),单击 API Keys,在页面上方的访问域名区域即可查看 公网API域名 和 私网API域名。

  • workspace_name:工作空间名称,例如default。

  • service_id: 系统内置服务id,例如ops-m2-encoder。

请求参数

Header参数

API-KEY认证

参数

类型

必填

描述

示例值

Content-Type

String

是

请求类型:application/json

application/json

Authorization

String

是

API-Key

Bearer OS-d1**2a

Body参数

参数

类型

必填

描述

示例值

input

List[ContentObject]

是

需要向量化的内容。qwen3-vl-embedding每次请求最多20个内容元素,其中图片最多10张、视频最多1个;其他列出的模型每次请求最多32个输入项。options.enable_fusion为false时,每个ContentObject分别生成一个向量;为true时,将input中的全部内容融合为一个向量。enable_fusion仅适用于qwen3-vl-embedding。

[
  {
    "text":"科学技术是第一生产力"
  },
  {
    "image":"http://***/a.jpg"
  }
]

options

OptionObject

否

模型配置,包括图片缩放及向量输出设置。各字段的模型适用范围见OptionObject。

{
  "enable_fusion": false,
  "dimension": 1024
}

ContentObject

参数

类型

是否必填

描述

示例值

text

String

否

文本信息

{
  "text":"文本输入"
}

image

String

否

图片信息,支持URL或者Base64编码后的信息。

  • 如果是URL,则必须是可以访问的。

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

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

    base64_image:图像的BASE64数据。

{
  "image":"http://xxxxx/a.jpg"
}

or

{
  "image":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHCB..."
}

video

String

否

视频文件的URL。仅qwen3-vl-embedding支持该参数,其他模型设置video时会报错。

{
  "video": "https://example.com/video.mp4"
}

OptionObject

以下字段位于请求体的options对象中。

参数

类型

必填

描述

示例值

resize_method

String

否

图片缩放方式:

  • default:使用模型内置的默认缩放处理。

  • none:不进行缩放。

  • fixed_size:缩放到resize_options指定的宽度和高度。

  • proportional_scaling:保持宽高比,缩放到resize_options指定的像素范围。

fixed_size

resize_options

Object

否

resize_method为fixed_size或proportional_scaling时使用的缩放参数。fixed_size时必须设置width、height,单位为像素;proportional_scaling时使用min_pixels、max_pixels,分别表示缩放后的最小、最大像素数。

fixed_size:

{
  "width": 224,
  "height": 224
}

proportional_scaling:

{
  "min_pixels": 409600,
  "max_pixels": 1638400
}

enable_fusion

Boolean

否

是否生成融合向量。仅对qwen3-vl-embedding生效,默认为false:false时每个输入项分别生成一个向量;true时将input中的全部内容融合为一个向量。支持文本与图片、文本与视频、多张图片与文本、图片与视频及文本等组合。

true

instruct

String

否

自定义任务说明,用于指导模型理解查询意图。仅对qwen3-vl-embedding生效,建议使用英文。

Represent the input for cross-modal retrieval.

dimension

Int

否

输出向量维度。qwen3-vl-embedding支持2560、2048、1536、1024、768、512、256,默认值为2560。

1024

返回参数

参数

类型

描述

示例值

result.embeddings

List

本次请求的向量输出结果。未启用融合时,每个数组元素对应一个输入项;qwen3-vl-embedding启用options.enable_fusion时,将全部输入融合为一个向量。

[
  {
    "index": 0,
    "embedding": [
      0.003143,
      0.00975,
      -0.017395
    ]
  }
]

result.embeddings[].index

Int

未启用融合时,对应输入项在input数组中的序号,从0开始。

0

result.embeddings[].embedding

List[Double]

向量化结果。

[0.003143,0.009750,-0.017395](仅展示部分元素)

usage.image_token

Int

图片Token用量。

0

usage.text_token

Int

文本Token用量。

6

usage.image

Int

图片数量。

1

usage.token_count

Int

文本Token用量。

6

Curl请求示例

将{host}替换为服务接入域名,将Authorization中的占位值替换为您的API Key。图片和视频URL需替换为实际可访问的资源地址。

文本向量化

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 您的API-KEY" \
"https://{host}/v3/openapi/workspaces/default/multi-modal-embedding/qwen3-vl-embedding" \
-d '{
  "input": [
    {
      "text": "科学技术是第一生产力"
    }
  ],
  "options": {
    "enable_fusion": false,
    "dimension": 1024
  }
}'

图文融合向量

使用qwen3-vl-embedding将文本和图片融合为一个向量。

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 您的API-KEY" \
"https://{host}/v3/openapi/workspaces/default/multi-modal-embedding/qwen3-vl-embedding" \
-d '{
  "input": [
    {
      "text": "检索与这段描述和图片相似的内容"
    },
    {
      "image": "https://example.com/image.jpg"
    }
  ],
  "options": {
    "enable_fusion": true,
    "instruct": "Represent the input for cross-modal retrieval.",
    "dimension": 1024
  }
}'

文本与视频融合向量

video参数仅适用于qwen3-vl-embedding。每次请求最多包含1个视频。

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 您的API-KEY" \
"https://{host}/v3/openapi/workspaces/default/multi-modal-embedding/qwen3-vl-embedding" \
-d '{
  "input": [
    {
      "text": "检索与这段描述和视频相似的内容"
    },
    {
      "video": "https://example.com/video.mp4"
    }
  ],
  "options": {
    "enable_fusion": true,
    "dimension": 1024
  }
}'

图片缩放

以下示例使用ops-m2-encoder,将输入图片缩放为224 × 224像素。

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 您的API-KEY" \
"https://{host}/v3/openapi/workspaces/default/multi-modal-embedding/ops-m2-encoder" \
-d '{
  "input": [
    {
      "image": "https://example.com/image.jpg"
    }
  ],
  "options": {
    "resize_method": "fixed_size",
    "resize_options": {
      "width": 224,
      "height": 224
    }
  }
}'

响应示例

正常响应示例

以下为qwen3-vl-embedding文本向量化请求的响应示例。embedding数组仅展示部分元素。

{
  "request_id": "f4483a215f4d68dbc6d6c6c37f006854",
  "latency": 259,
  "usage": {
    "image_token": 0,
    "text_token": 24
  },
  "result": {
    "embeddings": [
      {
        "index": 0,
        "embedding": [
          -0.00211523100733757,
          -0.03339154273271561,
          0.04578055068850517,
          0.017939193174242973,
          0.0033657182939350605,
          -0.06284935027360916
        ]
      }
    ]
  }
}

异常响应示例

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

{
    "request_id": "651B3087-8A07-****-B931-9C4E7B60F52D",
    "latency": 0,
    "code": "InvalidParameter",
    "message": "JSON parse error: Cannot deserialize value of type `InputType` from String \"xxx\""
}

状态码说明

请参见AI搜索开放平台状态码说明。