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

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

最終更新日:May 10, 2026

マルチモーダル埋め込みモデルは、テキスト、画像、動画を共通の意味空間内の埋め込みに変換し、クロスモーダル取得、コンテンツ分類、類似検索を可能にします。

コア機能

  • クロスモーダル取得:コンテンツタイプを横断した検索(テキストによる画像検索、画像による動画検索、画像間検索など)が可能です。

  • 意味的類似性:統一された埋め込み空間内で異なるコンテンツタイプ間の類似性を測定できます。

  • コンテンツ分類およびクラスタリング:コンテンツを意味に基づいてグループ化・ラベル付け・クラスタリングできます。

主な属性:すべてのモダリティ(テキスト、画像、動画)が同じ意味空間内に埋め込みを生成するため、余弦類似度を用いた直接的なクロスモーダルマッチングおよび比較が可能です。モデルの選択と使用方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
重要

このモデルサービスは 中国 (北京) リージョンでのみ利用可能です。API キー をこのリージョンから取得し、サービスを呼び出してください。

埋め込みタイプ

マルチモーダル埋め込みモデルは、次の 2 種類の埋め込み生成モードをサポートしています。

  • マルチモーダル独立埋め込みcontents 配列内の各入力(テキスト、画像、動画、または画像シーケンス)に対して個別の埋め込みを生成します。たとえば、テキスト 1 つと画像 1 つで、2 つの独立した埋め込みが生成されます。画像間検索やテキストによる画像検索など、個々のコンテンツ項目を比較する用途に最適です。

  • マルチモーダル融合埋め込みcontents 内のすべての入力を 1 つの埋め込みに統合し、クロスモーダルな意味表現を統一的に提供します。商品画像と説明文を組み合わせて 1 つの埋め込みを作成するなど、マルチモーダルコンテンツ全体を包括的に理解する必要がある場合に最適です。qwen3-vl-embedding の場合は、enable_fusion=true。サポートされる融合の組み合わせは以下のとおりです。

    • テキストと画像

    • テキストと動画

    • 複数の画像とテキスト(複数の image エントリを渡すことで実現)

    • 画像、動画、テキスト

qwen2.5-vl-embedding は融合埋め込みのみをサポートし、独立埋め込みはサポートしていません。tongyi-embedding-vision-plus および tongyi-embedding-vision-flash は独立埋め込みのみをサポートしています。

モデルの詳細および選択方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。

モデル概要

シンガポール

モデル

埋め込み次元

テキスト長制限

画像サイズ制限

動画サイズ制限

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

無料クォータ(注)

tongyi-embedding-vision-plus

1152

1,024 トークン

画像 1 枚あたり最大 3 MB。最大 8 枚の画像をサポートします。

動画ファイル 1 件あたり最大 10 MB

画像/動画:$0.09

テキスト:$0.09

100 万トークン

Model Studio のアクティベート後 90 日間有効

tongyi-embedding-vision-flash

768

画像/動画:$0.03

テキスト:$0.09

中国 (北京)

モデル

埋め込み次元

テキスト長制限

画像サイズ制限

動画サイズ制限

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

qwen3-vl-embedding

2560(デフォルト)、2048、 1536、1024、768、512、256

32,000 トークン

