すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:マルチモーダル埋め込み API の詳細

最終更新日:Feb 06, 2026

マルチモーダル埋め込みモデルは、テキスト、画像、または動画を統一された1,024次元浮動小数点ベクトルに変換します。これらのモデルは、動画分類、画像分類、テキストから画像検索などのタスクに適しています。

主要機能

  • クロスモーダル検索: テキストから画像検索、画像から動画検索、画像検索などのクロスモーダルな意味検索を実行します。

  • 意味的類似度計算: 統一されたベクトル空間で、異なるモダリティのコンテンツ間の意味的類似度を測定します。

  • コンテンツ分類とクラスタリング: コンテンツの意味的埋め込みに基づいて、インテリジェントなグループ化、タグ付け、クラスタリング分析を実行します。

主要属性: すべてのモダリティ (テキスト、画像、動画) から生成された埋め込みは、同じ意味空間に存在します。これにより、コサイン類似度などのメソッドを使用して、クロスモーダルなマッチングと比較を直接行うことができます。モデル選択と適用方法の詳細については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
重要

このモデルサービスは、中国 (北京) リージョンでのみ利用可能です。サービスを呼び出すには、このリージョンのAPI キーを使用する必要があります。

モデルの概要、選択の推奨事項、使用方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。

モデル概要

シンガポール

モデル

埋め込みディメンション

テキスト長制限

画像サイズ制限

動画サイズ制限

料金 (入力トークン100万個あたり)

無料クォータ(注)

tongyi-embedding-vision-plus

1152, 1024, 512, 256, 128, 64

1,024 tokens

単一ファイルは3 MBを超えてはなりません。

動画ファイルサイズは最大10 MB

画像/動画: $0.09

テキスト: $0.09

100万トークン

有効期間: Model Studio アクティベーション後90日間

tongyi-embedding-vision-flash

768, 512, 256, 128, 64

画像/動画: $0.03

テキスト: $0.09

北京

モデル

埋め込みディメンション

テキスト長制限

画像サイズ制限

動画サイズ制限

料金 (入力トークン100万個あたり)

qwen3-vl-embedding

2560, 2048, 1536, 1024, 768, 512, 256

32,000 tokens

最大1画像、最大5 MB

動画ファイルサイズは最大50 MB

画像/動画: $0.258

テキスト: $0.1

multimodal-embedding-v1

1024

512 tokens

最大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を超えてはなりません。画像、テキスト、動画はこの制限を共有します。

独立マルチモーダル埋め込みモデル

モデル

テキスト

画像

動画

リクエストあたりの最大要素数

tongyi-embedding-vision-plus

中国語/英語

JPG、PNG、BMP (URLまたはBase64をサポート)

MP4、MPEG、AVI、MOV、MPG、WEBM、FLV、MKV (URLのみ)

コンテンツ要素の数に制限はありません。合計トークン数はトークン制限を超えてはなりません。

tongyi-embedding-vision-flash

multimodal-embedding-v1

リクエストあたりのコンテンツ要素の合計は20を超えてはなりません。最大1つの画像、1つの動画、20のテキストエントリが合計制限を共有します。

APIは、単一のテキストセグメント、単一の画像、または単一の動画ファイルのアップロードをサポートしています。また、テキストと画像など、異なるタイプの組み合わせも可能です。一部のモデルは、複数の画像など、同じコンテンツタイプの複数の入力をサポートしています。詳細については、特定のモデルの制限をご参照ください。

前提条件

API キーを取得し、API キーを環境変数として設定する必要があります。SDK を使用して呼び出しを行う場合は、DashScope SDK もインストールする必要があります。

HTTP 呼び出し

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

リクエスト

マルチモーダル独立埋め込み