最大 5 枚の画像(1 枚あたり最大 5 MB

動画ファイル 1 件あたり最大 50 MB

画像/動画:$0.258

テキスト:$0.1

multimodal-embedding-v1

1024

512 トークン

最大 8 枚の画像(1 枚あたり 3 MB

動画ファイル 1 件あたり最大 10 MB

無料トライアル

入力フォーマットおよび言語制限

融合マルチモーダルモデル

モデル

テキスト

画像

動画

リクエスト制限

qwen3-vl-embedding

中国語、英語、日本語、韓国語、フランス語、ドイツ語を含む 33 の主要言語をサポートします。

JPEG、PNG、WEBP、BMP、TIFF、ICO、DIB、ICNS、SGI(URL または Base64 対応)

MP4、AVI、MOV(URL のみ)

1 リクエストあたり最大 20 要素。画像は最大 5 枚、動画は最大 1 件まで。

独立マルチモーダルモデル

モデル

テキスト

画像

動画

リクエスト制限

tongyi-embedding-vision-plus

中国語および英語

JPG、PNG、BMP(URL または Base64 対応)

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

コンテンツ要素数に制限はありません。ただし、入力トークン総数がバッチ処理トークン制限を超えてはなりません。

tongyi-embedding-vision-flash

multimodal-embedding-v1

JPG、PNG、BMP(URL または Base64 対応)

1 リクエストあたり最大 20 要素。テキストセグメントは最大 20 個、画像は最大 1 枚、動画は最大 1 件まで。

すべてのモデルは、テキスト、画像、動画の入力を個別または組み合わせでサポートしています。tongyi-embedding-vision-plustongyi-embedding-vision-flash モデルは、画像シーケンス用の multi_images 入力もサポートしています。

モデル機能

モデル

デフォルトディメンション

タイプ

対応する入力

説明

qwen3-vl-embedding

2,560

独立/融合

text、image、video、multi_images

融合モードでは、enable_fusion パラメーターを使用して、マルチモーダル入力を単一の埋め込みに統合します。

tongyi-embedding-vision-plus

1,152

独立のみ

text、image、video、multi_images

multi_images シーケンスを最大 8 枚の画像でサポートします。

tongyi-embedding-vision-flash

768

multimodal-embedding-v1

1,024

text、image、video

dimension パラメーターはサポートされていません。固定値は 1,024 です。

前提条件

API キーを作成し、API キーを環境変数としてエクスポートしてください。SDK を使用して呼び出す場合は、DashScope SDK をインストールしてください。

HTTP 呼び出し

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

リクエスト

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

次の例では、tongyi-embedding-vision-plus モデルを使用して独立埋め込み(各入力ごとに 1 つの埋め込み)を生成しています。他のモデル名に置き換えることも可能です。multi_images タイプは、tongyi-embedding-vision-plus および tongyi-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": "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 モデルは融合埋め込みの生成をサポートしています。enable_fusion=true を設定すると、すべての入力が単一の埋め込みに融合されます。テキストと画像、テキストと動画、複数の画像とテキスト、画像と動画とテキストの組み合わせなど、さまざまな組み合わせがサポートされています。次の例では、複数の画像、動画、テキストを組み合わせた融合を示しています。
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": "Product description 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
        }
    }'

リクエストヘッダー

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"}。サポートされるタイプ:textimagevideomulti_images