qwen3-vl-embedding は2つの方法で使用できます。テキスト、画像、動画を一緒に入力すると、1つの融合埋め込みが生成されます。それらを個々に入力すると (以下のコード例に示すように)、各項目に対して独立した埋め込みが生成されます。
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": "Multimodal embedding model"},
            {"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 は2つの方法で使用できます。テキスト、画像、動画を一緒に入力すると (以下のコード例に示すように)、1つの融合埋め込みが生成されます。それらを個々に入力すると、各項目に対して独立した埋め込みが生成されます。
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": "qwen3-vl-embedding",
    "input": {
        "contents": [
            {"text": "This is a test text for generating a multimodal fused embedding",
             "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": 1024,
        "output_type": "dense",
        "fps": 0.5
    }
}'

リクエストヘッダー

Content-Type string (必須)

リクエストのコンテンツタイプ。これを application/json または text/event-stream (Server-Sent Events (SSE) レスポンスを有効にするため) に設定します。

Content-Type string (必須)

リクエストのコンテンツタイプ。 application/json である必要があります。

Authorization string (必須)

Model Studio API キーを使用した認証情報。

例: Bearer sk-xxxx

リクエストボディ

model string (必須)

モデル名。これを「モデル概要」のモデル名に設定します。

input object (必須)

入力コンテンツ。

プロパティ

contents array (必須)

処理するコンテンツのリスト。各要素は、コンテンツタイプと値を指定する辞書または文字列です。形式は `{"modality_type": "input_string_or_image/video_url"}` です。textimagevideo、および multi_images モダリティタイプがサポートされています。

qwen3-vl-embedding は、融合埋め込みと独立埋め込みの両方を生成できます。`text`、`image`、および `video` が同じオブジェクト内に配置されている場合、融合埋め込みが生成されます。それらが独立した要素に分離されている場合、各要素に対して個別の埋め込みが生成されます。qwen2.5-vl-embedding は融合埋め込みのみをサポートし、独立埋め込みはサポートしません。
  • テキスト: キーは text です。値は文字列です。辞書なしで文字列を直接渡すこともできます。

  • 画像: キーは image です。値は公開アクセス可能なURLまたはBase64エンコードされたデータURIです。Base64形式は data:image/{format};base64,{data} で、{format} は画像形式 (例: jpeg または png)、{data} はBase64エンコードされた文字列です。

  • 複数画像: tongyi-embedding-vision-plus および tongyi-embedding-vision-flash モデルのみがこのタイプをサポートしています。キーは multi_images です。値は画像のリストです。各項目は上記で説明した形式に従う画像です。最大8枚の画像を含めることができます。

  • 動画: キーは video です。値は公開アクセス可能なURLである必要があります。

parameters object (オプション)

ベクトル処理のパラメーター。HTTP 呼び出しの場合、これらのパラメーターは `parameters` オブジェクトでラップする必要があります。SDK 呼び出しの場合、これらのパラメーターを直接使用できます。

プロパティ

output_type string オプション

出力ベクトル形式を指定します。現在、`dense` のみがサポートされています。

dimension integer オプション

出力ベクトルのディメンションを指定します。サポートされる値はモデルによって異なります。

  • qwen3-vl-embedding は 2560, 2048, 1536, 1024, 768, 512, 256 をサポートしています。デフォルト値は 2560 です。

  • tongyi-embedding-vision-plus は 64, 128, 256, 512, 1024, 1152 をサポートしています。デフォルト値は 1152 です。

  • tongyi-embedding-vision-flash は 64, 128, 256, 512, 768 をサポートしています。デフォルト値は 768 です。

  • multimodal-embedding-v1 はこのパラメーターをサポートしていません。固定の1024次元ベクトルを返します。

fps float オプション

動画のフレーム数を制御します。値が小さいほど、抽出されるフレーム数が少なくなります。有効値は [0, 1] です。デフォルト値は 1.0 です。

instruct string オプション

モデルがクエリ意図を理解するのに役立つカスタムタスク記述を追加します。英語で記述すると、パフォーマンスが約1%から5%向上する可能性があります。

レスポンス

成功レスポンス

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

エラーレスポンス

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

output object

タスク出力情報。

プロパティ

embeddings array

ベクトル結果のリスト。各オブジェクトは入力リストの要素に対応します。

プロパティ

index int

入力リスト内の結果のインデックス。

embedding array

生成された埋め込み。

type string

結果に対応する入力タイプ: `text`、`image`、`video`、`multi_images`、または `vl` (このタイプは qwen3-vl-embedding を使用した場合にのみ返されます)。

request_id string

リクエストの一意の識別子。問題の追跡とトラブルシューティングに使用します。

code string

エラーコード。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。

message string

詳細なエラーメッセージ。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。

usage object

出力に関する統計。

プロパティ

input_tokens int

このリクエストの入力内のトークン数。

image_tokens int

このリクエストの画像または動画のトークン数。システムは入力動画からフレームをサンプリングし、最大フレーム数はシステム構成によって制御されます。その後、処理結果に基づいてトークンが計算されます。

image_count int

このリクエストの画像数。

duration int

このリクエストの動画の期間 (秒単位)。

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}]
# モデルAPIを呼び出します。
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}]

# モデルAPIを呼び出します。
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}]
# モデルAPIを呼び出します。
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 = "General multimodal representation model example"
input = [{'text': text}]
# モデルAPIを呼び出します。
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 = "This is a test text for generating a multimodal fused embedding."
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"

# 入力にはテキスト、画像、動画が含まれます。モデルはそれらを単一の融合埋め込みに融合します。
input_data = [
    {
        "text": text,
        "image": image,
        "video": video
    }
]

# qwen3-vl-embedding を使用して融合埋め込みを生成します。
resp = dashscope.MultiModalEmbedding.call(
    # 環境変数を設定していない場合は、次の行をModel Studio APIキー (api_key="sk-xxx") に置き換えてください。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-vl-embedding",
    input=input_data,
    # オプションパラメーター: ベクトルディメンションを指定します (サポートされる値: 2560, 2048, 1536, 1024, 768, 512, 256; デフォルト: 2560)
    # parameters={"dimension": 1024}
)

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

エラーコード

呼び出しが失敗した場合は、トラブルシューティングについては「エラーメッセージ」をご参照ください。