qwen3-vl-embedding モデルは、独立埋め込みおよび融合埋め込みの両方をサポートしています。融合埋め込みを生成するには、ブール型フィールド enable_fusion を追加し、true に設定します。qwen2.5-vl-embedding モデルは融合埋め込みのみをサポートしています。
  • テキスト:キーは text、値は文字列です。辞書を使わず、文字列を直接渡すこともできます。

  • 画像:キーは image です。値は公開 URL または Base64 Data URI(data:image/{format};base64,{data})です。ここで、{format} は画像フォーマット(jpegpng など)、{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:2,560、2,048、1,536、1,024、768、512、256 をサポートします。デフォルトは 2,560 です。

  • tongyi-embedding-vision-plus:サポートしていません。固定値は 1,152 です。

  • tongyi-embedding-vision-flash:サポートしていません。固定値は 768 です。

  • multimodal-embedding-v1:サポートしていません。固定値は 1,024 です。

fps float(任意)

動画フレーム抽出レートです。範囲:[0, 1](値が小さいほどフレーム数が少なくなります)。デフォルト:1.0。

instruct string(任意)

クエリの意図をガイドするカスタムタスク説明です。英語を使用すると 1~5 %の改善が見込まれます。

enable_fusion bool(任意)

融合埋め込みを生成するかどうかを指定します。qwen3-vl-embedding のみがサポートしています。true に設定すると、contents 配列内のすべてのマルチモーダルコンテンツが単一の埋め込みに融合されます。デフォルト:false(各モダリティごとに独立埋め込みを生成)。サポートされる組み合わせ:テキストと画像、テキストと動画、複数の画像とテキスト(複数の画像アイテム)、画像と動画とテキスト。

応答

成功時の応答

{
    "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,
        "input_tokens_details": {
            "image_tokens": 896,
            "text_tokens": 7
        },
        "output_tokens": 3,
        "total_tokens": 906
    },
    "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

結果の入力タイプ:textimagevideo、および multi_image。次のタイプは特殊です:fusionqwen3-vl-embedding が融合モードで返すタイプです。vlqwen3-vl-embedding が独立モードで返すタイプです。

request_id string

トレースおよびトラブルシューティング用の一意のリクエスト識別子です。

code string

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

message string

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

usage object

トークン使用量の統計情報です。

プロパティ

input_tokens int

入力トークン数です。

input_tokens_details object

タイプ別の入力トークン内訳です。

プロパティ

image_tokens int

入力画像または動画のトークン数です。

text_tokens int

入力テキストのトークン数です。

output_tokens int

出力トークン数です。

total_tokens int

入力および出力トークンの合計数です。

image_tokens int

画像または動画のトークン数です。動画の場合、システムはフレームをサンプリング(最大数は設定可能)し、その結果からトークンを計算します。

image_count int

入力画像数です。

duration int

入力動画の持続時間(秒)です。

SDK の使用方法

SDK の input パラメーターは、HTTP リクエストボディの input.contents に対応します。

コード例

画像埋め込み

画像 URL

import dashscope
import json
from http import HTTPStatus
# ご利用の画像 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 に変換して埋め込みを生成します。

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 に置き換えてください。
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"

# 入力にはテキスト、画像、動画が含まれます。enable_fusion=True を設定して、単一の融合埋め込みを生成します。
input_data = [
    {"text": text},
    {"image": image},
    {"video": video}
]

# qwen3-vl-embedding を使用して融合埋め込みを生成します。
resp = dashscope.MultiModalEmbedding.call(
    # 環境変数が設定されていない場合は、DashScope API キーを直接指定してください(例: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 を使用して、複数の画像とテキストを単一の埋め込みに融合する方法を示しています。複数の image アイテムを渡すことで、複数画像の融合を実現します。このアプローチは、多角度画像とテキスト説明を使用した製品の意味的取得に最適です。

import dashscope
import json
import os
from http import HTTPStatus

# 複数画像+テキスト融合埋め込み:複数の商品画像と説明テキストを単一の埋め込みに融合します。
# 多角度商品画像とテキスト説明を使用した包括的な意味的取得に適しています。
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
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"

# 複数画像の融合のために、複数の画像アイテムを渡します。`enable_fusion=True` により、すべての入力が単一の埋め込みに融合されます。
input_data = [
    {"text": text},
    {"image": image1},
    {"image": image2}
]

resp = dashscope.MultiModalEmbedding.call(
    # 環境変数が設定されていない場合は、DashScope API キーを直接指定してください(例: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 = "This is a visual multimodal representation model."

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 バージョンの 融合埋め込み の使用方法を示しています。textimage、および video を同じ content オブジェクト内に配置すると、モデルはすべての入力を融合し、typefused の単一の埋め込みを生成します。

import dashscope
import json
import os
from http import HTTPStatus

# 融合埋め込み:テキスト、画像、動画を同じコンテンツオブジェクト内に配置します。
# モデルはすべての入力を融合し、タイプが "fused" の単一の埋め込みを生成します。
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"

# 同じオブジェクト内のマルチモーダルコンテンツは、単一の埋め込みに融合されます。
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
    }
}

エラーコード

モデル呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」を参照して解決してください。